Совместная разработка на Delphi и Lazarus
От: Khimik  
Дата: 03.06.22 08:01
Оценка:
Я портирую свою программу с Delphi на Lazarus, чтобы поддерживать проект не только под Windows. Тут кажется писали, что в Lazarus менее удобная отладка, чем в Delphi XE. Поэтому возникает вопрос – стоит ли вести в дальнейшем одновременную разработку проекта на Delphi и Lazarus?

Я вижу такие варианты:
1) Портировать проект под Lazarus и забыть о Delphi, в дальнейшем всю поддержку проекта делать в Lazarus;
2) Держать одновременно два исходника – под Delphi XE и под Lazarus, и все правки делать в них одновременно. Ну как вариант.
3) Вести основную разработку в Delphi, но раз в несколько лет проводить портирование кода в Lazarus и компилировать с ним проект под Linux/Mac. С моим проектом это могло бы быть удобно.
4) Вести основную разработку проекта в Lazarus, но поддерживать также код под Delphi для отладки и нахождения багов. В отличие от второго варианта, этот предполагает что исходники на Delphi будут нужны только для одной опции – отладка, поиск ошибок. Поэтому в отличие от второго варианта не потребуется точно согласовывать два исходника, Delphi исходник может не точно соответствовать лазаровскому, но с ним можно будет искать баги, а дальше уже устранять эти баги в лазаровском исходнике.

Какой вариант вы бы посоветовали?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re: Совместная разработка на Delphi и Lazarus
От: rudzuk  
Дата: 03.06.22 08:42
Оценка:
Здравствуйте, Khimik, Вы писали:

K> Я портирую свою программу с Delphi на Lazarus, чтобы поддерживать проект не только под Windows. Тут кажется писали, что в Lazarus менее удобная отладка, чем в Delphi XE. Поэтому возникает вопрос – стоит ли вести в дальнейшем одновременную разработку проекта на Delphi и Lazarus?


K> Я вижу такие варианты:

K> 1) Портировать проект под Lazarus и забыть о Delphi, в дальнейшем всю поддержку проекта делать в Lazarus;
...
K> Какой вариант вы бы посоветовали?

Поддерживть одновременно и Delphi и Lazarus можно, но это очень трудоемкая задача, особенно для приложения с гуем. Поэтому вариант №1. С отладчиком там хуже, чем в Delphi (и значительно сложнее разбираться в потрохах LCL), но это дело привычки.
avalon/3.0.0
Re: Совместная разработка на Delphi и Lazarus
От: LuciferNovoros Россия  
Дата: 03.06.22 09:28
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>Какой вариант вы бы посоветовали?


Проект в двух средах — это сложно. Тем более, что будут расхождения. Кроме того, чтобы в Лазаре компилировать проект в любой оси, придется выкинуть модуль windows отовсюду, где он прописан в uses. Это первое и непременное условие.

Отладчик — да, это реально боль. Но привыкнуть можно. Если немного колдунства применить и не лениться писать переменные руками при отладке. Говорят, что уже есть встроенный отладчик, но я не пробовал, если честно. Мне работать надо, а не отладчики перебирать.
Re[2]: Совместная разработка на Delphi и Lazarus
От: flаt  
Дата: 03.06.22 13:26
Оценка:
Здравствуйте, LuciferNovoros, Вы писали:



LN>Отладчик — да, это реально боль. Но привыкнуть можно. Если немного колдунства применить и не лениться писать переменные руками при отладке. Говорят, что уже есть встроенный отладчик, но я не пробовал, если честно. Мне работать надо, а не отладчики перебирать.


Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?
Re[3]: Совместная разработка на Delphi и Lazarus
От: LuciferNovoros Россия  
Дата: 04.06.22 08:00
Оценка:
Здравствуйте, flаt, Вы писали:

F>Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?


Не распарсил... А при чем тут дельфа и бинарники лазаря? Это, мягко говоря, совершенно ортогональные вещи.
Re[4]: Совместная разработка на Delphi и Lazarus
От: rudzuk  
Дата: 04.06.22 09:16
Оценка:
Здравствуйте, LuciferNovoros, Вы писали:

LN> F>Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?


LN> Не распарсил... А при чем тут дельфа и бинарники лазаря? Это, мягко говоря, совершенно ортогональные вещи.


При совместимости формата отладочной информации отлаживать бинари можно где угодно, об этом речь. Но у классического Delphi свой формат т.ч. мимо.
avalon/3.0.0
Re: Совместная разработка на Delphi и Lazarus
От: L.K. Марс  
Дата: 04.06.22 09:36
Оценка:
K>Какой вариант вы бы посоветовали?

Самое простое и быстрое — адаптировать имеющуюся дельфовую прогу под Wine.
Re[2]: Совместная разработка на Delphi и Lazarus
От: Khimik  
Дата: 04.06.22 11:12
Оценка: :)
Здравствуйте, L.K., Вы писали:

K>>Какой вариант вы бы посоветовали?


LK>Самое простое и быстрое — адаптировать имеющуюся дельфовую прогу под Wine.


Спасибо за идею. Если не получится с Lazarus, попробую. Кстати тут на форуме должен быть участник, написавший программу, анализирующую процесс программы в рантайме (я уже не помню для какой цели). Я предложил ему сделать альтернативу Вайну: шароварщик присылает ему exe файл своей программы, далее человек вручную разбирает этот код и конвертирует под Linux. Т.е. если Wine — "интерпретатор", то я предлагаю "компилирование". Но он не захотел, а мог бы огромные деньги заработать...
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[3]: Совместная разработка на Delphi и Lazarus
От: L.K. Марс  
Дата: 04.06.22 11:25
Оценка:
K> а мог бы огромные деньги заработать...

