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

Твердыня модульных языков
Текущее время: 08 май 2024, 00:33

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




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

Сообщения: 1019
Откуда: Днепропетровская обл.
В чём преимущества ZXDev вместо обычного SDCC (пусть даже вызываемого из Сode::Blocks) для начинающих или даже опытных программистов, которые, в упор не видя достоинств Оберон-уровня, приемлют для Z80-разработки только Си и асм?

    Во-первых, SDCC это просто компилятор для Z80. Сode::Blocks это просто редактор, традиционная интегрированная среда разработки (IDE). ZXDev же — это нечто большее, чем просто компилятор и редактор. Это набор библиотек под целевые платформы (и повод присоединиться к их разработке), Оберон-парадигма, цель которой показать достоинства простых языков программирования перед сложными, утилиты и, наконец, расширяемая система BlackBox, которая отлично подходит в качестве хост-ядра среды кроссплатформенной разработки. И которую доработать в необходимом направлении гораздо проще, чем Сode::Blocks.

    Во-вторых, это русскоязычный форум поддержки проекта, сайт и Оберон-клуб — сообщество хоть пока и маленькое, но потенциально мощное.

    В-третьих, мало кто помогает сейчас развивать SDCC (и искать баги). Новички могут дать толчок этому направлению, создать тусовку, так сказать. Научиться и увидеть на практике как делать SDCC лучше (а не просто сидеть и нудить на форумах какой SDCC глючной). Проект ZXDev показывает компонентную архитектуру в действии — как использовать готовые строительные блоки для эффективного конструирования программного обеспечения.

    В четвёртых, в ZXDev утилиты собраны уже воедино. Не надо искать по инету hex2bin, bin2trd и прочее (это для новичков дополнительный барьер, который снижает порог вхождения).

По замыслу трёхуровневая среда разработки ZXDev (Оберон-2, Си, ассемблер) прекрасно подходит для личностного роста начинающего Спектрум-программиста. Оберон — отличный старт в программирование для новичков, т.к. он сильно проще Си и на начальном уровне освоения несколько напоминает ZX-Basic. Сложность ассемблерного уровня скрыта от начинающих за интерфейсами библиотек. Далее по мере освоения среды программист будет заглядывать в сгенерированные Си и асм-файлы, постепенно кумекая что к чему и повышая понимание того, во что превращается его BORDER(0) в итоге.

В то же время, реализованный в Ofront’е стандарт Оберона-2 в данный момент не может полностью заместить собой все низкоуровневые возможности Си (ибо не настолько низкоуровневый) и вытеснить его, т.к. для этого он не вполне готов. Вот как раз выяснить на практике те возможности, которые действительно необходимо добавить (причём, скорее всего, не в язык, а в модуль SYSTEM), — это одна из целей проекта ZXDev.

Ещё сильное желание — обрести междуплатформенную единую парадигму, т.к. несмотря на различия в компьютерх, в них есть всё-таки много общих моментов. И это надо использовать не для распыления и изобретения всё новых и новых велосипедов, костылей и подпорок, и потом подпорок к костылям, и костылей к подпоркам. Пора вычищать хлам из голов, господа старослужащие. А не стараться и новичкам вдолбить этот хлам. Вы вдумайтесь, почему Си не применяют там, где нужна особая надёжность? А я смею предполагать, что она не помешает везде. Уж что поделать, так сложилось, что вследствие архитектуры языка Оберон-программы менее подвержены "загадочным" багам, к которым мы привычны ещё со времён MS-DOS'а и TurboPascal/TurboC.

Поэтому мы на практике выясним каких средств не хватает в Обероне-2, чтобы заменить Си собою целиком. Я не рассматриваю Оберон как повод лучше узнать Си, хотя безусловно он может помочь и в этом. Тем более странно слышать рассуждения, что надо учить сразу Си, т.к. Оберон не пригодится. Тогда учащихся плавать надо сразу с самолёта закидывать в бухту глубиной 100 метров, кишащую акулами? Всё-таки основное, что нужно программисту, это фундаментальное понимание. Оберон помогает понять современные парадигмы программирования (структурное, модульное, объектно-ориентированное, кроссплатформенное, компонентное и т.д.) без учёта специфических особенностей платформ (которые могут лет через 5 устареть) и каких-либо коммерческих (сиюминутных) тенденций. Си же — это специфический синтаксис, вызванный спешкой, отчасти проистекающей из желания экономить время на наборе программы. Но проблема даже не столько в оформлении исходников — потом эта неаккуратность и небрежность, поощряемая синтаксисом, перетекает в небрежность при проектировании (как следствие — плохая продуманность в идеологии п/о и труднонаходимые ошибки), это отсутствие модульности, это пошаговые отладчики и прочие прелести. Си — отличный инструмент тридцатилетней давности, который давно пора пересмотреть.

