Рекомендовать перспективную кроссплатформенную серверную платформу, масштабируемую вверх и вниз

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

Требуется доступ к СУБД.

Поддержка параллельных вычислений (Hadoop, QizMT) является плюсом. Источник с открытым исходным кодом не является обязательным.

Я смотрел на Qt, вплоть до того момента, когда Nokia сделала свое удивительное объявление о Windows Phone 7. Это означает, что у Qt будущее неопределенное.

.NET / Mono также выглядит неплохо, но его поддержка мобильной платформы отсутствует.

Мысли?

3 ответа

Попробуйте взглянуть на решение Integra Client/Server на сайте http://oelsoft.com/

Шутливый ответ: JavaScript и HTML5 - это то, что парни из SpaceWar выбрали для продолжения игры 1962 года в течение следующих 10 с лишним лет.

JVM является лучшей платформой для кроссплатформенной разработки на стороне сервера по нескольким причинам:

  • Java по большей части является языком № 1 в мире для разработки приложений общего назначения с точки зрения использования и популярности. Если вы создаете новое программное обеспечение, популярность языка сама по себе не имеет значения, но в более широком смысле это большое преимущество с точки зрения зрелости экосистемы и легкости поиска хороших разработчиков.
  • Это полностью кроссплатформенная и теперь с открытым исходным кодом. Таким образом, вы можете разрабатывать без риска зависания от поставщика или архитектуры на программной или аппаратной стороне. Это очень важно, если вы хотите быть "будущим".
  • Библиотека и инструментальная экосистема не имеют себе равных. У вас есть огромное количество программного обеспечения и инструментов от Apache Foundation, Google, Sun / Oracle, IBM, Eclipse, JBoss и многих других.
  • JVM очень хорошо спроектирована. Нет ничего более хорошего в плане сборки мусора, переносимости, JIT-компиляции, базовых библиотек, долгосрочной стабильности API. Платформа Microsoft .Net является единственной вещью, которая приближается с точки зрения общего качества платформы, но в основном привязана к платформам и инструментам Microsoft, поэтому.Net не является жизнеспособным выбором, если вы цените мобильность или длительную гибкость архитектуры.
  • Если вы специализировались на масштабируемости, малой задержке и т. Д., То вы можете легко перейти на расширенные пользовательские JVM или аппаратные средства, такие как Azul Systems.
  • Вы можете использовать сам язык Java, если вы знакомы с классическим ООП, но в настоящее время может иметь смысл выбирать более современные языки JVM, такие как Scala или Clojure - оба эти языка чрезвычайно хороши для разработки на стороне сервера. Можно утверждать, что большая часть языковых инноваций происходит в новых языках JVM, а не в самой Java (которая сегодня больше похожа на устойчивый, стабильный язык рабочей лошадки).

На клиентской стороне это менее хлопотно, и есть много других хороших вариантов, но варианты на основе Java все еще довольно хороши:

  • Android явно очень силен в мобильном пространстве. Android использует свои собственные библиотеки SDK и VM (Dalvik), но основным языком программирования является Java.
  • Swing или SWT - очень хорошие наборы инструментов для создания кроссплатформенных настольных приложений. Вероятно, только наборы инструментов C/C++ имеют одинаковый охват с точки зрения охвата платформы, но все они требуют, чтобы вы перекомпилировали для каждой платформы....
  • По состоянию на 2012 год JavaFX 2.0 был выпущен. Это все еще первые дни, но это может показаться многообещающим для разработки богатых интернет-приложений.
  • Вы можете использовать Java Web Start для развертывания на клиентах. Это позволяет относительно легко настроить развертывание в один клик через Интернет, так как веб-запуск позаботится о загрузке всех необходимых зависимостей для вас.

Нет ответов вообще?

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

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