Есть проблема, если вы мне посоветуете более элегантное решение - буду очень вам благодарен.
Пролог
Планируется начать разработку большого проекта обработки астрономических данных. Дело в том, что разработку должны вести большое кол-во человек, причём в из поколения в поколение ( студенты ).
Для того, чтоб не доводить код программы до такого состояния, которое вредно давать студенту читать, нельзя допускать первые курсы к основному коду.
Специфика задачи такова, что не сложно разделить обработку данных на большое количество взаимо не зависимых ( или слабо зависимых) блоков (та или иная функция, обработки статистического набора дынных ).
Я решил, что будет замечательно написать каркас программы с возможностью подключения динамических библиотек, в которых, непосредственно, будет реализован функционал.
Несколько особо одарённых студентов напишут основной модуль ( каркас ), а дальше из поколения в поколение, студентам по желанию будет выдаваться задача - написать расчётный модуль определённого функционала к программе.
А теперь о грустном.
Есть несколько человек, включая меня, способных вместе написать основную часть на. Из общей любви и взаимного понимания было выбрано С++\Qt. Но к сожалению университет не даёт адекватного знания С++, если точнее, студенты просто боятся этого слова. В основном все кодят на паскале (Delphi).
Но есть и процентов 10 на поток человек, которые , с точностью да наоборот - брезгуют Паскалем( к коим я и отношусь) и их ни в коем случае нельзя терять.
Суть
Нужно написать программу на C++( желательно Qt ) с возможностью подключения дополнительного функционала в виде модулей (динамических библиотек ).
- Самое главное - Программа должна быть кроссплатформенна
- Должна иметься возможность написания модулей на разных языках (необходимый и достаточный минимум - С++, Pascal).
- Нельзя использовать технологию COM, так как писать модули будут совсем зеленые ребята.
- Программа должны быть в стиле «батарейки в комплекте» (то есть - исполняемый файл, каталог с модулями ).
- Один из самых неприятных моментов - из динамических библиотек должны иметься возможность создания окна для ввода дополнительных данных.
У кого есть какие соображения? буду очень благодарен различным вариантам.