Паскаль и его текущие приложения

Я изучал Turbo Pascal в 1997 году, и он мне очень понравился как язык. Все было очень структурировано, и компилятор следил за тем, чтобы вы все делали правильно. Позже я пробовал Delphi, но никогда не интересовался этим.

С тех пор я использовал множество различных языков программирования и сценариев (C, C++, PHP, Python, Perl, TCL), и недавно я начал вспоминать свои старые дни Turbo Pascal.

Итак, мне интересно, для каких практических целей Pascal может быть полезен сегодня и какие API и фреймворки доступны. У кого-нибудь есть опыт использования Pascal в современной среде разработки или это просто мертвый язык?

Чтобы уточнить мой вопрос: Можно ли использовать Pascal для разработки современных приложений. Используется ли он и как?

Ссылки на Википедию или быстрый поиск в Гугле не помогут, я там был. Поэтому и спрашиваю у "знатоков".


person Andrioid    schedule 08.06.2009    source источник
comment
Было бы неплохо узнать, почему вам не понравился Delphi?   -  person tekBlues    schedule 09.06.2009
comment
Приложения, которые я создавал в Delphi, всегда выглядели уродливыми и неуместными. У меня также не было необходимого опыта работы с базами данных и сетями, чтобы создать что-то полезное. Дельфы не виноваты :)   -  person Andrioid    schedule 09.06.2009
comment
Вау, Android, вы должны посмотреть на него, он очень мощный, я только что научился программировать в Delphi 3 месяца назад, это здорово (единственное, что мне не нравится, это синтаксис Pascal :-)   -  person tekBlues    schedule 09.06.2009
comment
Хех, у меня на полке стоит книжечка от Borland под названием «Научи себя Delphi 2 за 21 день». Может быть, я буду :)   -  person Andrioid    schedule 09.06.2009
comment
Эти вопросы относятся к Programmers.stackexchange.com   -  person TimothyP    schedule 27.12.2012
comment
Паскаль и Дельфи далеко не мертвы. И Delphi, и FreePascal, кажется, работают очень хорошо и используются для проектов любого масштаба, хобби, а также огромных профессиональных программных пакетов. И, в отличие от @tekBlues, я думаю, что именно синтаксис делает язык таким чистым и удобным. Вряд ли найдется проблема, которую я не мог бы лучше всего выразить и решить в Delphi, намного лучше, чем в любом другом языке, который я знаю (а я знаю многие после 37 лет программирования). Хорошим вторым будет только Python.   -  person Rudy Velthuis    schedule 28.09.2018
comment
@Andrioid: Не знаю. Я видел прекрасно сделанные программы, созданные в Delphi. Новый FMX и несколько вариантов стилей еще больше упрощают создание привлекательных и простых в использовании программ. Конечно, это также зависит от ваших навыков дизайна пользовательского интерфейса ;-). FWIW, вы не путаете Delphi с Java? Эти программы всегда казались мне неуместными.   -  person Rudy Velthuis    schedule 28.09.2018


Ответы (11)


Обратите внимание, что старые (1.0.x) версии компилятора Free Pascal исходники были фактически совместимы с Turbo Pascal (т.к. их можно было отлаживать с помощью TP), что демонстрирует основные возможности Pascal.

Вопрос использования Pascal в качестве основного языка примерно такой же, как и для C, поскольку они почти эквивалентны на языковом уровне. Разница только в количестве, разнообразии и качестве компиляторов.

Я бы настоятельно рекомендовал идти в направлении диалекта Delphi (используя либо Delphi, либо Lazarus/FPC), а не возвращаться к Turbo.

DOS-измы и 16-битизмы серьезно ограничили бы вас, и почти весь диалект, свободный от DOS-измов и 16-битизмов, поддерживается FPC или Delphi.

Turbo Pascal был одним из (если не САМЫМ) основных компиляторов эпохи DOS, а Delphi по-прежнему остается второй наиболее продаваемой IDE в мире (после Visual Studio), поэтому я думаю, что биты «мертвого языка» и «языка обучения» несколько преувеличены.

