LINUX.ORG.RU

Насколько лазарус совместим с.. «делфи»?

 


2

5

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

И вот тут вопрос: а насколько мои знания делфи в прошлом помогут мне взять и начать кодить на паскале в лазарусе? Была у меня книжка толстенная по делфям в те годы, там прям как справочник, на любой вопрос бы ответ - подойдет ли она для решения вопросов с паскале-лазарусом?

//Потестил - ShowMessage('Сообщение'); работает так же =)

sudo cast @saahriktu

★★★★★

Ну на уровне API самой дельфи совместим вроде более-менее. На уровне WinAPI - конечно нет. В целом люди с дельфи на лазарус крупные проекты перетаскивают, какое-то время тратят, но не прям чтобы с нуля переписывают. В плане трансфера знаний думаю больших проблем у тебя не будет.

Legioner ★★★★★
()

На уровне языка — всё прекрасно. На уровне rtl — есть ньюансы, связанные со строками. На уровне LCL — частично, отличия от VCL имеются.

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

На уровне rtl — есть ньюансы, связанные со строками

Например, если надо прочитать из файла строку в локали cp1251, то требуется вот такое

StrUtf8 := CP1251ToUtf8(RawString(Str1251));

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

Ну это вроде нестрашно. В те года, когда я переходил с делфи на всякие Qt, я даже просто при хранении файлов в ФС сталкивался с косяками с кодировками, так что это фигня =)

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

БОльшая часть компонентов пойдёт лесом. Особенно если что-то большое и коммерческое.

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

Оно там что, прямо в глобальном неймспейсе?

Нет, в модуле LConvEncoding.

https://wiki.freepascal.org/Unicode_Support_in_Lazarus

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

uses ИмяМодуля;

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

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

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

grem ★★★★★
()

Насколько лазарус совместим с.. «делфи»?

Отчасти. В чём-то совместим, в чём-то - нет.

saahriktu ★★★★★
()

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

Если вопрос стоит таким образом (а не «вот тут у нас мульен строк на Дельфи и пришел приказ выкинуть проприетарные инструменты разработки»), то трудозатраты проще оценить в процессе создания утилиток. К тому же, сейчас прошли времена, когда кодить можно было прочитав пару книг. Сейчас все вопросы решаются непрерывной гуглежкой, вопросами на SO и лишь частично собственными экспериментами.

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

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

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

вот тут у нас мульен строк на Дельфи и пришел приказ выкинуть проприетарные инструменты разработки

В такой вот формулировке я бы подумал про увольнение =)

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

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

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

GDI отрисовка лазарем неплох эмулируется и скорее всего не потребует переделки. вот всякие dx - да

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

Почему это «само собой»? Прикрутить сбоку Wine и уже будет частичное окружение с WinAPI.

NAY_GIGGER
()

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

NAY_GIGGER
()

это вполне себе норм штука
легко и быстро можно накидать с гуем

За такое свидетели JavaScript утопят тебя в смузи, например.

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

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

В достаточно сильной мере это именно то. Особенно, если писать с нуля, а не портировать. У меня есть один проект на 11000 строк, писался на 7-ом дельфи давным давно, в 2012 я попробовал его портировать на лазарус, не фартануло, слишком много ещё было нереализовано. С ковидным локдауном и удалёнкой у меня появилось свободное время и я попробовал ещё раз, на этот раз успешно, все компоненты уже были или совместимыми, или имели очень похожие аналоги. В результате изменениям подверглась примерно 1000 строк кода из 11000. Не слишком мало, но и не сказать, что слишком много, причём cp1251-приложение для x86_32 win-only стало в результате юникодным, кроссплатформеным и для двух архитектур (x86_32 и x86_64).

gremlin_the_red ★★★★★
()

Есть опыт переноса довольно большого проекта c windows (дельфи 2007) на линукс (лазарус). Впечатления положительные. Все используемые сторонние компоненты нашлись портированными под лазарус (только надо иметь в виду, что порт под лазарус это в т.ч. порты под линукса и разные там макоси, которых может не быть). Свои компоненты портировали без проблем.

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

Потом с линукса перенесли все это на macOS с сохранением одной кодовой базы. Лазарус не так уж и плох на самом деле. Для примера cudatext и total commander

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

var
 i : integer;

...

showmessage("i = " + i.tostring);
man-from-36
()
Последнее исправление: man-from-36 (всего исправлений: 2)

Вы б еще Turbo Pascal 5.5 вспомнили…

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

К тому же, сейчас прошли времена, когда кодить можно было прочитав пару книг. Сейчас все вопросы решаются непрерывной гуглежкой, вопросами на SO и лишь частично собственными экспериментами.

При этом, правильная книга по прежнему заменяет 5 лет «гуглёжки и экспериментов».

anonymous
()

