LINUX.ORG.RU

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

 , ,


0

5

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

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

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

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

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

★★★★★

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

Насчёт «на порядок» товарищ, вероятно, погорячился. Но то, что при прочих равных условиях код на паскале собирается заметно быстрее, чем на крестах - это вполне известный факт. Это одно из следствий (не самое, кстати, печальное) того, что в паскале есть модульность. В C и C++ модульности нет, для её имитации применяются кривые и страшенные by design костыли.

// Много лет пишу на C++, жду, когда завезут модули. Судя по последним новостям, ждать осталось недолго.

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

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

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

Без открытия исходников доработанного IDE/компилятора, шоле?

Возможно. Есть немало проприетарных программ со своими встроенными ЯП и IDE. Но суть даже не в том. Я, допустим, пишу средство типа lint, потом его надо интегрировать со средой, это тоже работа. Я не хочу быть ограничен в правах в отношении этого кода.

Отношение сообщества к паскалю тут абсолютно не при чём.

Да конечно, мне отношение сообщества к Паскалю вообще до лампочки.

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

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

Шаблонов? Возможно, это тоже сказывается.

А однопроходная компиляция паскаль-кода стала возможна не благодаря, в том числе, модульности на языковом уровне?

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

Чего это?

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

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

Возможно.

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

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

Может быть. В любом случае скорость компиляции не такой критичный фактор, как количество библиотек, популярность, оупенсорсность, актуальность и наличие вакансий.

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

Где, а главное зачем, я возьму это гадость?

«Как из душа окатило» (с)

slackwarrior ★★★★★
()

благодаря более развитой типизации

О чём речь? В чём развитость?

как всякие там лямбды,

Много более-менее живых языков без лямбд назвать сможешь? Как думаешь зачем их всюду тащат?

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

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

Чего? Буст как раз поддерживает разные версии языка и разные компиляторы. В какой-то степени, он «абстрагирует от платформы».

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

Ты либо не пользовался дельфями, либо не застал :) А еще что-то про школьников говоришь. Включительно по 7-е дельфы это был вполне себе факт по сравнению хоть с MSVS 2010, где достаточно большой проект сравнимого размера почему-то собирается часами против неск. минут в дельфях :)

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

Кококонешна :) VCL жы надо было всегда тащить куда-то (без которого бинарники ни разу не большие), чистить uses от «не нужно в этой сборке» же нинужно, а MFC/С++ рунтайм же нинада (только если нужной версии под конкретной виндой не будет, прога скажет «кря» и не запустится... А если статическая сборка — бинарник опухнет ровно на все использованные приблуды MFC :)) А в «прожект опшонс» тебе религия запрещала под дельфями заходить и снимать галку «Debug info». Да ты бездоказательно тролешь, школьнег?

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

Только буст стремительно перестает быть нужен :)

Ну так это и хорошо.

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

Что значит рантайм в данном случае? Чем отличается от libc++? Оно же вроде статическое?

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

Как думаешь зачем их всюду тащат?

Сладкоешки любят сахарок :) В С# это приобретало нездоровые масштабы: с каждым апдейтом фреймворка в больших проектах начинались компании по внедрению инноваций. В т.ч. переписывание с делегатов на лямбды/дженерики и прочий дроч вприсядку по починке не сломаного... Только пионерская конкатенация строки плюсиками в цикле никак этими инновациями не была затронута :) Тут у них лямбды и понты — а там они не смогли в стрингбилдер и стыдобушка.

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

на стабильной платформе, которая за 10 лет практически не поменялась.

Лол, какое преимущества. Чего тогда вообще кобол не взять? Он ещё «стабильнее».

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

Сладкоешки любят сахарок :)

И чем он плох? Куча рукопашного кода лучше что ли?

Тут у них лямбды и понты — а там они не смогли в стрингбилдер и стыдобушка.

Вряд ли, эта проблема во всех шарповых проектах.

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

На C# переползать оказалось как-то неуютно и не прижилось

Ну а я вот знаю одну контору, которые тоже на делфи долго сидели. Тем не менее, поненогу на шарп переползают. В общем, это не показатель.

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

Тогда уж не та ссылка
http://rextester.com/l/c_online_compiler_visual

Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86

А оказывается, таки пофиксили.
По крайней мере, ещё в 2012 студии такого не было, у них для чистой сишки (не кресты) был какой-то очень древний стандарт, где переменные можно объявлять только в начале блока.

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

У меня опыт обратный твоему и параллельный его. Ищи второго страдальца любителя vc++, биться будем.

arturpub ★★
()

Потому, что у паскаля/лазаруса нет ниши для применения.

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

