LINUX.ORG.RU

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

 , ,


0

5

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

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

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

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

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

потому что на целевую систему придется тащить рантайм, потому что биндинги под плюсы где?

subwoofer ★★★★★ ()

А почему не rust, а не этот реликт эпохи мезозоя?

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

Lazarus умеет под Qt делать интерфейс. Насчет рантайма даже не смешно. Актуально для embedded и ни для кого больше. Даже наоборот, отсутствие зависимости от libc в ряде случаев - плюс.

praseodim ★★★ ()

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

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

Потому что, чего бы не говорили в свое время про формошлепство и как бы не возмущался когда-то Луговский, что Delphi - не RAD, но таки удобно в lazarus довольно быстро написать GUI и код.

Причем, хочу заметить, что нативный (не скриптованный) GUI, такое из IDE, кажется только еще QtCreator умеет, при том, что Lazarus может использовать и его и Gtk.

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

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

Может я постарел =) Но стало казаться, что правильные концепции - это все конечно здорово, а на практике слишком часто надо просто взять и что-то наваять особо не сношая себе мозг.

Я не хочу сказать, что Lazarus+FP - rulezz & the best, но чувство, что не совсем заслуженно игнорируются.

praseodim ★★★ ()

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

Как и всегда, отталкиваться в выборе надо от конкретного проекта

Debasher ★★★★★ ()

На самом деле ответ очень прост.
Ответ - крайне предвзятое отношение.
Потому что в IT сфере очень сильны предубеждения и сарафанное радио. Вот посидел человек на хабре, почитал статьи и комментарии к ней, и понял, что язык ХХХ полное Г.
Почему? Грамотной, доказуемой и проверенной самим человеком аргументации нет, и никто ее не приведет. Ведь никому не охота тратить кучу времени на изучение языка ХХХ, сравнивать с другими языками, проводить тесты, чтобы потом было аргументированное мнение.
Зачем такие сложности, когда есть хабр. Почитал, послушал что говорят, и вроде бы ты уже все знаешь. Ведь все так говорят, а все ошибаться не могут.
Хотя по факту это просто эффект толпы. Мало кто может грамотно аргументировать свою позицию, но зато много кто громко кричит: «Это же УГ!».
Зачем думать, использовать мозг, тратить время на изучение технологии ХХХ? Когда гораздо приятнее громко кричать!
В социальном плане человечество на данный момент полностью повторяет социальную модель общества обезьян, поэтому и удивляться не чему.

Michail_Ul ★★ ()

cast unC0Rr он расскажет что под линукс и на фрипаскале пишут

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

Lazarus умеет под Qt делать интерфейс.

т.е. это уже групповуха - надо совокупляться еще и с кутями

Насчет рантайма даже не смешно.

- Чуваки вот вам моя программа.

- ээ а gcc ее не собирает.

- качайте фрипсукаль

- ага скомпилялось, но на убунте не работает

- качайте там рантайм

- а рута нет

- ну вот так вот скриптом можно

- а иди нахрен некрофил, мы на куте уже написали

Даже наоборот, отсутствие зависимости от libc в ряде случаев - плюс.

А ты не иноплонетянин?

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

Грамотной, доказуемой и проверенной самим человеком аргументации нет, и никто ее не приведет.

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

subwoofer ★★★★★ ()

чем C/C++

пшел отсюда, давай-давай

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

т.е. это уже групповуха - надо совокупляться еще и с кутями

Не надо, не заставляют. Это один из вариантов. К тому же довольно прозрачный, не требующий знаний Qt, если не влезать в дебри.

- качайте там рантайм

Он в таком случае просто кладется рядом и все. Если уж скомпилировалось.

Даже наоборот, отсутствие зависимости от libc в ряде случаев - плюс.

А ты не иноплонетянин?

Если что-то сильно поломано, например.

praseodim ★★★ ()

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

Потому что плюсов от перехода на паскаль абсолютно никаких даже теоретически, а минусов очень много. С какой стороны ни посмотри на С/С++ разработка будет проще/дешевле/результативнее.

mbivanyuk ★★★★★ ()

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

