Пользователь
0,0
рейтинг
8 сентября 2012 в 01:24

Баллада о Turbo Pascal или 20 лет без перемен

Баллада о Turbo Pascal или 20 лет без перемен

    Тихо и незаметно прошла первая неделя нового учебного года. Хоть я уже и давно закончил школу, а своих детей школьного возраста пока нет, я все равно волей-неволей задумываюсь о начале учебного года. И вызвано это отнюдь не засильем детей в школьной форме на улицах: я очень редко выхожу из дома.
    Причина, из-за которой я вспоминаю, что началась осень довольно необычна — я замечаю на форуме моей локальной сети свежую тему, кочующую из года в год, всплывающую порой в самых неожиданных разделах этого форума. Если сформулировать эту тему, то получится всего 4 слова, отражающих всю безысходность ситуации с компьютерным образованием на просторах бывшего СССР, звучит она так: «Где взять Turbo Pascal?»


    То, что я решил наконец написать об этом явлении далеко не случайно — не знаю точного числа и месяца, но именно в 2012 году среде Turbo Pascal 7, которая широко используется во всех учебных заведениях на постсоветском пространстве, стукнуло 20 лет. Именно в 1992 году вышла версия 7.0, которая на два десятилетия вперед определила начало пути для тысяч будущих программистов, а скриншот ниже запечатлелся в памяти, наверное, миллионов людей.



    Спустя еще 2 года вышла версия 7.1, содержавшая некоторые исправления, но на этом развитие среды разработки остановилось. Вот уже 18 лет по одной шестой части суши кочует архив с файлами, который помещается на пару дискет — этот тот самый злополучный TP7.zip (с небольшими вариациями в имени файла). Мне неизвестен другой программный продукт, обладающий такой же переносимостью — наверняка даже сами разработчики не представляли, что их детище будет работать на чем-то старше Windows 95. Даже Java, появившаяся несколькими годами позже и исповедующая принцип «скомпилировано однажды работает везде» выглядит уже не так оригинально на фоне этой скромной IDE.

    В начале Turbo Pascal шустро работал под Dos, Win 3.11 и Win95, спокойно перешел на Windows 98 и Me. Затем появились первые проблемы с запуском под Windows XP, но TP было уже не остановить — он стал образовательным мейнстримом, он работал под всем, под Windows Vista, Windows 7. Я не удивлюсь, если в следующем году тысячи людей буду запускать bp.exe уже под Windows 8. А может быть под Linux, используя DosBox(радостно обнаруживая, что сочетание Ctrl-F9 закрывает эмулятор).

    Еще 15 лет назад Turbo Pascal был хорошей средой для обучения, но теперь это скорее показатель того, насколько сильно может быть нежелание изучать что-то новое. И дело тут даже не в паскале: существуют современные среды для обучения программированию на этом языке, вроде FreePascal и PascalABC. Дело не в политике: в России и Украине ситуация практически одна и та же. Дело даже не в строгости школьной программы — мне попадались классы, где обучение велось на С или Python. И, в конечном счете, дело даже не в классе учебного заведения — до их пор существуют ВУЗы, напрямую связанные с ИТ, где Turbo Pascal используется как основной рабочий инструмент.

Завершая этот краткий обзор, хочу представить альтернативы для Turbo Pascal, которые можно использовать в учебном процессе.

1) FreePascal — бесплатный компилятор паскаля, отвечающий современным требованиям и обладающий средой разработки 1 в 1 похожей на Turbo Pascal, что делает возможным использования большей части методической литературы, написанной для последнего. Работает под Windows и Linux.



Рекомендуется как самый простой способ замены Turbo Pascal. Отсутствуют проблемы с лицензией.
Сайт русскоязычного сообщества http://www.freepascal.ru/



2) PascalABC — удобная среда разработки, работающая под Windows. С 2007 года разрабатывается версия PascalABC.net — та же среда, но написанная с использованием технологии .NET. Для старых компьютеров рекомендуется использовать версию без .NET. На мой взгляд, это самая удачная система для обучения программированию, которую можно найти.


Система создавалась на факультете математики, механики и компьютерных наук ЮФУ как учебная среда программирования. С лицензией проблем нет.
Сайт разработчика: http://sunschool.math.rsu.ru/pabc/



3) Lazarus — среда разработки, использующая компилятор FreePascal, но при этом поддерживающая разработку современных оконных приложений. Позиционируется как совместимая с Delphi, но учебный материал, написанный для последней, применим не всегда. Интерфейс более сложен по сравнению с IDE FreePascal. Рекомендуется использовать при достаточной квалификации преподавателя и понимании им того, чему именно он хочет научить своих учеников.



Проблем с лицензией нет.


