OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 15 Февраль, 2019 23:01

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




Начать новую тему Ответить на тему  [ Сообщений: 161 ]  На страницу 1, 2, 3, 4, 5 ... 9  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 19 Октябрь, 2007 16:13 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 149
Цитата:
Это Вы про BB или информатику? Если про второе, то не стоит забывать, что в школах главное - алгоритмы. Использование моделей и т.д. в стандартном школьном курсе не требуется, поэтому "штука" вполне может быть ещё менее "увесистой" по сравнению с существующими аналогами.

Я полагаю, что объём вводного курса программирования мало зависит от языка: в рамках школьной программы разница между Обероном, Паскалем, Си и даже Бейсиком не так уж велика (ну разве что в последнем бардак с переменными в программе).

Илья Ермаков писал(а):
Уже есть вводный курс по ББ - у info21 на сайте, PDF.

Весьма ценный материал - обязательно познакомлюсь. Но на какую аудиторию рассчитано данное пособие? Не очень похоже, что на школьника - первые 20 страниц обычный старшеклассник читать вряд ли будет (не так уж многим интересны философские дебаты про Дейкстру, GOTO и отладчик), а по формальному описанию языка ребята его учить не будут - нужно много коротеньких примеров без лишней теории (сами по себе конструкции языка - уже довольно серьёзный для новичка теоретический материал).
Похоже, что пособие всё-таки для учителей, которые уже знакомы с Паскалем.
И ещё: современный школьник часто прагматичен, многим непонятно, что такое красивый язык программирования. Не так давно пришлось отвечать десятикласснику на вопрос "зачем нужна тригонометрия и эти жуткие формулы?" (на всякий случай скажу, что я не учитель), причём не на уровне математических красот, а на примерах вроде DOOM, Quake, "фотошопа" и сколачивания мебели, табуретов и лестниц, обмера участков.

BanLex писал(а):
И думаю, пока не появится, общедоступные методики обучения у ББ будущего не будет. А мы будем сидеть и причитать о том, как несправедлива судьба.

А может быть, подойти к пиару BlackBox более прагматично? Если Turbo Pascal так популярен в школах, может быть, не надо идеологических речей про Оберон, а говорить, что в BlackBox реализован диалект Паскаля и что главное преимущество - то, что не под DOS и то, что окошечки? И что при переходе на Vista не нужна будет возня с DOSBOX?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Октябрь, 2007 16:48 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
Знаете, особых проблем с перетаскиванием с Турбика как раз и нет. Основные проблемы в том, что учителя всё чаще дают ходу на МС-овские продукты аля VB & Visual Studio. И громко вопят, что Паскаль - мёртвый язык, а Микрософт делает будущее... :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Октябрь, 2007 18:48 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 149
Илья Ермаков писал(а):
Основные проблемы в том, что учителя всё чаще дают ходу на МС-овские продукты аля VB & Visual Studio.

Это далеко не самые плохие программные продукты, в некоторых случаях они - лучшие. Но алгоритмизации учить на них я бы не стал (не по причине, что M$, а из-за сложности концепции ООП).

Цитата:
И громко вопят, что Паскаль - мёртвый язык, а Микрософт делает будущее...

