OberonCore https://forum.oberoncore.ru/ |
|
История Паскаль-семейства в кратком изложении https://forum.oberoncore.ru/viewtopic.php?f=6&t=467 |
Страница 1 из 4 |
Автор: | Илья Ермаков [ Среда, 16 Май, 2007 02:48 ] |
Заголовок сообщения: | История Паскаль-семейства в кратком изложении |
Недавно на PEDSOVET.ORG произошел очередной спор между паскалистами и цеплюсистами... Как всегда, пошли в ход кухонные мифы об "академичности и практической бесполезности Паскаля" - ну и т.п., все это знакомо нам всем Пришлось написать довольно пространный ответ, который опроверг по пунктам все позиции "нападающей стороны". Получилось нечто вроде статьи, но вылизывать особо нет времени и желания, а что не пропадало - выложу как есть здесь в форуме. |
Автор: | Илья Ермаков [ Среда, 16 Май, 2007 02:49 ] |
Заголовок сообщения: | |
Цитата: Оберон, равно как и Паскаль - это языки, которые были самоцелью при создании. Вирт создавал новый язык, чтобы создать хороший новый язык, после этого занимался его распространением, как это сейчас происходит с компонентным паскалем. Про паскаль на сей момент все бы уже забыли, если не компания Борланд и жутко неповоротливая академическая среда в России. Во-первых, Вирт - не теоретик, а крупнейший практик. В первую очередь - ИТ-инженер высочайшего класса - и именно за практическую деятельность в области разработки языков и операционных систем (семейства Оберон) он и получил высшую ИТ-награду - премию Алана Тьюринга. (Хотя сам он всегда подчеркивает, что для него основное - это образование. Осенью 2005 г. в МГУ на наш вопрос "What is the main target of your professional activity?" он ответил: "Of cource, I am a teacher"). Итак, поехали по пунктам... Паскаль (1970). Цели создания Паскаля: а) язык, на основе которого можно было бы обучать студентов современному (на тот момент) структурному программированию; б) создание для науки и экспериментальной индустрии единого языка для обмена идеями. И та, и другая цель были полностью достигнуты. По поводу а) и доказывать нечего. По поводу б) - язык получил широчайшее распространение и в Европе, и в США, совершенно без "злого Вирта, который занимался его распространением". Вирт учил студентов, а Паскаль брал все новые вершины, и, кстати, в первую очередь вдали от Швейцарии - в Штатах (в частности, университетсткий стандарт де-факто на то время - UCSD Pascal, который потом возьмет и будет двигать дальше Borland). И причиной этого распространения стало не что иное, как переносимость кода. (К сожалению, слишком многие почти уверены, что термин "переносимость" изобрела SUN вместе с Java). Именно в 1972 году Никлаусом Виртом был разработан байт-код для интерпретации на стековой машине - и именно для портирования на разные платформы реализаций Паскаля (поэтому язык и удалось столь быстро развить на всех платформах). Код так и был назван - P-код. Более того, именно этот байт-код, 1972 г. производства, с небольшими изменениями был использован Sun в своей Java. Другая техническая деталь - для создания ВСЕХ БЕЗ ИСКЛЮЧЕНИЯ серьезных Паскаль-систем (компиляторов, сред разработки, ОС) с 70-го года и по сей день используется метод "раскрутки". Это значит, что компилятор языка реализуется на самом этом языке. Возьмите любую классическую реализацию Паскаля/Модулы/Оберона - и спросите: "на чем она сама сделана?" - ответом будет "На самой себе" (технические детали "раскрутки" можно прочесть в любой популярной литературе по теории компиляции). Так вот, из множества языков программирования по методу раскрутки (100% на самом себе) могут быть реализованы весьма немногие. В том числе - Паскаль и Си. Итак, с пунтами а) и б) целей создания Паскаля разобрались. Однако на практике язык стал использоваться и как язык системного программирования. В частности, в 70-х годах эксперименты по параллельному программированию на 50% строились на базе спец. диалектов Паскаля - Concurrent Pascal, Parallel Pascal и т.п. При этом, заметьте, я рассказываю пока только про Паскаль, который для этих целей не создавался. Едем дальше. Следующая остановка - Модула-2 (1980 г.). Язык, специально созданный для системного программирования. К 1976 году Вирт приходит к идее, что такой язык нельзя создавать "из головы", его следует разрабатывать параллельно с написанием реальной операционной системы и параллельно, в свою очередь, с разработкой новой аппаратной архитектуры. "Теоретиком", "академистом" Виртом с двумя коллегами в 1978-1980 г. была создана первая в Европе персональная рабочая станция Lilith с первым в Европе 16-разр процессором, растровым дисплеем, мышью, лазерным принтером и поддержой локальной сети. Под эту рабочую станцию создана графическая OS Medos, а под эту ОС - язык системного программирования Modula-2. Lilith & OS Medos - это европейский аналог известной Lisa из Xerox PARC и идеологический аналог C & Unix, ответ Паскаль-семейства. Что такое Модула-2? Это Паскаль спустя 10 лет. Отточенный синтаксис (в частности, неуклюжие "if then begin end else begin end; while do begin...", которые до сих пор используются в "самопальных" Паскалях от Борланда и прочих заменены на изящное написание "IF THEN ... ELSE ... END; WHILE DO END", без лишнего begin, но с обязательным end). Самое же главное - совершенная поддержка модульности, раздельной компиляции, разделения интерфейса и реализации. Такой поддержки модульности нет и не предвидится в mainstream-языках (в С++ модульности нет вообще, в Java и C# - жалкие на нее потуги). (Если вы не знаете, что такое "нормальная модульность", и что разбиение исходного кода на отдельные файлы - это отнюдь не модульность, то коротко "войти в тему" можете, прочитав эту статью: http://www.oberon2005.ru/qa191005.html.) Модула заслуженно получила распространения в самых серьезных областях системного программирования в Европе и СССР. При этом синтаксис языка, расширенный новыми возможностями, по сравнению с Паскалем стал не сложнее, а проще - описание языка уменьшилось с 64 до 48 страниц. Т.е. "системный" язык Модула не менее, если не более, пригоден для обучения программированию, чем его прославленный в педагогике предок. Почему мы мало знаем более современную и совершенную Модулу, чем Паскаль - отдельный разговор. Причина в том, что американская Borland, имевшая в 1983 г. свою реализацию Turbo Modula, из чисто маркетинговых соображений положила ее "под сукно" и решила развивать дальше свой "самопальный" Паскаль, "сдирая" для него средства то с новым виртовых языков, то с других языков вроде С++ - как Вы совершенно справедливо отметили про Борландовское ООП. (Впрочем, команда Модулы-2 отделилась от Борланд и создала свой высококлассный инструментарий для системщиков Top Speed Modula-2, который, кстати, применялся в ряде средних школ в конце 80-х в СССР). Прибываем на следующую станцию - Оберон (1987-1989). Опять же, язык создавался Н. Виртом и Ю.Гуткнехтом параллельно с разработкой на нем операционной системы под новую первую в Европе 32-разрядную рабочую станцию Ceres. Оберон на сегодняшний день объективно самый лучший язык для системного программирования. Опять же, своего рода "контр-С". Та же идеология компактного мини-языка, легко переносимого между платформами, только на идеях строгой типизации, модульности, безопасности указателей и автоматического управления памятью (сборка мусора, кстати, в Обероне реализована впервые среди компилируемых языков, задолго до Явы и Шарпа). Без этих качеств создание современных программных систем немыслимо (даже Microsoft сегодня разрабатывает новую OS Singularity иключительно на безопасном языке со строгой типизацией и сборкой мусора - C#). Точно так же, как С, Оберон исключительно эффективно компилируется и оптимизируется в машинный код. Отдельная песня - Оберон в СССР. В 1990 г. на основании знакомства с работами Вирта и его коллег из Цюрихского ETH в Новосибирском академгородке разработана первая в СССР 32-разрядная рабочая станция Кронос, с процессором, специально заточенным под язык Оберон. На базе Кроноса, Оберона и Модулы-2 МАИ и Новосибирском был начат революционный проект комплекса распределенных вычислений для нужд оборонки - МАРС ("модульные асинхронные расширяемые системы", http://start.iis.nsk.su/start.shtml, http://www.iis.nsk.su/pottosin/40/win/book00.html). В 90-х финансирование проекта, естетсвенно, закрыли. Однако новосибирцы продолжали работу и в середине 90-х разработали уникальный пакет оптимизирующих компиляторов для кроссплатформенной разработки - XDS Oberon & Modula-2. На состояние 1997 г. их компилятор Оберона превосходил по быстродействию оптимизированного кода все известные компиляторы С. Именно на XDS Modula-2 разрабатывается ПО для российской орбитальной группировки, космических войск и глобальной навигационной системы ГЛОНАСС. Сегодня бывшая компания XDS, ныне новосибирская Excelsior (см. http://excelsior-usa.com) разрабатывает собственную оптимизирующую реализацию Java, но пишет ее на Модуле-2 и Обероне (На Обероне можно эффективно реализовать Яву, а вот обратное - неверно). Вот такой вот язык Оберон образца 1989 года. Что он из себя представляет? Окончательно очищенный и вылизанный синтаксис Модулы-2, ряд исключенных устаревших средств, поддержка ООП на основе расширяемых типов данных, полная безопасность и сборка мусора, еще некоторые вроде бы незначительные, но мощные и неспроста введенные нюансы - и при этом его описание занимает 16 страниц. Язык становится мощнее, а синтаксис - гораздо проще, что, так же как и Модулу, делает промышленный Оберон еще более пригодным для образования, чем Паскаль. Но история Оберона не заканчивается в 1989 г. - она продолжается и по сей день, так как язык и операционная система Oberon открыли новое направление в ИТ - компонентное программирование. В Обероне была введена поддержка динамической загрузки модулей. Т.е. модуль программы не линкуется статически в исполняемый файл, а может быть добавлен, загружен, использован и выгружен прямо на этапе работы системы. Модуль языка становится мини-приложением, свободно распространяемым компонентом. В 1993 г. ученик Вирта Михаэль Франц защитил диссертацию "Динамическая кодогенерация - ключ к переносимому программному обеспечению". Его идея - распространять приложения в промежуточном коде, который прямо перед выполнением преобразуется в машинный, как это делает сегодня .NET. Франц реализовал систему Juice Интернет-апплетов на Обероне на базе своей технологии. В 1993 г. SUN выписывает из ETH диссертацию Франца, приобретает копию OS Oberon - а в 1994 г. появляется Ява (только использовать кодогенерацию по Францу они не рискнули, поставили древний P-код и интерпретатор). Не будем преувеличивать, что Ява "содрана" с Оберона - нет, на нее оказали влияние и Smalltalk, и Objective C, но влияние и "первенство" идей очевидно. А что же на родине Оберона, в Швейцарии? Цюрихский технлогоический университет - это одна из сильнейших в мире научная школа системного программирования (http://www.jg.inf.ethz.ch), кузница идей и кадров для мировой ИТ-индустрии. Сегодня Оберон - это 6 оригинальных языков программирования, ориентированных на системные и прикладные задачи (Oberon, Oberon-2, Component Pascal, Active Oberon, Zonnon, только недавно опубликованный Composita). Это - более 10 операционных систем, используемых в европейской науке и промышленности ("университетские" Oberon, Oberon System 3, ETH Oberon, Oberon V4. Между прочим, все - полноценные интерактивные графические. Самая современная с ориентацией на многопроцессорные системы и векторным GUI - OS BlueBottle. Промышленные ОС жесткого реального времени, применяемые в европейской промышленности, робототехнике и т.п. - XOberon, XO/2, JBed). Microsoft, чуя куда ветер дует, вкладывает в ETH немалые гранты, а сама параллельно делает в своей Research Group экспериментальную OS Singularity по мотивам обероновских идей. В европейской науке и образовании Оберон-системы очень распространены. В частности, в швейцарских университетах, наряду с Linux, настольная система - ETH Oberon (надо ли говорить, что Windows в Европе сегодня, мягко говоря, не приветствуется). Оберон используют австрийские и немецкие университеты. Свою реализацию Оберона, используемую в качестве второго языка для обучения программмированию (первый у них - функциональный Хаскель), имеет Oxford (http://spivey.oriel.ox.ac.uk/mike/obc/). Цитата: второе преимущество, за счет которого появились и весьма успешно живут Java и C# состоит в грамотной модульности, в классах и прочей такой мишуре, которая позволяет эффективно разрабатывать и править большие проекты. ... и вряд-ли Оберон или Паскаль когда-нибудь достигнут такого уровня. они не сильно отличаются от C своей производительностью, копируют грамотные идеи с C-подобных языков с отставанием в несколько лет и поломкой старого синтаксиса По поводу модульности, если читали текст выше и ходили по ссылке, уже, я думаю, все ясно. По поводу "копирования" - то же самое. Увы, Вы совершенно правы относительно Object Pascal & Delphi в этом смысле. Но теперь уже, надеюсь, ясно, что Delphi - это совершенно другая басня, нежели действительно современные Паскали в лице Оберонов. В целом, наблюдается скорее обратное - неряшливое заимствование в Java & C# идей из Оберона. При этом, хотя языки перенасыщены второстепенными возможностями и на порядок более громоздкие, некоторых Оберона средств там нет - и нет возможности использовать целый ряд мощных архитектурных приемов. При этом упорно оставляется за бортом поддержка модульности. В Оберонах класс - это всего лишь тип данных. Вся архитектура построена на модулях и их коммутации (статической и динамической). В Яве и Сях модулей нет, и их приходится эмулировать за счет тех же классов. В результате понятие класса там разительно отличается от классического ООП (Smalltalk Алана Кея), оно перегружено множеством дополнительных семантических оттенков. Преподавая программирование в ВУЗе на Яве или Шарпе, вы не сможете наглядно показать ни правильную модульность, ни правильное ООП, там "смешались в кучу кони-люди". Цитата: Я думаю, перспективы Oberon, как промышленного языка программирования из этой статистики очевидны. ... и вряд-ли Оберон или Паскаль когда-нибудь достигнут такого уровня. ... а профессионалы в большинстве своем будут разрабатывать продукты на C-подобных языках как в области бизнес-приложений, так и в научных программах типа моделирования процессов, где нет места не то что оберону Паскалям не нужно "достигать такого уровня", он уже используется в таких задач, в которых С-семейству места просто нет. Опять же, под Паскалями я понимаю современные ветки этого языка - Оберон, Модула-2, Ада. Это не бухучеты и не офисы. Это совершенно иная область - критичные системы реального времени (слышали про такие?). В ряде западных стран в этой области С и его производные законодательно запрещены к использованию. Ада уже более 20 лет - основной язык оборонных и космических проектов США. (Правда, ПО для плачевно прославившегося марсохода попробовали писать на Яве - результаты всем очевидны). Оберон в 2006 г. принят Европейским консорциумом безопасности гражданской авиации как основной язык для задач авиации. Ряд европейских систем управления автомобильным и железнодорождным движением написан на Обероне либо Аде. 3/4 российских спутников разрабатываются НПО им. Решетнева (http://www.npopm.ru/), и весь софт - на Модуле-2 (http://www.inr.ac.ru/~info21/texts/aakmodula2.htm). Основной язык для совместных ядерных проектов Института ядерных исследований РАН и Европейского центра ядерных исследований CERN - это Оберон (в варианте Компонентного Паскаля и среды BlackBox, см. http://oberoncore.ru/index.php?option=c ... &Itemid=26). Российские беспилотные разведывательные комплексы (ГРАНТ, БРАТ), известные по антитеррористическим операциям, управляются софтом, написанным на Паскале (сейчас они переводятся на Оберон, см. http://oberoncore.ru/index.php?option=c ... &Itemid=26). Я думаю, больше примеров не надо, картина ясна. Основная особенность области критичных встроенных систем - там сбой в ПО невозможно помыслить. Это полностью ставит крест на С и его производных. Вы много рассуждали о "современности и применимости", теперь уйдите от "тепличных условий" своей персоналки к реальной жизни программ, живущих в реальном времени и пространстве в рамках реальной железной техники - и тут же станет очевидной непригодность mainstream-языков для таково вот "реального программирования". Паскаль-системы в этих жестких условиях чувствуют себя как рыба в воде. Явы, Си, Бейсики и Питоны - нет. Далее. Что касается обычного, привычного нам программирования. Вы можете себе представить, что рабочие программные системы в сотни тысяч строк кода объемом могут быть созданы с трудозатратами порядка 10-15 человеко-лет? Мы, те, кто профессионально работает на Обероне, можем. Это наши будни. (Тут вон на форумах по поводу перспектив разработки отечественной ОС идёт истерия, что "это десятки тысяч человеко-лет, нам нереально догнать Запад".. На американских же модных технлогиях нереально. На мощных и простых идеях - вполне). Более того, вы можете представить себе, что эти сотни тысяч строк написаны и отлажены без использования пошаговой отладки, которой в Оберонах нет как факта? Просто потому, что 95% ошибок, которые сегодня делаются в индустрии, вообще не должны доживать до первогг запуска программы. Они должны отсеиваться на этапе грамотного кодирования (с формальным синтезом, а при необходимости - и формальной верификацией алгоритмов) - и, что самое главное применительно к мелким ошибкам уровня опечаток, - на этапе компиляции компилятором. Именно затем и именно для того формализм. Именно затем и именно для того такие концепции, как, к примеру, строгая типизация (которая является одним из "китов" современного системного программирования). Сегодня-завтра российское высокотехнологичное ИТ начнет выбираться из аутсайдеров. И нужны кадры, нужны грамотные программисты с правильно поставленными мозгами, которые способны работать на порядок быстрее и качественнее сегодняшних самоучек-лабухов "с бубнами". А вы здесь, как в пещерном веке, воюете против строгой типизации, которая уже давно аксиома для серьезного программирования. И предлагаете учить детей на языке типа Visual Basic, который позволяет ребенку легко доказать, что корень из четырех - это пять: Цитата: Private Sub CommandButton1_Click()
Dim z As Double, n As Integer x = TextBox1.Value y = TextBox2.Value z = Math.Sqr(x + y) n = z MsgBox (n) End Sub С самых первых шагов в программировании инструмент (язык, среда и т.п.) должны рассматриваться не как волшебный сундук с уймой фич, свисточков и звоночков, а как средство борьбы со сложностью задач. Вы же предлагаете добавлять еще и рукотворных сложностей, приучать детей к собственным, внутренним уродствам массового ИТ... Массовое ИТ сегодня - это постоянный компромисс с совестью - т.е. с качеством, с концептуальной простотой и т.п. - в угоду бешеной скачке за сверхприбылью. Для серьезной индустрии и ответственных задач характерна такая же строгость и формализм, как и для столь нелюбимой вами "академии". Другой вопрос, что программисту-слесарю "сопромат" не нужен... Но слесарей и так предостаточно, зато острая нехватка грамотных системщиков и прикладников экстра-класса. Не из "бурной фантазии", а из конкретных сображений подготовки кадров для российской науки и стратегических отраслей и родился проект Информатика-21 (http://www.inr.ac.ru/~info21), с его "базовой системой обучения программированию на основе Компонентного Паскаля". (См. доклад "Система образования как фактор национального суверенитета в сфере ИТ", http://oberoncore.ru/index.php?option=c ... &Itemid=11, см. там же мою статью "Проблема подготовки ИТ-профессионалов. Спецкурс программное конструирование"). |
Автор: | Штирлиц [ Среда, 16 Май, 2007 11:59 ] |
Заголовок сообщения: | |
Все правильно. Дело осталось за малым: Прекратить порочную практику написания кода в BlackBox типа этого: msg: Controllers.TrackMsg DO v.x := msg.x; v.y := msg.y; v.context.GetSize(w, h); v.Restore(f, 0, 0, w, h); REPEAT f.Input(x, y, m, isDown); IF (x # v.x) OR (y # v.y) THEN v.x := x; v.y := y; v.Restore(f, 0, 0, w, h) END UNTIL ~isDown; И поднять (в среднем) зарплату Оберонщиков до $2000-$3000 http://www.youthcareer.ru/vacancies Тогда есть шансы победить |
Автор: | Trurl [ Среда, 16 Май, 2007 12:02 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Илья Ермаков писал(а): Недавно на PEDSOVET.ORG произошел очередной спор между паскалистами и цеплюсистами... Как всегда, пошли в ход кухонные мифы об "академичности и практической бесполезности Паскаля" - ну и т.п., все это знакомо нам всем
ДДС. Вроде взрослые люди, а рассуждают как студенты-кулхацкеры, начитавшиеся коипьютерных журналов. |
Автор: | batyrmastyr [ Среда, 16 Май, 2007 18:23 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Trurl писал(а): Илья Ермаков писал(а): Недавно на PEDSOVET.ORG произошел очередной спор между паскалистами и цеплюсистами... Как всегда, пошли в ход кухонные мифы об "академичности и практической бесполезности Паскаля" - ну и т.п., все это знакомо нам всем ДДС. Вроде взрослые люди, а рассуждают как студенты-кулхацкеры, начитавшиеся коипьютерных журналов. Уверен, именно что начитались журналов типа "Ламер++", т.к. сам года 2-3 назад смотрел такими же восторженными глазами на С# и верил в аргументы за С++. Но на этой ветке еще ничего, вот здесь уже хуже http://pedsovet.org/forum/topic2294.html |
Автор: | Штирлиц [ Среда, 16 Май, 2007 19:21 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
batyrmastyr писал(а): Но на этой ветке еще ничего, вот здесь уже хуже http://pedsovet.org/forum/topic2294.html
А что вы хотите? Образование в нашей стране практически разрушено. Научные школы в руинах. Чиновники рвутся в Академию Наук. Серость пока побеждает. Будет еще хуже... |
Автор: | slava [ Среда, 16 Май, 2007 19:45 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
batyrmastyr писал(а): Но на этой ветке еще ничего, вот здесь уже хуже http://pedsovet.org/forum/topic2294.html В конце просто добили: Цитата: Кстати, Компонентный Паскаль уже вместо очевидных и логичных фигурных скобок (begin - end) использует чисто бейсиковский оператор закрытия - end.
|
Автор: | batyrmastyr [ Среда, 16 Май, 2007 22:02 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
slava писал(а): В конце просто добили: Цитата: Кстати, Компонентный Паскаль уже вместо очевидных и логичных фигурных скобок (begin - end) использует чисто бейсиковский оператор закрытия - end. Не это "добили",а буквально- второй пост Цитата: На воросы отвечает ведущий программист фирмы Intelsys, мой старший сын
"1) Я считаю, что надо преподавать именно .NET языки., то есть VB.net или C#.Net. Отличие платформы .Net от старых языков (фортран, pascal) и более современных сред разработки (deplhi, visual basic 6.0) в очень богатой библиотеке классов, такой библиотеки никогда раньше еще не было, собственно на примерах ее использования ученики гораздо лучше поймут программирование, чем на избитых сортировочках и задачках для работы с массивами, которые не имеют никакой практической ценности и ничего не вырабатывают в плане навыков программирования. Просто подобного VS 2005 раньше и не было, VS 2003 и рядом не стояла, это обьективно лучшая среда разработки на сегоднящний день. 2) По-поводу интерфейса это вредно на мой взгляд, потому что название классов и методов библиотек вы не переведете, язык тоже не переведете и англйиский язык дейтсвительно подходит для этого лучше, так что детям надо сразу осваивать на англйиском, небольшая заминка вначале, но потом словарный запас будет расти как снежный ком, я это знаю по себе. 3) Я считаю правильно "болтают", преподавать Pascal, особенно пускать его примеры с VGA графикой, написанные для 90 годов в нашем 2007 это смешно. Ничего кроме отвращение у детей к программированию такой подход вызвать не может. В то время как на VS 2005 они могут буквально все и очень легко. 4) Тут я бы хотел высказать пару своих мыслей . Вообще сейчас программирование очнеь далеко шагнуло, то есть поверхностное знакомство с технологиями типо ООП, ничего не дает оно бесполезно, дети все равно не почуствуют что это такое (да и уважаемые преподаватели это не чувствуют), что касается циклов ифов и т.д их тоже не надо давать обычному ребенку, не все могут быть программистами и слава богу. Это не нужные навыки детям. Менеджеру не нужно писать программы и программровать макросы менеджер тоже не будет. Лично мне никто не обьяснял программирование и всем моим коллегам тоже мы сами это все осваивали, и сейчас продолжаем соваивать - это такая профессия. Поэтому программирование в школьной программе может быть только факультативно. " Такие вот они- ведущие програмисты. Болото-лучшее место куда они заведут |
Автор: | Борис Рюмшин [ Четверг, 17 Май, 2007 10:32 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Штирлиц писал(а): batyrmastyr писал(а): Но на этой ветке еще ничего, вот здесь уже хуже http://pedsovet.org/forum/topic2294.html А что вы хотите? Образование в нашей стране практически разрушено. Научные школы в руинах. Чиновники рвутся в Академию Наук. Серость пока побеждает. Будет еще хуже... Откуда такой пораженческий настрой? А мы чем занимаемся? |
Автор: | Борис Рюмшин [ Четверг, 17 Май, 2007 10:33 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
batyrmastyr писал(а): Такие вот они- ведущие програмисты. Болото-лучшее место куда они заведут
Ну вот и будем таких гонять |
Автор: | Wlad [ Четверг, 17 Май, 2007 10:49 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
batyrmastyr писал(а): Цитата: На воросы отвечает ведущий программист фирмы Intelsys, мой старший сын ... Блин, после таких слов "ведущих программистов", даже какой-то нехороший холодочек "в грудях"... Непонятно, кого жалеть? - то ли Intelsys, то ли сына этой особы, то ли нас всех?... А ведь таких "ведущих" всё больше и больше... "И имя им - легион"... |
Автор: | Штирлиц [ Четверг, 17 Май, 2007 18:26 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Борис Рюмшин писал(а): Штирлиц писал(а): batyrmastyr писал(а): Но на этой ветке еще ничего, вот здесь уже хуже http://pedsovet.org/forum/topic2294.html А что вы хотите? Образование в нашей стране практически разрушено. Научные школы в руинах. Чиновники рвутся в Академию Наук. Серость пока побеждает. Будет еще хуже... Откуда такой пораженческий настрой? А мы чем занимаемся? Вас к сожалению мало. |
Автор: | Борис Рюмшин [ Четверг, 17 Май, 2007 23:22 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Штирлиц писал(а): Борис Рюмшин писал(а): Штирлиц писал(а): batyrmastyr писал(а): Но на этой ветке еще ничего, вот здесь уже хуже http://pedsovet.org/forum/topic2294.html А что вы хотите? Образование в нашей стране практически разрушено. Научные школы в руинах. Чиновники рвутся в Академию Наук. Серость пока побеждает. Будет еще хуже... Откуда такой пораженческий настрой? А мы чем занимаемся? Вас к сожалению мало. Присоединяйтесь - будет больше. |
Автор: | Info21 [ Пятница, 18 Май, 2007 22:17 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Trurl писал(а): ДДС. Вроде взрослые люди ...
Мужчина взрослым становится к 30, и то не каждый. Там помоложе были. А что такое ДДС? Только ДВС помню |
Автор: | Info21 [ Пятница, 18 Май, 2007 22:21 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
Штирлиц писал(а): Вас к сожалению мало.
Что ли тельняшки завести, чтоб сумнений не возникало у народа? |
Автор: | Trurl [ Суббота, 19 Май, 2007 19:33 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
info21 писал(а): А что такое ДДС?
Это известное в 80-х учреждение Детский Дурдом «Солнышко». |
Автор: | Wlad [ Воскресенье, 20 Май, 2007 22:42 ] |
Заголовок сообщения: | Re: История Паскаль-семейства в кратком изложении |
info21 писал(а): Штирлиц писал(а): Вас к сожалению мало. Что ли тельняшки завести, чтоб сумнений не возникало у народа? Есть риск заиметь репутацию "митьков" в программировании... :о) |
Автор: | PGR [ Понедельник, 04 Июнь, 2007 20:26 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): И предлагаете учить детей на языке типа Visual Basic, который позволяет ребенку легко доказать, что корень из четырех - это пять:
Цитата: Private Sub CommandButton1_Click() Dim z As Double, n As Integer x = TextBox1.Value y = TextBox2.Value z = Math.Sqr(x + y) n = z MsgBox (n) End Sub Ещё "доказательство", но на С# Код: class Test
{ static void Main() { double d, r; r = 3; d = 1/2*r; System.Console.WriteLine("{0}",d); } } |
Автор: | Wlad [ Вторник, 05 Июнь, 2007 10:26 ] |
Заголовок сообщения: | |
PGR писал(а): Ещё "доказательство", но на С#
Код: class Test { static void Main() { double d, r; r = 3; d = 1/2*r; System.Console.WriteLine("{0}",d); } } Просто - волосы - дыбом! Для "спасения положения", почему-то требуется: d = (double)1 / 2 * r; или d = 1 / (double)2 * r; Посмотреть бы в глаза тому, кто этот компилятор реализовывал... Так ведь можно и офигеть до бесчуствия, ища в какой-нить чисто "числомолотильной" системе с огромными выкладками почему "не сходится"... |
Автор: | Илья Ермаков [ Вторник, 05 Июнь, 2007 12:35 ] |
Заголовок сообщения: | |
Вроде бы эта вещь еще с С++ тянется. Сначала идет целочисленное деление, и только потом - подъем до double и умножение. Обычно пишут 1 / 2.0. |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |