Каково было бы лучшее решение для моих приложений Delphi на Linux - Delphi+Wine или Lazarus?

Проект Феликса предоставляет интерпретатор C ++ в Javascript, хотя и с некоторыми ограничениями.

https://github.com/felixhao28/JSCPP

Таким образом, пример программы может выглядеть следующим образом:

var JSCPP = require('JSCPP');
var launcher = JSCPP.launcher;
var code = 'int main(){int a;cin>>a;cout<

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

10
задан Joel Coehoorn 21 May 2009 в 12:48
поделиться

7 ответов

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

В основном вам просто нужно спросить, что собственный порт предоставит такую ​​оболочку Wine не стал бы. Для большинства приложений Delphi ответ, вероятно, заключается в создании тем и совсем немногое. Мы сделали собственный порт, чтобы иметь доступ к файловой системе на более низком уровне, но до этого наш продукт работал с Wine почти идеально в течение многих лет.

И, судя по опыту, родные порты - это не прогулка в парке:

  • Любые сторонние компоненты, вероятно, не поддерживаются Lazarus.
  • Если вы не переключите свою версию Windows на Lazarus, вам потребуется поддерживать параллельные файлы .lfm, и если вы переключитесь, вы потеряете IDE Delphi. Каким бы прекрасным ни был Lazarus, он сильно отстает от последней версии Delphis по полировке и функциям.
  • Для тестирования потребуется гораздо больше усилий, если у вас есть полностью отдельная программа с другим набором виджетов. Тестирование в Wine было бы ближе к тестированию вашей существующей версии в новой версии Windows.
  • Вы не сможете использовать какие-либо новые функции, представленные компилятором Delphi (общие, анонимные методы), пока FPC не получит что-то эквивалентное.
  • Большинство установок 64-битных Linux не включают 32-битные версии Gtk / Qt, и их установка может быть сложной и подверженной ошибкам, поэтому вам также потребуется скомпилировать 64-битные версии вашего приложения.
16
ответ дан 3 December 2019 в 13:24
поделиться

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

Я бы начал тестирование с lazarus и сохранил Wine в качестве резервной копии на случай, если вы отчаяетесь.

Планы Codegear все еще очень расплывчаты ( они только «смотрят на это», но в то же время они размазывают 64-битное развертывание на две полные версии, так что даже если это будет прогрессировать, это может занять довольно много времени)

Краткий график заставляет меня думать, что Версия для Apple будет использовать QT, а не собственный API.

Обновление: почти 4 года, но поддержка Linux по-прежнему отсутствует. Деревья растут быстрее.

18
ответ дан 3 December 2019 в 13:24
поделиться

Я бы обычно рекомендовал использовать Lazarus. Если вы зависите от WINE, вы также попадаете во власть ошибок WINE, которые могут повлиять на качество вашего продукта. Может быть даже полезно использовать Lazarus + FPC в среде Windows.

Альтернативой может быть использование виртуализации, но это зависит от типа приложения, которое вы пишете.

5
ответ дан 3 December 2019 в 13:24
поделиться

Глядя на планы Codegear - поищите некоторые подсказки в плане развития на DelphiLive 2009 - чтобы обеспечить родную версию Delphi для Linux и Mac, я бы сейчас выбрал Lazarus. Вы избавляетесь от администрирования Wine и позже можете перенести свое приложение на нативное. (Как кто-то выразился: Delphi будет похож на большой зоопарк с пингвинами, тиграми, леопардами и снежными барсами.)

Конечно, портирование приведет к некоторой работе. Но если вы внимательно посмотрите на такие проблемы, как Unicode, и предотвратите наиболее распространенные ошибки, это должно быть довольно легко.

Поищите на delphifeeds Unicode и дорожную карту для дальнейших советов.

4
ответ дан 3 December 2019 в 13:24
поделиться

I think either Wine or Lazarus would probably work for you. I've tested some of our quite large Delphi Apps (Many 3rd party controls) with wine, and they have worked pretty well. There were a few annoying font issues. The two thing that really failed majorly was where I used TWebBrowser (which looked like it almost worked, I think it was using the gecko rendering engine instead of IE). The other was a muli-tier (Datasnap) server, which ran but, I couldn't work out how to connect to.

I think holding out for Mac/Linux support for Delphi would be a mistake, the fact that they can compile a console "hello world" application for OS/X is impressive - but I think porting the VCL is a different story (unless you've written a console app).

If you already have a working application, then give wine a go - testing can't hurt.

The other thing to consider is who your users are (and how many)? If they are Linux geeks then they are going to have no problems configuring and tweaking wine (although they might find it offensive to use a native windows app). If it's a bunch of grandmothers then that's a different story.

3
ответ дан 3 December 2019 в 13:24
поделиться

Free Pascal Compiler / Lazarus не близок к последним функциям Delphi, но он довольно стабилен, несмотря на то, что все еще есть ошибки, которые необходимо выяснить.

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

Но он делает то, что однажды попробовал Delphi / Kylix. Кросс-сборка ! Используя его, вы можете компилировать с одной платформы на другую.

2
ответ дан 3 December 2019 в 13:24
поделиться

На самом деле мы используем Wine для нашего продукта ShareTeam ... У нас есть тестируемая версия на Lazarus, которая является хорошим инструментом и имеет много преимуществ, но на данный момент не совсем завершена. Я думаю, что на данный момент лучше использовать вино, если работа не простая, конвертировать приложение Delphi в Lazarus / FreePascal непросто. Лично я надеюсь, что Embarcadero создаст кроссплатформенную версию Delphi, а не Prism, которая сильно отличается от Delphi.

1
ответ дан 3 December 2019 в 13:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: