LINUX.ORG.RU

Free Pascal 3.2.0

 , ,


0

5

Состоялся выпуск FPC 3.2.0!

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

Со времени выхода FPC 3.0 прошло 5 лет, так что рекомендуется обновиться как можно скорее.

Новые возможности: https://wiki.freepascal.org/FPC_New_Features_3.2.0

Список изменений в которых может нарушиться обратная совместимость: https://wiki.freepascal.org/User_Changes_3.2.0

Список новых поддерживаемых платформ: https://wiki.freepascal.org/FPC_New_Features_3.2.0#New_compiler_targets

Скачать: https://www.freepascal.org/download.html

>>> Официальный сайт

★★★★

Проверено: leave ()

Ответ на: комментарий от anonymous

Сейчас веб посложней системного программирования, лол.

Да уж.
Умеют из мухи слона сделать.

anonymous ()
Ответ на: комментарий от bbk123

Почему языки семейства Оберон не стали достаточно популярными?

Потому что проблемы с маркетингом. Из популярных языков произошедших из Оберона можно назвать Go.

X512 ()
Ответ на: комментарий от bbk123

Почему языки семейства Оберон не стали достаточно популярными? Почему они не достигли популярности хотя бы Паскаля?

Возможно, из-за непрактичности. Программист-практик привык к C-like-языкам, потому что на них банально быстрее лабать код, и код легче читается, потому что тупо меньше буков читать. Да и регистрозависимость имён полезная на практике штука. Delphi выезжал на киллер-фиче десктопного гуя. А с появлением C++, Java, .NET, Go, Rust (все, заметим, C-like), предлагающих богатые библиотеки, у паскалеподобных и вовсе не осталось шансов влиться в мейнстрим. Но в таких нишах, как академические CS-исследования и обучение, они остаются.

hbee ★★★ ()
Последнее исправление: hbee (всего исправлений: 1)
Ответ на: комментарий от anonymous

Сейчас веб посложней системного программирования, лол.

И это прекрасно объясняет почему ЧСВшнутые веб-разработчики считают что раз уж они осилили веб и JS - то теперь могут этим микроскопом и гвозди забивать, и вырезать узоры из листов алюминия, и выполнять трепанацию черепа, ну и бактерии разглядывать, конечно.

Gentooshnik ★★★ ()
Ответ на: комментарий от anonymous

Сейчас веб посложней системного программирования, лол.

В основном эта сложность связана с кучей стандартов/языков/фреймворков/версий фреймворков и к сложности самого продукта отношения не имеет.

X512 ()
Ответ на: комментарий от X512

В основном эта сложность связана с кучей стандартов/языков/фреймворков/версий фреймворков и к сложности самого продукта отношения не имеет.

Да «куча» хорошая …

anonymous ()
Ответ на: комментарий от Gentooshnik

Можно делать exe и из Python, и из Tcl. И встроенный в exe интерпретатор Tcl даже инициализируется приемлемо быстро.

Можно. Но по ресурсам оно будет многократно прожорливей, это ж надо весь интерпретатор с доп пакетами засунуть

Ну и Python не предназначен для паковки в exe, его сила именно в старте .py файла и экосистеме

ism ★★★ ()
Ответ на: комментарий от Gentooshnik

Это характерно вообще почти для всех людей, независимо от изученного скилла.

Еще одна грань того же самого - знамености, которые начинают считать себя специалистами по всем вопросам.

anonymous ()
Ответ на: комментарий от X512

Да. Но это не отменяет сложности в освоении и поддержании себя в тонусе. Речь ведь была про интеллект тех людей, которые занимаются веб-разработкой.

anonymous ()
Ответ на: комментарий от anonymous

Тупость может быть очень утонченной и сложной. Как зависимости npm

ism ★★★ ()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от ism

Ну и Python не предназначен для паковки в exe, его сила именно в старте .py файла и экосистеме

Да, поэтому у Tcl и нет почти ни одного его недостатка, т.к. он изначально тонкий встраиваемый интерпретатор.

Кроме тормозов, конечно. Тормоза есть у обоих.

Gentooshnik ★★★ ()
Ответ на: комментарий от bbk123

Очень многое происходит случайно, а потом задним числом придумывают объяснения.

anonymous ()
Ответ на: комментарий от hbee

Возможно, из-за непрактичности

Это согласен, но причина ИМХО всё проще и дело в библиотеках. Библиотеки или на Си или есть биндинги Си для всего, что нужно. А для Pascal/Delphi/etc. они, если и есть, то или старые или кривые или и всё равно надо допиливать. Ну и зачем этим кому-то заниматься без необходимости, если проще сразу взять Си?

SkyMaverick ★★ ()
Ответ на: комментарий от SkyMaverick

Всегда есть dll, .so

Например Lazarus использует Qt или Gtk

ism ★★★ ()
Ответ на: комментарий от ism

