Вот, вот, почти полный перечень того, как не нужно делать…
Читаем, как создавался пакет Octave прямо у них на сайте. Все началось с практических работ со студентами. Вместо того чтобы изучать основной предмет, студенты тратили большую часть времени на «борьбу» с математическими библиотеками. Так появилась идея сделать язык высокого уровня. И потребители тут же – студенты. Ну, и так далее. И никакого недоумения по поводу математических пакетов не возникает. Как уже раньше говорилось, нужно понять «что нужно людям».
Опять же читаем, что предоставил
сахар. Это тот самый пример плохо сформулированных требований. И это совершенно типично, и бить себя в грудь тут не стоит, и для понимания положения вещей есть собак не нужно, как и многих других действий. Не требуется ни то что обсуждения, даже упоминания не стоит. Это также естественно, как снег зимой.
Если сколь-нибудь внимательно прочесть «требования», то ясно, что графика второстепенна. И что есть определенные требования к языку, которые бы делали его практически полезным. Обратная сторона плохих требований – нежелание слушать, что в реальности нужно. Желание продавать не то «что нужно людям», а то «что лично знаю».
Если задача с геометрическим языком массовая, то самый лучший, самый экономически рациональный, самый качественный вариант – собрать пожелания/требования со всех и сделать одну программу на всех серьёзным коллективом. Это было нетрудно при СССР, а сейчас это практически невозможно. Самый худший вариант – каждый завод, КБ, институт пишет сам себе программу, библиотеки или еще чего там. Результат – ничто, или почти ничто – впустую потраченные силы. Это конечный уровень деградации и разложения.
Если бы
сахар вместо программирования написал ТЗ страниц на 100, да к нему еще 100 различных примеров с решениями и ответами, то худо-бедно можно было бы что-то сделать. Кандидаты, студенты все равно дурью маются. А он пустился программировать. Законы про уровень разделения труда и про уровень технологий действуют независимо от того, верит в них человек или нет. Все знать невозможно, и времени на все не хватит.
Как сейчас мне представляется, самый дешевый вариант для этой задачи, по силам даже одному человеку, – использование логического языка. Т.к. мы живем не США, то вариант вообще один – это PROLOG. И компилятор ему не нужен, и под формальные выводы заточен, и графика есть:
http://www.eclipseclp.org/Студентам и аспирантам будет просто счастье для развлечения.
В общем, мессадж в том, что основная проблема – люди себя неправильно «позиционируют», неправильно представляют свои роли в разделении труда. Как вы понимаете, я не личную точку зрения высказываю и не описываю личный опыт. Может быть, несколько коряво рассказал то, что знаю наверняка. А по способностям, наверное, участники форума не сильно отличаются друг от друга…