Наиболее подходящий платформно-независимый язык разработки - PullRequest
5 голосов
/ 28 мая 2009

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

Еще несколько подробностей о коде, который я напишу:

  1. Графического интерфейса не будет.

  2. Он должен будет обмениваться данными с другим заказным устройством «черного ящика» по сети Ethernet.

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

  4. У меня нет проблем с производительностью, так как: а) количество соединений с черным ящиком будет небольшим, около 1 в секунду, а объем передаваемых данных будет крошечным (около 1 КБ каждый раз), б) количество операций чтения / записи с базой данных будет небольшим, около 5 в минуту, и снова объем обмениваемых данных будет крошечным, и в) обработка, которая должна быть выполнена, довольно упрощена.

  5. Ничего из того, что я делаю, не очень "близко к металлу", поэтому я не хочу использовать языки со слишком низким уровнем. Простота разработки и простота развертывания являются моими основными приоритетами.

  6. Я не ожидаю, что будет идеальное решение, поэтому я могу жить с такими вещами, как, например, необходимость иметь немного отличающиеся конфигурационные файлы для машин Windows, чем для Linux-боксов и т. Д. Я бы хотел избежать если возможно, скомпилировать программное обеспечение для каждого хост-компьютера.

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

Приветствия

Jim

Ответы [ 8 ]

11 голосов
/ 28 мая 2009

Я бы выбрал приличный язык сценариев, такой как Python, Perl или Ruby лично. Все они имеют достойную поддержку библиотек, могут легко взаимодействовать как с локальными, так и с удаленными базами данных MySQL и довольно независимы от платформы.

5 голосов
/ 28 мая 2009

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

Если бы я делал это, я бы предложил Java по нескольким причинам:

  1. Он будет работать практически в любом месте и соответствовать указанным вами требованиям.
  2. Это не эзотерический язык, так что разработчиков будет много.
  3. Я уже знаю, как в нем программировать!
  4. Вероятно, самая обширная библиотечная экосистема из всех платформ разработки.

Также обратите внимание, что вы можете написать это на другом языке в JVM, если вам больше нравится Ruby или Python.

3 голосов
/ 28 мая 2009

Что касается языка сценариев по сравнению с Java, я разочарован разработкой инструментов командной строки с использованием Java. Вы не можете выполнить их напрямую, вы должны (1) скомпилировать их и (2) написать сценарий оболочки для выполнения файла JAR, этот сценарий может отличаться для разных платформ. Я рекомендую Python, потому что он работает где угодно и у него есть отличная библиотека SQL, mysql-python . Библиотека готова к использованию в Windows и Linux. В Python также гораздо меньше шаблонов, вы будете писать меньше строк кода, чтобы сделать то же самое.

РЕДАКТИРОВАТЬ: когда я говорил о том, что JAR-файлы являются исполняемыми или нет, я говорил о том, являются ли они непосредственно исполняемыми для ОС. Конечно, вы можете дважды щелкнуть по ним, чтобы запустить их, если ваш файловый менеджер настроен для этого. Но когда вы находитесь в окне терминала и хотите запустить Java-программу, вам нужно «java -jar myapp.jar» вместо обычного «./myapp.jar». В Python просто запускается «./myapp.py» и ему не нужно беспокоиться о компиляции или путях классов.

3 голосов
/ 28 мая 2009

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

1 голос
/ 28 мая 2009

Python или Java. Они оба просты в развертывании как в серверных средах, так и в настольных средах, о которых вы упомянули, т. Е. В Linux / Solaris и Windows.

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

Поскольку Java поддерживает Python через Jython, я бы сам выполнил требование JVM, но лично я бы использовал Java-приложение полностью для такой системы, которую вы описываете.

1 голос
/ 28 мая 2009

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

1 голос
/ 28 мая 2009

Если все платформы являются стандартными ПК (или, по крайней мере, работают под управлением Linux), тогда следует рассмотреть Python . Вы можете скомпилировать его самостоятельно, если для вашей версии не существует пакета. Кроме того, вы можете легко отделить стандартную библиотеку от вещей, которые недоступны и которые вам не нужны (например, поддержка звука).

Python не требует большого количества ресурсов, его легко изучать и читать.

Если вы знаете Perl, вы можете попробовать это. Если вы не используете Perl ежедневно, тогда не используйте. Синтаксис Perl трудно запомнить, и через неделю вам будет интересно, что сделал код, даже если вы написали его сами.

0 голосов
/ 28 мая 2009

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

Или используйте Java. Он работает на виртуальной машине, поэтому является кросс-платформенным и не медленным, как C.

...