LINUX.ORG.RU

Почему не FreePascal+Lazarus?

 , ,


0

5

На паскале пишешь? Фу таким быть...

Почему не принято для Linux писать что-то на FreePascal? Да, язык немного менее гибкий, чем C/C++, более тяжеловатый синтаксис и begin end вместо скобочек кое-кого реально задалбывают. Но зато благодаря более развитой типизации и другим более безопасным вещам меньше шансов «выстрелить в ногу» при сохранении в тоже время и достаточной при необходимости низкоуровневости, чтобы писать даже системные вещи.

Реально раздельная компиляция на уровне языка, при том, что поддерживается и заголовочно-линкерская раздельность как в Си.

Да, есть некоторое отставание по таким возможностям, как всякие там лямбды, хотя в Delphi их добавляют, но не будем о Delphi. Вот положа руку на сердце, прям так жить без них нельзя в том же C++? Или лучше использовать для них Лисп, Haskell, OcaML и тп. а не скрещивать ежа с ужом, превращая язык в какого-то необозримого монстра, все возможности которого мало кто знает. При том, что в том же FreePascal/Delphi тип процедура/функция и object дают возможность совершать некоторые фукциональные трюки.

Стандарт? Да, стандарта нет. Но как будто на практике с этим сильно лучше у C++? Фактически крупные программы пишутся под конкретный компилятор и даже версию компилятора, на других могут быть сюрпризы даже на одной платформе, заранее положиться без тестирования, что оно соберется и будет себя также вести нельзя.

★★★★★

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

Java — это уже американская попытка исправить европейское убожество. Вполне себе достойный результат.

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

Java — это уже американская попытка исправить европейское убожество. Вполне себе достойный результат.

В чем выражается достоинство?

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

Речь про промышленную разработку

Нененене, выше уже кто-то сказал «Лишп». Теперь это официальный кулинарный тред про мамкин борщ.

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

Нененене, выше уже кто-то сказал «Лишп».

Common Lisp — ANSI стандарт, используемый в американской оборонной промышленности. Это тебе не какая-то двухстраничная бумажка, накаляканная в ворде и реализованная школьником за 250 рублей.

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

Визуальная разработка GUI мне кажется весьма сомнительной.

Расскажи это пользователям Qt. Внутри которого даже всё ещё не совсем четный C++

be_nt_all ★★
()

Почему не принято для Linux писать что-то на FreePascal?

«Старики» успели перейти на, к примеру, C++ и Qt (и да, обратно не сильно хочется) потому как Lazarus'а ещё не было/былне готов, а под Линукс писать было надо, а молодёжь Delphi в лучшем случае проходила в универе (в смысле мимо). Сейчас у них на до-диезе модно (ну собственно туда главный архитектор дельфей и свалил в своё время).

На паскале пишешь? Фу таким быть...

А это банальный снобизм/чувство толпы. Обсуждению в приличном обществе не подлежит.

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

Ада тоже ишпользуется там же (для того и разрабатывалась комитетом, который кококонешно «исказил академическую стройность» прельстивую и любовную Вирту, который до того тусил в комитете по Алголу-68, «тоже не понравилось», говорит, но... потом снова пошел в комитет!), но илитка выше по треду че-то кукарекала про «демократизацию» — а прохвессорам тоже кушать хочется и деньги получать :)

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

Почему lazarus не может c/c++ например?

C - умеет, а у плюсов стандартного ABI нету, а для GCC линковку в FreePascal пилили-пилили, да так и не выпилили. Теоретически всё равно возможно сделать какой-нибудь С++ Builder через генерацию промежуточных C-модулей, но решение костыльное, будет потеряна скорость компиляции, которая выгодно отличает FP от GCC а полной совместимости с BCPPB так и не будет.

be_nt_all ★★
()

(Тред не читал)

Почему не принято для Linux писать что-то на FreePascal