Но с коммерческой точки зрения он действительно постепенно выходит из употребления. Но почему если не Паскаль, то M$? Есть же ещё GCC/MinGW и Open Watcom C/C++: они не так изящны, как Оберон, но по крайней мере свободно распространяемы и переход на них можно аргументировать чисто практически (сходство с PHP, Java, C#).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Октябрь, 2007 21:45 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
С/С++ мне не кажутся удачным вариантом для обучения программированию. Отбрасывая в сторону "идейную часть", только на основе личного опыта преподавания (да, приходилось учить на С++) могу назвать недостатки, которые должны быть очевидны даже для ярых поклонников языка ... Про это говорил в обсуждении на форуме Педсовета (http://pedsovet.org/forum/index.php?sho ... 763&st=90#).
Процитирую:
Цитата:
:-)
Я, кстати говоря, прекрасно представляю, как преподавать базовый курс программирования на основе Си (для студентов-первокурсников).. И имею успешный опыт этого преподавания (как и богатый опыт профессионального писания на С++ в крупных проектах).
Поэтому я знаю, что нормально научить этому на основе Си можно. При очень многих НО... Начиная от высокой квалификации педагога, который должен на собственной шкуре понимать, что такое хорошо, а что такое плохо в программировании (поскольку в язык не заложено вообще никаких посылок относительно этого, никаких ориентиров). Во-вторых, в процессе обучения приходится постоянно делать оговорки - об исключениях, о нюансах, опережающие ссылки ("вот это вы узнаете далее" и т.п.). Уйма ненужных деталей (очень часто рудиментов 70-х годов чистого Си), отвлекающих на себя внимание.
Сплошь и рядом приходится затрагивать "неправильные" средства, и тут же объяснять, почему они "неправильные" (выражения с побочными эффектами, goto-break-continue, неявные преобразования типов и т.п.). А не рассказывать про эти средства нельзя - потом в шибко умной макулатуре прочитают и придут в полное расстройство мыслей - а) почему им этого не объяснили и нужно ли оно б) ведь всюду пишут, так почему б не использовать... Поэтому приходится упоминать все "контрпримеры" - "а ещё в языке можно вот так, но самом деле вот так никогда нельзя - потому что... А если будете, то линейкой по рукам вас за это бить надо..." ну и т.п.

В результате накладные расходы на обучение и количество фоновой информации становится совершенно чрезмерным...
[/Quote]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Октябрь, 2007 23:39 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 149
Илья Ермаков писал(а):
Уйма ненужных деталей (очень часто рудиментов 70-х годов чистого Си), отвлекающих на себя внимание.

При вводном курсе их можно не упоминать и ограничиться подмножеством языка Си, а показывать детали уже далее (особенно для школьников, у которых программирование специальностью не является). Хотя если goto можно не рассматривать, то про преобразование типов вряд ли удасться не говорить (но упоминание такой темы, как указатели, вполне можно попридержать).
Зато в Си понятие указателя и машинной адресации наиболее наглядно (нагляднее только в Ассемблере).

Илья Ермаков писал(а):
поскольку в язык не заложено вообще никаких посылок
относительно этого, никаких ориентиров

Это философия авторов языка - программист сам должен определять для себя, что такое хорошо и что такое плохо.

Цитата:
ведь всюду пишут, так почему б не использовать

Такие вещи, как goto в программах можно увидеть очень редко, а break и continue не так уж страшны, если ими не злоупотреблять.

P.S. Я не просто так о Си заговорил - мне приходится помогать одной из московских школ в переходе с Турбо-Паскаля на современную платформу. Преподаватель хочет заменить его на Си, т.к. ребята интересуются - нужно для поступления в ВУЗы. Я занимаюсь настройкой компилятора Open Watcom, составлением примеров программ и учебной графической библиотеки - процедурной оболочки для GDI. Я говорил учительнице про существование Модулы и Оберона, но вердикт был однозначен - Си с последующим переходом на PHP, JavaScript и Flash. Первые результаты уже опубликованы он-лайн (если заинтересовало, могу показать ссылку).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 01:34 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
ScrollLock писал(а):
Илья Ермаков писал(а):
поскольку в язык не заложено вообще никаких посылок
относительно этого, никаких ориентиров

Это философия авторов языка - программист сам должен определять для себя, что такое хорошо и что такое плохо.

Вот это и ставит крест на применении языка в качестве первого. Т.к. обучающийся не способен определить это. А обучающий просто не имеет возможности донести до каждого человека каждую мелочь, потому что иначе у него не останется времени на преподавание собственно программирования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 01:37 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
ScrollLock писал(а):
Преподаватель хочет заменить его на Си, т.к. ребята интересуются - нужно для поступления в ВУЗы.

Не, мне нравится аргументация многих учителей - "ребята интересуются". Ребята могут многим интересоваться.
А у самого учителя нет иных критериев для выбора материала для преподавания. Ребята интересуются комп. играми - может, их тоже преподавать? :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 02:00 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 149
Илья Ермаков писал(а):
Не, мне нравится аргументация многих учителей - "ребята интересуются". Ребята могут многим интересоваться.

