Стабильность и поддержка имеется ввиду для бизнеса. То есть, будет ли несложно найти команду разработчиков, есть ли готовые решения, чтобы эти разработчики не писали каждый чих с нуля, и так далее.
Оуу, многовато :)
Ну пока можно оставьте как есть, как будет нехватать места, можно будет думать, чтобы откуда-то еще подгружать бинарники.
А вообще, почему, собственно, по 2 мегабайта? Неужели не получается тонкую прослойку организовать просто?
Ну мне сдается, это еще сложнее будет.
Я бы, перфекционизма ради, инкапсулировал платформо- и версио-зависимые штуки в отдельные легковесные бинарники. Но это, конечно, сработает, только если они будут действительно легковесные.
Я написал ПО, но понятно, что это не только с ПО работает. Первая заповедь сисадмина: работает — не трогай. Она же и основной критерий пути развития бизнеса :)
Да, конечно, только когда готовы матрицы, хочется реализовать общие операции с тензорами, потом даже если готово и это — всякую дискретву, типа логики, булевых функций и прочее, а заодно и конечные автоматы, регэкспы и обработку строк, потом анализ — пределы, производные, интегралы и алгебру: преобразования полиномов, etc. И для всего нужны разные обьекты. Ну, идея понятна :)
И кстати, если не хочется общего решения, то это уже не «символьные вычисления», потому как символьные вычисления по определению являются преобразованием выражений, состоящих из символов.
Все-таки получается у вас это библиотека для продвинутого калькулятора, а не обработки символьных данных.
Ах, да, идея неудачная — это я не из воздуха говорю, это по собственному опыту. Писал я в бытность мою первокурсником такую штуку. После того, как оно стало поддерживать гдето полторы сотни функций стало совсем невозможно ориентироваться в коде, хотя нельзя не учитывать тот факт, что говнокодером я тогда знатным был :)
Ну я вообще сам интересуюсь символьными вычислениями, но джавы не знаю.
А вообще, на мой взгляд идея у вас неудачная. Если вы сделаете хранение и представление некоторого числа обьектов (а это парсинг, рендеринг, хранение и алгоритмы), то в какой-то момент с ростом числа видов обьектов станет сложным добавление новых видов. Нельзя задаваться целью работы с конкретными обьектами и при этом надеяться на корректность такого общего названия «символьные вычисления».
Используется как дополнительный скриптовый, откуда стандартная библиотека расширяется хост-языком естественным образом и поэтому это обычно не проблема.
Да, забыл конкретный пример. Вот хотите вы реализовать поиск данных по ключу. У вас много вариантов, какую структуру данный сделать — можно массив пар, можно список пар, можно дерево поиска. И вы хотите не просто искать, а искать максимально быстро, но не знаете на ваших данных какая структура лучше.
И вы пишете их все — дабы выбрать лучшую. А потом все пробуете. И вот, чтобы каждый раз не менять во всех заголовках функций тип аргумента вы просто делаете интерфейс, обьявляющий метод V*Find(K*key), реализуете этот метод во всех структурах и пишете во всех заголовках функций, принимающих структуру поиска не саму структуру, а интерфейс, избавляя себя от работы каждый раз править название типов аргументов.
Дополнительный бонус — если через неделю ваш друг обьявит вас велосипедистом и расскажет вам о самой лучшей структуре, то вы спокойно реализуете ее, реализуете в ней интерфейс и не изменяете существующий код.