Роман М. писал(а):
Нет, я не про локализацию, а про другие языки программирования.
Вы говорили про банальный перевод на другие языки. Такое возможно только между диалектами. В общем случае это далеко не банально. Взять, хотя бы, в качестве целевого языка LISP.
В Обероне был сделан упор на то, чтобы при программировании не отвлекалось внимание на посторонние вещи. В программе (и в Вашей в том числе) первостепенное значение имеет алгорим, и пока он не работает, платформа значения не имеет. Каким образом в Обероне пытаются избавиться от распыления внимания? Вот некоторые механизмы:
1. сильно разнесённые вещи располагают в разных модулях. Для правильного использования этого механизма уже требуется хорошая дисциплина у программиста. В противном случае, эффект может быть даже отрицательным.
2. уменьшение числа конструкций с синонимичной семантикой. Оставляются только те конструкции, которые настолько мощные, чтобы решать задачи вместо исключённых конструкций. Здесь дисциплина значения уже не имеет: программисту не оставляют шанса выбрать неправильно. Вот на этом этапе, по-видимому, директивы и ушли (они почти без потери производительности реализуются другими средствами). Вот здесь и появляется сложность при портировании.
(в сторону) Хотя, у Вирта директив вроде и не было никогда. Эти рычажочки придумала другая голова, не светлая, а засиженая тараканами.
3. Сильная типизация. Впрочем, у fp она почти такая же.
4. ещё кое-что, что в данном случае будет оффтопом.
Подытоживая, можно сказать, что лёгкий переход вряд ли представляется возможным.
С другой стороны, у Вас же была причина обратиться к Оберонам? Не думаю, что человек, пишущий кроссплатформенные приложения верит в сказку о том, как новый язык программирования решит за него всю задачу. Также маловероятно, что Вы просто хотите кого-нибудь занять делом. Значит, Вас привлекло что-то, что для вас полезно. Основные плюсы Оберона в том, что они, незначительные в начале, со временем жизни проекта растут и преобретают довольно значительные размеры. Я не знаю Вашего проекта и не знаю, планируют ли у Вас кормиться на нём долгое время, поэтому посоветовать менять архитектуру тоже не могу.
Но зато есть другая идея. Нет необходимости менять сразу и архитектуру, и язык. Если есть важная причина перейти на Оберон, то Вы к нему присмотритесь, найдите такие места в своём коде, перенести которые - не тривиальная задача, не спеша и безболезненно для проекта смените их форму на более удобную для портирования. Это может тянуться месяцами без вреда для нервов. А потом уже можно будет сменить и язык.