Далеко не самой плохой вещью они интересуются ;) :
1) язык не визуальный, и заставляет учиться алгоритмировать; я понимаю, что там есть "готишные" особенности синтаксиса... Полагаю, что это будет даже легче, чем GW-BASIC.
2) нет зависимости от какой-то конкретной корпорации
Но был и другой аргумент: синтаксис языка Си даёт много удобных "пересадок" на массовые языки вроде PHP, JavaScript, Flash и т.п. Самое интересное, что больше вопросов у учителя вызвал не синтаксис, а printf/scanf, работа с файлами и унарный &.

А с точки зрения эффективности ещё не факт, что лучше - учить с интересом Си или без интереса Pascal.

Цитата:
Ребята интересуются комп. играми - может, их тоже преподавать?

Смотря как преподавать :) Сделать компьютерную игру на Си или Flash - нетривиальная задача для школьника (по крайней мере уложить Тетрис для учебной библиотеки меньше чем в 150 строк не получается). Некоторые из них прекрасно показывают, зачем нужны двухмерные массивы и как с ними работать.

P.S. Кстати, насчёт ВУЗов: в группе химиков-вычислителей Химического факультета МГУ произошёл отказ от Паскаля и переход на Си (на общем потоке Паскаль остался). Аргумент примерно такой: в реальной жизни чаще придётся сталкиваться с Си, чем с Паскалем. Ещё популярен FORTRAN (старые наработки) и встречается MATLAB.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 02:05 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
ScrollLock писал(а):
P.S. Кстати, насчёт ВУЗов: в группе химиков-вычислителей Химического факультета МГУ произошёл отказ от Паскаля и переход на Си (на общем потоке Паскаль остался).

Таак... Я надеюсь, это вычислители-теоретики? И писать софт для химпроизводств они не будут? А если будут, то как бы узнать, куда они направят свои стопы? :-) Дабы люди заранее могли эвакуироваться :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 02:13 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 149
Илья Ермаков писал(а):
Я надеюсь, это вычислители-теоретики? И писать софт для химпроизводств они не будут? А если будут, то как бы узнать, куда они направят свои стопы?

Ну это уж как повезёт :) В основном вычисления теоретические, иногда могут использоваться для направления и управления экспериментом в лабораториях.
А писать для производств придётся не на чём хочется, а на чём позволят и скажут. У систем реального времени свои причуды и свои стандарты. Знаю двух одногруппников, которые программировали плавку кремния на Си (малое промышленное производство), в одной из лабораторий факультета управление вольтметрами и термометрами печей реализовано на Visual Basic, куча софта на Delphi, Fortran и MATLAB.

Цитата:
Дабы люди заранее могли эвакуироваться

Написать "левый" софт для химпроизводств можно на любом языке. Самые злейшие "глюки" - логические.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 10:24 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
ScrollLock писал(а):
Илья Ермаков писал(а):
Не, мне нравится аргументация многих учителей - "ребята интересуются". Ребята могут многим интересоваться.

Далеко не самой плохой вещью они интересуются ;) :
1) язык не визуальный, и заставляет учиться алгоритмировать; я понимаю, что там есть "готишные" особенности синтаксиса... Полагаю, что это будет даже легче, чем GW-BASIC.
2) нет зависимости от какой-то конкретной корпорации
Но был и другой аргумент: синтаксис языка Си даёт много удобных "пересадок" на массовые языки вроде PHP, JavaScript, Flash и т.п. Самое интересное, что больше вопросов у учителя вызвал не синтаксис, а printf/scanf, работа с файлами и унарный &.

А с точки зрения эффективности ещё не факт, что лучше - учить с интересом Си или без интереса Pascal.

Цитата:
Ребята интересуются комп. играми - может, их тоже преподавать?

Смотря как преподавать :) Сделать компьютерную игру на Си или Flash - нетривиальная задача для школьника (по крайней мере уложить Тетрис для учебной библиотеки меньше чем в 150 строк не получается). Некоторые из них прекрасно показывают, зачем нужны двухмерные массивы и как с ними работать.