Так говорят только хипсторы. Нормальным людям всё равно на чём писать. Тем более - скажу по собственному опыту. Python3 считается вполне себе языком. Ничего хуже, чем Python3 я не видел, разве что C++. А так - от «паскаля» воротят нос, т.к. у нас в ПУЗах он преподаётся череж одно место. Как впрочем и все языки.

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

Исторически сложилось. Linux = C. Оффтопик = Паскаль, VB, etc.

Да, язык немного менее гибкий, чем C/C++,

С Pure C согласен. А вот с С++ - нет. В каком месте OP хуже, чем С++ или не умеет чего-то для прикладных задач?

более тяжеловатый синтаксис и begin end вместо скобочек кое-кого
реально задалбывают.

А меня вот задалбливают {} в С-like синтаксисе. И что? Это разные синтаксические ветки, которые ничем не хуже друг друга.

Но зато благодаря более развитой типизации и другим более
безопасным вещам меньше шансов «выстрелить в ногу»

Это где? Паскаль даёт ровно столько же способов прострелить что угодно. Если ты пишешь как м**ак, то дело не в языке, а в тебе.

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

Да, паскаль - может применяться как системный язык. Хотя тут тонкий вопрос - что понимать под системным?

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

И что? По моему сейчас - стандарт. Да и тогда тоже.

Да, есть некоторое отставание по таким возможностям, как всякие
там лямбды, хотя в Delphi их добавляют, но не будем о Delphi.

А вот резонный вопрос - а зачем тебе лямбды? В 90% случаях такие фичи добавляют «для галочки». Пример - lambda в Python3. Практического применения за два года я так и не нашел.

Вот положа руку на сердце, прям так жить без них нельзя в том же
C++?

Я более того, скажу - без С++ можно и нужно жить. С++ не нужен.

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

А вот тут и да и нет. OCaml - тоже уж с ежом. Но качественный. А вот, если говорить об Python3 или C++ - «Гвид» и «Страус» не до конца поняли парадигмы (такое ощущение) и начали включать что-то просто потому, что это «круто». Для примера - Python3 считается ООП-языком, поддержки парадигмы по принципам Алана Кея не проходит. Аналогично «плюсы». «Страус» почему-то решил, что Ъ-ООП - это Simula, которая ни разу не ООП-язык...

При том, что в том же FreePascal/Delphi тип процедура/функция и
object дают возможность совершать некоторые фукциональные трюки.

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

Стандарт? Да, стандарта нет.

Наркоман? Стандарты языка: ISO 7185:1983 Programming languages — PASCAL (заменён стандартом ISO 7185:1990), ANSI/IEEE770X3.97-1983, ГОСТ 28140-89 Системы обработки информации. Язык программирования ПАСКАЛЬ,ISO 7185:1990 Information technology — Programming languages — Pascal, ISO/IEC 10206:1991 Information technology — Progamming languages — Extended Pascal

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

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

С какой стороны ни посмотри на С/С++ разработка будет проще/дешевле/результативнее.

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

Michail_Ul ★★ ()

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

На С++ и его стандартах не так все плохо, а вот если брать разные «бусты», которые прибавляют еще больше лапши... То лучше «паскаль»

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

Более того, я скажу так - даже на языках вроде Python3 делается под конкретную версию VM, ибо батарейки могут ломаться, их адоптация инертна и т.п. Поэтому и любят в «ынтырпрайзе» лагаси, проде Java или C#, которые не ломают ничего при обновлении.

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

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

Только у виндузятников и прочего отребья, которое без окошек не может.

Быстро наваять не сношая мозг — это скрипты, максимум элементарные консольные программы, желательно на высокоуровневых скриптах. В 1% случаев, где нужен гуй, можно какой-нить тк взять с пистоном/тиклем.

А когда делаешь полноценный гуй, нужно подходить основательно к дизайну, ui/ux, никаких х%як-х%як и в продакшн.

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

Если все еще учат, то вот и «это знают наши программисты», а Си не знают. К тому же речь идет может даже в первую очередь о just for fun разработках. Вот, например, почему я такую программку НЕ должен писать на FP? А там глядишь, если станет полезной и популярной в сообществе и всем это реально нужно, кто-то перепишет на C++ или оставят FP, чтобы дурной работой не заниматься.