person Marco van de Voort    schedule 11.06.2009
comment
Мне нравятся термины DOS-измы и тем более 16-битизмы. ‹g› В остальном я полностью согласен. Современные Delphi и FreePascal больше не похожи на TP. Они значительно эволюционировали. Plain Pascal начинался как язык обучения, но, послушайте, большинство людей тоже начинают с детства, и все же большинство из них развиваются. - person Rudy Velthuis; 28.09.2018
comment
Между прочим, Pascal не начинался как язык для обучения программированию, он начинался как язык для обучения построению компилятора. Текущие компиляторы Delphi и FreePascal во много раз сложнее и универсальнее. - person Rudy Velthuis; 28.09.2018
comment
Афаик для обучения алгоритмов студентов-математиков. В то время часто не было CS как отдельного факультета, но те студенты-математики (со склонностью к программированию), вероятно, были эквивалентны студентам магистратуры CS сейчас. - person Marco van de Voort; 28.09.2018

Мнение довольного пользователя, перешедшего на FPC с Java/C/C++:

Паскаль, в частности Free Pascal (FPC), полезен абсолютно для всего. Программирование приложений с хорошей производительностью (поскольку оно компилируется), программирование игр (например, через OpenGL), а также для веб-программирования, поскольку оно может компилироваться в байт-код Java. Он работает на всех основных платформах (MS, Linux, Mac, iOS, Android и других).