P.S. Кстати, насчёт ВУЗов: в группе химиков-вычислителей Химического факультета МГУ произошёл отказ от Паскаля и переход на Си (на общем потоке Паскаль остался). Аргумент примерно такой: в реальной жизни чаще придётся сталкиваться с Си, чем с Паскалем. Ещё популярен FORTRAN (старые наработки) и встречается MATLAB.


Коньюнктура! Да и похоже на то, что знание особенностей языка воспринимается как первейший и важнейший навык, а абстрактные концепции мало кого интересуют. Индустрии нужны натасканные исполнители, как и писал Дейкстра в своих записках.

Думается, что учитель должен в состоянии отделять концепции от языка (язык как реализация инженерных подходов).

А если иметь сравнительные характеристики языков, в плане поддержки ими (языками) этих самых концепций программирования, ясности восприятия человеком концепций через язык (а измерить это было бы круто!), да и карту минных полей - "фенечек" и "прибамбасов", .т.е дополнительных возможностей языка - излишества ли это, или акселераторы мозга программиста, тогда это был бы аргумент. Железная бумажка, окончательная бумажка, броня! (С) Профессор Преображенский Ф.Ф.

Попытки сравнения делались неоднократно, но это сравнение идёт всегда от самих языков. А я считаю, что надо идти от человека. Ведь в конечном счёте, именно человек тратит именно свою энергию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 11:16 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
ScrollLock писал(а):
Написать "левый" софт для химпроизводств можно на любом языке. Самые злейшие "глюки" - логические.

Это известный аргумент. Как только говорится об ошибкоопасности какого-либо языка, защитники его указуют на "злейшность" логических ошибок.
Два примера того, что это не оправдание. :-)
Во-первых, это ошибки разного плана.
Обратимся к "физическому" производству - за аналогиями, иногда очень полезно бывает. Строительство. "Логика" - это то, что пришло в проектной документации, в чертежах. Естественно, если чертежи неверны, то далее и говорить не о чем. А вот ошибкоопасный язык - это всё равно, как если прораб на стройке вместо цемента использовал смесь песка с чем-нить ещё :-) Самая лучая "логика" и самая верная проектная документация - коту под хвост. И при этом, если "логика" хорошо выверяется ещё до начала строительства, то вот плохой цемент может "выйти боком" гораздо позже, когда уже построенное будет рассыпаться.

А теперь вторая аналогия.
Представьте себе, что Вы работаете, а Вам очень сильно жмёт ногу ботинок. Как Вы думаете - насколько высокий процент процент Вашего внимания будет уделяться "логике"? А сколько внимания будет отвлекать на себя мешающий фактор? Избавить программиста от необходимости тратить своё драгоценное внимание на мешающие факторы (что и делает хороший язык) - это значит позволить ему полностью сосредоточиться на "логике". Со всеми вытекающими. С повышением продуктивности и качества на порядок, что обычно и наблюдается...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 11:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7968
Откуда: Троицк, Москва
ScrollLock писал(а):
Написать "левый" софт для химпроизводств можно на любом языке. Самые злейшие "глюки" - логические.


Да сколько ж можно-то...

До логических глюков надо еще продраться через прочие!!!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 15:10 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
Оффтоп. Но поскольку догадываюсь, что это дежурные контраргументы, то имеет смысл вылизать их так, чтобы даже к мелочам нельзя было придраться.
Илья Ермаков писал(а):
Строительство. "Логика" - это то, что пришло в проектной документации, в чертежах. Естественно, если чертежи неверны, то далее и говорить не о чем. А вот ошибкоопасный язык - это всё равно, как если прораб на стройке вместо цемента использовал смесь песка с чем-нить ещё :-)
Кирпичная кладка в большинстве случаев скрепляется не цементом, а цементным раствором. Точный рецепт данной смеси гуру строительства берегут как зеницу ока, но достоверно известно, что в неё входят не менее трёх компонентов. Массовая доля этих компонентов по отдельности превосходит массу остальных (не упомянутых). Вот они: сам цемент, вода, песок. Вода через некоторое время испаряется, поэтому, если Вы выглянете через окно и увидите кирпичный дом, то при виде серых полосок, отделяющих кирпичи друг от друга, в голове должно промелькнуть: цемент и песок. И если в Вашем контраргументе "чем-нить ещё" окажется цемент, то, пожалуй, здание не посыпится.

