LINUX.ORG.RU

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

 , ,


0

5

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

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

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

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

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

★★★★★

Потому что pascal == Turbo pascal. А его кроме как под dos/win не было. Писались бы unix/linux на паскале, его было бы чуть больше сишечки. Но получилось вот так. Сам Кернинган писал о том, что не любит паскаль.

меньше шансов «выстрелить в ногу»

Язык учить надо, а не копипастить, тогда и стрелять никуда не надо.

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

Язык учить надо, а не копипастить, тогда и стрелять никуда не надо.

То-то, более половины уязвимостей из-за каких-то «выстрелов»: то за размером буфера не уследили, то за модификаторами в printf, а сколько багов наплодили 0-terminated строки - это вообще. Понятно, что в начале 70-х так удобно было данные с лент считывать, на этом достоинства таких строк фактически и кончаются и начинается баготворчество.

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

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

This.

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

строки - это вообще

каждый новый ЯП это попытка нормально переписать сишные строки

баготворчество

не от языка зависит так-то

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

я даже больше скажу: все проблемы сишки идут не от сишки, а от архитектуры железа, она бажная бай дизаин

а новую архитектуру не придумаешь — засудят

так и живем

unt1tled ★★★★
()

Потому что сейчас если тебе нужна более-менее быстрая прога, то ее можно написать на Java, а узкие места сделать на C/C++. Благо FFI у джавы не сложный. Возможно ты скажешь что это изврат - использовать несколько языков вместо того, что бы обойтись одним, но на самом деле при использовании данной связки будет намного меньше попоболи чем при попытке сделать что-то под линукс на pascal/lazarus. Главным образом при взаимодействии с внешними библиотеками, которых под паскаль намного меньше портировано чем на указанные мной.

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

а новую архитектуру не придумаешь — засудят

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

anonymous
()

Давай немного переиначим, вместо того чтоб я объяснял тебе почему я не перехожу на паскаль, лучше ты объясни мне какие мне от этого плюсы.

Расскажи пожалуйста почему моей компании стоит бросить разработку на C и перейти на Паскаль? Только пожалуйста железно аргументированные факты те которые докажут что действительно стоит потратить деньги на переучивание людей и переделывание всей инфраструктуры всех проектов.

*** У меня нет каких либо предубеждений против паскаля, если он того будет стоить, то перейдём.

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

То-то, более половины уязвимостей из-за каких-то «выстрелов»: то за размером буфера не уследили, то за модификаторами в printf, а сколько багов наплодили 0-terminated строки - это вообще. Понятно, что в начале 70-х так удобно было данные с лент считывать, на этом достоинства таких строк фактически и кончаются и начинается баготворчество.

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

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

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

unt1tled ★★★★
()

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

Потому что есть старая поговорка: лошадь сдохла - слезь.

Deleted
()

потому что всякие лазарусы и FPC это попытки оживить нечто сдохшее и забытое еще в 90х.

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

Расскажи пожалуйста почему моей компании стоит бросить разработку на C и перейти на Паскаль?

Зачем бросать, если уже пишешь на чем-то? Качественных преимуществ не будет. Я не об этом. А фактически только об отрицательном отношении к самой идее, что-то написать на паскале. Вот это заметно, по-моему.

praseodim ★★★★★
() автор топика

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

Немного, блеать. Выучи плюсы и, как следствие, перестань даже сравнивать.

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

Ты не с виртовским паскалем сравниваешь? А то ведь даже от турбо-паскаля современный далеко ушел.

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

Наркоман? Стандарты языка: 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

К современным FreePascal и Delphi эти стандарты более, чем 20-летней давности не имеют отношения, разве что совместимость поддерживается и то не уверен.

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

Ты не с виртовским паскалем сравниваешь? А то ведь даже от турбо-паскаля современный далеко ушел.

Метапрограммирование есть? Нет? До свидания, перестаем сравнивать с плюсами. По уровню древности я застал Делфи времен, когда там добавили дженерики.

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

