diver писал(а):
тут ещё такой момент - а как дела обстоят у тех, кто пишет на других "редких" языках - Лиспе, Аде, Эрланге ?...
Я, один из представителей, которые пишут проекты на «редких» языках. Сейчас активно развиваю проект «Оценка знаний специалистов неразрушающего контроля», а просто говоря, система приёма экзаменов. Одно из требований Linux - как независимость от лицензионного ПО, но с возможностью работы и в Windows (народ же к ней привык). Не в даваясь в детали, есть заказчики, есть задание – надо делать.
Так как выбор ПО за мной, а одно из негласных требований – желательно на свободном ПО, то встал вопрос, на чем писать … То что Qt – у меня не было сомнений, смотрится он великолепно и в Linux и в Windows, ну и я его немного знаю, что немаловажно. Ну а дальше выбор:
1 – C++. Всё отлично, но не лежит у меня к нему душа. Очень громоздкий, большой и неповоротливый. Развернуть всю среду для работы – надо отдельный компьютер. Ни чего нового и интересного, быдлокодерство - как говорит gudleifr.
2 – Java + Qt – Очень мне мой друг советует Java. Он на Java много лет пишет, но не с Qt, а с DWT. Посмотрел… круто! Но – графика DWT не красивая, язык сложен, с учетом того, что я его не знаю, постоянные скачки с версиями Java… бррр. Развернул среду, потыкался – тяжело ….
3 – Python + Qt - Интересно, есть литература, почти все работает. По идеологии Python сильно на Forth смахивает, все понятно по крайней мере. Накидал на нем несколько примеров … но какое то всё неустойчивое и большое. Опять же несколько версий. Вроде и хочется, но все закрытое (исходники). Может они и открыты, но очень большие и объёмные. А если где ошибка в PyQt и вообще как в случае чего её найти ….
4 - SPF-4.20 + Qt – Очень заманчиво. Есть наработки. Есть желание развить. Всё компактное (на флешке принес, сунул в любой комп, кое что подправил и все работает). Вот тут то и вскрылись недостатки. Большой проект на форте сделать тяжело. Сделай окружение, сделай обработку строк, сделай то, сделай сё. Везде только наброски библиотек, вернее «мысли» и пару примеров. Между собой всё не связано, а за частую просто противоречит.
5 – D + Qt – Сейчас всё делаю на этой связке. Очень похоже на форт. Компактный, очень быстрый, очень интеллектуальный. Версия и Linux и Windows как в 32 так и в 64 разрядном варианте. Всё на флешке. Но самое главное – это библиотека окружения. Все модули взаимосвязаны, встроенная система документирования и самодиагностики. Почти идеал! Среди недостатков – отсутствие нормальной IDE, но по мне она особо и не нужна.
Теперь поддержка. Англоговорящее сообщество не очень большое, но очень активное. Всегда готовы подсказать. Плачут, что такой замечательный язык, а мало известен и мало используем (напоминает фортовцев), но! Постоянно и кропотливо улучшают, тестируют, и полируют как язык, так и библиотеку окружения. Они вообще не разделяют язык и библиотеку, для них это едино. Первоначальное название Марс (сам язык) + Фобос (спутник Марса, а именно библиотека окружения).
Как выяснилось, есть и программисты на D и в русском сообществе. Есть сайт, есть форум. Нет больших проектов, но это понятно. Что бы писать большой проект, нужна документация по языку, документация по библиотекам, просто литература, примеры и т.д. и т.п. А это появляется с запаздыванием, а то и не появляется вовсе. На мой взгляд, Форт упустил момент, когда это все надо было развить и оформить в качестве единого комплекса.
Касательно самого проекта. Делаю на собственной связке оформившейся в виде библиотеки QtE. Изначальная идея взята с Фортовской связки с Qt (вы наверное все в курсе ? ). На начальном этапе я двигал как фортовскую версию, так и D-шную параллельно. Но силы не безграничны, и постепенно фортовский вариант QtE далеко (очень далеко) остался позади. Если найдутся заинтересованные лица для подтягивания QtE версии для Форта, то я готов предоставить консультации.
Сейчас QtE – это более 3 тыс строк кода, 350 функций Qt и около 30 классов. Главное – это методика, как подключится к новому классу или к новой функции. В самой программе контроля экзаменов, около 2 тыс строк.
На мой взгляд, достигнут компромисс, между сложностью, качеством, скоростью и переносимостью в разработке данного проекта, да ещё за него и деньги платят.