Я про то, что хочу я поюзать, например Vulkan и писать на FPC/Lazarus. Ну и где мне искать unit-ы? Переписывать С-headerы? И надо мне оно? А MPI какой-нибудь? ZeroMQ какое-нибудь? Ну и т.д.

Например Lazarus использует Qt или Gtk

Ну это потому что конкретный человек сел и спортировал LCL на конкретный тулкит. На GTK3 кстати до сих пор не допилено.

SkyMaverick ★★ ()
Ответ на: комментарий от SkyMaverick

Я про то, что хочу я поюзать, например Vulkan и писать на FPC/Lazarus. Ну и где мне искать unit-ы?

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

ism ★★★ ()

Pascal прекрасен. Как не было ничего лучше для начального обучения школьников, так и нет. Указатели то на любимом макаками Python как детям объяснять? И по статистике тех олимпиад, по которым я видел данные, дети, пишущие на Pascal занимают более высокие места, чем пишущие на Python. Может быть за последние два - три года что либо поменялось, но как то слабо в это верится.

P.S. Специально для «не умеющих в логику», но любящих орать: из того что «макаки» любят питон, не следует все кто его любит - «макаки».

P.P.S. Под «макакой» в данном сообщении прошу понимать крайне ленивого и не желающего учится любителя «тяп-ляп и в продакшн».

Capsid ()
Последнее исправление: Capsid (всего исправлений: 1)
Ответ на: комментарий от hbee

Потому что, у паскалеподобных языков не было хайпа Юникса. Именно из-за хайпа Юникса С стал популярен. Все остальные Перечисленные языки создавались для того, чтобы програмисты С не пугались, у них были их знакомые фигурные скобки, и оНи могли быстро «изучить» новый язык.

Дизайн Алгол-60 был менее ущербен по сравнению с С. Приняв С за базис индустрия потратила больше времени на отлов ошибок, чем сэкономила на написании кода.

А С# это паскалеподобный язык с С синтаксисом объявления переменных.

anonymous ()
Ответ на: комментарий от hbee

Rust (все, заметим, C-like)

Rust не C-like, он ML. Сравни Rust с F# или OCaml, намного более похоже чем на С.

Кстати первые версии Rust были написаны на OCaml, прежде чем переписали на Rust…

https://github.com/rust-lang/rust/tree/ef75860a0a72f79f97216f8aaa5b388d98da6480/src/boot

fsb4000 ★★★★ ()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от X512

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

anonymous ()