FPC сильно обновлен, это очень современный язык по сравнению с языком 70-х/80-х годов, который некоторые могут подумать, что мы обсуждаем. Он имеет расширения ООП (включая режим «Objective Pascal» для использования классов Objective-C), и ООП не является обязательным, как и C++. Он также имеет перегрузку операторов, перегрузку функций, динамические массивы, ограниченную сборку мусора, автоматические пространства имен... Кроме того, это модульный язык (как и Java), в то время как C/C++ по прошествии стольких лет по-прежнему остается немодульным ( подделывает его с помощью #include). (Я был бы заинтересован в серьезном обсуждении того, какими функциями должен обладать «современный» язык сегодня.)

Я упоминал переносимость? FPC поставляется с большой библиотекой времени выполнения, большая часть которой кроссплатформенная, включая библиотеку классов (в основном используется с Lazarus, насколько мне известно). FPC отлично подходит для написания переносимого кода.

Основным преимуществом языка обучения является то, насколько он близок к C/C++. На самом деле он отличается только самым тривиальным синтаксисом (и другой объектной моделью), но на самом деле очень близок к C++. Перенос между C/C++ и Pascal проще, чем перенос между ObjC и C++. Но у FPC есть то преимущество, что его легче освоить, с более простым синтаксисом.

Итак, я утверждаю, что FPC идеально подходит как для обучения, так и для серьезного программирования приложений. (Я думаю, что это идеально, но это скорее мнение.)

Всегда были ненавистники Паскаля, которые разжигали неосведомленный флейм, обычно ссылаясь на оригинальный язык 70-х. Лично я не думаю, что ни Паскаль 70-х годов, ни проблемы 20-летней давности (тогда проблема переносимости была проблемой) вообще не заслуживают обсуждения. Что интересно, так это то, что вы можете сделать сейчас, плюсы и минусы между языками помимо аргументов «но все остальные делают ...».

person Ingemar Ragnemalm    schedule 08.08.2012
comment
Если нет библиотек с API для Паскаля, то как он пригодится абсолютно для всего? ФПК не очень современный. В нем отсутствует вывод типов, замыкания, лямбда-выражения, управление памятью, упаковка/распаковка, множественное присваивание, понимание списков, генераторы, нотация слайсов, кортежи, дизайн по контрасту, фильтрация/сопоставление/уменьшение, dicts и списки как нативные типы, bigints и т. д. Библиотека времени выполнения не идет ни в какое сравнение с JVM, .NET или Python. В большинстве стран больше нет книг, журналов, вакансий, живых конференций, онлайн-курсов и т. д. Почему сегодня можно выбрать Pascal, а не Python, Nim, D, Go, Rust и т. д.? - person alcalde; 25.08.2015
comment
@alcalde проснись, малыш. в Паскале есть много библиотек, как поставляемых реализациями, так и доступных из сторонних источников. даже если вы плохо знаете язык (вы упомянули, что в Паскале нет управления памятью, что на 100% неверно), даже не думайте, что вы можете судить о библиотеках. - person LeleDumbo; 08.01.2016
comment
@LeleDumbo Для Паскаля не так много библиотек. Torry.net содержит менее 13 000 файлов, большинство из которых являются коммерческими демонстрационными версиями или восходят к Delphi 3-5. Питон? Более 72К в его репозитории. Ява? 128К. Идти? 106К. узел.js? Более 200 тысяч! В Delphi нет автоматического управления памятью объектов. Я программирую на Паскале уже почти 30 лет, язык конечно хорошо знаю. Нельзя без преувеличения честно защищать сегодняшнюю жизнеспособность языка. Когда Amazon выпустит API для Pascal, тогда можно будет говорить о поддержке. Crystal Reports прекратил поддержку Delphi после 1990-х годов и т. д. - person alcalde; 09.01.2016
comment
@alcalde Полезно для всего, это неправда. Но лучшее для каких-то программ абсолютно верно. И я имею в виду ЛУЧШИЙ. Вы перечисляете то, что считаете хорошим, но это не так — по крайней мере, не всегда. Например, вывод типов, множественные присваивания, управление памятью. Это более низкий уровень, чем, например, Python, но быстрее и чище. Может быть, вы слишком молоды, чтобы понять? - person linuxfan says Reinstate Monica; 02.01.2017
comment
@alcalde Только что нашел это: stackoverflow.com/questions/41446833/ - эти неоднозначности НЕ МОГУТ произойти в паскале. - person linuxfan says Reinstate Monica; 04.01.2017
comment
@linuxfan Мне 44 года. Что я должен еще не понять? В 21 веке не было выпущено ни одного статически типизированного языка без вывода типов! Его добавляют даже в более старые языки, такие как C++. Нет ученых-компьютерщиков, выступающих против этого; напротив, он возник в теории типов. Давайте не будем настолько зацикливаться на Delphi, чтобы называть его недостатки достоинствами. Посмотрите, что RemObjects сделали с Oxygene; они смогли перенести Паскаля в современный мир. Они не проповедуют против современных удобных функций. - person alcalde; 05.01.2017
comment
@linuxfan Я не уверен, что должен показывать ваш пример библиотеки numpy. В вопросе участвует тот, кто не понимает разницы между двумя операторами. Для подлинной двусмысленности, как насчет использования X, Y, Z, а затем SomeFunction (независимо). Из какого модуля импортируется SomeFunction? Мы не знаем! Я не понимаю, какое отношение любой из них имеет к поддержке экосистемы или отсутствию современных языковых функций в Delphi. - person alcalde; 05.01.2017
comment
@alcalde Спасибо за новости про Oxygene, я сходил посмотреть. Я бы не назвал его паскалем, а назвал бы его современным языком, который украл большую часть синтаксиса у паскаля. Синтаксис - ничего больше. Видите ли, я пишу программы для встраиваемых систем; Я могу написать программу на паскале, которая помещается в 4K ROM и 1024 байта оперативной памяти, но не могу с python, c# или java. И я использую Pascal для написания настольных и интернет-приложений, и они работают лучше (да, лучше), чем те, что написаны на C#, Python или Java. Паскаль — это не просто синтаксис, это высокоуровневая абстракция того, чем на самом деле является компьютер. - person linuxfan says Reinstate Monica; 05.01.2017
comment
@alcalde Тем не менее, у меня нет ничего плохого в современных языках. Например, я очень ценю элегантность и производительность Python. Но когда я пишу на Паскале или на C, я знаю, что если компилятор проверит мой код, он будет в точности выполнять то, что я написал. У меня есть полный контроль над всем, и я все знаю, потому что язык точен, прозрачен и, почему бы и нет?, прост. Это большая ценность в программировании. - person linuxfan says Reinstate Monica; 05.01.2017

Паскаль не используется для каких-либо практических целей, потому что там нет поддержки библиотек.

Какой груз быка. Существует множество библиотек, которые могут использоваться Delphi, FreePascal и Lazarus.

Как говорит Макваффлестикс, упрощенная среда имеет смысл.

"Упрощенная среда"? Это просто унизительно. Я бы сказал, что это было и всегда было довольно сложным.

person Community    schedule 02.07.2009
comment
Для Delphi/FreePascal доступно не так много библиотек. Torry.net, сайт подборки пакетов для Pascal с 90-х годов, еще не разобрал 13 000 пакетов. Многое из того, что есть, либо написано для старых версий Delphi, либо является пробным ПО. Для сравнения, сайт управления пакетами Python, PyPI, добавляет более 12 000 (бесплатных, с открытым исходным кодом) пакетов за ОДИН ГОД. Точно так же мой анализ показывает, что Торри добавляет новый бесплатный пакет или пакет с открытым исходным кодом со скоростью чуть менее 0,5 пакета в день. Modulecounts.net показывает 158 в день для Go, 115 для Java, 47 для .Net, 59 для Python и т. д. - person alcalde; 25.08.2015
comment
@alcalde: да, есть. Возможно, по сравнению с C++ или Python не так много, но все же множество библиотек. Но не смотрите больше только на Торри, это уже не то, что раньше. Просто погуглите или посмотрите на GitHub и подобных сайтах. Взгляните также на сайт JEDI. В Delphi, одной из самых популярных реализаций Pascal, вы также можете использовать менеджер GetIt, чтобы найти программное обеспечение для Delphi (платное, пробное и программное обеспечение с открытым исходным кодом). Чтобы узнать больше о Delphi и FreePascal, читайте такие сайты, как begin end или DelphiFeeds.com. Опять же, то, что происходит с Торри, уже не так актуально для Паскаля. - person Rudy Velthuis; 28.09.2018

Что ж, давайте вспомним Lazarus — бесплатный клон Delphi:

http://www.lazarus.freepascal.org/index.php

И FreePascal:

Free Pascal (он же FPK Pascal) — это 32- и 64-битный профессиональный компилятор Pascal. Он доступен для разных процессоров: Intel x86, Amd64/x86_64, PowerPC, PowerPC64, Sparc, ARM.

http://www.freepascal.org/

person tekBlues    schedule 08.06.2009
comment
Пожалуйста, удалите псевдоним FPK. Смена названия произошла более десяти лет назад :_) - person Marco van de Voort; 18.06.2009

