Надеюсь, этот вопрос не так широк, как может показаться на первый взгляд. Я занимаюсь разработкой программного приложения в свое <sarcasm>
объемное </sarcasm>
свободное время. Я бы хотел, чтобы он был кроссплатформенным и модульным. На данный момент, поскольку я все еще на этапе планирования, я могу выбрать практически любой язык и набор инструментов.
Это усложняет, а не облегчает, потому что, по-видимому, существует множество способов достижения обеих целей (модульность, агностицизм платформы).
Моя основная предпосылка заключается в том, что безопасность, хранение данных, взаимодействие с операционной системой и конфигурация должны обрабатываться приложением-контейнером, но большая часть других функций будет предоставляться через подключаемые модули. Если бы мне пришлось описать это на высоком уровне (без полного отказа от моей идеи), это было бы одно приложение, которое может выполнять много разных работ, все посвященные одной и той же цели (есть много разнородных вещей, но все данные должны взаимодействовать и быть высокодоступными).
Это не новая идея и не особо экзотическая. Тем не менее, я сталкиваюсь не столько с тем, как это сделать (я могу придумать много способов), но с тем, какой метод лучше.
Например, я знаю, что Eclipse практически воплощает то, что я описываю, но я нахожу Java-приложения в целом (и Eclipse не исключение) слишком большими и медленными для того, что мне нужно. Ditto настольные приложения написаны на Python и Ruby (это отличные языки!)
Я не против перекомпилировать кодовую базу для разных платформ как нативные. Тем не менее, C и C ++ имеют свои собственные проблемы.
Как разработчик C #, я предпочитаю управляемый код. Но пока что я не продан на Mono (я могу быть уверен).
У кого-нибудь есть какие-нибудь идеи / опыт / конкретные любимые фреймворки, которыми можно поделиться?