Блин, Костя! Позорище!!! Ты ж - линуксоид! На кой черт тебе гребаный гуй для элементарных задач? Где ж UNIX-way?

Ужоснах… Я в тебе разочаровался.

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

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

anonymous
()

я делфи не знал, билдер юзал, но билрера то нету. Поэтому освоил немного лазаря… гугленные советы для делфи подходят вполне для лазаря…

anonymous
()

И вот тут вопрос: а насколько мои знания делфи в прошлом помогут мне взять и начать кодить на паскале в лазарусе?

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

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

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

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

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

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

А вот тебе никогда не хотелось окошки поковырять?

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

Нет, конечно. Зачем вообще?

Вот была нужна смотрелка картинок, я ее на опенгле сделал. Потом почитал про nuklear, мне понравилось. Даже сделал набросок новой смотрелки. В следующем году (или в 23 - как получится) нарисую новую версию смотрелки FITS-файлов на nuklear.

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

Нет, конечно. Зачем вообще?

Ну не знаю. У меня вот эти окошки дельфовые вызывает прям какую-то дикую ностальгию по юности.

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

А я решил, что пора бы на полноценный UNIX-way переходить. И те же грабилки FITS’ов с ПЗС-камер можно сделать вообще универсальными: один общий костяк, который как модуль подцепляет через dlopen нужную оберку к библиотеке для конкретной ПЗС. А смотреть файлы - отдельной смотрелкой (мониторить при помощи inotify ФС, да менять картинку, как обновится на диске).

Я уже и коллегу на UNIX-way пересадил. Теперь мы не делаем монолитных монстров, а фигачим 100500 мини-серверов, которые связываются между собой. Один сервер одной железкой управляет, другой - другой и т.д. И мастер-сервер обеспечивает интерфейс к ним (я использую текстовый протокол, поэтому можно просто при помощи netcat’а работать - удобно). В качестве морды - веб. Веб-морда еще и тем хороша, что гарантированно даже у вантузоидов будет работать (приложения, запущенные по ssh у них периодически отваливаются, особенно с иксами). Идеал - пересадить всех на линукс, но, увы, это нереально. Даже в линукс-среде распад: 3-5% народу остались вменяемыми, а остальные как были вандузоидами, так и остались - на своих бубунтах и прочем дерьме с systemd, pulseaudio, networkmanager’ом и прочим ублюдством.

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

P.S. А нельзя у меня в профиле гейскую аватарку сбросить? Какое-то [censored] нагадило, когда я пароль выложил…

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

Микросервисы изобрели, понятно :)

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

Спасибо.

А насчёт возвращения - я пока под анонимом посижу. Что-то ЛОР - уже не торт! И линуксоидов здесь мало осталось, вендовозы сплошные…

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

К тому же, сейчас прошли времена, когда кодить можно было прочитав пару книг. Сейчас все вопросы решаются непрерывной гуглежкой, вопросами на SO и лишь частично собственными экспериментами.

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

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

И линуксоидов здесь мало осталось, вендовозы сплошные…

Разработчиков на форуме раз, два, … и усе.
Остальные щеки понадувать любят НА ЛЮБЫЕ ТЕМЫ …
Одним словом

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

Так юниксвей это не про гуй и консольку. Юниксвей это про то что у тебя программа делает что-то одно, но хорошо. В качестве файлов обмена данными текстовые (Json например, или xml, который я терпеть не могу). И ещё тебе надо обеспечить взаимодействие своей софтины со скриптами. Всё, это то что реально сейчас отличает нормальные юникс решения от не юникс. Всё остальное уже перекочевало полностью во все нормальные решения, даже под оффтопиком.

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

Юниксвей это про то что у тебя программа делает что-то одно, но хорошо. В качестве файлов обмена данными текстовые (Json например

Как раз 5 минут назад потребовалась утилита exiftool, и оказалось, что она поддерживает ключ -json.

Побольше бы такого софта.

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

Это вот отличает всех этих современных питоножабоскриптеров от программистов. Научились немного синтаксисиу, положились полностью на готовые библиотеки и все. А попроси такого связный список самому реализовать - «зачем, если есть арайлист?»…

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

Ну отчасти он прав, да. Я имел ввиду «делфи-подход», когда пишешь сразу гуй, убивая кучу времени на оформление окошек и прочих ненужностей, еще и привязывая обработчики к элементам этого гуя (привет, делфи!). И это не юникс-вей ни разу. Вот когда ты написал программу, которая просто работает и делает то, что нужно, а уже потом натягиваешь на нее графоний (если нужно), вот это ближе к юникс-вею.

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

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

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

придётся делать гуй

Помнится, году в 2003 у нас в конторе тоже гуй гулял. Года три это продолжалось, потом утихло после моего увольнения …

Владимир

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