... что там эти регистры - приелись ... дальше AX BX SI DI EAX EBX ... ничего толкового Было какое-то развитие: 286, 386, 486, 586 ...

Linux/Unix с gcc и существует, чтобы можно было компилять для любого железа. Не даром эти оси называют мобильными (портабельными)

Наконец, АМД как-то же сумел продвинуться.

Интел шел успешно достаточно долгое время в связки с любителями: if (swap not exist) then create swap with 80% of HDD ... AND if (free-memory exists) then use all memory

Дальше борьбы с теплом на десктопе задач как бы нет. Мобильный мир - целина ...

С/Rust/Erlang никто не отменял

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

Хорошо, почему моей компании стоит начать начать новый проект на паскале а не на c?

CyberK
()

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

«begin end вместо скобочек» могут задолбать только школоту, которая проблемы более серьёзного уровня просто не рассматривает.

Мне недавно пришлось снекромантить и пропатчить старые исходники на Delphi 3, при том, что на паскале я не писал где-то 6-7 лет. Так вот. Самое тяжёлое - это не begin/end и не := вместо =. Самое тяжёлое в паскале для привыкшего к крестам - это необходимость объявлять все переменные в начале блока, а потом где-то их инициализировать. Я в крестах уже привык за очень редкими исключениями объявлять переменную там и только там, где её можно инициализировать осмысленным значением. И ни строкой раньше.

Хотя я не знаю, может во фрипаскале это требование ослабили, современный паскаль довольно много перенял из крестов.

Есть у паскаля, разумеется, и достоинства. Например, нормальная модульность вместо того gay BDSM на командах препроцессора, которое до сих пор, в 2016 году, приходится использовать при программировании на крестах.

Тем не менее, свой опенсорсный прикладной проект я буду делать именно на крестах. Почему? Да потому, что чем меньше экзотики придётся тащить в зависимости, тем больше шансов, что программу можно будет установить в любой линукс-дистрибутив. Да, это своего рода конформизм.

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

Самое тяжёлое в паскале для привыкшего к крестам - это необходимость объявлять все переменные в начале блока

PascalABC позволяет в любом месте программы написать var a:integer;, что объявит переменную. Но не уверен, что это перенято fpc.

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

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

Пф... Глибц если уж пользоваться, инжой таскать глибц с собой, либо собирацца под стопицот версий глибца :)

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

Ну лукавишь же :) С «не той версией гцц+глибц» ровно те же грабли. И ты никому не объяснишь, почему им надо переходить на твой «правильный линукс»/апгрейдиться/даунгрейдиться/ставить еще один глибц, чтоб собрать твою поделку «правильным гцц», либо тащить к себе с чего-то опухший бинарь.

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

Вся переписка и срач в каментах на тему «X considered harmful» :)

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

Паскаль в жопе.

В жопе школоло, неосиливший читнуть тоненькую брошюрку Object Pascal Language Guide и накопипастить интерфейсный модуль с объявлениями функций stdcall для своей поделки :) Юзишь модуль — и вперед :) Кто ничо сложнее «найти готовый компонент» не писал — конечно в жопе.

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

а в качестве либ к нему наверное всеми любимый буст или кютэ? а почему не rust?

anonymous
()

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

anonymous
()

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

(попетросяню немного) Я думаю потому, что в зарубежных ВУЗах паскаль не учат, а в российских его учат так, что желание на нем писать пропадает на всю жизнь :)

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

Метапрограммирование

Когда файлег Templates.cpp собирается от суток до «ХЗ когда» (при том что свежий гцц собирался на той же конфе пол-часа) особо идейных метапрограммистов хочется немножко линчевать :)

slackwarrior ★★★★★
()

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

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

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

Тем не менее, свой опенсорсный прикладной проект я буду делать именно на крестах. Почему? Да потому, что чем меньше экзотики придётся тащить в зависимости, тем больше шансов, что программу можно будет установить в любой линукс-дистрибутив. Да, это своего рода конформизм.

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

korvin_ ★★★★★
()

Почему не Лазарус - не знаю. Паскаль годен. Я не пользую из-за лицензий (у меня есть SBCL и tcl/tk с пермиссивными лицензиями).

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

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