Желательно заменить "смесь песка с чем-нить ещё" на сырую глину или смесь клея ПВА и опилок.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 15:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
Ну да, дополнение верное, спасибо :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 17:33 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 149
Цитата:
Илья Ермаков писал(а):
Представьте себе, что Вы работаете, а Вам очень сильно жмёт ногу ботинок. Как Вы думаете - насколько высокий процент процент Вашего внимания будет уделяться "логике"? А сколько внимания будет отвлекать на себя мешающий фактор? Избавить программиста от необходимости тратить своё драгоценное внимание на мешающие факторы (что и делает хороший язык) - это значит позволить ему полностью сосредоточиться на "логике".


Разовью данную аналогию: что лучше - парадные туфли, туристические "говнодавы", тапочки или резиновые сапоги? В каждом случае нужна своя обувь. Поэтому какой язык лучший, сказать нельзя - надо выбирать адекватные инструменты. То, что в одном случае является ошибкоопасностью, в другом может здорово облегчать низкоуровневое программирование или убыстрять обработку массивов.
Например, если я сейчас буду решать физико-химические задачи на на MATLABе со вставками на языках низкого уровня (по сравнению с MATLAB) вроде Си и Оберона, а на BlackBox или Open Watcom, то моя производительность упадёт в разы. Но я не будут даже пытаться писать на MATLAB драйвер или клавиатурный шпион.

Цитата:
Иван Кузьмицкий писал(а):
Коньюнктура! ... Думается, что учитель должен в состоянии отделять концепции от языка (язык как реализация инженерных подходов).


Ни что с того, что коньюнктура - само по себе это не хорошо и не плохо. Почему-то в школах учат не элегантный эсперанто, а "замороченный", но очень нужный на практике английский. Прямая аналогия между Обероном и Си.
И еще по поводу концепций - что значит отделять концепции от языка? Всё равно их будет нужно разбирать на конкретном языке, и лучше это делать на популярном языке.

Цитата:
Иван Кузьмицкий писал(а):
А я считаю, что надо идти от человека. Ведь в конечном счёте, именно человек тратит именно свою энергию.


С точки зрения человека идеалом наглядности является визуальное программирование, поэтому в таком случае мне непонятно, почему здесь столько народу, которому не нравится Visual Basic (не вижу в данном случае отделять язык от среды - рисование формы - это тоже программирование).

Цитата:
info21 писал(а):
До логических глюков надо еще продраться через прочие!!!


Полностью согласен. Но если такие глюки заводятся да ещё проявляются при редком стечении обстоятельств, то их не так просто ловить. А "ошибкоопасность" Си я не и отрицаю, но его синтаксис воспринимается даже легче Оберона (разумеется, при выдержанных отступах и отсутствии "грязных" трюков в выражениях).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 19:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
ScrollLock писал(а):
И еще по поводу концепций - что значит отделять концепции от языка? Всё равно их будет нужно разбирать на конкретном языке, и лучше это делать на популярном языке.

Лучше это делать на том языке, который это позволяет лучше показать :-)
При этом даже осмелюсь утверждать, что при переходе от базовых курсов программирования к специализированным ценность Оберона (но тут уже конкретнее - Компонентного Паскаля, как промышленной его версии) по сравнению с мейнстрим-языками не падает, а увеличивается.
Показать все ключевые концепции построения программных систем можно гораздо быстрее.
Например, я убеждён в таком парадоксальном на первый взгляд тезисе:
самый короткий путь научить студента хорошо программировать на Яве/Шарпе - это показать все принципы компонентного программирования в курсе изучения КП, а потом рассказать, как эти принципы отображаются в мейнстриме.