Никто еще не упомянул, что TeX (и METAfont, и другие TeXware) написаны на Паскале.

В начале 90-х я разработал коммерческие приложения X/Motif CAD, используя собственный диалект Pascal.

person Ðаn    schedule 22.10.2009

Основным из них является Pascal-производный Delphi (от Embarcadero, ранее принадлежавший Borland).

См. Википедию, чтобы найти список других, в основном с открытым исходным кодом.

person Jason Kresowaty    schedule 08.06.2009

Можно ли использовать Pascal для разработки современных приложений. Используется ли и как?

Конечно, можно, и это широко используется. Просто взгляните на Lazarus CT (бесплатный клон Delphi), который генерирует современные кросс-платформенные приложения из единого источника. В нем тонны компонентов и много-много примеров. Это RAD и имеет 8 уровней хост-ОС/ЦП (win32/64, lin32/64, freebsd 32/64, Solaris 32/64) и 22 целевых уровня ОС/ЦП (i386-win32, x86_64-win64, i386-linux, x86_64-Linux, arm-wince, arm-linux, powerpc-linux, powerpc64-linux, sparc-linux, i386-freebsd, x86_64-freebsd, sparc-solaris, i386-solaris, x86_64-solaris, i386-haiku, arm-gba, arm-nds, arm-embedded, armeb-linux, arm-android, i386-android, powerpc-wii). Какой другой инструмент может сравниться с этим?

p.s. Просто не забудьте установить его как admin/root.

person avra    schedule 09.08.2012
comment
Какой другой инструмент может сравниться с этим? Все они, действительно. C, C++, Python, Ruby, D, Go, Java и т. д. - person alcalde; 25.08.2015
comment
@alcalde Многие из них полагаются на байт-код или что-то подобное. Не совсем то же самое. - person linuxfan says Reinstate Monica; 02.01.2017

Я использую Pascal с версии 1 вплоть до RAD Studio XE3 в 2012 году. Это был мой первый язык. Знание паскаля — это почти знание системы, на которой он работает.

Это удивительный язык, который заложил основу для освоения C, Embedded C и проектирования аналоговых/цифровых схем — все это я изучил самостоятельно. Позже я изучаю PHP, JS и модель TCP без каких-либо трудностей в понимании какой-либо из основных концепций, лежащих в их основе.

Конечно, Pascal теперь является Object Pascal, как Basic — это Visual Basic. Ниже приведены вещи, которые Паскаль делает в 2012 году в своем коммерческом продукте. (некоммерческие версии паскаля работают так же хорошо, если не лучше)

Поддерживает практически все веб-технологии. Поддерживает почти все технологии баз данных. Кроссплатформенность в единой кодовой базе. Большое сообщество, компоненты и библиотеки.

Одним из популярных приложений, разработанных на Паскале, является Skype.

Microsoft, у которой были свои языки, купила Skype в прошлом году, кажется, за 800 миллионов долларов.

person Suren Sarathkumara    schedule 26.12.2012
comment
Что ж, VB никогда не был совместим с Quick Basic. Delphi в высокой степени совместимы с TP. ФПК тем более. - person Marco van de Voort; 05.10.2016

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

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

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