praseodim ★★★ ()

А что умеет FreePascal, чего не умеет тот же Ocaml?

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

Он в таком случае просто кладется рядом и все. Если уж скомпилировалось.

чето не вкуряю, бинарник лежит в /usr/local/bin а рантайм тамже рядом?

Если что-то сильно поломано, например.

Отлично, язык для сломанных систем 8)

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

Доказательство чего? Для С/С++ есть всё - компиляторы, библиотеки, учебники, программисты, IDE и вообще всё что только может понадобиться. Соответственно стоимость разработки и поддержки кода минимальна при максимальных шансах на успех. Для паскаля фактически нет ничего, а то что есть сделано на коленке оставшимися с 80-ых пенсионерами-энтузиастами и канет в лету вмести с ними. Не понимаю что именно нужно доказывать.

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

Область применения Rust не равна области применения «Паскаля». По крайней мере пока. Rust все же ближе к Pure C

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

Если все еще учат, то вот и «это знают наши программисты», а Си не знают.

Эмм, странно, именно это я и писал, у нас в универе на ФПМ все учили дельфи, и только на физтехе - кточто хотел, как итог девелоперы в конторах почемуто все физтеховцы, а фпм - идут в веб ибо паскаль никому тут нинужен.

Если все еще учат, то вот и «это знают наши программисты», а Си не знают.

Да пиши, ей бг.

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

чето не вкуряю, бинарник лежит в /usr/local/bin а рантайм тамже рядом?

Если правов хватило в /usr/local/bin что-то положить, откуда печаль, что для рантайма рут нужен?

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

оттуда что он у тебя то рядом то в /usr/local/lib и что удивительно сам подхватывается и работает

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

Доказательство чего? Для С/С++ есть всё - компиляторы, библиотеки, учебники, программисты, IDE и вообще всё что только может понадобиться. Не понимаю что именно нужно доказывать.

И что тебе не понятно? Сам не можешь разобраться в сказанных тобой словах? Давай я тебе помогу. Начнем по порядку.

  • компиляторы
    А разве их нет для FreePascal? Вообще то есть.
  • библиотеки
    Более чем достаточно.
  • учебники
    Более чем достаточно.
  • программисты
    Есть.
  • IDE
    Сам понял что сказал? Есть.
  • и вообще всё что только может понадобиться
    Ниочем. Размытая фраза.


По этим пунктам разницы нет. И в чем тогда лучше?

Michail_Ul ★★ ()
Последнее исправление: Michail_Ul (всего исправлений: 2)

язык немного менее гибкий, чем C/C++, более тяжеловатый синтаксис

Што! По крайней мере си вряд ли гибче чем паскаль. А уж синтаксис у паскаля куда легче чем даже у чистого си, и вообще один из самых продуманных в популярных языках.

Лямбды в любом языке полезны, при чем тут лиспохаскелли.

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

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

А что умеет FreePascal, чего не умеет тот же Ocaml?

Относительная близость к естественному языку и развитые IDE => легкоусвояемость для непрограммиста.

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

Доказательство чего?

Того, что «кресты» дешевле. И в чем.

Для С/С++ есть всё - компиляторы, библиотеки, учебники,
программисты, IDE и вообще всё что только может понадобиться.

Чего из этого нет на Паскале? Только не сферические примеры, из разряда «либа для разработки под кофеварку BigBossAss» 1980 года выпуска. А реальные либы, требования...

Соответственно стоимость разработки и поддержки кода минимальна
при максимальных шансах на успех.

Это у крестов-то? А вы не наркоман? Вы бы еще как эталон поддерживаемого кода привели Perl или Tcl. С++ тоже позволяет, как и эти артефакты, писать очень запутанный, непонятный и при это валидный (по стандарту) код.

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

Lazarus, Delphi, FreePascal IDE. Что еще надо? А, недосреды, которых для С++ дохрена. Ну да, из мало.

silver-bullet-bfg ()

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

В линуксе нет устоявшихся традиций, тут царство маргиналов. Никто тебе не запрещает использовать FreePascal. Нравится паскаль - пиши в свое удовольствие.

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

