7

Szukam dobrego języka skryptowego do połączenia z moim programem. szukam 2 ważnych atrybutów:Języki skryptowe

  • Scripting język powinien być twardy połączony do pliku wykonywalnego (nie wymagające 3rd party instalacje). Jest to dla mnie ważne, aby uprościć dystrybucję.
  • skryptów powinny umożliwić pewną opcję debugowania run-time (Po uruchomieniu skryptu w moim programie chciałbym łatwo uruchomić go wewnątrz debugera, gdy jest uruchomiony w kontekście mojego programu)

Czy Python, lua lub inny język dostarczają mi tego?

+4

Powinieneś podać więcej informacji o swoim programie, tj. Używanym języku i docelowym systemie operacyjnym. – Anax

+0

Ważniejsze pytanie brzmi, jakie biblioteki potrzebujesz. – Lothar

Odpowiedz

2

Położyłbym moje dwa centy na pytona. Nie znam zbyt wielu szczegółów, ale mikser komputerowy z grafiką komputerową świetnie sobie radzi z wdrażaniem skryptów Pythona.

O ile mogę powiedzieć w Blenderze 2.5 interpreter jest uruchamiany od wewnątrz pliku wykonywalnego,

import sys 
sys.executable 

pokazy /blender/blender.exe i nie ma dobre wsparcie debugowania, to nawet ma pełny interaktywny tłumacz wewnątrz.

Aby uzyskać więcej informacji sprawdź: http://www.blender.org/

13

Zarówno Lua, jak i Python mogą podać wspomniane funkcje, więc wybór jednego z nich zależy od innych kryteriów.

Lua jest lżejszym rozwiązaniem, ma znacznie mniejszy ślad dysku i prawdopodobnie mniejszy narzut pamięci niż Python. W przypadku niektórych zastosowań może być szybszy. Python ma znacznie bogatszą bibliotekę standardową, bardziej dojrzałe biblioteki stron trzecich i bardziej ekspresyjny język.

Obie zostały osadzone w głównych aplikacjach. Python można znaleźć w Blenderze, OpenOffice i Civilization 4. Lua można znaleźć w World of Warcraft i Adobe Lightroom. Zalecam przejrzenie kilku samouczków dla każdego z dostępnych narzędzi i osadzenie ich w aplikacji. Wystarczy wybrać ten, który najlepiej pasuje do Twojego mózgu.

+1

Niestety Pythonowi brakuje realistycznego wsparcia dla "jednego pojedynczego pliku wykonywalnego". Biblioteki DLL/so nie mogą łatwo zostać statycznie skompilowane i połączone. LUA zapobiega problemowi, nie mając w ogóle poważnej biblioteki. – Lothar

+2

Cywilizacja 5 przełączyła się na Lua ze względu na wydajność. – Jonas

7

Zazwyczaj Lua jest lepszym wyborem do osadzania w innym projekcie. Python jest lepszy jako samodzielna platforma, ponieważ obsługa bibliotek jest o wiele szersza. Aby uzyskać więcej informacji, patrz Lua Versus Python.

Osobiście używam obu bardzo często w zależności od wykonywanej pracy. Zawsze używam Lua do osadzania w aplikacjach C/C++ lub w funkcjach skryptowych, które są importowane z udostępnionych bibliotek C/C++ (np. DLL). Python jest zawsze moim pierwszym wyborem dla samodzielnych zadań, które nie wymagają niskiego poziomu kodu C/C++.

1

Bardzo lubię Lua do osadzania, ale podobnie jak inne alternatywy, JavaScript można łatwo osadzać w programach C, C++ (SpiderMonkey i V8) i Java (Rhino).

+0

+1 To prawda, jest to kolejna realna opcja. Mogę to tylko polecić, jeśli ty, lub bardziej odpowiednio, twój użytkownik/skrypciarze już to wiedzą. Jedną rzeczą, o której zapomniałem wspomnieć w powyższej odpowiedzi, jest to, że dopóki nie osadzasz silnika skryptów na własny użytek, powinieneś rozważyć prawdopodobne preferencje i potrzeby tych, którzy będą używać interfejsu skryptowego. –

+0

Simon: Nie jestem pewien, jak bardzo się z tym zgadzam. Był czas, kiedy wszyscy mówili, że chcą, aby REXX był językiem rozszerzającym i nie mogę wymienić jednego programu, który widziałem z REXXem za 10 lat. Nie wiem * nikt * kto poprosił Lispa o swojego redaktora (nawet programistów Lispa!), Ale spójrz teraz na Emacsa. JavaScript (z grubsza "Schemat ze składnią podobną do Java") początkowo był ponad głowami typowych osób piszących strony internetowe, ale jakoś udało się to dostosować. Myślę, że jeśli język jest wystarczająco mocny, a użytkownicy chcą zhackować swój program/platformę, użytkownicy to zrozumieją. – Ken

0

Dodam Tcl do miksu. Został zaprojektowany z myślą o łatwym osadzeniu w innych programach.

1

Oprócz Tcl, Lua i Javascript (wszystkie wyżej wymienione), Guile jest innym językiem zaprojektowanym specjalnie do tego.

Powiązane problemy