Вот если внимательно прочитать первый пост.
заказали систему корпоративной обработки документов, очень обширную.
Ожидаемая горизонтальная оценка - до 700-800 классов
По вертикали - минимум 5 слоев обработки, от уровня базы до формирования виртуальных документов на уровне клиента.
Стеклянного шара у меня нет, но пользуясь своим опытом могу предположить:
1) Таблиц базы данных от 60 до 100
2) Сложная бизнес-логика
3) Множество ролей пользователей
4) групповой разделяемый доступ к информации
5) множество входных и выходных бумажных документов.
Давайте попробуем прикинуть во что выльется разработка на лазарусе (паскаль) и, допустим, нетбинс (джава).
1) Есть ли в лазарусе UML? Какой инструмент поможет вам в лазарусе описать структуру потоков данных и взаимодействие событий, взаимодействие ролей, пользователей? Ничего нет. На бумажке рисовать будете? И сколько таких бумажек наплодите? А если вспомнить что такая структура живет и изменяется во время всего жизненного цикла системы, то получается что это никак не решить. А вот для JAVA подобных систем если сказать полно, ничего не сказать.
2) Разработка структуры базы данных. Опять упираемся в UML. Ручками SQL формирования базы рисуем, или в PAdmin, или еще что? Подобные системы вовсе не для этого. В UML рисуются такие вещи. SQL генерится одним нажатем пипки.
Для лазаруса этого нет, для джавы навалом.
3) Проблема хранения persistent модели данных. В лазарусе некоторые зачатки этой системы есть, но они весьма глючные и ограниченные по своим возможностям. Сохранность данных при падении программы они нифига не обеспечивают. Если своего ПРАВИЛЬНОГО не написать, то придется смириться что система будет неустойчивая и ненадежная. В JAVA эти вопросы давно решены. Есть J2EE, масса фреймворков. Как говорится - с плеча, с бедра, с колена...
4) Бизнес-логика. К сожалению, система GUI типа Delphi, Lazarus не позволяет отделить суп от мух. Все жестко взаимосвязана с обработкой событий от мышководов и событий масштаба логики прохождения документов. Отодрать их друг от друга невозможно. Это еще один трабл который надо будет как-то решать в лазарусе. В J2EE это решено давным давно. Реализовано куча классов интерфейсов... Бери программист пользуйся и будь уверен - вылизано все давно и качествено.
5) Разделение доступа к данным. Ивините меня может я отстал от жизни, но ни в дельфи ни в лазарусе в компонентах работы с базой данных и намека раньше не было на это. Все заточено было на единоличное пользование всеми ресурсвми базы. Ну накрайняк можно было получить информацию что таблица кем-то монопольно захвачена. Это напоминает ковыряние в часовом механизме шуруповертом. Для группового доступа к данным вообще не подходит. В J2EE это решено на уровне Sessin Bean. Разделение по ролям пользователей решено плодь до доступа к полю, не говоря уже о таблице.
6) Теперь о выходных документах. Инструментов для формирования различных документов в лазарусе просто нет. LazReport просто несерьезно. Ну да, можно сделать отчет по выборке из БД, но в подобных системах это 10% от всего требуемого. Потом встает вопрос передачи выходных документов в другие системы обработки информации. В тот же офис. Тоже непомерная дыра. То что есть, даже не смешно. В JAVA опять же с плеча с бедра с колена.
Это я еще не говорю о мощности IDE для JAVA. Эти системы специально заточены для решения подобных задач и почти половина кода генерируется просто нажатием той или иной педали. Потом система JUnit. Зачатки ее в лазарусе есть, но все надо делать лапами. В NetBeans Eclipcse IDE генерятся нажатием педали.
Я вовсе не хочу сказать что на лазарусе нелязя реализовать заданную в первом посте задачу. Можно. Только трудоемкость будет, я вас уверяю, на порядок больше чем та же реализация на JAVA. И глючная система будет!!!!! Почти все нужно писать с нуля и отлаживать крайне сложно. Про сопровождение даже не говорю. Сколько раз было что приходилось вносить изменения и в структуру БД когда система уже три года работает, и самое неприятное в бизнес-логику. Директор экономя средства упраздняет отдел, и их функции распыляет по другим подразделениям. Вот жопа так жопа. Бери мочало начинай сначала. В JAVA если все правильно сделано в соответствии с EJB, проблема решаема малой кровью. В лазарусе переписывать пол проекта придется.