Я только, в обероне (КП) не понял, зачем они заминили аnd на &, а not на ~. При этом оставив or. Неужели нельзя было оставить паскаливские and, or, not, а не заменять из сишными огрысками. Хотя бы синонимы сделали. :(

anonymous ()

Глюки с виндовой консолью под отладчиком исправили?

Паскаль классный язык, чтобы на нём вкатываться в программирование школьникам. Но глюки (то ли в среде, то ли в компиляторе) бывают, причём досадные.

Northsoft ★★ ()

Поставил DOSBox и ностальгируй себе на Turbo Pascal ...

TechnoMag ()
Последнее исправление: TechnoMag (всего исправлений: 1)
Ответ на: комментарий от TechnoMag

На DosBox идёт и FreePascal, зачем ограничивать себя от новых крутых плюшек языка?

https://imgur.com/a/Obrr6sM

К тому же TurboPascal платный. Это безумие использовать платный TurboPascal, когда есть GPLv2+ FreePascal

fsb4000 ★★★★ ()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от ism

автогенератор связей с внешними библиотеками

Есть конвертор h2pas для конверта С-headers в юниты, но он, мягко говоря, работает не всегда. А если библиотека экспортирует не просто функции, а скажем функцию, которая выдаёт структуру с callback-ами (API), то никакой конвертер не поможет и описывать pascal - это жёсткий секс в стиле

type

TCbFuncType = function(ctx: UIntPtr; <ещё что-то там>): integer; cdecl;
<куча типов callback-ов>

TAPIFunctions = packed record
    FuncName: TCbFuncType; 
    <callback-и>
end;
PAPIFunctions = ^TAPIFunctions; 

TAppGetAPIFunc = function (ctx: UIntPtr): PAPIFunctions; cdecl;

который потом, совсем бы правильно если для ObjectPascal/Lazarus, надо завернуть в ООП и сделать пакет.

SkyMaverick ★★ ()
Ответ на: комментарий от anonymous

Про BlackBox я слышал и так понял, что это самая живая сейчас реализация компонентного паскаля и оберона, верно?

Ещё есть A2 (bluebotte, active oberon system, скриншот), но это скорее операционная система и в ней нет нормальной интеграции с оконной системой хоста. Зато есть полноценная поддержка потоков. В BlackBox поддержка потоков имеет экспериментальный статус, вместо них есть coroutine.

но нигде не нашёл спецификацию КП

https://oberoncore.ru/_media/wiki/lang/cp-lang.pdf. Также Docu/CP-Lang.odc в дистрибутиве BlackBox.

X512 ()
Ответ на: комментарий от hbee

Программист-практик привык к C-like-языкам,

Когда был создан Оберон, МакОС и Фотошоп всё ещё были написаны на Паскале, так что нет, не привык.

потому что на них банально быстрее лабать код

Не быстрее, и Турбо Паскаль это доказывал все 80-ые.

и код легче читается

Вы в своём уме? Если букв действительно меньше, это ничего не значит. Сравните Перл и Питон, что лучше читается? Почитайте Столярова что ли...

Всё дело именно в Юниксе и маркетинге. Вот английский гораздо менее удобен, чем эсперанто или даже испанский, но его всё равно учат в школах. Не из-за его качеств, которых нет. Просто так вышло.

Vudod ★★★★★ ()
Ответ на: комментарий от anonymous

Я только, в обероне (КП) не понял, зачем они заминили аnd на &, а not на ~. При этом оставив or.

Потому что у & и OR разный приоритет. Можно писать a & b OR c & d и наглядно видно что a & b, c & d сгруппированы и вычисляются раньше OR.

X512 ()
Ответ на: комментарий от hbee

По сравнению с классическим C в Java очень длинный код получается, однако никому это не мешает и Java весьма популярна.

bbk123 ★★★★★ ()
Ответ на: комментарий от X512

Зачем? Это вредно, понаплодите someName, SomeName - поди потом разберись, что есть что

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от hbee

Да и регистрозависимость имён полезная на практике штука.

Спорно. Единственное преимущество, которое я вижу — регистрозависимость вынуждает более аккуратно писать имена. Это плюс, да. Но люди, которым code style по барабану, и в регистрозависимом C++ разводят в тексте такой адок, что мама не горюй. Тут по сознанию надо бить, а не по регистру.

hobbit ★★★★★ ()
Ответ на: комментарий от Capsid

Да ясное дело, что питону можно учиться только когда уже умеешь программировать на чем-то нормальным. Это ж все равно что начинать программировать на bash.

hotpil ★★★ ()
Ответ на: комментарий от hobbit

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

hotpil ★★★ ()
Ответ на: комментарий от LongLiveUbuntu

понаплодите someName, SomeName - поди потом разберись, что есть что

Для этого есть соглашение о наименовании. В Обероне принято называть модули, типы и процедуры с большой буквы, а всё остальное с маленькой. Везде используется CamelCase. В C/C++ также можно применять это соглашение.

X512 ()
Ответ на: комментарий от Capsid

Указатели то на любимом макаками Python как детям объяснять?

А зачем им объяснять указатели?

anonymous ()
Ответ на: комментарий от hotpil

Есть языки, на которых нормально писать просто нельзя. Самый известный - вендовый cmd.

anonymous ()

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

AntonyRF ★★★ ()
Ответ на: комментарий от Capsid

Указатели то на любимом макаками Python как детям объяснять?

В скриптовых языках всё указатели.

X512 ()
Ответ на: комментарий от anonymous

Ну это какой-то узкоспециализированный интерпретатор.

hotpil ★★★ ()
Ответ на: комментарий от X512

В скриптовых языках всё указатели.

Неправда. В скриптовых языках используются не указатели, а ссылки, которые являются специальным объектом, который помогает работе GC. А указатели - это просто адреса ячеек памяти, которую вы и менеджить должны самостоятельно. И попробуйте script-kids объяснить, что, оказывается, память можно и вручную менеджить - у них просто разрыв шаблона случится, зависание и ребут.

sadko4u ()
Ответ на: комментарий от sadko4u

В Java, C#, Оберон, Go и пр. используются указатели которые трассируются сборщиком мусора. Использования термина «ссылка» вместо указателя выглядит странно. Для обозначения ячеек в памяти есть термин «адрес».

X512 ()
Ответ на: комментарий от anonymous

отому что, у паскалеподобных языков не было хайпа Юникса. Именно из-за хайпа Юникса С стал популярен.

Не соглашусь. Первый язык у меня был паскаль и я несколько утомился писать begin end. После него С был как откровение с его лаконичностью.

Хотелось бы однопроходный С-подобный паскаль ;)

Psilocybe ()
Ответ на: комментарий от Psilocybe

Первый язык у меня был паскаль и я несколько утомился писать begin end.

В нормальных IDE это всё будет писаться автоматически. Например у меня в Blackbox если написать Proc и нажать Alt, O, P, то оно раскроется в


PROCEDURE Proc;
BEGIN
END Proc;

Чтобы написать POINTER TO достаточто ввести po F5. И так далее.

X512 ()
Ответ на: комментарий от Psilocybe

Первый язык у меня был паскаль и я несколько утомился писать begin end. После него С был как откровение с его лаконичностью.

Аналогично. И с Delphi на C++ Builder перескочил в своё время при первой же возможности. Паскаль вызывает ностальгические чувства, но очередную работу буду искать на Rust :).

hbee ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.