Jestem emerytowanym biologiem, który zajmował się cyfrowymi mikrografami i stwierdził, że musi napisać pakiet do przetwarzania obrazu i analizy (nie technicznie biblioteki), aby uruchomić go na maszynie SGi. Napisałem kod w C i użyłem Tcl jako języka skryptowego. GUI, tak jak było, zostało wykonane przy użyciu Tk. Polecenia, które pojawiły się w Tcl, miały postać „rozszerzenieNazwa nazwa polecenia arg0 arg1 ... param0 param1 ...”, to znaczy proste słowa i liczby oddzielone spacjami. Gdy Tcl zobaczył podciąg „extensionName”, kontrola została przekazana do pakietu C. To z kolei uruchomiło polecenie przez lexer / parser (wykonane w lex / yacc), a następnie w razie potrzeby wywołało procedury C.
Polecenia do obsługi pakietu można uruchamiać pojedynczo za pośrednictwem okna w graficznym interfejsie użytkownika, ale zadania wsadowe były wykonywane przez edycję plików tekstowych, które były poprawnymi skryptami Tcl; wybrałeś szablon, który wykonał rodzaj operacji na poziomie pliku, którą chcesz wykonać, a następnie edytowałeś kopię, aby zawierała rzeczywisty katalog i nazwy plików oraz polecenia pakietu. Działa jak urok. Aż do ...
1) Świat zwrócił się ku komputerom PC i 2) skrypty wydłużyły się do około 500 linii, gdy słabe możliwości organizacyjne Tcl stały się prawdziwą niedogodnością. Czas minął ...
Przeszedłem na emeryturę, wymyśliłem Pythona i wyglądało to na idealnego następcę Tcl. Teraz nigdy nie robiłem portu, ponieważ nigdy nie stawiałem czoła wyzwaniom kompilacji (dość dużych) programów C na PC, rozszerzania Pythona za pomocą pakietu C i robienia GUI w Pythonie / Gt? / Tk? /? ? Jednak stary pomysł posiadania edytowalnych skryptów szablonów nadal wydaje się praktyczny. Ponadto nie powinno być zbyt wielkim obciążeniem wprowadzanie poleceń pakietu w natywnej formie Pythona, np .:
pakietName.command (arg0, arg1, ..., param0, param1, ...)
Kilka dodatkowych kropek, parenów i przecinków, ale to nie są wisiorki.
Pamiętam, że ktoś napisał wersje lex i yacc w Pythonie (spróbuj: http://www.dabeaz.com/ply/ ), więc jeśli są one nadal potrzebne, są w pobliżu.
Chodzi mi o to, że wydawało mi się, że sam Python JEST pożądanym „lekkim” frontem używanym przez naukowców. Jestem ciekawy, dlaczego uważasz, że tak nie jest, i mam na myśli to poważnie.
dodane później: Aplikacja gedit przewiduje dodawanie wtyczek, a ich witryna zawiera wyjaśnienie prostej procedury wtyczek, którą znalazłem w ciągu kilku minut rozglądania się. Próbować:
https://wiki.gnome.org/Apps/Gedit/PythonPluginHowToOld
Nadal chciałbym lepiej zrozumieć twoje pytanie. Nie jestem pewien, czy 1) chcesz, aby naukowcy mogli korzystać z twojej aplikacji (Python) po prostu na różne sposoby, czy 2) chcesz, aby naukowcy mogli dodawać nowe możliwości do twojej aplikacji. Wybór nr 1 to sytuacja, w której mieliśmy do czynienia z obrazami, i to doprowadziło nas do użycia ogólnych skryptów, które zmodyfikowaliśmy, aby dopasować do potrzeb chwili. Czy to Choice # 2 prowadzi do idei wtyczek, czy jest to jakiś aspekt twojej aplikacji, który sprawia, że wydawanie poleceń jest niewykonalne?