Я - пенсіонер-біолог, який мав справу з цифровими мікрографами і виявив, що мені потрібно написати пакет обробки та аналізу зображень (технічно не бібліотеку) для роботи на машині SGi. Я написав код на C і використав Tcl для мови сценаріїв. Графічний інтерфейс, такий, як він був, робився за допомогою Tk. Команди, що з’явились у Tcl, мали форму "extensionName commandName arg0 arg1 ... param0 param1 ...", тобто прості слова та цифри, розділені пробілом. Коли Tcl побачив підрядку "extensionName", контроль було передано пакету C. Це, в свою чергу, пропустило команду через lexer / parser (виконано в lex / yacc), а потім викликало C підпрограми за потребою.
Команди для управління пакетом можна виконувати по черзі через вікно в графічному інтерфейсі, але пакетні завдання виконувались шляхом редагування текстових файлів, які були дійсними сценаріями Tcl; ви вибрали б шаблон, який виконував тип операції на рівні файлу, який ви хотіли зробити, а потім відредагувати копію, щоб містити фактичні назви каталогів та файлів плюс команди пакета. Це спрацювало як шарм. Поки ...
1) Світ звернувся до ПК і 2) сценарії отримали більше 500 рядків, коли незрозумілі організаційні можливості Tcl стали справжньою незручністю. Час минув ...
Я вийшов у відставку, винайшов Python, і це виглядало як ідеальний наступник Tcl. Тепер я ніколи не робив порт, тому що ніколи не стикався з проблемами компілювання (досить великих) програм C на ПК, розширення Python за допомогою пакету C та створення графічних інтерфейсів в Python / Gt? / Tk? /? ?. Однак стара ідея наявності редагованих сценаріїв шаблонів видається досі реальною. Крім того, не повинно бути занадто великим тягарем для введення команд пакета у рідній формі Python, наприклад:
packageName.command (arg0, arg1, ..., param0, param1, ...)
Кілька додаткових крапок, парен і коми, але це не стопори.
Я пам'ятаю, як хтось робив версії lex і yacc в Python (спробуйте: http://www.dabeaz.com/ply/ ), тож якщо вони все-таки потрібні, вони є навколо.
Сенс цієї суперечки полягає в тому, що мені здалося, що сам Пітон є бажаним "легким" переднім кінцем, який можна використовувати вченим. Мені цікаво дізнатися, чому ви вважаєте, що це не так, і я маю на увазі це серйозно.
додано пізніше: додаток gedit передбачає додавання плагінів, і на їхньому веб-сайті є чітке пояснення простої процедури плагіну, яку я знайшов за кілька хвилин огляду. Спробуйте:
https://wiki.gnome.org/Apps/Gedit/PythonPluginHowToOld
Я все одно хотів би краще зрозуміти ваше запитання. Незрозуміло, чи ви 1) хочете, щоб вчені могли використовувати ваше (Python) додаток досить просто різними способами, або 2) хочете дозволити вченим додати нові можливості до вашої програми. Вибір №1 - це ситуація, з якою ми стикалися із зображеннями, і це призвело до використання загальних сценаріїв, які ми модифікували відповідно до потреб моменту. Це вибір 2, який підводить вас до ідеї плагінів, чи це якийсь аспект вашої програми, який робить видачу команд їй нездійсненним?