Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение  Обсуждение из раздела Школа ОБЕРОНА
№ 5716 21-10-2007 13:25 |  |
Ответ на »сообщение 5683« (AVC)
___________________________
Возникла гипотеза (»сообщение 5654«), что в виртовских языках два уровня строгости: обязательный и "рекомендательный". Компилятор не запрещает некоторые отклонения от "хорошего стиля", которые он может обнаружить. (В качестве примера я сослался на компилятор и анализатор КП в ББ.)
Как Вы относитесь к такому предположению?
Если почитать выполненные Виртом лаконичные описания языков, то можно заметить, что там рекомендациями вроде бы особо и не пахнет. Но при этом Вирт выбрал форму изложения, не близкую к описанию стандартов языков ("императивную", настаивающую на неукоснительном исполнении), а скорее рекомендательную ("декларативную"). Т.е. рекомендации по форме и требования по содержанию. Конкретизация этого "декларатива" (различные ограничения, контроль) возложена Виртом на РЕАЛИЗАЦИИ языка, т.е. на разработчиков компиляторов (систем программирования).
Если проследить эволюцию взглядов Вирта, то можно заметить, что он старается уходить от любых исключений из правил (доп. запретов, ограничений) и ограничиваться самими правилами. При этом идет на радикальные шаги, которые подчас вызывают скепсис в отношении цены за такую общность (напр., те же перечисления, отсутствующие в Обероне).
Иными словами, Вирт постепенно пришел к идее языка-ядра в чистом виде. Я бы даже сказал (по аналогии с областью ОС) к идее языка-микроядра. Именно микроядерный характер классического Оберона меня и интересует в первую очередь. Поскольку микроядерность, на мой взгляд, и есть одно из важнейших средств борьбы со сложностью. Средство ее контроля. Поверх микроядра (и рядом) можно формировать другие языки. Разница в том, что всегда есть четко регламентированный уровень микроядра, на который в случае необходимости можно спуститься и там разобраться с возникшими проблемами. Это ДАЛЕКО не то же самое, что попытка выделить в универсальном языке-сундуке свое рабочее подмножество (у одних оно одно, у других -- другое).
Когда делаются попытки убедить в том, что на микроядерном языке можно делать все на свете, причем так же замечательно, как на более развитых языках (с более высокими уровнями абстракций), и даже вне сферы индивидуального прикладного программирования, это вызывает у меня как минимум сомнения. А скорее -- скепсис.
№ 5715 21-10-2007 13:02 |  |
Ответ на »сообщение 5661« (pepper)
___________________________
Илья, ты серьезно предпочел бы "лечь под нож" компьютера, запрограммированного врачом (пусть даже на обероне), чем профессиональным программистом?
Несколько странная дискуссия, сдобренная словом "профессиональный".
Вообще-то, есть программирование. А есть программирование. Есть программисты. А есть программисты. Есть профессиональные программисты. А есть профессиональные программисты. Что с чем и кого с кем сравниваем?
Врачи также бывают разные. Но почему-то среди них делают всё же различие в уровне квалификации, в их специализации. Хирург и окулист, мягко говоря, несколько отличаются друг от друга. А программисты у нас выходят вроде как все на одно лицо. Системное программирование сильно отличается от прикладного. А программирование систем (по факту) отличается от системного программирования (и от прикладного).
Если речь идет о кустарях (индивидуалах), которые должны что-то запрограммировать в своей области, то больше поверю в то, что такой специалист-прикладник сможет лучше создать программу (не систему), чем (даже профессиональный) прикладной программист. Поскольку здесь знание предметной области более важно.
Но как только речь пойдет о промышленном производстве ПО (в том числе и в области медицины) врач в роли прикладного программиста -- глупость, если не сказать больше. Врач должен задействоваться здесь уже как (бизнес-)аналитик. Его задача -- готовить (проверять) спецификации на соответствующем языке и соучаствовать в контроле их отображения на языки реализации.
Системному программированию, как и программированию систем, надо учиться не один год. Фундаментально. И потом обязательно иметь несколько лет практики. На производстве. Вряд ли врач (если он действительно глубоко и серьезно занимается своей профессией) в состоянии составить конкуренцию профессиональным программистам в этой сфере.
Само развитие современного программирования, его "попсовизация" подталкивает людей к восприятию профессии программиста как отживающей свой век. Это весьма напоминает ситуацию, когда человек, научившийся водить автомобиль, уже считает себя специалистом в этой сфере. Куда там профессионалам до него...
Впрочем, что такое профессионал? Каковы критерии, отделяющие его от непрофессионала? Образование? Работа, за которую получает деньги? Думаю, в области медицины немало людей, удовлетворяющих этим критериям, но которых назвать профессионалами довольно затруднительно. Особенно тем, кто на себе ощутил весь их "профессионализм".
№ 5714 21-10-2007 12:57 |  |
Ответ на »сообщение 5703« (Сергей Перовский)
___________________________
Если на обероне - то нет. А если на языке описания полостных операций, то да.
С этим я соглашусь. Собственно по факту к этому все и идет, и не только в медицине.
№ 5713 21-10-2007 12:55 |  |
Ответ на »сообщение 5705« (Jack Of Shadows)
___________________________
Ответ на »сообщение 5704« (Jack Of Shadows)
___________________________
Прикол, я думал тег код подсветит exit - Это ведь служебное слово дельфи. А оказалось что подсветка кода не delphikingdom тоже в бедных родственниках ходит.
Вот откуда боязнь break происходит :))
Ни Break, ни Exit не являются в Delphi ни зарезервированными словами, ни директивами, ни предопределёнными идентификаторами, поэтому редактором кода Delphi никак не подсвечиваются. Поэтому наш скрипт их тоже не подсвечивает.
№ 5712 21-10-2007 12:40 |  |
Ответ на »сообщение 5709« (Илья Ермаков)
___________________________
Да, настолько привык к красной стрелке после Exit что воспринимаю ее уже просто графически.
Да и break как оказалось - тоже процедура, и тоже в delphi не подсвечивается.
№ 5711 21-10-2007 12:39 |  |
Ответ на »сообщение 5707« (pepper)
___________________________
Ответ на »сообщение 5669« (Илья Ермаков)
___________________________
просто потому, что у него физически нет времени/возможности объять все то, что умеет профессиональный программист
А ему и не нужно это объять. Задача системного программиста - инструментальщика - создать такой инструмент, который будет подходить прикладнику для решения задачи. А не нагромоздить того, чего хочется именно ему, чтобы затем гордо говорить, что "это настолько сложно, что требует больших усилий для освоения".
Алгоритмизация - это важнейший навык человека, и если не сопровождать её всякого рода мусором, как это принято в мейнстрим-языках, то она вполне по силам умному человеку с высшим образованием (как говорил Ершов - "вторая грамотность").
(Если брать то же управление каким-либо оборудованием, то пример инструмента, успешно применяемого непрограммистами - LabView).
И вообще, хочется вам или не хочется, а статистика от Microsoft известна - 2/3 программирующих людей - это не ИТ-шники, а предметники.
№ 5710 21-10-2007 12:35 |  |
Ответ на »сообщение 5668« (Илья Ермаков)
___________________________
Во первых, Вы утрируете, хотя доля правды есть.
Да, я утрирую. Помимо простоты компилятора у Вирта есть и другие критерии. Однако простота компилятора ставит крест на очень многом, чего хотелось бы видеть в современном ЯВУ общего назначения.
Во-вторых, с простотой следует надёжность и уверенность в компиляторе.
Покажите мне на компилятор С++, в котором нет ошибок и который полностью соответствует стандарту.
Толку в надежном компиляторе языка, который никому не нужен (опять утрирую)? Это из серии "твоя программа более правильная, зато моя работает".
№ 5709 21-10-2007 12:32 |  |
Ответ на »сообщение 5705« (Jack Of Shadows)
___________________________
Ответ на »сообщение 5704« (Jack Of Shadows)
___________________________
exit - Это ведь служебное слово дельфи.
Exit - вообще говоря, в Борланд Паскале и в Дельфи - не служебное слово, а стандартная процедура. Большая, между прочим, разница. :-)
№ 5708 21-10-2007 12:30 |  |
Ответ на »сообщение 5704« (Jack Of Shadows)
___________________________
Ответ на »сообщение 5690« (Илья Ермаков)
___________________________
В бедном обероне, в котором для выделения служебных слов используются ПРОПИСНЫЕ быквы вместо цвета и жирности фонта, это конечно проблема. Могут и не заметить.
А вот в любой нормальной IDE в которой
А я не хочу лезть вовнутрь цикла, чтобы увидеть, когда он изволит завершиться. В "нормальной IDE" это тело можно вообще свернуть - и в условии цикла должно быть всё сказано о том, "откуда и куда" он идёт.
№ 5707 21-10-2007 12:29 |  |
Ответ на »сообщение 5669« (Илья Ермаков)
___________________________
Да. С одним важным "но", про которое я с самого начала говорил: для этого врача программирование медицинских систем должно быть не случайным эпизодом, а постоянной работой - "программирующий врач".
Не бывает таких врачей. Или он не врач по призванию, а программист с медицинским образованием :) Даже программирующий схемотехник (куда болеее близкие "по духу" профессии) у меня вызовет скепсис (просто потому, что у него физически нет времени/возможности объять все то, что умеет профессиональный программист), хотя соглашусь, что в каких-то случаях (можно оговорить отдельно) будет правильно отдать ему запрограммировать контроллер собственного устройства. Да, в каких-то случаях можно отдать программирование и врачу. Только программа эта будет больше похожа на программы, описываемые в инструкции к микроволновке или стиральной машине, чем на программу на обероне.
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|