В юникс-подобных системах есть «главный» язык, вокруг которого все крутится: C. И кошерность языка в этой среде во многом определяется его интероперабельностью с сишкой, которая, насколько мне известо, в этих ваших паскалях не шибко ценится.

Но как будто на практике с этим сильно лучше у C++

Толсто, хотя лет 15 назад это было вполне актуально

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

у плюсов стандартного ABI нету

Itanium ABI - стандарт де-факто, MS можно считать маргиналами-отщепенцами

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

И имя той БД Firebird, мне лично больше всего такого софта на сабже попадалось.

Счастливый ты человек, раз BDE не помнишь :)

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

И кошерность языка в этой среде во многом определяется его интероперабельностью с сишкой, которая, насколько мне известо, в этих ваших паскалях не шибко ценится.

(Тред не читал)

Оно и видно. Ты выше по треду полоругли про интерфейсные модули и CDECL и не будешь нести пургу. В практическом смысле никакой проблемы с «интероперабельностью» нет. От слова совсем. То что «нубам сразу нипанятна» — вообще не аргумент, особенно с позиций Ц, который нубам противопоказан :) Или руки порежут, или ногу прострелят.

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

При этом этот буст весит больше дотнета, а всякие говнокодеры его тянут только ради каких-нибудь контейнеров или псевдо-динамических-массивов. Это при условии, что пытающийся юзать - освоил профессию «установщик boost».

Ой, ну не надо сказок. Буст он по большей части компайлтайм, имеет достаточно понятную модульную архитектуру, и вообще… Если человек способен освоить C++ и Boost эникейщик для установки последнего ему уж точно не нужен.

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

Короче, если нужен один серьёзный проект одним бинарным файлом по принципу «всё своё ношу с собой», то Freepascal очень неплох (вплоть до того, что в большинстве случаев можно будет обойтись безо всего - даже без libc и libm). С Lazarus чуть похуже: да, в бинарнике будет почти всё, но в Linux он будет ориентирован на gtk2 или на qt,

MSE (альтернативный легковесный RAD для FP) от gtk или qt не зависит.

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

Firebird или любая sql-база (включая sqlite) минуя этот рантайм, в совсем примитивных случаях — просто компонент по подключению DBF.

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

Будет оно в разы кривее (потому что язык без компилятора и все ошибки будут высыпаться на пользователя)

ну, справедливости ради, в пракике программирования (ЕМНИП) для Delphi нарушений строгой типизации хватает, чего уж….

работать будет на порядки медленнее, потому что интрперетатор

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

А потом будет переход на Qt6 и python 4 и всё это вообще перестанет работать.

А что, Borland ни разу обратную совместимость не ломал? Ну вообще не аргумент.

be_nt_all ★★
()
Ответ на: комментарий от silver-bullet-bfg

Абсолютно не реален. * как символ имеет в Си особое значение. Поэтому к ней относятся очень внимательно. Как и к define, т.к. баги «макры» ищутся сложнее, дольше - их пишут внимательнее.

Это ли не недостаток? Для невнимательных С закрыт. Паскаль - вполне пойдёт, т.к. 99 % ляпов будет выявлено на стадии компиляции, а оставшийся процент есть у всех и везде, так что без отладки всё равно не обойтись.

Тогда понятно, претензий к незнанию матчасти нет. А что побудило заняться пограммированием? И почему именно паскаль?

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

И linux=) Паскаль под виндами себя чувствовал лучше тогда, все же был Delphi только под оффтопиком.

Delphi изначально не было вообще (во времена OWL, их я застал на 1 курсе). Потом - да, конечно. Linux - потому что всегда хочется чего-то нового; чем иметь 3-4 винды разных версий и конфигураций на hdd, лучше одну заменить на Linux. Ну и «лицензионность» какая-никакая. Там был p2c. А в начале нулевых (когда я уже чуть-чуть разобрался в линуксе) нашёлся и FPC (уже с зачатками Lazarus). Потом был kylix_oe, а к его умиранию и Lazarus дошёл до рабочего состояния.