Вот пожалуй и все. Остается только пожелать недавним абитуриентам, чтобы описанная здесь проблема их не затронула.
@PerlPower
карма
109,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (189)

  • +34
    А у PascalABC.NET еще и браузерная версия есть: pascalabc.net/WDE/
    Что только не сделают, лишь бы Си не учить :)
    • +25
      И не зря. В Си можно допустить слишком много глупых ошибок, которые вполне способны отбить охоту к программированию.
      • +5
        C закаляет и учит человека, чтобы тот в будущем не делал таких глупых ошибок.
        • +3
          Да, но для того, чтобы выучиться, требуется хотя бы найти эту самую ошибку…
        • +3
          C прививает некоторые особенности синтаксиса, которые потом переносятся и на другие ЯП.
          Например, if ( 42 == foo ) вместо if ( foo == 42 ). Хорошо это или плохо, решает каждый за себя, но при начальном обучении, имхо, лучше выбирать язык, в котором сложнее выстрелить в ногу.
          • +2
            Молчаливое минусование это круто :)

            Я лишь высказываю точку зрения, что для первоначального обучения программированию больше подходят языки вроде Pascal (FreePascal), Python, возможно Ruby.
            • +8
              Как человек прошедший огонь ASM'а, С и медные трубы С++ и пописывающего на старости лет на Руби могу рекомендовать его (Ruby) только в качестве третьего или четвёртого языка. Или в виде спецкурса…

              Первый язык для профессионального программиста, я считаю, должен быть строго типизированным и тем самым с самого начала приучать к дисциплине…

              Учить программированию на динамических языках — это примерно как обучать вождению на бульдозере… Ездить конечно научится, но что это за стиль будет… Питона это кстати тоже касается…

              В качестве хобби можно конечно учить всё что угодно, но для профессиональных кадров однозначно не подходит…
              • +4
                статически строго типизированным, я считаю.
              • +4
                Учить поначалу начинают общим принципам, структурам данных и алгоритмов.

                Мне довелось писать (больше, чем HelloWorld конечно) на asm (tasm, masm), pascal/delphi/modula2, C/C++, perl, php, python, javascript, и всякие lisp (+clips), bash(awk). И со своей колокольни считаю, что C/C++ — не лучший выбор для первого языка. Со строгой статической типизацией — да, C — нет. И тут остается не так много распространенных вариантов.
                А то что я привел в пример Руби — очень уж часто его приводят именно как учебный язык. Но оставлю это решение на откуп тем авторам.

                P.S. С был моим 4м в порядке изучения языком. Так что это не мнение, основанное на детском шоке от первого языка :)
              • 0
                Соглашусь, что руби не может быть первым языком: слишком много ада и угара скрывается за каждым углом. Даже больше, чем в си. Кроме того, научившись писать на руби, писать на чем-то другом ты уже не сможешь, потому что не будешь знать про цикл for, и про то, как обойтись без блоков.

                А вот питон, как мне кажется, для обучения — в самый раз. Особенно, если цель — не обучить программированию, а дать почувствовать его вкус (а в школе оно именно для этого).

                Насчет строгой типизации я бы не был столь категоричен. Рубисты, например, ругаются, когда видят написанный на любимом языке, код в стиле джавы. Потому что это плохой, раздутый и не идиоматичный код для ruby. Один стиль хорош для языков со статической типизацией, и совсем другой — для языков динамических.
            • НЛО прилетело и опубликовало эту надпись здесь
              • +1
                LISP и производные хорош для развития и решения некоторых задач. Но в качестве первого ЯП при обучении, на мой взгляд, нужно выбирать ЯП, код которого больше похож на устную/письменную речь. Цель — учащиеся могут проговаривать своими словами действия, которые потом опишут терминами и синтаксисом конкретного ЯП.
          • +3
            Поясните, пожалуйста, зачем понадобилось это 42 == foo? Сколько программирую на си, не встречал такого. Если для того, чтобы не перепутать с одиночным знаком равенства, то достаточно просто включить ворнинги, и компилятор сам покажет, где с вероятностью есть ошибка. А 42==foo — это джедайство какое-то, IMO.
            • +5
              Как раз именно перенос константы в левую часть выражения, чтобы нельзя было даже скомпилировать присвоение (ошибка на этапе синтаксического разбора, как понимаю). Частенько с подобным сталкивался. Возможно, это пошло с компилирования больших приложений, где и так масса варнингов и еще один просто не заметят…
            • +2
              Мне тоже неприятно читать такое «джедайство», и я по возможности стараюсь избавляться от этих артефактов в приектах, где принимаю участие, одновременно включая побольше варнингов и -Werror. Но справедливости ради надо отметить, что компиляторы были такими умными не всегда (генерировали варнинг), а ошибке этой примерно столько же лет, сколько и языку C. Многие пишут так сравнения просто в силу привычки.
              • 0
                Соберите из исходников хоть один серьезный *nix проект на C/C++. От числа варнингов, к сожалению, мельтешит в глазах. C'est la vie, так сказать.
                • +1
                  Конечно. Поэтому у нас каждый подпроект обычно (чаще всего мной) вычищается до некоего максимума (когда исправления дальнейших варнингов уже чревато ошибками: обычно это связано с alignment и прочими проблемами двоичной совместимости), а в Makefile устанавливается текущий «уровень чистоты» и -Werror, чтобы предотвратить появления новых варнингов. Вот кусочек файла Mk/obj.mk в одном из наших проектов (GNU make, проект линуксовый):

                  # To encourage people to fix build warnings, expose them at the highest level
                  # by default, so GCC will complain.  To make them non-fatal, define NO_WERROR
                  # in particular Makefile for the broken code (or better fix it).
                  #
                  WARN_LEVEL?=    4
                  CONFORMANCE?=   gnu89
                  
                  # GCC warning levels, borrowed from FreeBSD's /usr/share/mk/bsd.sys.mk
                  #
                  ifdef WARN_LEVEL
                  CWARNFLAGS=     -std=$(CONFORMANCE) -pedantic -Wno-variadic-macros
                  ifndef NO_WERROR
                  CWARNFLAGS+=    -Werror
                  endif
                  ifeq (1,$(shell expr $(WARN_LEVEL) \>= 1))
                  CWARNFLAGS+=    -Wall
                  endif
                  ifeq (1,$(shell expr $(WARN_LEVEL) \>= 2))
                  CWARNFLAGS+=    -Wextra -Wno-unused-parameter -Wstrict-prototypes \
                                  -Wmissing-prototypes -Wpointer-arith
                  endif
                  ifeq (1,$(shell expr $(WARN_LEVEL) \>= 3))
                  CWARNFLAGS+=    -Wreturn-type -Wcast-qual -Wwrite-strings \
                                  -Wswitch-default -Wshadow -Wcast-align -Wbad-function-cast
                  endif
                  ifeq (1,$(shell expr $(WARN_LEVEL) \>= 4))
                  CWARNFLAGS+=    -Wunused-parameter -Winline -Wnested-externs \
                                  -Wredundant-decls -Wunreachable-code
                  endif
                  CFLAGS+=        $(CWARNFLAGS)
                  endif
                  • 0
                    Это отлично, что есть такие ответственные разработчики. Сборка с высоким уровнем предупреждений, еще хорошо бы прогон статическими анализаторами… Но пока, увы, так не повсеместно, и «инверсный» вариант сравнения имеет смысл.
          • –2
            Я считаю, что 42= foo есть ни что иное, как индусский код, или если точнее, то код стран которые пишут справа на лево. Вы уж простите, но мы (россия/украина/снг) читаем слево-на-право, и код foo=42 выглядит более понятно и естественно. Имхо конечно.
            • +2
              Это решение проблемы, благодаря которой код 42=foo даже не соберется, а код foo=42 придется дебажить/просматривать глазами, чтобы найти ошибку.
              Тут вопрос не в направлении чтения, а применении костыля для решения проблемы синтаксиса ЯП. То, что операция присвоения сама является операндом — это и достоинство и недостаток языка.

              • 0
                Ааа, в этом плане, конечно, согласен. Просто не сразу понял мысль.
          • 0
            Например, Ада
            • 0
              Все-таки в Аде, насколько я себе представляю, больше от Паскаля/Алгола.
              На той же Вики:
              … разработчикам было предложено базироваться на одном из трёх языков: Паскаль, Алгол-68 или PL/1.
              Из представленных на конкурс 15 проектов было отобрано 4 (все основаны на Паскале).
              • 0
                вроде того. Зато в ногу себе не выстрелишь )
                • 0
                  Одно из достоинств этого семейства ЯП.
      • 0
        Тяжело в учении — легко в бою!
    • +4
      OMG, мои глаза image
      • +6
        Нужно надеть специальные очки
      • +11
        А теперь Паскаль 3D. Новые похождения синего поинтера на планете хип!
    • +1
      Си нужно учить как инструмент для доступа к куче быстрых библиотек низкоуровневых API напрямую. Где-нибудь там в курсе про операционные системы.

      Учить си как первый язык, и тем более обучать на нем основам программирования — бред же.
      • 0
        Ну почему сразу бред? Си вполне успешно можно преподавать начинающим; никаких особых проблем заменить ими паскаль в моей преподавательской практике не возникало. Хотя надо сказать, что дети были в целом продвинутыми и обычно уже немного знали какой-нибудь условный «бейсик» к тому времени.

        Си, конечно, остается «портабельным ассемблером», но обучать на нем алгоритмам очень даже можно. Один мой товарищ как-то хорошо описал чувства, которые иногда при этом испытываешь как преподаватель.
        • +1
          Если речь о выборе между паскалем и си — я однозначно на стороне си. Языки различаются по сути только синтаксисом. Синтаксис о обоих — туши свет, но си при этом настолько более распространен, что выбор однозначно в его пользу.

          Мне в целом не ясно зачем начинать учить программировать с чего-то такого древнего и низкоуровнего.

          Вот есть тот же SICP — прекрасное введение в программирование, одно из лучших по глубине раскрытия темы. Там используется scheme. Отличный пример как можно начать учить программированию не с си или паскаля и что при этом получается.

          Если SICP — слишком круто, то можно зайти с другой стороны: студентам все равно ведь нужно лабы будет делать, курсачи, да и работать потом. Можно дать для начала какую-нибудь java, C# или питон — они и практически полезные, и проще си.

          Если речь идет о курсе, близком к математике — может быть студентам хаскель будет более понятен и полезен. А он до кучи очень здорово перекликается с курсом математики.

          Си — нужный, полезный инструмент, и его конечно надо учить, но потом, и только программистам.
          • 0
            Я учил, конечно, Паскаль. Я кодил на нем в паре с ассемблером, и думал, что я просто бог, и могу абсолютно все. Нет, правда, вплоть до написания аналога виндов 3.11, вполне реально оценивал возможности в одиночку.

            Так, как я не программист, я так и продолжал писать какие-то там тулзы на Паскале (Free, Virtual, Delphi) до недавнего времени. А тут, не так давно, стало интересно ковырять один девайс под названием Vogue Player. Это такой вкладыш был в журнале Vogue, который проигрывал видео, по сути — обычный дешевый китайский медиа-плеер.

            Так вот, там все на Си. Что хочу сказать — читать его вообще не составляет проблем (понимать что есть что). А потом я попробовал на нем писать. И я открыл для себя чистый Си! Блин, как же это удобно, это сродни, даже не знаю… Что-то между ассемблером и низкоуровневым языком, можно кодить без лишних фраз, кратко и ясно. Без тонны лишних фраз и тд.

            Но в итоге, я остался привержен Паскалю. Потому как, просто тупо не привык стандартным функциям и процедурам. В Паскале я пишу не задумываясь вообще над синтаксисом, пишу только алгоритм. На Си все-таки приходится многое гуглить. Но Си — это язык который однозначно крут прост и в то же время очень мощен. Имхо.
  • +5
    А может быть под Linux, используя DosBox(радостно обнаруживая, что сочетание Ctrl-F9 закрывает эмулятор).

    В Linux он отлично живет в виде FPC (Free Pascal Compiler) и вроде бы ничем не отличается от TP7
    • +5
      И по сему не является решением поднятой в статье проблемы того, что «дети уже 20 лет учат одно и то же, лучше пусть учат что то более свежее».
      • +32
        А зачем? Для обучения именно программированию (вообще) вполне достаточно TP7.
        Точно так же, как для обучения арифметике достаточно учебников 1950-х годов.
        В Java/.net/php/js модные плюшки меняются каждые 2-3 года, выходят новые библиотеки, каждые 5-10 лет меняются парадигмы.
        Только вот начинать нужно с устного счета, с того, что 2+2 = 4, а 2+3 = 5.
      • 0
        Дети уже несколько веков начинают изучать математику с натуральных чисел. Пусть лучше изучают поверхностные интегралы сначала.
    • –7
      В линуксе для FPC нет IDE, выглядящей как TP
      • –4
        Что, конечно же, не явяется проблемой, т.к. либо язык нужно закапывать, либо использовать современные оболочки.
      • +5
        Может я чего то не понимаю, но внешний вид среды разработки FPC и TP я например сходу без внимательного чтения содержимого менюшек не отличу.
        • 0
          Хм. Посмотрел сейчас, действительно есть IDE под Linux. Что-то я тогда её не увидел, и пришлось пускать TP в DosBox
  • +2
    И, мое мнение, сажать первоклассника сразу за Java или Virtual C++ не есть совсем уж хорошо. Вполне логичным мне кажется начинать вообще с LOGO и двигать в нем черепашку, приучать мозг, что компьютеру даешь команду, а он ее выполняет. Потом и в паскаль заглянуть можно, что бы увидеть, что большая часть программирования все же происходит больше в математике и алгоритмах, чем в наборе команд. А в старших классах уже и Delphi/Java/C++ можно, ведь ученик уже понимает базовые принципы программирования и сможет их применить в куда более сложном (чем паскаль) для освоения интерфейсе того же Eclipse.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        К слову, с помощью Java/C# тоже можно было бы учить детей в школе, будь для них какая-нибудь распространённая графическая библиотека с элементарным API навроде Logo или паскалевского Graph-а.
    • 0
      Лого хорош разве что на самом начальном этапе и не слишком долго. Чтобы дети не привыкали к русским словам в коде (хотя они в ЛОГО и не обязательны) и учились оперировать переменными хотя бы.
      • 0
        Не согласен. ЛОГО — это не только черепашка. Это на самом деле достаточно мощный язык, на котором можно писать программы как в императивном, так и в функциональном (!) стиле. То есть можно (было бы) функциональной парадигме учить, пока мозги не закостенели.
        • 0
          Я затрудняюсь предполжить, как функциональная парадигма может повлиять на мозг ребенка. Может вы и правы.
  • 0
    По-моему Python или C#/Java выглядят сейчас более уместными языками для обучения программированию.
    А указатели (C/C++) школьникам не нужны.
    • +3
      >А указатели (C/C++) школьникам не нужны.
      Да ну?
    • +6
      Да и не школьникам-то тоже не особо.
  • +8
    Никогда не забуду:
    uses Graph
    
    • +12
      А нас, когда обучали Пасцалу, то заставляли писать Uses Crt. Никто даже не знал зачем это, скорее всего учитель тоже.
      • 0
        Ну я тоже писал, когда хотел clrscr сделать, а больше не помню зачем. Но потом забил, и стал в $b8000 писать).
      • +3
        Это делалось ради ClrScr, с которой начиналась каждая программа…
      • +4
        Кэлэрэсэкэрэ чтобы сделать. )
      • +2
        От одной этой волшебной строчки, кстати, программа сразу портилась: переставало работать перенаправление ввода-вывода в командной строке. Всякие writeln начинали выводить не в stdout, а напрямую.
      • 0
        Это подключение модуля для работы с устройством ввода-вывода (монитора).
      • 0
        Помимо clrscr нами в школе он еще ипользовался для построения менюшек и окон. Ну и sound/nosound конечно же)
        • 0
          Менюшки/окошки делались же через TurboVision. Или вы псевдографикой сами рисовали интерфейс?
          • 0
            Все сами, поскольку учебники по TurboVision — страшный дефицит был.

            Впрочем, я интерфейсы делал только графические и анимированные.
            • 0
              По TV в самой среде была справка, если конечно поставка IDE была полная. А то попадались «сборки» с вырезанными hlp файлами.
              • 0
                Справка по-английски, для начинающих это сложновато…
      • –1
        У нас в универе практикантка заставляла писать «uses crt, dos;», потому что без этого программа не похала.
        Самое главное — ведь не переспоришь (тогда заставляли на листочках писать, а не в редакторе)
      • –1
        Занятно, что Crt.tpu содержит блок инициализации команды Delay, который выдаёт деление на ноль на быстрых машинах. Ну как быстрых, класса Пентиум всего лишь. Таким образом строка «Uses Crt» фактически предотвращает запуск программы на новых компьютерах. Конечно, потом Crt был поправлен, благо с 7.1 версией идут исходники всех стандартных библиотек.
    • +12
      Error 85: ";" expected.
      • 0
        Не ожидал, что будет восприниматься. Точку с запятой не поставил специально, чтобы показать, что там могут быть еще другие модули помимо Graph.
        • 0
          *будет так восприниматься
      • 0
        А я номер ошибки сразу не вспомнил :(
    • 0
      А как же TurboVision?
  • –54
    Паскаль? Нет, не слышал.
    • +46
      Ну и свалите обратно во вконтактик.
      • –11
        Вы не по адресу. Я с 9 класса побеждал в олимпиадах по программированию, причем было это довольно давно уже.

        Сообщением своим я пытался намекнуть, что не во всех школах используют это убожество, я вот учился программированию сам и учился на Basic, после чего прекрасно перешел на платформу .Net.

        С тех пор я успел отработать в крупнейших в мире фармацевтических и логистических компаниях, а затем открыть два своих бизнеса и выйти на прибыль, с которой сейчас и живу. Так что извините, но чего добились вы? :)
        • +6
          Молодец какой.
          Все свои заслуги перечислил или ещё чего забыл?
        • +8
          Мы? мы можем вас заминусовать!
        • +7
          Не следует применять слова вида «убожество» к языкам программирования, которые виноваты исключительно в том, что вы не изучали их в школе.
        • 0
          Занятно, человек учившийся на Бейсике называет убожеством Паскаль. Помню как в своё время перешёл с GW BASIC на Turbo Pascal. Ну так просто глоток свежего воздуха.
          • –4
            Все дело в том, что с паскаля вы не перейдете на программирование того, что нужно всем и будете не востребованы.

            Вот смотрите:

            0. Начинаете с С, ну тут все понятно, если выучите, будете крутым и сможете писать все, что угодно (С, С++, С#)
            1. Начинаете с Java, можете писать на Java, C#
            2. Начинаете с Basic. Переходите на VB.NET 6, вкуриваете ООП парадигму, с него на современный .NET. Весь мир у ваших ног, хотите ASP.NET пишите под веб, хотите мобильные приложения WP7.5,WP8, ну и весь десктоп ваш с VB.NET/C#.
            3. Начинаете с паскаля, может перейдете на дельфи и ЧО?
            • +1
              Я вот начинал с паскаля. «И чо»? Потом были tasm, perl, etc.
              Выбор первого языка не влияет на последствия, если человек стремится развиваться. Первый ЯП просто дает фундамент к дальнейшему развитию, а вот насколько «укладка» этого фундамента будет качественной и удобной — зависит от выбора языка.
            • 0
              Ну почему не перейдёте. Это же не религия, чтоб однажды приняв одну, нельзя было бы перейти в другую. Хотя и тут возможны варианты. Лично я с Паскаля прекрасно перешёл на Си и потом на С++. Потом попутно освоил и другие языки. И я не единственный пример. В своё время выросло целое поколение паскальщиков. И многие из них сейчас работают программистами совсем не на Дельфи. Уж Си похож на Паскаль поболее, чем на Бейсик, ведь у Паскаля и Си общие корни.
              Кстати, насчёт .NET, есть же Oxygene. Можно и с него перейти на весь современный NET.
            • 0
              Кстати, интересно, что создатель Turbo Pascal и Delphi Андерс Хейлсберг сейчас работает в Microsoft, где разработал C#. Как то же он смог перейти с Паскаля на С# ;)
              • 0
                В Пионерах программирования написано, что он пошел дальше развивать свои идеи, заложенные в Delphi.

                • 0
                  Да, говорят, что по некоторым аспектам C# ближе к Паскалю, чем к Си, например контроль типов или работа с указателями.
                  • 0
                    «С# я видел на картинках», так что тут лучше дождаться возможного ответа знающих и C# и Delphi.
                    • 0
                      Ну там еще и проперти всякие и прочие. В с/с++ без '&' и '*' не выжить, а для Delphi и С# — это то, чем пользоваться не желательно. И С# и Delphi живут только в родных IDE, а для с/с++ таковых и нет даже. C# и Delphi — похожи.
            • 0
              Начинаете с паскаля. Поскольку у него душок «учебного языка», переходите на C, оттуда на C++, и живёте так, постепенно осознавая, насколько вам не хватает в расхлябанных C* строгой типизации паскаля. А с такими мыслями — прямая дорога к OCaml/Haskell.
  • +1
    А я как раз писал на Free Pascal, пока мои однокурсники писали на TPL (со временем их загнали в DosBox, чего только не придумают).

    Сложности начались, когда были лабы по графике — пришлось все писать на OpenGL (free pascal не поддерживал graph, но поддерживал OpenGL) :-)

    Кстати, потом, когда давали азы ассемблера, тоже заставляли работать в доисторическом TASM…
    • 0
      У нас на 3 курсе в 2011 году для программирования на ассемблере использовали TASM. И это, на мой взгляд, печально
      • 0
        А чем MASM лучше? :)
        • +1
          Кто-то говорил о MASM? ;) Я, к примеру, предпочел бы изучать FASM вместо TASM
        • 0
          MASM32 классная штука. Особенно с его библиотекой макросов. Правда я с ним работал только под Win32.
        • 0
          кто сказал MASM? fasm или nasm. Первый не пробовал, но выглядит неплохо. На втором на третьем курсе написан небольшую ОС под реальный режим
      • 0
        А что предлагаете на замену? FASM?
        • +1
          Да, FASM на мой взгляд очень сильный инструмент. И если уже учить программированию на ассемблере, то было бы неплохо на чем-то более актуальном это делать.
      • 0
        А у нас кроме TASM и Turbo Pascal было еще Turbo C++.
      • +1
        Какая разница, молоток или кувалда? Ассемблер то другим быть не перестал. Ему то научили? Или только ТАСМу? :)
      • 0
        На мой взгляд, всё нормально. Для обучения программированию на языке ассемблера TASM и DosBox/NTVDM более чем достаточно.
  • +19
    После окончания третьего класса, в эти летние каникулы, сын подошёл ко мне с просьбой установить ему «Pascal». В голове сразу всплыли далёкие школьные образы и на мой вопрос: «Это тот, который Turbo?», — он ответил: «Нет, Free». Так что не всё так плохо, дети знают толк в Паскалях :)
    • +8
      Странно что разбирающийся в паскалях третьеклассник вообще нуждается в вашей помощи, чтобы его установить =).
      Если, конечно, вы — не единственный носитель админского/root пароля на общей машине =).
      • +6
        Про пароль — в точку.
  • 0
    У нас изначально в школе был Чертежник, Робот и какие-то там еще интерпретаторы. Банальные команды вроде «сместить в (x,y)», но все равно казалось тогда, что игры делаются гораздо проще, а не написанием «всей этой лабудятины» :)
    Затем как помню был Macromedia Flash MX, а затем уже в последних классах Pascal.В соседней школе был Pascal.ABC
    • +1
      это все кумир. как-то наткнулся и словил море лулзов. похоже очередной распил. мне печально смотреть во что превращают образование.
      • 0
        Да, вот! Не мог припомнить название всего этого «пакета»
        • 0
          Судя по _by у Вас таки был не «кумир», а «интал», не? По крайней мере, именно у нас он пользовался большой популярностью в школах, т.к. был разработан в рамках какой-то программы министерства образования.
      • 0
        То, что кажется в 2012-ом году лулзами для человека, родившегося в 1990-ом году — вполне полезный и нужный инструмент для человека, родившегося в 2005-ом году.
  • 0
    Про Macromedia Flash MX упоминаю по той причине, что мы там не просто делали какую-то анимацию, а даже писали на первой (вроде бы) версии ActionScript банальные операции (проиграть звук, остановить воспроизведение и так далее).
  • +4
    радостно обнаруживая, что сочетание Ctrl-F9 закрывает эмулятор

    О да, это дивное чувство, когда перед глазами пролетает вся жизнь и клятва жать Ctrl+S почаще. А потом начинается геморрой с перенастройкой хоткеев.
    • +4
      У каждого программиста должно быть чувство сохранения :))
    • +2
      У Turbo Pascal F2 сохранение)
  • 0
    До сих пор помню, что там можно было просто функцией на ассемблере реализовать поддержку мышки.
    • +1
      Сначала-то, наверное все заключалось в вызове MOUSE.COM перед работой программы :)
      Это потом уже в ход шла артиллерия 33h прерывания.
      • 0
        А 33h прерывание и не будет работать без MOUSE.COM, ибо в стандартном биосе такого прерывания нет. Если и приходилось работать с мышей, тогда нужно читать порты-ввода-вывода напрямую и, тащемта, реализовывать функционал mouse.com ручками (что вообщем-то не особо сложно, но нудно и никому не нужно). Но никто не парился и если какая-то там функция прерывания возвращала ноль, то все выводили надпись, что для работы проги нужна мышь.
        • 0
          Вполне мог уже и забыть про особенность реализации, столько лет прошло. Хоть 33h не спутал, точно мышка.
          • +2
            Да я тож помню, даж гуглить не стал. Вот ведь память, что было дофига лет назад помнишь, а что вчера было порой забываешь )))
            • 0
              Вчерашний день был единожды, а с прерываниями BIOS/DOS/VESA/SB/etc многие сидели не один год. Запомнилось лучше :)
  • +5
    Кстати, когда я учился, появились первые «быстрые» машины, где Delay корреткно не работал — Crt не мог откалибровать задержку. И вообще, надо было модуль патчить, чтобы при запуске деления на ноль не было. Сейчас уже пропатченная версия гуляет по сети?
    • 0
      Уже пропатченная гуляет. Пор крайней мере, мне не пришлось его патчить ни разу, хотя скачивал из инета пять раз.
    • +1
      Я помню, сам вручную переписал весь Crt тогда :-)
    • 0
      Помню то время. Решал проблему костылем в виде цикла, следящего за изменением слова в области памяти BIOS, хранящем число тиков. Вроде как 18.2 раза в секунду инкрементировался тот счетчик.
    • +2
      До сих пор помню как патчить бинарники — b9 37 00 f7 f1 заменить f7 f1 на 90 90
  • +4
    У нас в СибГУТИ использовали Delphi. Первым моим вопросом было могу ли я использовать Lazarus, ибо он у меня был уже установлен поиграться, а Delphi был бы попросту нелегальный. Убедил быстро, т.к. код заданий практически не отличался в обоих IDE.
    • +4
      У меня такое ощущение, что у большинства преподавателей СибГути «паскаль головного мозга» — обязательное требование по некоторым предметам: выполнение работа только на паскале. И это довольно удручает.
      • 0
        Видимо, мы с вами учились в разных СибГУТИ =). За все курсы на паскале писал только один раз, и то была лаба для знакомой из другого ВУЗа. Для себя всё писал на чём угодно, от Си, до шарпа, — никто и слова не сказал.
  • +6
    \sarcasm_mode{
    Обучать надо сразу JavaEE, с первого курса начать с километровых XMLей. И maven, конечно. Это востребованно, это модно!
    }
    • 0
      Вы не путаете Spring и JavaEE? :)
  • +1
    3 курс. Язык Cи. Первые уроки, как реализовать виртуальные методы классов средствами Cи (как в Си++). Думаете кто-нибудь хоть что-нибудь понял? Что это? Зачем это? Для чего это? Нет уж. Пусть лучше Turbo Pascal — та же фигня, зато настоящий треш :)
    • +3
      У нас C был на первом курсе с самых азов. Но суть не об этом. «Что это? Зачем это?» напомнило мне, как нас на 3ем (или 4ом, уже точно не помню) курсе преподавали семестр Visual C++ с MFC. Цель каждой лабы — скопипастить из DOC'файла куски кода и заставить IDE их скомпилировать. Все эти гирлянды макросов и непонятных на тот момент ::method(). Что и зачем практически не объясняли. Хуже, что этим они отбили всякое желание самостоятельно изучать VC++ и MFC. Т.е. получили обратный эффект от требуемого при обучении на «вышке».

      • 0
        Да уж, это точно не обучение программированию. Должен быть восторг: моя программа заработала! Пусть студенческая поделка, но это суть программиста. Вместо этого, чужие допотопные листинги неактуальных решений неактуальных задач, являющихся копипастой с учебника. С одной стороны, хороший отсев, с другой, так убивать самую суть. Бррр…
        • 0
          Хорошо, что экзамен по этому предмету не был связан с программированием как написанием реального кода. Были всякие UML и прочие довольно-таки пространные вещи. И это, хочу заметить, программерский факультет :)
          К тому времени уже прошли Pascal, C, Perl и PHP, так что большая часть группы могла оценить данный курс по «достоинству».

          • 0
            Интересно многие из них пошли  «по направление»? Ну в смысле самодостаточными программистами, которые действительно решают задачи в этой области (разработка, доработка, сопровождение), а не офисными работниками попавшими в своё кресло за компом чисто по специальности. Я таких видел, они конечно молодцы, получают зарплату, решают простейшие алгоритмические задачки. Ну а на всякие слова типа «паттерны (или шаблоны) проектирования», отвечают: «чего ругаешься?» :)
            • 0
              Не могу судить за всех тех, кто был с нами на 3-4 курсах, но основной костяк, окончивший все 6 курсов, весь устроился по профессии.

              А такие кадры, занимающие чье-то место, есть везде :)
      • +1
        Та же фигня с MFC.

        В конечном счёте свои лабы я писал в Dev-C++ с использованием WinAPI.
        Куда прозрачнее, чем MFC. И на n-ой лабе начинает вырисовываться свой велосипедный GUI-тулкит :)
  • 0
    В ПетрГУ, где я учился, на математическом факультете обучение программированию таково:

    У каждого есть свой логин и пароль для подключения к удалённому серверу посредством SSH.
    Программы набираются в консольном редакторе и компилируются тоже в консоли.
    Язык программирования C.

    Всё очень просто и логично устроено и я не мог возрадоваться тому, что больше не увижу TP7. Не вижу никаких причин, чтобы в школах нельзя было реализовать такую же схему.
    • 0
      *не мог не возрадоваться*

      Основные плюсы: доступ к своим файлам с любого клиента, воспитание аккуратности.
    • 0
      А в чем была отладка? gdb? Не слишком ли для обучения программированию.
      • +1
        Чтобы понять, для чего нужен отладчик, что он умеет и как его использовать в тех или иных ситуациях, необходимо иметь хоть какой-то опыт в программировании, в исправлении собственных багов. На начальных этапах с отладчиком справиться сложно. Простого отладочного вывода в консоль будет вполне достаточно.
        • +1
          В C очень легко случайно сделать присвоение вместо сравнения, выйти за пределы массива, разыменовать некорректный указатель. Без отладчика мы увидим не описание ошибки, а Segfault или непонятное поведение программы. Пошаговая отладка на программах сложнее 10 строк очень полезна. За полтора года преподавания я увидел плюсы этого подхода.
  • 0
    После прочтения комментариев я бы хотел внести ясность — вопрос не в том, на каком языке ведется обучение, в конце концов 90% учеников школ не будут ничего программировать никогда в жизни, а в том, что на протяжении почти 2 десятилетий используется один и тот же .exe файлик, работающий не без ошибок. Я уверен, что на современных компьютерах и ОС больше сложности с запуском TP, чем пользы от простоты среды программирования. Это замечательная иллюстрация того, как принцип «работает — не трогай» может быть доведен до абсурда.
    • +1
      Кстати, можно было еще написать в статье, что TurboPascal и BP.EXE это разные все-таки вещи :)
  • +3
    Паскаль, DBII и клиппер — вот что позволит нам совершить технологическую нанореволюцию и показать нанорывок в технологиях.
    • +2
      Забыли еще упомянуть Foxbase и Foxpro… ))
      • +2
        Фокс-про — это слишком bleeding edge. Консевативные и традиционные ценности этого не перенесут.
  • 0
    FreePascal на 100% совместим с TurboPascal?
    • 0
      В плане синтаксиса — да. В плане дефолтных библиотек — не совсем. Но едва ли кому-то сейчас может понадобиться балласт времён DOS, типа модуля Graph.
      • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Ждал балладу, а тут проза (
  • +13
    И всё-таки, Turbo Pascal был хорош. Нет, правда. Для своего времени он был очень хорош. А для нашего времени что-то подобное не факт, что вообще возможно.

    Объясню вкратце, что я имею в виду.

    1) Это IDE. Какой-никакой редактор кода, дебаггер, актуальная система справки (этих наших интернетов тогда не было, если кто не в курсе).
    2) Во времена MS-DOS, он давал программисту достаточно широкие возможности. Почти любой софт тех времен можно было написать на Pascal (теоретически). Т.е. это был достаточно мощный инструмент.
    3) … в то же время, у него не было проблемы, присущей современным IDE. Я про Delphi, Visual Studio etc. Что за проблема? За деревьями не видно леса. Создаем проект, получаем файл с кучей сгенерированной нашей IDE «магии». Чтобы получить результат — приходится разбираться, как его прикрутить к компоненту, способному банально отобразить текст. Всё сразу объектно-ориентированное, а нам бы, для начала, с циклами разобраться, с массивами, условными операторами... Да, сегодня тоже можно делать софт, который будет чего-то там выводить в консоль. Но… Консоль? Кому интересна консоль в Windows 7, в 2012 году? И как быть с кириллицей, которая просто так не желает там отображаться?

    В общем, я думаю, что использование Turbo/Free Pascal в процессе обучения программированию — не такая уж плохая идея. Это почти идеальный вариант для обучения алгоритмам, без понимания которых дальше лучше не соваться (и не имеет значения дальнейшая специализация — будет ли человек кодить на ассемблере под микроконтроллеры, или посвятит себя разработке софта на языках высокого уровня с применением современных парадигм). Да, от нее несет нафталином, но ничего принципиально лучшего я не вижу. Ну по крайней мере, настолько лучшего, чтобы прям возмущаться, что вместо [название инструмента] всё еще используют Pascal.
    • 0
      Вывод в консоль не сильно меньше магии содержит, чем вывод в TMemo, положенный на TMainForm. Ввод с ReadLN — не менее волшебен и непостижим, как получение текста из TEdit.

      Изучая циклы, массивы и условные операторы, и там и там придётся на время от этого абстрагироваться, не обращать внимание, не отвлекаться на разбирательства в устройстве этой магии. Несколько правил принять на веру — «сделаешь так, и будет то». И количество таких правил не сильно отличается почти при любом IDE и языке.
      • –1
        Вы преувеличиваете.
        • 0
          Разве?
          • 0
            Да. Ввод-вывод — это очевидные базовые операции (кстати, был бы благодарен за разъяснение, какую такую магию, по вашему, содержит вывод в консоль, и что там вообще может быть непонятного).

            А любой компонент — это уже сразу, как минимум, ООП.
            • –1
              Лучше Вы расскажите, как именно оно работает? И какую именно магию на ваш взгляд содержит ввод через TEdit?
              • 0
                ООП при изучении базовых алгоритмов, функций и процедур? Визуальный редактор со списками свойств компонентов, иногда длиной в 2 экрана? Необходимость писать код в onClick кнопки, в котором мы будем получать текст из свойства поля ввода? И всё это в окне редактора, которое почему-то уже содержит какой-то непонятный текст, который трогать не то, чтобы нельзя, но настоятельно не рекомендуется («мы потом вам объясним, что всё это значит и откуда оно взялось»).

                Не, никакой магии. Вообще не отвлекает от сути дела.
                • 0
                  в программе типа

                  program MyProgram;
                  uses CRT;
                  begin
                    clrscr;
                    ReadLn('Enter You name:', Name);
                    WriteLn('Hello, ', Name);
                  end;
                  


                  Конечно отвлекающих букв, которые нужно «просто знать» меньше, но среду тоже надо настроить, и про F9 узнать, да и в самой программе — никогда не понимал, как на самом деле работает процедура ReadLn. Как минимум повторить всю её функциональность самостоятельно — даже не учитывая открытого перечня аргументов, недоступного для самодельных подпрограмм — я даже пробовать не решался, настолько она была непостижима и многогранна.

                  Текста не очень много, непонятного — ещё меньше, и для изучения for в рамках написанной по указанным учителем правилам процедуры — будь это обработчик onClick, или вышепоказанный образец программы — разницы никакой для ученика. Более того, в IDE с дизайнером форм больше поводов и возможностей покопаться в окружающем богатстве и что-то узнать самостоятельно.

                  Что касается самого ООП — оно естественно для ума, и вопросов вызывают лишь тонкости, особенности, приёмы и, выражаясь умно, выбор декомпозиции, а не оно само. Когда объекты готовые, ими по началу можно пользоваться, не вникая в концепцию ООП.
                  • 0
                    var Name: string[100]; забыл, извините ;)
                    • +1
                      А еще после end должна стоять точка :-)
                      • +1
                        Да, давненько не писал основной блок сам…
                  • 0
                    Приведенный вами код легко и просто преобразуется в блок-схему. Фактически, это алгоритм решения задачи, в чистом виде. Чего не скажешь про код на Delphi, правда?

                    в IDE с дизайнером форм больше поводов и возможностей покопаться в окружающем богатстве и что-то узнать самостоятельно.

                    — Безусловно. Но это что-то, с вероятностью, стремящейся к 100%, к алгоритмам не будет иметь совершенно никакого отношения.

                    Что касается самого ООП — оно естественно для ума

                    — Хоть 1000 раз, но процесс обучения должен быть последовательным. Не должно быть моментов, когда ученик/студент теряет землю под ногами, это в корне неправильно. Иначе мы на выходе можем получить «программиста», который будет писать весь код в onClick, а вся суть ООП у него будет сводиться к тому, что к свойству стандартного компонента нужно обращаться через точку.
                    • 0
                      Аргумент про блоксхему — мог бы быть весом, не будь возможности писать блок-схемы процедур вместо блок-схем программы целиком. Но ведь можно же! Ничуть не сложно рисовать блок-схему обработчика Button1Click, в котором весь алгоритм решения задачи легко сосредотачивается на первых этапах.

                      Я ещё раз повторяю: в обоих случаях земля под ногами ученика очень условная, придуманная! Что в Дельфи, что в Турбо Паскале. И твёрдость её идентична, особенно для ученика, принимающего её на веру впервые. Главное — чтобы она плоская была, чтоб не было необходимости разрывов алгоритма между begin и end.

                      Если доООП дойдёте — всё в любом случае узнает. А если до ООП Вы не дойдёте в ТурбоПаскале — он из такого курса про ООП вообще ничего не узнает, и Вы хотите сказать, что вот это как-раз и лучше? Ну, не знаю… Как минимум, я сомневаюсь, что нужен такой курс, когда Паскаль уже есть, а элементов ООП до конца курса нет.
                      • 0
                        Button1Click

                        — Вот, кстати, отличный аргумент против использования Delphi на начальных этапах обучения программированию. Если вы понимаете, о чем я, конечно. А то у нас в продакшене до сих пор куча софта, где в исходниках куча «Button1Click»-ов, и авторы явно не заморачивались по этому поводу.

                        До ООП и визуальных средств разработки нужно дорасти.
                        • 0
                          Дорастить нужно, если речь идёт об учебном курсе, а не самоучках.
                          • 0
                            Навык Code Review, кстати, как правило упускают, а ведь достаточно поразбираться пару раз в чужом коде с такими именами, чтобы от их использования затошнило. Надо чуть погодя давать задания поразнообразнее, а результатами обмениваться. Или набор готовых программ с говнокодом для анализа иметь…
              • 0
                И, кстати, Вы не ответили.
                • 0
                  Вы о том, как работает Read/ReadLn? Эти инструкции предназначены для ввода данных с клавиатуры. Ввод начинается в момент вызова команды и завершается по нажатию на клавишу Enter. ReadLn от Read отличается тем, что по завершению ввода, курсор будет переведен на следующую строку. В качестве аргументов Read/ReadLn можно использовать строку с текстом приглашения («Введите имя» и т.п.), и одну или несколько переменных, в которые будут сохранены результаты ввода.

                  Думаю, приблизительно то же самое должно быть написано в справке, достпуной из IDE. Что именно в вышесказанном, вам, Delphi-программисту, непонятно?
                  • 0
                    Что она делает — я знаю, я не знаю, как она это делает. Внутри у неё недоступная мне (и ученику) магия.
                    • 0
                      Вот что она делает:

                      image

                      И до тех пор, пока не встает задача реализовать паскаль на паскале, этого знания, по моему мнению, должно быть достаточно.
                      • 0
                        Кажется, Вы не прочитали комментарий, на который ответили.
                        • 0
                          Я прочитал. Еще раз обозначу свою позицию, максимально понятно — на этапе изучения базовых алгоритмов вопрос «что происходит внутри» не актуален. Ну правда, если в процессе изучения условных операторов отвлекаться на вопрос «что происходит внутри Read/ReadLn», где мы остановимся? На микрокоде, реализовывающем работу оператора JNZ внутри процессора? Сомневаюсь, что это актуально в данном контексте.

                          С другой стороны, когда на том же этапе приходится работать с такими вещами, как объекты, события, пространство имен и пр. — это реально очень здорово отвлекает от сути. Кроме того, там тоже можно спросить себя «а как оно устроено внутри» (с тем же эффектом — отвлечение от сути текущих задач).

                          Знаете, если вы всё еще не понимаете и/или не приемлете мою позицию по данному вопросу — я без понятия, как еще объяснить. Мне больше нечего добавить, извините. Если, по вашему, я не прав — так тому и быть, пусть я не прав.

                          Если бы передо мной сейчас стояла задача обучать кого-нибудь программированию — я бы однозначно не выбирал Deplhi/Lazarus/Visual Studio в качестве инструмента обучения (причину уже упомина — «за деревьями леса не видно»). Turbo/Free Pascal, пожалуй, тоже, т.к. они весьма устарели. Сегодня, скорее всего, это был бы Python + приличная IDE (Eclipse или PyCharm), с тестированием приложений во встроенной консоли. Но10-15 лет назад я однозначно выбрал бы Turbo Pascal.

                          У меня всё, спасибо за внимание.
                          • 0
                            «Плевать, что в ТурбоПаскале магия, считайте, что она черный ящик» и «Дельфи плохо, там магия!» — противоречащие параграфы. Но, похоже, Вам пофиг. Я, пожалуй, тоже откланяюсь.
                            • 0
                              OK, еще одна попытка. Очень надеюсь, что последняя.

                              Turbo Pascal:
                              Magic — 5%
                              Logic — 95%

                              Delphi:
                              Magic — 70%
                              Logic — 30%.
                              • 0
                                Я говорю о том, что это не существенно. Совершенно не существенно. Это лишь косность мышления, привычка не думать о магии там, и след от первой неудачной попытки тем опытом, который пришел из дос, осмыслить тут. Для новичка — абсолютно без разницы.
                  • 0
                    В том-то и дело, что это инструкции языка, а не обычные процедуры. Как было верно замечено, в паскале нет возможности даже реализовать функции с переменным числом аргументов (хотя бы из-за порядка складывания аргументов в стек).

                    Паскаль постоянно старается скрыть «магию» реализации и заставляет очень многое принимать на веру. В результате дети и (что удивительно, в особенности) студенты перестают пытаются понять, как оно все работает, и зачастую теряют интерес к программированию в целом. :-(
                    • 0
                      Если вспомнить, с чего начинался этот тред — я говорил, что Pascal является очень хорошим варинатом для обучения базовым алгоритмам. В данном контексте, я не вижу проблемы в том, например, что Read/ReadLn реализованы с «хаком», позволяющим передавать разное число аргументов. Это всего-лишь оператор языка.
                      • 0
                        Да-да, я все прекрасно понимаю про обучение базовым алгоритмам. Вот только в реальности (сужу исходя из собственной преподавательской практики) мало кому интересны алгоритмы сами по себе, «в отрыве от», как говорится. Рано или поздно ребенку/студенту надоедает писать голые сортировки и обходы графов, и хочется чего-то более настоящего. И скоро он упирается в искусственные ограничения, налагаемые «языком для обучения базовым алгоритмам». Это опасный момент, т.к. можно «потерять» ученика.

                        К слову, на всех педсоветах молодые преподы поддерживали идею отказаться от Паскаля; хватались и продолжали его отстаивать только закостенелые дядечки, которые ничего другого не знали (да и Паскаль толком тоже).
                        • 0
                          Никто и не утверждает, что паскаль актуален сегодня. Но Delphi/Lazarus не кажется мне хорошей альтернативой паскалю на самом старте обучения.
  • 0
    Проблема университетов, нашего во всяком случае, что Паскалю учат во время всего процесса обучения. Точнее, другого языка для сдачи лаб на ВСЕМ протяжении обучения никто не предлагает. И это грустно как мне кажется.
    Только если ты очень инициативный — то ты выучишь то что хочешь и будешь сдавать на этом лабы(благо у нас такой ультиматум можно было поставить и преподаватели принимали лабы и на C чистом и на Java, не зная языков). А потом, посмотрев интернеты и почуяв, куда дует ветер, найти на третьем курсе работу.
    • 0
      у нас только 1 семестр паскаля, дальше Java и другие
  • 0
    Я вот подумал, какие из современных используемых на практике языков годятся на роль первого языка. В моем понимании это императивный, строготипизированный, со статической типизацией и строгой семантикой язык. Паскаль всему этому соответствует, но он уже почти мертв. Так вот я думаю, что хорошим кандидатом является Go.
  • +2
    Эх… Как давно это было…
    Университет, 1-ый курс и старый добрый Pascal, кажется, как будто это было вчера, ан нет, уже более десяти лет прошло. Ты навсегда останешься в подкорке головного мозга.
  • 0
    В школе пришлось выучить паскаль чтобы написать лабы кому-то в институт, а взамен игруху F-117!
  • +1
    меньше года назад одна знакомая попросила помочь с лабой по ассемблеру, лаба привлекала к использованию Turbo Assembler, тот самый tasm.exe. 20 лет назад его прикладывали в пакет утилит, где был Turbo Pascal (и потом к Borland C/C++ 3.1).
    Всё бы ничего, но вам наверное будет интересно знать, что та дама учится в National U of Singapore.
  • 0
    В школе, когда все изучали Basic, был одноклассник, который ходил на курсы по «взрослому» Pascal'ю. Смотрел он на нас свысока.

    Помню и себя, когда впервые сел на синюю консольку Pascal — было такое приятное чувство открывшихся безграничных возможностей, ведь, как верно заметили в комментариях выше, на паскале можно было написать всё.
  • 0
    Помню, программы на Turbo Pascal переставали работать на пентиуме. Когда полключался «uses Crt», то он вначале крутил пустой цикл, чтобы определить быстродействие процессора. На пентиумах этот цикл оптимизировался аппаратно и выполнялся за 0 времени. В результате программа вылетала с Division by zero.
  • 0
    Да-да, выше уже упоминали.
    • 0
      Прошу прощения, слегка ошибся веткой: это был ответ Throwable выше.
  • +2
    А в нашем универе были те же яйца только в профиль. Был турбо си… С тех пор я эту синюю борландовскую иде люблю нежно и трепетно. Справка там была чертовски хороша, с кучей лулзов и приколов в комментах. С наглядными и подробными примерами. Одной той справки было бы достаточно, чтобы разобраться во всем всем, что там было в комплекте и научиться писать что угодно. А еще турбодебаггер, хотя он немного из другой оперы.
    • 0
      А еще (в качестве дополнения борландовой идешки) был очень чудесный Norton Guide (вызывался, кажется, по Alt-«numeric 5»): очень помогало писать всякие низкоуровневые штуки. Мы в те времена с друзьями даже коллекционировали *.ng файлы.
  • 0
    Несколько лет назад делал сборку Turbo Pascal + DOSBox с русификаторами, обезвреженным Ctrl+F9 и другими ништяками, достойно упоминания IMHO.

    Отсутствие высокоуровневых фич вроде структурной обработки исключений, прозрачного разыменования указателей и Delphi-style классов отчасти оправдано. Мне нравится сравнение DOSBox с учебной виртуальной машиной Mix Дональда Кнута. Но Mix — учебная, неживая, а DOSBox хранит на себе печать эпохи. Можно поковырять его AVPUtil'ом, не хуже, чем Mix.

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