На обероне в основном идут исследовательские проекты. То есть миру он примерно затем же зачем и Haskell. Оберон каждый год новый. См. Active Oberon & A2.
Нет, не запутался. Если человек не научится работать с типами сразу, то есть четко понимать что такое тип и зачем он нужен. Понимать зачем типы проверять до запуска приложения, то потом это привить будет очень сложно, и такое банальным кодинг-стайлом не лечится.
Ой, давай не будем сейчас тут очередной флейм на тему динамическая VS статическая типизация устраивать. А то ведь всё как раз к тому идет, ибо я считаю что питон не годится для начального обучения именно в силу динамической типизации.
И да, я обучал таких людей которые не могли сами цикл написать (да и не особо программированием интересовались). И вот с чем-чем, а с типами проблем не было (и да, я не на Обероне учил). Там были смешнее проблемы — народ по привычке текст программы воспринимал как нечто декларативное (видимо по аналогии с математикой), и никак не мог понять, что вот до этой строчки комп еще не дошел, и про нее пока не знает и ничего не исполнял что там написано. Как ни странно, тут очень сильно помог пошаговый отладчик (столь упоенно чмыримый апологетами Оберона), который позволил наглядно показать как же оно на самом деле там работает.
Ну, народ бросается в какие-то конторы прямо во время универа. И это правильно.
Основам именно что алгоритмики можно вполне и на Обероне. Вот правда-правда можно. Там ничего лишнего (угу, те самые 16 страниц описания языка) и всего хватает для таких задач. Не даром же его в Оксфорде в качестве одного из первых изучаемых ЯП преподают.
Потом на Обероне (как уже на подопытном ЯП) же отлично отрабатывать теорию и практику компиляторостроения и методов трансляции. Ну и по ОС тоже Оберон может пригодиться, у Вирта аж целая книжка по ОС Оберон написана. Подробно, компактно и ясно. То есть в плане обучалова Оберон штука в принципе годная, если с умом подходить. Ну и для некоторых научных изысканий тоже штука годная (в качестве объекта изучения).
Другое дело, что не стоит Оберон тащить во все промышленные задачи, как некоторые ярые пропагандисты делают. У простоты есть своя цена в конце концов, как, впрочем, и у сложности.
Но это опять таки, вторично. Ибо просто синтаксис. Это скучно. И это банально лечится единым coding style на контору.
А вот семантические заморочки, проблемы с типизацией — вот они лечатся туго. Так что нет, никаких питонов в начальном обучении. Впрочем, на счет Оберона тоже сомнения у меня некоторые имеются.
Этот BB CB он сам себе среда и операционка. Расширяется легко и непринужденно. Собственно в том скриншоте модуль — это уже модуль самой среды по сути. Там нет четкой границы между средой разработки и программы разрабатываемой. Соответственно и инструментарий народ себе потихоньку делает. Diff там по крайней мере есть.
(но опять таки — не нужно это все переносить на язык Оберон — он бывает и в виде традиционных компиляторов с обычными текстовыми исходниками)
С git'ом народ выкручивается (если видит смысл выкручиваться) по разному. Например кто-то экспортирует исходники в обычные текстовые файлы.
Понятно что этот самый BB CB не есть серебряная пуля для всего на свете. На ряд решаемых задач такой подход ложится очень хорошо, и те преимущества которые оно дает перевешивает те недостатки которые оно же и привносит. На других же задачах в точности наоборот — недостатки играют сильнее чем достоинства.
Оберонов их как собак не резанныхмного. Ты про какой именно читал? В Компонентном Паскале например вполне есть абстрактные RECORD'ы. Но вот множественного наследования интерфейсов там действительно нет. На эту тему на одном из форумов было многостраничное обсуждение: forum.oberoncore.ru/viewtopic.php?f=29&t=3640
Ну, а например в Zonnon'e с интерфейсами вообще все отлично — есть искаропки.
Оригинальный же Оберон и Оберон-07… Ну, собственно там даже в общем то нет функций связанных с типом. То есть, банально методов как таковых. Наприсать obj.foo() нельзя. Там все это несколько иначе делается.
Сейчас бегло глянул что это за XDev такой — насколько я понимаю, XDev это BlackBox CB с какими-то накрученными сверху модулями для сборки через ofront чего-то там под Z80.
Так вот, BlackBox Component Builder оперирует не просто исходными текстами, а так называемыми составными документами. То есть в одном таком документе может быть и исходник (причем расцвеченный во все цвета радуги программистом) и дока к нему с картинками, и что-нибудь интерактивное. Это позволяет изобразить нечто наподобие literate programming'a.
Выглядит это примерно так.
Обрати внимание — тут в коде имя процедуры Do выделено жирным шрифтом — это выделил так программист, это не автоподсветка. Восклицательный знак в черном круге — это иконка клик на которую запустит процедуру Do модуля ObxHello1 (то есть ObxHello1.Do запустит). На а текст вокруг — эдакий мегакоммент-дока для данного модуля.
В результате имеем составной интерактивный документ.
Плюсы у такого подхода очевидны, очевидны и минусы же — проблемы с системами контроля версий + смотреть/редактировать исходники в таком виде можно только в BB.
Надеюсь понятно описал :-) Если интересно, то могу попробовать написать статью о том, откуда есть всё это взялось вообще. То есть по ОС Оберон.
Но там, через какое-то время началась странная политика модерации: любая критика оберона, и вообще любое высказывание противоречащее основной линии партии мгновенно вырезалось. Форум начал закукливаться, замыкать сам на себя. Поэтому часть народа (в основном тех, кто знает и умеет не только оберон) постепенно переехали сюда: oberspace.dyndns.org, где сейчас постепенно и ведется разработка парочки компиляторов Оберона-07/11.
Аналогично — мне тоже не слишком приятно смотреть на код половина слов в котором КАПСОМ. Поэтому например в Zonnon'e (тоже потомок Оберона) ключевые слова уже нормальные: ru.wikipedia.org/wiki/Zonnon
Но опять таки, смотреть на синтаксис Оберона и Компонентного Пасаля в отрыве от ОС Оберон, или среды BlackBox Component Builder не совсем правильно.
Кстати, сейчас еще возможно шокирую, но традиционно в ОС Оберон и в BB для программирования используется пропорциональный шрифт :-) Моноширинный шрифт считается ересью.
Да, автор статьи ничего не сказал о Active Oberon'e — то что сейчас как раз развивается в Цюрихе. Ну и операционной системе A2. Это собственно то, во что сейчас превратился Оберон (ОС и язык) в стенах того университета.
Полагаю это просто традиция тех лет. Если посмотреть на программы писанные на Аде (хотя ада и не чувствительна к регистру) в те годы, то видно что ТАМ БЫЛ В МОДЕ КАПС, ну и примеры программ в стандарте Ады-83 были оформлены соответственно. В стандарте Ады-95 уже все примеры без капса.
Да, и еще нюанс — в ОС Оберон (ну и соответственно у оберонщиков вообще, и у почитателей BlackBox Component Builder'a в особенности) не принято подсвечивать синтаксис. Там принято использовать ручную раскраску текста для выделения смысловых частей кода (например можно пометить красным какие-то части кода, которые требуют особого внимания). Поэтому если считать, что ключевые слова надо таки как-то выделять, то КАПС оказывается в этом случае не таким уж плохим решением.
Но выводить свойства языка из его синтаксиса — так себе идейка.
И да, я обучал таких людей которые не могли сами цикл написать (да и не особо программированием интересовались). И вот с чем-чем, а с типами проблем не было (и да, я не на Обероне учил). Там были смешнее проблемы — народ по привычке текст программы воспринимал как нечто декларативное (видимо по аналогии с математикой), и никак не мог понять, что вот до этой строчки комп еще не дошел, и про нее пока не знает и ничего не исполнял что там написано. Как ни странно, тут очень сильно помог пошаговый отладчик (столь упоенно чмыримый апологетами Оберона), который позволил наглядно показать как же оно на самом деле там работает.
Основам именно что алгоритмики можно вполне и на Обероне. Вот правда-правда можно. Там ничего лишнего (угу, те самые 16 страниц описания языка) и всего хватает для таких задач. Не даром же его в Оксфорде в качестве одного из первых изучаемых ЯП преподают.
Потом на Обероне (как уже на подопытном ЯП) же отлично отрабатывать теорию и практику компиляторостроения и методов трансляции. Ну и по ОС тоже Оберон может пригодиться, у Вирта аж целая книжка по ОС Оберон написана. Подробно, компактно и ясно. То есть в плане обучалова Оберон штука в принципе годная, если с умом подходить. Ну и для некоторых научных изысканий тоже штука годная (в качестве объекта изучения).
Другое дело, что не стоит Оберон тащить во все промышленные задачи, как некоторые ярые пропагандисты делают. У простоты есть своя цена в конце концов, как, впрочем, и у сложности.
Но это опять таки, вторично. Ибо просто синтаксис. Это скучно. И это банально лечится единым coding style на контору.
А вот семантические заморочки, проблемы с типизацией — вот они лечатся туго. Так что нет, никаких питонов в начальном обучении. Впрочем, на счет Оберона тоже сомнения у меня некоторые имеются.
Ну, например руками делаем конструкторы: forum.oberoncore.ru/viewtopic.php?f=23&t=4326&p=79442
И исключения: forum.oberoncore.ru/viewtopic.php?f=26&t=808&p=11934&#p11933
Изобретаем беззнаковое целое: oberspace.dyndns.org/index.php/topic,398.0.html
Боремся с byte-stream: oberspace.dyndns.org/index.php/topic,399.0.html
Этот BB CB он сам себе среда и операционка. Расширяется легко и непринужденно. Собственно в том скриншоте модуль — это уже модуль самой среды по сути. Там нет четкой границы между средой разработки и программы разрабатываемой. Соответственно и инструментарий народ себе потихоньку делает. Diff там по крайней мере есть.
(но опять таки — не нужно это все переносить на язык Оберон — он бывает и в виде традиционных компиляторов с обычными текстовыми исходниками)
С git'ом народ выкручивается (если видит смысл выкручиваться) по разному. Например кто-то экспортирует исходники в обычные текстовые файлы.
Понятно что этот самый BB CB не есть серебряная пуля для всего на свете. На ряд решаемых задач такой подход ложится очень хорошо, и те преимущества которые оно дает перевешивает те недостатки которые оно же и привносит. На других же задачах в точности наоборот — недостатки играют сильнее чем достоинства.
как собак не резанныхмного. Ты про какой именно читал? В Компонентном Паскале например вполне есть абстрактные RECORD'ы. Но вот множественного наследования интерфейсов там действительно нет. На эту тему на одном из форумов было многостраничное обсуждение: forum.oberoncore.ru/viewtopic.php?f=29&t=3640Ну, а например в Zonnon'e с интерфейсами вообще все отлично — есть искаропки.
Оригинальный же Оберон и Оберон-07… Ну, собственно там даже в общем то нет функций связанных с типом. То есть, банально методов как таковых. Наприсать obj.foo() нельзя. Там все это несколько иначе делается.
Так вот, BlackBox Component Builder оперирует не просто исходными текстами, а так называемыми составными документами. То есть в одном таком документе может быть и исходник (причем расцвеченный во все цвета радуги программистом) и дока к нему с картинками, и что-нибудь интерактивное. Это позволяет изобразить нечто наподобие literate programming'a.
Обрати внимание — тут в коде имя процедуры Do выделено жирным шрифтом — это выделил так программист, это не автоподсветка. Восклицательный знак в черном круге — это иконка клик на которую запустит процедуру Do модуля ObxHello1 (то есть ObxHello1.Do запустит). На а текст вокруг — эдакий мегакоммент-дока для данного модуля.
В результате имеем составной интерактивный документ.
Плюсы у такого подхода очевидны, очевидны и минусы же — проблемы с системами контроля версий + смотреть/редактировать исходники в таком виде можно только в BB.
Надеюсь понятно описал :-) Если интересно, то могу попробовать написать статью о том, откуда есть всё это взялось вообще. То есть по ОС Оберон.
Вначале народ обсуждал обероны на королевстве делфи, вот тут: www.delphikingdom.com/oberon/
Затем, обзавелись своим форумом и переехали вот сюда: forum.oberoncore.ru
Но там, через какое-то время началась странная политика модерации: любая критика оберона, и вообще любое высказывание противоречащее основной линии партии мгновенно вырезалось. Форум начал закукливаться, замыкать сам на себя. Поэтому часть народа (в основном тех, кто знает и умеет не только оберон) постепенно переехали сюда: oberspace.dyndns.org, где сейчас постепенно и ведется разработка парочки компиляторов Оберона-07/11.
Какой шрифт в ОС Оберон, можно глянуть тут: www.youtube.com/watch?v=BTEeZe7nj6c
Но, к сожалению, подавляющее большинство судит о ЯП всегда по синтаксису (увидели блоки из фигурных скобочек — сразу ярлык: очередной Си).
Но опять таки, смотреть на синтаксис Оберона и Компонентного Пасаля в отрыве от ОС Оберон, или среды BlackBox Component Builder не совсем правильно.
Кстати, сейчас еще возможно шокирую, но традиционно в ОС Оберон и в BB для программирования используется пропорциональный шрифт :-) Моноширинный шрифт считается ересью.
Да, автор статьи ничего не сказал о Active Oberon'e — то что сейчас как раз развивается в Цюрихе. Ну и операционной системе A2. Это собственно то, во что сейчас превратился Оберон (ОС и язык) в стенах того университета.
Да, и еще нюанс — в ОС Оберон (ну и соответственно у оберонщиков вообще, и у почитателей BlackBox Component Builder'a в особенности) не принято подсвечивать синтаксис. Там принято использовать ручную раскраску текста для выделения смысловых частей кода (например можно пометить красным какие-то части кода, которые требуют особого внимания). Поэтому если считать, что ключевые слова надо таки как-то выделять, то КАПС оказывается в этом случае не таким уж плохим решением.