Нельзя использовать то, что не умеешь использовать. Просто использовать можно для самообучения и то до определенного предела. Чтобы работать с инструментом - надо уметь с ним обращаться.

Уметь использовать можно на разном уровне. Надо ли знать все ключи к ls, чтобы просмотреть содержимое каталога? Нет, конечно (а на случай чего всегда есть man). Так и ключи компилятора в 99 % случаев не нужны, когда можно использовать его самым простым способом. Вот если хочется выжать чего-то большее - тогда они нужны. Но тут есть нюансы: FPC очень часто не дружит со своими ключами. От версии к версии какой-нибудь ключик да и сломают (не говоря уж о trunc). Кто знает, что штатный ключ -Xs для вырезания отладочной информации работает не всегда, особенно он может быть проигнорирован Lazarus, если указать его непосредственно? Но ему есть куда лучшая замена -Xg, которая выбросит отладочную информацию в отдельный файл. И это ещё не самый большой баг с ключами. Нет, в gcc может быть и иначе, но с FPC достаточно знать -Fu, -d, -Xg, -gl/-gg, ну а для особых случаев - -Сn. Всё остальное лучше делать директивами компилятора (ну или редко).

И что? Это проблема?

Иногда. Особенно когда пытаешься использовать кусок программы где-то ещё, или же портируешь программу.

Напишите скрипт на tcl, он позволит реализовать сложную логику и даже прикрутить без особых туда интерфейс на Tk.

Для того, чтобы «вытащить» все зависимости программы и подключить нужные модули (которые не совсем модули), требуется сложная логика. Это ли не недостаток? А в паскале почему-то достаточно просто указать главный файл.

Это везде так. Проблемы так и не понял

В С - нет. Есть 1 файл с program (в С - включающий фукнкцию main) и десяток/сотня мелких модулей. Для паскаля достаточно первого файла и указать, где могут лежать остальные (если они где-то ещё). Для C нужно указать, где лежит каждый из них, и указать при этом только нужные.

FoodChemist
()

Здравствуйте!

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

К. Боон «Паскаль для всех»,

К. Йенсен, Н. Вирт «Паскаль. Руководство пользователя»,

«Языки программирования Ада, Си, Паскаль. Сравнение и оценка». Под редакцией А. Фьюэра, Н. Джехани.

Паскалем язык назван в честь французского математика, гуманиста и религиозного человека Блеза Паскаля, построившего первую простую вычислительную машину. Никлас Вирт в 1968 году предложил первую версию языка Паскаль.

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

Паскалем язык назван в честь французского математика, гуманиста и религиозного человека Блеза Паскаля, построившего первую простую вычислительную машину. Никлас Вирт в 1968 году предложил первую версию языка Паскаль.

Спасибо, ценная информация, записал в блокнот.
// мимокрокодил, прошу вас господа, продолжайте :)

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

На личности не переходить. Лучше иди с любимым соседом потолкуй.

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

А я помню - один из эпичнейших тредов ЛОРа, даже с участием приснопамятного Луговского.

Кстати, из Луговского же по теме:

Молчать, ламеры!

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

Сказано в его манере, грубо, но по сути не очень далеко от истины.

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

Кстати, из Луговского

Да где он теперь этот Луговский? В современном мире, где хелловорлд на C++ уверенно перелезает мегабайт, где все кто хотел уже давно свалили с C++, где всерьёз обсуждается добавление аналога DCU в следующую версию C++, где в каждом первом домохозяйстве с компом есть хотя бы один линукс, он уже не звучит.

Всё реально и реально поменялось.

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

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

Этот Луговский оказывается плагиатор. О сходстве Си и Pascal говорил Деннис Ритчи. Луговский просто в грубой форме перефразировал слова Денниса.