Guenter Dotzel. Oberon - A Rightsized Programming Language
Aubrey McIntosh. Who is using the Oberon System? (The ModulaTor, nr. 82)


Вложения:
Комментарий к файлу: А вы часто наблюдали подобное оконце? Мировой лидер IT-технологий, пользующийся безграничным доверием миллионов пользователей! Проблема не в ошибках, а в их количестве. Инструментарий должен помогать выявить ошибки, а не замусолить и скрыть их за хитроумным синтаксисом.
cpp.png
cpp.png [ 7.77 КБ | Просмотров: 11341 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 16 сен 2012, 18:01 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Александр Ильин писал(а):
ScrollLock писал(а):
Сомневаюсь, чтобы их разработчики были глупее разработчиков Oberon и BlackBox.

При чём здесь "глупее" или "не глупее"? Даже самый большой ум можно потратить, работая в неправильном направлении. Например, сделали мало понимающие в софте люди процессор с аппаратной возможностью отладки, а потом других людей начальство заставило эту возможность поддерживать и писать соответствующие API. Очень часто одна ошибка ведёт ко второй и далее к третьей, а тому, кто волею судьбы уже идёт по этой колее, приходится платить по чужим счетам, каким бы умным или глупым он ни был. Всё, что ему остаётся, - это не совершать новых ошибок.
Разработчики Oberon и BlackBox шли своей дорогой, у них не было наследия чужих ошибок. При чём здесь "умнее" или "глупее"?
Источник: http://forum.oberoncore.ru/viewtopic.ph ... 436&#p8436

Никлаус Вирт. Хорошие идеи — взгляд из Зазеркалья


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

Сообщения: 1019
Откуда: Днепропетровская обл.
Вы не задумывались почему в наше время люди ещё интересуются такими устаревшими платформами как ZX Spectrum или MSX? (о чём может свидетельствовать активность на форумах, посвящённых этим платформам). Оказывается, человек испытывает эмоциональную привязку, тёплое домашнее чувство, ауру детства. И эту особенность цинично пытается использовать индустрия. MS проталкивает в школы свой VisualBasic, начинающие программисты волею судьбы и накатанной дорожки не имеют никакой возможности выбрать что-либо иное, чем Java/.NET, а старые приверженцы C/C++ относятся к своему предпочтению не менее догматично, чем религиозные фанатики. Распространять на такой почве Оберон-парадигму — практически безнадежная затея, и этим мало кто занимается и интересуется, к сожалению.
Цитата:
Было обнаружено, что плотность ошибок в больших программных текстах на языке Си при прочих равных (квалификация разработчиков, объем и сложность ПО, время разработки и т.п.) в 16 раз превышает плотность ошибок в программах на наиболее совершенном потомке Паскаля Обероне. Грамотным специалистам очевидно, что с точки зрения обучения программированию Си еще опаснее, чем Бейсик:

«Обучение программированию с помощью Си эквивалентно развращению малолетних.»
— А.А.Берс, ведущий научный сотрудник Института систем информатики им. Ершова СО РАН (высказывание сделано — и не встретило возражений — на круглом столе ведущих преподавателей информатики новосибирских университетов и школ во время визита Н.Вирта в ИСИ СО РАН 3 октября 2005 г.).

Тем не менее именно те свойства языка Си, которые делают его использование источником «дыр» в больших программах, привели к его популярности среди незрелых «партизан» от программирования, рассматривающих его как игру, соревнование, арену демонстрации собственного «интеллекта». Важно понимать, что подобные явления не являются специфичными для программирования: в филологии и детской психологии хорошо известно аналогичное явление детского фольклора (страшилки и т.п.), демонстрирующее устойчивость на протяжении многих десятилетий. Таким образом, можно говорить о стихийном распространении своебразной мифологии вокруг языка Си и его производных, коренящейся в естественном недостатке знаний и опыта, а также в особенностях психологии юных программеров — желания самоутвердиться среди сверстников («настоящие программеры пишут на Си») и т.д.

Возникновение монструозно сложного языка С++, сочиненного путем «тупого» добавления к Си без исправления его многочисленных дефектов модных конструкций объектно-ориентированного программирования (о недостатках С++ написаны целые трактаты), только усугубило ситуацию: ведь молодежь (да и не только она) по наивности путает сложность и мощь языка, об ошибочности чего постоянно говорит Н.Вирт.

Стихийное распространение в среде юных «партизан» от программирования порочной мифологии, возникшей вокруг языков С/С++, имеет резоны в примитивных архетипах подростковой психологии.

К этому стихийному явлению нельзя относиться пренебрежительно по следующим причинам.

Во-первых, на примере программистов, учившихся на фортране еще в 1960-х гг., мы видим, как долго и упорно сохраняются в зрелом возрасте эмоциональные предпочтения и привычки программистского мышления, зафиксировавшиеся в юности (это явление отражено в старом анекдоте: «Пожилому программисту требуется домработница, говорящая на фортране»). Обучать современным эффективным методам программистов с уже сложившимися привычками почти невозможно, и такие программисты постоянно тащат в серьезные проекты эти негодные инструменты.

Во-вторых, масса фанатов Си/С++ создает стадный эффект: с одной стороны, на него ориентируются коммерческие издательства (которые, как показывает опыт, функционируют как мощный усилитель любого мракобесия, если только находится достаточно покупателей; напомним, что изначально потребность знать Си была создана распространением операционной системы юникс, а теперь и линукс). С другой стороны, новички-самоучки (коих множество) не имеют другого ориентира, кроме правила «иди за толпой». Наконец, менеджеры под давлением сиюминутных обстоятельств вынуждены ориентироваться на предложение рынка рабочей силы. Возникает порочный замкнутый круг, который разрывается только в относительно специфических классах приложений (встроенные системы управления и т.п.), где в игру вступает неумолимая объективная реальность, разрушающая мифологию.

В-третьих (и это самое главное), продолжающий расти массив программ, написанных на С/С++, есть постоянный источник проблем — от потерь времени пользователей (современные версии MS Word продолжают регулярно «падать», как и 15 лет назад, хотя и научились лучше сохранять работу), до «дыр» безопасности, связанных с дефектами программ (переполнение буфера, утечки памяти и др.). Дефекты, порожденные использованием таких опасных языков программирования, как Си/С++, очень трудно устранять. Процитируем сайт проекта Информатика-21:

«... В августе 2001 г. вице-президент Майкрософт Джим Олчин (Jim Allchin) объявил во время доклада на открытии конференции Intel Developers Forum в Сан Хосе, что в новой операционной системе Windows XP все возможные проблемы из разряда переполнение буфера были устранены посредством специального анализа исходных текстов на предмет безопасности (security audit). Но в декабре того же года была найдена «дыра» в одной из программ в составе Windows XP (в программах поддержки стандарта подключения внешних устройств Universal Plug and Play), причем, дыра оказалась именно из категории «переполнение буфера». ...»

Вообще вся ситуация здесь выглядит совершеннейшим абсурдом: то, чего можно без труда добиться просто выбором качественного и простого языка программирования, решается ... невообразимо сложным и дорогостоящим способом, а главной причиной, в конечном счете, оказывается умственная инерция программистов, в начале карьеры подвергшихся «заражению холерой Си». Отсюда понятно, почему серьезные специалисты употребляют такие сильные выражения как «развращение малолетних», «интеллектуальная зараза» и т.п., говоря о языках Си/С++.

Разумеется, проблемы Си/С++ ощущаются и в индустрии (не все же там, в конце концов, «партизаны» от программирования или ... менеджеры), даже несмотря на то, что конкуренция здесь ослаблена из-за быстрого расширения сферы ИТ. Именно поэтому возник язык Java, представляющий из себя попытку сделать то, что не сумели сделать авторы C++, а именно, не просто бездумно добавить на предательски ненадежную основу Си все возможные новомодные средства, но и сделать какой-то осмысленный отбор, а также перепроектировать фундамент языка, исключив коварные ловушки, которыми знаменит Си. При этом сильнейшее влияние оказал виртовский Оберон (компилятор которого, по сообщению Вирта, команда создателей Java изучила в исходниках, дав ему высокую оценку, за несколько лет до выпуска Java) — строгая типизация, автоматическое управление памятью, отказ от множественного наследования — фактически, это отказ от главного культового свойства Си, делающего его столь опасным («полная свобода программисту, включая свободу делать любые ошибки»). Разумеется, чтобы убедить фанатов Си согласиться с таким отказом, нужен был сильный способ отвлечь их внимание, и средством для этого оказались анти-майкрософтовские сантименты, широко распространенные в мире ИТ. Дорогостоящая маркетинговая кампания, в значительной степени построенная на эксплуатации этой обманки, имела успех.
Источник: Ф.В.Ткачёв. Система образования как фактор национального суверенитета в сфере информационных технологий


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

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


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

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


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

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