Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 17 июн 2025, 21:37

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 11 апр 2012, 19:48 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Автор: Илья Евгеньевич Ермаков, 2006.
Цитата:
Ну, я, конечно, лицо заинтересованное, но все-таки постараюсь быть объективным :)

Мой опыт работы на Дельфи - более 5 лет. Параллельно полтора года - С++. По поводу второго ничего говорить не буду, а то опять holly war начнется :)... А по поводу Дельфи - КП как язык, по синтаксису, концепциям, безусловно, совершеннее и современнее. Язык Дельфи (начиная с Дельфи-7 Объектный Паскаль официально переименован в Дельфи) - это старая ветка Паскаль - Turbo Pascal - Object Pascal - и она волочит за собой соответствующую наследственность. Возможно, большая ошибка Борланд в том, что в своё время они решили развивать не уже существовавшую Модула-2, а старый Паскаль, по сути, заимствуя и во-многом ухудшая концепции из Модулы и Оберона. Что бы не говорили, ООП в Дельфи реализован не слишком удачно - объекты могут быть только динамическими, даже для малого временного объекта в процедуре необходимо прописывать := TMyObject.Create, а в конце не забывать вызывать Destroy. Из-за несогласованности этого процесса (новички, по крайней мере) постоянно наступают на грабли утечки памяти либо "access violation" по нулевому указателю. То, что в КП приличная часть данных (ОО-данных) обрабатывается статически, серьёзно влияет на быстродействие (особенно это заметно в сравнении с той же Java, в которой всё построено на динамике. Там очень сильно растёт нагрузка на сборщик мусора) - например, в BlackBox весь механизм сообщения работает со статическими объектами. Лично мне очень нравится то, что не введено специально понятие Class, а используется обычный RECORD. Множество мелочей навроде более удобного написания операторов:
IF ... THEN
ELSE
END
вместо
if then
begin
end
else
begin
end - насколько легче, а?

Язык полностью совместим с Java. Существует несколько реализаций трансляторов с КП в Java-код. Сама Oberon Microsystems разработала на BlackBox'e операционку реального времени JBed - для встроенных систем, в частности. Так там вообще модули на КП и Яве работают вместе, разделяя общую память и сборщик мусора. Компилятор для Borland JBuilder также делала Oberon Microsystems по заказу Borland на Компонентном Паскале.

Наконец, сам язык очень стройный и красивый, нет никаких излишеств, но есть всё, что нужно.

А если говорить о среде выполнения - то динамическая модульность и сборка мусора очень весомые аргументы в сравнении с Win32-Delphi. А Delphi .NET - это уже отдельная история...

И, наконец, последнее: Borland продаёт все свои разработки IDE. Если раньше речь шла только о "кризисе Дельфи", то сейчас можно говорить о том, что на ней поставлен крест.
BlackBox же продолжает развиваться самой компанией, и доступен в исходных кодах, поэтому ближайшие годы за его судьбу можно не опасаться. Если же понадобиться работать под .NET или JVM - то есть пакет GPCP.

Так что, размышляйте, сравнивайте, решайте.

На моей практике программы в ББ получаются значительно более надёжными, а ошибки обнаруживаются гораздо быстрее (несмотря на отсутствие привычного многим пошагового отладчика). Кстати, встроенный профилировщик в ББ есть, поэтому оптимизировать также легче.
Источник: http://forum.oberoncore.ru/viewtopic.ph ... =119#p1368


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 12 апр 2012, 11:34 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Автор: Игорь Владимирович Лоскутов, 2009.
Цитата:
В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовских же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП :!:
В своё время, помню, накувыркался в Delphi с одним проектом. Как раз из-за этого, там мне нужно было использовать группу тесно взаимодействующих классов. Я тогда никак не мог понять, почему использовать ООП так неудобно, все же используют, ещё и хвалят. Теперь давно уже в голове всё встало на свои места. Пожалуй, ничто уже не заставит меня перейти обратно на Delphi ;) Хотя дело, конечно, не в инструментальных средствах, а в голове. Можно работать и в Delphi, только зачем себя насиловать, если есть средства получше.
Источник: http://forum.oberoncore.ru/viewtopic.ph ... 708#p31826


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 14 мар 2013, 22:04 
Не в сети

Сообщения: 76
До кучи и полноценный обероновский квалифицированный импорт и лаконичный экспорт против делфового неквалифицированного монолитного включения юнитов, это избавление от коллизий имён сущностей + динамичная модульность горадо более функциональная чем виндовые .dll


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club