Какие деньги? Откуда? Кто заплатит если уже есть бесплатный wine?

И вообще нынче многоплатформенность делается путём отказа от десктопных приложений и переноса всего что можно в веб.
Re[3]: Совместная разработка на Delphi и Lazarus
От: rudzuk  
Дата: 04.06.22 11:43
Оценка:
Здравствуйте, Khimik, Вы писали:

K> Спасибо за идею. Если не получится с Lazarus, попробую.


Я посмотрел твой сайт, у тебя же есть версия для линукс и она на Lazarus (хоть и обновлялась последний раз в 2017 году). Раньше выходило, а сейчас не выходит?

K> Т.е. если Wine — "интерпретатор", то я предлагаю "компилирование".


Wine не интерпретатор. Это альтернативная реализация Win32 API.
avalon/3.0.0
Re[4]: Совместная разработка на Delphi и Lazarus
От: Khimik  
Дата: 04.06.22 12:15
Оценка:
R>Я посмотрел твой сайт, у тебя же есть версия для линукс и она на Lazarus (хоть и обновлялась последний раз в 2017 году). Раньше выходило, а сейчас не выходит?

Мне тогда портировал другой человек, а контакт с ним потерян. Честно говоря я даже исходники под Lazarus потерял. В следующий раз такого не повторю (буду сам разбираться с Лазарусом, возможно консультируясь с другими людьми).

K>> Т.е. если Wine — "интерпретатор", то я предлагаю "компилирование".


R>Wine не интерпретатор. Это альтернативная реализация Win32 API.


Ну я предлагаю что-то в таком роде — человек анализирует код программы, находит в них ссылки на win32 функции, и меняет этот код на другой. Разумеется не сам всё это делает вручную, а в написанной им специальной программе.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[4]: Совместная разработка на Delphi и Lazarus
От: flаt  
Дата: 04.06.22 12:46
Оценка:
Здравствуйте, LuciferNovoros, Вы писали:

LN>Здравствуйте, flаt, Вы писали:


F>>Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?


LN>Не распарсил... А при чем тут дельфа и бинарники лазаря? Это, мягко говоря, совершенно ортогональные вещи.


Ну ладно, Лазарус — не компилятор, а IDE. Компилятор — это FPC. Но можно было и понять, что имеется ввиду
Re[5]: Совместная разработка на Delphi и Lazarus
От: L.K. Марс  
Дата: 04.06.22 14:25
Оценка:
Кстати, что за программу-то нужно портировать? Бэкапную утилиту? Но в линухе всё это делается несложным bash-скриптом. Или программу для медитации? Но смысл медитации — отрешиться от всего, в т.ч. от всех программ.
Re[6]: Совместная разработка на Delphi и Lazarus
От: Khimik  
Дата: 05.06.22 06:33
Оценка:
Здравствуйте, L.K., Вы писали:

LK>Кстати, что за программу-то нужно портировать? Бэкапную утилиту? Но в линухе всё это делается несложным bash-скриптом. Или программу для медитации? Но смысл медитации — отрешиться от всего, в т.ч. от всех программ.


https://chemcraftprog.com
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[7]: Совместная разработка на Delphi и Lazarus
От: L.K. Марс  
Дата: 05.06.22 12:47
Оценка:
K>https://chemcraftprog.com

Программа простенькая, должна запуститься через wine.

Да и на lazarus перенесётся без особых проблем.
Re[8]: Совместная разработка на Delphi и Lazarus
От: LuciferNovoros Россия  
Дата: 06.06.22 05:42
Оценка:
Здравствуйте, L.K., Вы писали:

LK>Да и на lazarus перенесётся без особых проблем.


Wine, конечно, — это замЫчательно. Но лучше обойтись таки без него. Иногда презабавнейшие глюки вылезают. Особенно, если предполагается работа с мультимедиа. Мне, например, так и не удалось заставить под ним работать SIP, который я делал. Где-то тут даже ссылка есть, я кидал. При этом под чистой виндой он работает.

Второе — это использование "древних" компонентов дельфовых, которые есть просто тяжкое наследие аж 3.1 винды. Модули придется переписывать полностью. Ну или писать аналогичные компоненты. Третье — это жестко зашитые в код пути к файлам. Ну и прямые/обратные слеши, зашитые там же.

В общем, если это чисто дельфовый проект, то свои сложности там непременно будут.
Re[9]: Совместная разработка на Delphi и Lazarus
От: AWSVladimir  
Дата: 22.06.22 22:38
Оценка:
Здравствуйте, LuciferNovoros, Вы писали:

LN>Wine, конечно, — это замЫчательно. Но лучше обойтись таки без него. Иногда презабавнейшие глюки вылезают.

Вайнов дофига. Надо свой делать.
Берешь вайн, можно коммерческий, фиксишь баги, потом свою прогу со своим вайном распространяешь.
Каждый билд может по разному себя вести.
Так что лучше свой вайн сделать 1 раз и его использовать при установке своей проги и он не будет конфликтовать с уже установленным вайном и даже с совсем не установленным, можно и так сделать, но эт времени подольше займет.
Лет 10 назад делал, но потом железо подросло, виртуалбокс стал юзабельный, винда копеечная стала, загнали ее в виртуалку, а вайн в топку.
3 тысячи тогда винда стоила вроде, не помню точно, но какие то копейки, так что оем винду в виртуалке и нах этот гемор с вайном.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.