«Реальное» и не встроенное использование Ruby, Python и их друзей - PullRequest
3 голосов
/ 15 января 2010

Итак, мне известно о большом количестве языков сценариев общего назначения, таких как Ruby, Python, Perl, возможно, даже PHP, и т. Д., Которые на самом деле утверждают, что их можно использовать и для создания настольных приложений.

Я думаю, что на мой вопрос можно ответить четко

  • Есть ли на самом деле компании, использующие специальный язык сценариев только для создания своих приложений?

  • Есть ли реальные преимущества в создании продукта на языке, подобном только Python?

  • Я не говорю о жизнеспособности этих языков для веб-разработки!

  • Должен ли я придерживаться C (++) для настольных приложений?

С наилучшими пожеланиями, ламы

Ответы [ 7 ]

6 голосов
/ 15 января 2010

Компания, в которой я работаю, использует Perl и Tk с PerlApp для создания исполняемых пакетов для производства или основного программного приложения.

Perl превосходит C и C ++ для простоты кода. Вы можете делать вещи в одной строке Perl, которые занимают 20 строк C.

Мы использовали WxPerl для нескольких небольших проектов. Мы хотели бы полностью перейти на WxPerl, но существующий код работает, поэтому перемещение имеет низкий приоритет, пока Wx не даст нам то, что нам нужно, а Tk не может.

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

Рубин также является подходящим выбором.

PHP врывается в мир приложений командной строки. Я не уверен насчет мощности или гибкости его GUI-инструментариев.

4 голосов
/ 15 января 2010

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

Существует множество зрелых наборов инструментов для создания настольных приложений с интерпретируемыми языками. Поиск любого из этих языков с «gui» в SO даст много результатов.

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

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

Многие интерпретируемые языки предлагают простые переходы на C или другие языки (часто с хорошим встроенным синтаксисом).

Я бы посоветовал вам взглянуть на некоторые примеры по http://rosettacode.org, чтобы увидеть фундаментальные различия между тем, как программы сочетаются с интересующими вас языками.

3 голосов
/ 15 января 2010

Python (в сочетании с PyQt) является очень надежной комбинацией для настольных приложений с графическим интерфейсом (обратите внимание, что, хотя QT является LGPL, PyQt (привязки Python) имеют двойную лицензию: GPL или коммерческая).

Он предлагает то же самое (в отношении библиотеки GUI), что и Qt на C ++, но с определенными преимуществами Python. Я перечислю некоторые из наиболее очевидных из них:

  • быстрое прототипирование
  • чрезвычайно читаемый (следовательно, поддерживаемый) код

Должен ли я придерживаться C (++) для настольных приложений?

В целом: нет, если вы не хотите / не должны (по определенной причине).

2 голосов
/ 15 января 2010

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

Ruby, Python, Perl - все они имеют наборы инструментов с графическим интерфейсом. Большинство из них имеют доступ к таким же часто используемым наборам инструментов, как TK, GTK и Wx. Внешний вид приложения будет зависеть в большей степени от набора инструментов с графическим интерфейсом, чем от языка, и с точки зрения производительности вы, скорее всего, увидите больше влияния на то, как вы пишете свое приложение, чем на выбор языка.

Если вам удобно с C ++, то вам также следует рассмотреть C # или Java как варианты. Хотя они не являются языками сценариев, они имеют много тех же преимуществ, что и управление памятью, и более разумные реализации строк.

1 голос
/ 15 января 2010

Я использовал несколько программ, которые были разработаны с использованием скриптовых языков. Несколько поставщиков встроенных устройств поставляют мою группу утилит для конфигурирования и отладки на базе Windows, написанных на TCL. В программе рисования Google SketchUp много Ruby (и пользователи могут создавать дополнения с помощью Ruby). Я видел много приложений для Linux, написанных на Python. Существует множество других примеров, но часто готовые приложения объединяются до такой степени, что вы не можете точно сказать, что питает их изнутри.

Да, могут быть преимущества при работе со скриптовыми языками. Некоторые скриптовые языки облегчают выполнение определенных задач; например, обработка текста намного проще (IMO) в языке, подобном Ruby, который имеет поддержку регулярных выражений и надежный класс String, чем в простом старом C. Создание пользовательского интерфейса с использованием языка сценариев может упростить поддержку нескольких платформ, поскольку весь специфичный для платформы код позаботится внутри интерпретатора языка или предварительно скомпилированных библиотек. Например, наши поставщики, которые создают приложения на основе TCL, утверждают, что могут создать пользовательский интерфейс для приложения, использующего TCL, за долю времени, которая потребуется им для создания его в C ++ или VB, и затем они могут почти без усилий перенести его на Linux. .

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

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

0 голосов
/ 15 января 2010

Некоторая часть MPICH2 написана на Python. Я не проверял все, но многие его части, используемые для запуска приложений MPI, написаны на Python. Возможно, MPICH2 используется не всеми, но наверняка это хороший программный продукт.

0 голосов
/ 15 января 2010

http://www.pygtk.org/applications.html

Похоже, действительно длинный список приложений с графическим интерфейсом в Python, использующих только одну из платформ.

...