На C# переползать оказалось как-то неуютно и не прижилось, а переползать на С++ им не приснилось бы и в страшном сне. Потому что за то время, пока приложение на С++ собирается, разработчик на Дельфи уже успеет всё отладить и сходить на обед.

Я говорю о тех, кто делает учётные приложения.

Про нынешнего работодателя я не могу много говорить, а то бы сказал.

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

Судя по всему, ваш большой друг Билл Гейтс в своё время договорился с Борландом о том, что Kylix умрёт. А потом ещё и перекупил главного разработчика сред Borland, который создал C#. Вот такова судьба слабаков, которые идут на сделку с врагом.

Уничтожив Kylix, Гейтс нанёс Линуксу страшный удар лопатой по корням, лишив его гигантского куска пирога. И вы со своими совочками тоже в меру сил ему помогаете.

Сидите теперь, учите Qt5, потом Qt6, потом Qt7, переписывайте свой код на новый и новый Питон. А в это время мои бывшие работодатели будут продолжать продавать и развивать свои разработки на стабильной платформе, которая за 10 лет практически не поменялась.

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

Потому что за то время, пока приложение на С++ собирается, разработчик на Дельфи уже успеет всё отладить и сходить на обед

И тут я понял что ты Делфи даже не видел потому что всё с точностью до наоборот. Помню когда тыкал последний раз это неповоротливое убожество дико бесило просто фантастически медленной работой по сравнению с VS. Это уж не говоря про размер бинарников и прочие ужасные вещи которые я даже не буду упоминать в приличном обществе. Итого - ну кому ты пытаешься рассказать эти сказки? Тут однако не все же школьники. Или таки все? ))

mbivanyuk ★★★★★
()

Очень просто: как уже заметили выше - предубеждения, сарафанное радио, а еще есть и обычные неосиляторы, которых кстати много. Ну и те, кто привык всё время что тотчинить. Зачем таким людям финальный продукт, когда можно всё время искать или добавлять проблемы. Как по мне, freepascal и lazarus очень нужны и в большинстве случаев было б проще юзать именно их.

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

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

unC0Rr ★★★★★
()

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

А почему бы и да?

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

Метапрограммирование есть? Нет? До свидания, перестаем сравнивать с плюсами.

В С++ есть? На уровне хотя бы Tcl. Не говоря уж о Форте, Лиспе или хотя бы Smalltalk. Нет. Тогда и завали сравнение с крестами, ибо современный Объектный Паскаль ничем не хуже современных крестов. Но паскаль хотя бы нужен, в отличии от С++.

По уровню древности я застал Делфи времен, когда там добавили дженерики.

Т.е. ты даже не понимаешь отличия Объектного Паскаля, Delphi (который развивается до сих пор и от почковался от объектного паскаля еще в 95-ом, если память не изменяет) и т.п.? Ну чё, тогда для тебя Oberon тоже покажется вполне себе поцкалем, как и Модула. Давай сравнивать их еще с крестами. ТС задал вопрос по поводу того, почему С++ лучше. Ты на него так и не смог ответить, разве что показать, что ты не знаешь термина метапрограммирование и считаешь С++ годным языком, т.к. других не знаешь. Учи бедон, он тебе понравится.

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

Потому что сейчас если тебе нужна более-менее быстрая прога, то ее можно написать на Java, а узкие места сделать на C/C++. Благо FFI у джавы не сложный. Возможно ты скажешь что это изврат - использовать несколько языков вместо того, что бы обойтись одним, но на самом деле при использовании данной связки будет намного меньше попоболи чем при попытке сделать что-то под линукс на pascal/lazarus. Главным образом при взаимодействии с внешними библиотеками, которых под паскаль намного меньше портировано чем на указанные мной.

Вот поэтому Bonita видимо так и работает криво. От таких «кре(ти)ативных» пейсателей, которые пишут на своей любимой, не безопасной и прожорливой жабе всё подряд. Терабайт памяти по моему еще не стоит копейки.

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