Процитирую себя с того же форума http://pedsovet.org/forum/index.php?sho ... 763&st=90#
Цитата:
Цитата:
Михаил Густокашин
ну и про переходы с одного на другое вы сами сказали - это просто. и если 98% потребуется мейнстрим, то готовить надо к мейнстриму. учить мейнстриму ничуть не сложнее

Просто-то просто - да переход не взаимно однозначный... Я уже приводил Вам пример.
Возьмем Компонентный Паскаль и Яву. Технологически языки совершенно одного ранга, технически - совместимы до того уровня, что существуют реализации, где на базе ОС (или рантайма), написанной на КП, крутятся классы Явы - в том же адресном пространстве, с одним сборщиком мусора, непосредственно взаимодействуя с модулями КП, и наоборот. (На самом деле между Явой и КП сложные отношения - Ява создана по прямым влиянием идей Оберона, а КП как развитие Оберона создавался уже сознательно для создания альтернативы Яве и возможности совместного использования).

Так вот, а теперь посмотрим на применение в обучении (буду иметь в виду студентов). Есть базовые понятия программной инженерии - модуль (элемент архитектуры), тип данных (в том числе АТД, в т.ч. объектный, элемент модели проблемной области), процедура (в том числе метод объектного типа, элемент программной логики)... Я могу легко показать всё это на базе КП. Показать процедурную архитектуры, показать модульную, объектно-ориентированную, и наконец - компонентную. И как прекрасный пример компонентной системы и использования ОО-паттернов (например, описанных в известной книге Гаммы и др.) - сам Блэкбокс (который в открытых исходниках). Таким образом, у меня есть прекрасная платформа для насыщенного курса по конструированию программных систем.
А что мне даёт Ява, которая технологически как бы аналог КП? После курса на КП мне достаточно объяснить, каким образом все эти прекрасно усвоенные понятия (тип данных, модуль, компонент и т.п.) отображаются в конструкции Явы. И отображаются-то они весьма легко - да только в одну единственную конструкцию класса! Опаньки - и приехали. Более объёмный, более навороченный язык является в архитектурном смысле "ассемблером" для КП, на который можно легко оттранслировать, но с потерей всех оттенков высокоуровневой семантики...
И теперь вопрос - как я мог бы построить тот же самый курс с самого начала, применяя не КП, а Яву? Каким образом можно научить новичка понимать и чувствовать все эти архитектурные тонкости, если они в языке не отражены напрямую, а только эмулируются через единственное семантически перегруженное понятие? Если у опытного разрабтчика в голове и то не всегда всё ясно - где класс выступает в роли модуля, где - в роли ТД, где - в роли контейнера для процедур... А если учесть ещё возможности бессмысленных смешений семантики... Т.е. учить разработке ПО на базе Явы по сравнению с КП - всё равно, что учить алгоритмизации вместо ЯВУ на ассемблере...
Вот вам конкретный пример.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 19:13 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
Scroll Lock писал(а):
Но я не будут даже пытаться писать на MATLAB драйвер или клавиатурный шпион.

Вам стоило бы увидеть, как красиво выглядит клавиатурный драйвер на Модуле-2 вместо Си :-) В какой-то книжке (кажется, в "Языках программирования реального времени" Янга) этот пример приводился.
А в микроядерных ОС драйвер вообще пишется для исполнения в пользовательском режиме, и обычно представляет собой довольно высокоуровневую программу.
Нормальный ход мыслей в современном системном программировании - использовать минимальные места низкоуровневого кода, при первой же возможности закрывая их высокоуровневыми абстракциями. Неужели возможность в нескольких десятках строчек писать a << 5 & 0xFF вместо BITS(ASH(a, 5)) * {0..15} так сильно скрасит мою жизнь? :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 19:16 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
Тьфу, прошу прощения!
Запорол Ваше верхнее сообщение - вместо "Цитата" нажал "Правка".
Трёхдневное недосыпание даёт себя знать.
Может быть, Борис Рюмшин восстановит - не знаю, этот форум поддерживает историю правок?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 20 Октябрь, 2007 19:19 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9084
Откуда: Россия, Орёл
Всё, восстановил сам - на другой вкладке браузера осталось!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 161 ]  На страницу 1, 2, 3, 4, 5 ... 9  След.

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB