Описание проекта
В мире существует несколько тысяч языков программирования, а новые языки
продолжают появляться. Нет оснований полагать, что в конечном счете будет создан один
универсальный язык программирования. Понимание идеи многоязычных проектов, подобных
нашему, позволит не только сориентироваться в этом разнообразии, но и увидеть очевидную
выгоду для всех.
В современных условиях язык без возможности интеграции с существующими
библиотеками не имеет будущего. Действительно, никто не будет писать с нуля на новом
языке алгоритмы, которые уже написаны на других языках и проверены временем.
Проекты с использованием нескольких языков открывают новые возможности
проектирования программных систем. В таких системах под разные задачи для разных частей
выбирается тот язык, средствами которого достигается лучший результат. Синергетический
эффект такого подхода достигается за счет использования преимуществ языка в тех частях,
для которых выбранный язык будет наиболее эффективным и компенсации недостатков в тех,
где лучше всего использовать другой язык.
Занимаясь проблемой вычисления количества всевозможных замощений плитками 1*2
прямоугольник m*n, возникающей в химии, физике и дискретной математике, нам
потребовалось представить решение в виде рекуррентной формулы. А для этого – создать
проект на C#, где необходимо решить систему из 1024 лин.алг. уравнений. Нам удалось в
проекте C# обратиться к Wolfram Mathematica, которая из современных систем к.м.
наилучшим образом справляется с такими задачами (в частности, благодаря достигнутому
качеству распараллеливания). При этом вся работа по созданию коэффициентов выполняется
средствами C#. Отсюда и возникла идея подготовить проект с подробным руководством по
использованию в одной программе 5 языков программирования.
Прогнозы по рынку – занятие неблагодарное, т.к. результаты не всегда зависят от
качества продукта. Но приблизительно 90% опрошенных программистов положительно
отозвались о коммерческой перспективе нашего продукта (правда, посоветовали не слишком
обольщаться).