person Jichao    schedule 03.11.2009
comment
Ну, популярные в основном ориентированы на Delphi, поэтому, если вы исключите Delphi из Pascal, паскаль рухнет по размеру. - person Marco van de Voort; 28.05.2011
comment
может вместо кроме кроме ты имел ввиду специально? потому что delphi - самая живая его форма. - person eis; 18.02.2013

Я думаю, что основной причиной популярности Turbo Pascal был не язык Pascal, а IDE. Насколько я помню, с ним было действительно легко работать, он был быстрым, и даже отладка доставляла удовольствие.

С другой стороны, язык Pascal был устаревшим, поэтому Borland добавила немало вещей в язык Pascal (и сделала свой язык более похожим на Module-2).

person asalamon74    schedule 09.10.2009
comment
Не совсем правильно. Комитеты Pascal Ansi/ISO изучали (вместе с Виртом) модульные системы. Афаик Borland в основном заимствовал из своих ранних предложений. - person Marco van de Voort; 29.09.2010

Паскаль полезен как язык обучения; он иллюстрирует некоторые из наиболее фундаментальных принципов информатики с меньшей неясностью, чем C.

person Paul Sonier    schedule 08.06.2009
comment
Но почему он не используется ни для чего практического? Разве его мощности недостаточно для реальных рабочих приложений? Кажется пустой тратой времени на изучение языка, который вы не можете (или не должны) использовать в своей (возможно, будущей) профессии программиста. - person Andrioid; 09.06.2009
comment
Учебная среда может быть очень полезной; как часто вы используете эту бумагу с широкими линейками и указаниями, которые вы использовали, чтобы научиться писать свои азбуки? Тем не менее, это было полезно для того, что это было. Иногда упрощенная среда может способствовать лучшему обучению, предоставляя учащемуся меньше отвлекающих факторов. - person Paul Sonier; 09.06.2009
comment
Паскаль не используется для каких-либо практических целей, потому что там нет поддержки библиотек. Как говорит Макваффлестикс, упрощенная среда полезна для изучения основ разработки программного обеспечения. Хороший инженер может легко применить эти концепции к любому другому языку высокого уровня. - person Steve Madsen; 09.06.2009
comment
Не стал бы точно сравнивать Паскаль с Азбукой, это больше похоже на Бейсик. Паскаль больше похож на грамматику. Но действительные пункты здесь, спасибо. - person Andrioid; 09.06.2009
comment
Я понимаю, что этот вопрос ориентирован на Паскаль, а не на вариант Дельфи, но Дельфи обладает почти всеми сильными сторонами Паскаля и используется для многих практических целей, например. en.wikipedia.org/wiki/ - person Argalatyr; 10.06.2009
comment
Мэдсен: Я думаю, что FPC и Delphi (на которые приходится более 98%+ использования Pascal) имеют больше общего, чем любые две случайные цепочки инструментов (которые имеют независимые кодовые базы) для любого другого языка. См., например. Совместимость Lazarus с приложениями Delphi GUI. - person Marco van de Voort; 11.06.2009
comment
В дополнение к комментарию Аргалатира, Pascal (в частности, Delphi) используется намного чаще, чем предполагалось. Клиент Skype для Windows — один из ярких примеров. delphi.wikia.com/wiki/ - person Bruce McGee; 23.07.2009
comment
Я хочу избежать здесь каких-либо дискуссий о языке, но Паскаль очень удобен для больших реальных проектов. Например, Pascal был де-факто предпочтительным языком для Mac в течение многих лет — сама ОС была написана на нем, как и большинство приложений, и до сих пор есть люди, которые пишут коммерческие приложения для Mac на Pascal. В Windows Delphi был чрезвычайно популярен и остается довольно популярным, и использовался во многих реальных проектах. Первая версия Паскаля действительно была относительно простой и предназначалась для обучения, но со временем язык развился и стал очень продвинутым. - person mr. w; 02.10.2010
comment
@mr.w Его нельзя использовать в больших реальных продуктах, если у него больше нет жизнеспособной экосистемы — книг, журналов, курсов, рабочих мест, конференций, библиотек, людей моложе 40 лет, которые когда-либо его видели, и т. д. Паскаль был выбор Mac в 1980-х, а не сегодня. Он также больше не популярен в Windows. Он стоит далеко от основного рынка, но не предлагает поддержку или функции корпоративного уровня. Нет веских причин выбирать его сегодня (в отличие от 1990-х) вместо C#, C++, Java, Python или новых инструментов Rust, Go, D, Nim (на основе Pascal) и т. д. - person alcalde; 25.08.2015