В линуксе нет устоявшихся традиций, тут царство маргиналов. Никто
тебе не запрещает использовать FreePascal. Нравится паскаль - пиши
в свое удовольствие.

Не может. ПоЦанЫ не одобряе

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

ПоЦанЫ не одобряе

Извини, но неужели тебе действительно важно, что тебе люди пишут в этой ветке?
Ты лучше спроси у них, кто из них программист? Кто работает программистом и не на словах знает, что это такое?
Читаю комментарии и рассуждения в этой ветке и понимаю, что далеко не все здесь программисты. Так что забей на их мнение.

Michail_Ul ★★ ()

Почему? Школьники на паскале для ГИА и ЕГЭ пишут

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

Пример - lambda в Python3. Практического применения за два года я так и не нашел.

Потому что они там — говно.

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

компиляторы...А разве их нет для FreePascal? Вообще то есть

И они могут дать сравнимый по скорости выполнения и объёму код? Я сам начинал с паскаля в конце 80-ых и тогда всё было очень печально. Настолько печально что переход на Си как я помню был массовым и быстрым. Что изменилось с тех пор?

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

Для С/С++ есть всё - компиляторы
И они могут дать сравнимый по скорости выполнения и объёму код?

Батенька, вы спрашивали о том, есть или нет. Вы не говорили про сравнение скоростей.

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

И они могут дать сравнимый по скорости выполнения и объёму код? Я сам начинал с паскаля в конце 80-ых и тогда всё было очень печально. Настолько печально что переход на Си как я помню был массовым и быстрым. Что изменилось с тех пор?

Как было у людей г*вно в голове, так и осталось. Что меня не удивляет.

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

Компилятор который выдаёт такой ужасный код существует только для того чтобы фанатики могли козырять что он есть. Фактически то его и нет. Так и с остальными пунктами в твоём списке. Это Lazarus - IDE? Ну ОК, кому и кобыла невеста. Собственно на вопрос ТС ты и сам уже ответил.

mbivanyuk ★★★★★ ()

Все это заливистое ВРЕТИ от паскалистов даже забавно. В реальности паскаль не входит даже в двадцатку популярных языков на гитхабе, библиотеки и экосистема мертвые, а Lazarus - IDE, прочно застрявшее в 90-х. Какое-то легаси на дельфи есть, а еще его зачем-то учат в школах, но на этом все. Если нравится, то можно, конечно, для себя использовать just for fun.

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

Причем, хочу заметить, что нативный (не скриптованный) GUI

И что в этом хорошего? Декларативное описание гуя, когда код и представление разделены - манна небесная. А ты несешь какую-то дичь, a la 90-е.

no-such-file ★★★★★ ()
Ответ на: комментарий от Michail_Ul

По этим пунктам разницы нет. И в чем тогда лучше?

Да, ничем не лучше. А то, что на паскале никто не пишет — это заговор рептилоидов. Это всегда так мило, когда фанаты умирающих языков и технологий включают на максимум ОТРИЦАНИЕ.

trycatch ★★★ ()
Ответ на: комментарий от no-such-file

Гуй должен быть нативным, эти ваши жсвебные костыли всех уже заипали даже в домашнем использовании. Декларативность != убогость и велосипедирование.

arturpub ★★ ()

1) Потому что язык фактически мёртв, осталось одно легаси да школоло поделки

2) Порог вхождения выше, чем для си или си++. Почему? Да просто попробуй подключить первую попавшуюся либу к своей программе. В си/си++ инклюдишь заголовочник - и вперёд. Паскаль в жопе.

unC0Rr ★★★★★ ()
Последнее исправление: unC0Rr (всего исправлений: 1)

Язык класса «неуловимый Джо» - практически отсутствуют pascal-зависимости при установке пакетов

anonymous ()

Почему lazarus не может c/c++ например?
Могли бы сделать универсальный тулкит. Но нет же.

mittorn ★★★★★ ()

И да, я у себя double commander без танцев с бубном собрать не могу
(а под arm вообще не могу)
Зачем тогда писать на этом? Пускай до ума доведут.

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