Очень суровово о Си/С++ отзывался никто иной, как сам Никлаус Вирт. Поэтому любезный идика отсюда, лучше трахай мозги своему соседу.

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

Ну да, делал такой fm, то на kylix, то на lazarus. Правда, в том треде тема куда-то уж совсем не туда ушла.

FoodChemist
()

День рождения

... сегодня день рожения Никлауса Вирта. Вот так вот скромно о великом учёном.

anonymous
()

man book «Языки программирования Ада, Си, Паскаль. Сравнение и оценка» (ISBN 5-256-00309-7)

кратко: Pascal otstoy ...

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

(ISBN 5-256-00309-7)

Здравствуйте!

ISBN - это специальный код книги.

Весьма и весьма любопытные книги - это те книги, на которых два или даже три кода ISBN.

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

В С - нет. Есть 1 файл с program (в С - включающий фукнкцию main) и десяток/сотня мелких модулей. Для паскаля достаточно первого файла и указать, где могут лежать остальные (если они где-то ещё). Для C нужно указать, где лежит каждый из них, и указать при этом только нужные.

А можно пример? Либа, которая линкуется с парой-тройкой других либ и правильно ставится в систему. Ну и к ней пару-тройку слинкованных с ней утилит.

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

А можно пример? Либа, которая линкуется с парой-тройкой других либ и правильно ставится в систему. Ну и к ней пару-тройку слинкованных с ней утилит.

??? В чём вопрос? Пример либы на С? Пример правильной установки? То же самое без makefile? Цитируемый текст был о том, что сборка из набора исходников в С - не такая простая задача, надо указать их все; в Паскале - достаточно одного. Пример? Возьмите любой средненький проектик на С, удалите Makefile и его следы и попробуйте его собрать. В паскале в аналогичном случае (пусть это будет даже монстр уровня Lazarus) достаточно свалить все исходники в одну кучу (исключив только ненужные интерфейсы, оставив один).

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

В паскале в аналогичном случае (пусть это будет даже монстр уровня Lazarus) достаточно свалить все исходники в одну кучу (исключив только ненужные интерфейсы, оставив один).

И он сам найдет все системные библиотеки и нормально поставится в систему?

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

Весьма и весьма любопытные книги - это те книги, на которых два или даже три кода ISBN.

И чем же они любопытней?

anonymous
()

Не знаю чем объяснить, но по какой то причине лично у меня паскаль вызывает отвращение. Что-то в нём не так. Ни один другой язык таких чуств не вызывает кроме паскаля. Видимо, у большинства то же самое раз никто не использует его.

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

Полагаю, все дело в том, что ты просто ебанутый.

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

http://az-design.ru/index.shtml?Support&SoftWare&Delphi/Pascal/001bToc

Написано «Критика языков программирования», а в разделе заботливо подобранные статейки хейтеров паскаля. И ничо критического про остальные. Хорошая попытка, но плохой косплей кэпа :)

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

Не знаю чем объяснить, но по какой то причине лично у меня паскаль вызывает отвращение. Что-то в нём не так. Ни один другой язык таких чуств не вызывает кроме паскаля. Видимо, у большинства то же самое раз никто не использует его.

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

Короче, ты всего навсего часть стада.

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

Думаю дело не в этом т.к. я это ещё со школьных уроков информатики начал чуствовать когда я ещё понятия не имел на чём пишет стадо. С самого первого знакомства казалось что язык наполнен какими то нелепыми ограничениями, не достаточно свободен. А когда мне попалась книжка Kernighan & Ritchie «The C Programming Language» я сразу понял что это то что нужно - простой лаконичный язык без нелепых ограничений. Думаю большинство программистов это чуствует и дело не в стадном инстинкте, а паскаль «на любителя». А про армию расскажите, что там в учебке, тоже на C программируют?

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

...если не принимать во внимание одну маленькую деталь: в те времена хейтеров еще не было...

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