Да даже если бы делфи собирал в два раза медленнее крестов, пишется на нем все в пять раз быстрее, особенно юзая нормальные либы (тот же eh). Мы в свое время написали на bd6/7 софт для учета аптек, штрихкодирование и полный партионный учет с мультиюзером. Рил бизнесс, в отличие от красноглазых свистелок. Когда встал насущный вопрос нафига сети покупать винду, куликс оказался ни на что не годным говном, и она таки купила лицензии. Делфистов-одиночек в городе было хоть лопатой греби, а вот крестанутые из своих каморок не вылезали.

Эмбаркадеро краем глаза видел, уже не то. В принципе, bd7 была вершиной db-rad'а, чо туда еще добавлять?

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

Кстати, в Паскале всю жизнь есть локальные процедуры/функции, которые во многих случаях заменяют лямбды (по крайней мере в том виде, в котором лямбды втащили в C++).

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

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

Да в-общем-то, уже Borland Developer Studio 2006 уже было не то. Тоже видел краем глаза, фирма покупала для поддержания какого-то старого кода в актуальном состоянии. По UI похоже, что борланд пытался догонять M$VS и всё испохабил. Естественно, не догнал, и непонятно, зачем пытался, у дельфёвого UI были свои преимущества.

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

Тем не менее, поненогу на шарп переползают. В общем, это не показатель.

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

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

В принципе, bd7 была вершиной db-rad'а, чо туда еще добавлять?

Не хватает там юникода, 64 разрядов и линукса.

den73 ★★★★★
()

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

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

Мы в свое время написали на bd6/7 софт для учета аптек,

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

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

Будет оно в разы кривее (потому что язык без компилятора и все ошибки будут высыпаться на пользователя), работать будет на порядки медленнее, потому что интрперетатор да и мозг загажен вредными концепциями типа ORM. А потом будет переход на Qt6 и python 4 и всё это вообще перестанет работать.

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

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

Приложение собрано в бинарник вместе со своей ВМ, куды и зачем переходить?

мозг загажен вредными концепциями типа ORM.

Вы разве ретроград и консерватор?

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

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

При чем тут отсутсвие компилятора, если проблема в типизации?

все ошибки будут высыпаться на пользователя

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

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

клепать мордочки к бд

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

Так что легаси, господа.

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

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

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

А на дельфях там просто сказка, угу.

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

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

Включительно по 7-е дельфы

Блин... Ну какая делфи-7 в 2016 году?

Да продукты борланда были отличными. Но именно что были. И были для они отличными для винды...

А тут рассказывают про «начинать новый проект на паскаль» и при этом кивают на делфи-7...

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

Я еще понимаю когда тянут старый проект... Но новый, да еще именно на делфи... Зачем???

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

Такого наркоманского говна в энтерпрайзе овер9000.

Можно подумать, что дельфисты делают что-то другое. Их и в эпоху рассвета Делфи никто за программистов не считал. Так и говорили - «клепатели формочек».

Я не говорил, что python+PyQt - это божественно, но это вполне может заменить Делфи в обсуждаемом случае.

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

Угу, интерпретатор над библиотекой, интерпретирует лаконичный говнокод в добавок с горой фрэймворков. Графомания какая-то.

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

Всего лишь при том, что было написано довольно много книжек как подружить Дельфи и фаербёрд.За 10-15 лет пипл привык. Теперь это нужно либо поддерживать либо переписывать.

Значение термина легаси, думаю объяснять не нужно?

А вообще читать срач «Паскаль против Си» каждый раз доставляет :-)

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

Xe7 - кстати годная вещь. А почему бы и новый не потянуть? Нормально написанный дельфёвый код, если писал не var Stroka: string - более поддерживаем, чем тот же сишный. Где об закрученый макросы можно мозг сломать. Или об лапшу if'ов. И да, запихивать всю логику в Button1Click like функции - конечно позволительно, но так делают только те, кому либо лень включать мозг, либо влючать нечего.

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

много книжек как подружить Дельфи и фаербёрд

А подружить python и фаербёрд можно за час, ибо биндигни пайтора проще и лаконичнее. О том и речь, пока ретроградские дельфимакаки дрочатся со своим легаси, все новое давно съехало на нормальные языки.

http://www.firebirdsql.org/file/documentation/drivers_documentation/python/fdb/

Ибо дельфимакакам нужны горы книг и годы, чтоб сделать тривиальную вещь.

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

Без компонентов делфи теряет всю скорость разработки.

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

А почему бы и новый не потянуть?

Какие плюсы если ты не дельфист и больше ничего не знаешь?

(вот два минуса на вскидку - большой ценник на продукт и нужна винда)

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

А теперь, пожалуйста, покажи, как на пасралике выглядит тот ужас из статьи, а именно

массив из массив из указателей на указатели на функцию возвращающую указатели на массив из указателей на тип char

type
   TPCharArray = array of PChar;
   PTPCharArray = ^TPCharArray;
   TFunc = function(): PTPCharArray;
   PTFunc = ^TFunc;
   PPTFunc = ^PTFunc;
   TFoo = array of array [0..7] of PPTFunc;  
var
   foo: TFoo; 

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

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

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

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