Какие языки можно использовать для разработки кроссплатформенных, переносимых приложений?

Какие языки можно использовать для разработки кроссплатформенных, переносимых приложений?

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

Это кажется возможным с JAVA, но, честно говоря, я бы предпочел избегать JAVA, потому что это настолько многословно (я обычно программирую на Perl и Python).

Adobe Air выглядит очень интересно (и Silverlight?), Но кажется, что вы можете только обернуть установщик среды выполнения Air в пакет с приложением для развертывания. Вы можете создать автоматическую установку для среды выполнения Adobe Air с помощью инструментов распространения, но я не могу найти способ, чтобы приложение Air работало как действительно переносимое приложение (когда Air Runtime еще не установлено).

Я пробовал Python (с Qt) и Perl (с Tk/Tkx) и могу создавать кроссплатформенные приложения, которые можно упаковать в самораспаковывающийся исполняемый файл (в Windows), который копирует содержимое во временную папку и запускает приложение оттуда, Это лучшие варианты, которые у меня есть сейчас, потому что пользователю не нужно знать, что происходит. Они просто дважды щелкают по исполняемому файлу, и программа запускается (без шага установки). Но заставить Qt работать на OS X довольно сложно, и Tk кажется слишком ограниченным для современной разработки GUI.

Я также пробовал Real Studio (ранее назывался Real Basic) и Runrev Live Code (ранее назывался Runtime Revolution). Real Studio производит именно то, что я хочу, но в языке есть некоторые критические ошибки, которые делают разработку, в моем случае, невозможной. Live Code использует довольно неинтуитивный язык для любого обычного разработчика (говорят, что его легко выучить!), И он также довольно ограничен в функциях.

Я давно занимаюсь этой проблемой. Любой совет будет очень кстати.

== Обновление ==
Я больше разбирался в проблеме и теперь выяснил, как создать полностью автономные (переносимые) приложения, используя пакет SFX 7zip, содержащий мой код и Java JRE.

На фронте Python быстрые разработки на Qt и Pyside теперь упрощают получение приложений Python + Qt, работающих на Windows, Linux и OS X. Они могут быть упакованы с помощью инструмента PyInstaller, который также работает на всех трех платформах.

3 ответа

Если вам нравится JVM (например, из-за кроссплатформенного пользовательского интерфейса), у вас есть другие варианты, кроме Java, включая:

  • Groovy, динамически типизированный язык JVM
  • JRuby, чистый порт JVM для Ruby
  • Jython, чистый JVM-порт Python
  • Scala, гибридный функциональный /OO-язык с мощным механизмом вывода типов, более кратким синтаксисом, чем Java, безопасностью типов во время компиляции и другими функциями.

Все вышеперечисленное будет хорошо взаимодействовать с существующими библиотеками Java. Все позволит вам использовать компоненты Swing UI напрямую. Все будут работать везде, где есть JVM.

JavaScript.:) Конечно, тогда зависимость от браузера приходит вместо зависимости от платформы...

C используется для разработки портативных приложений.

В GCC коллекция компиляторов GNU C доступна для различных платформ, а GCC также поддерживает кросс-компиляцию.

Другие вопросы по тегам