Ваша компания думает о переходе с Java на другую технологию? [закрыто]

9

Как знает каждый Java-разработчик, Oracle купила Sun, и будущее java выглядит довольно неясным, тем более что Oracle хочет монетизировать JVM. Ява как язык в последние несколько лет также устарела, одним из примеров является отсутствие включения замыканий (которое может быть включено в Java 1.8). В то же время используются некоторые новые технологии, такие как Ruby, Scala и Groovy. доставлять сложные сайты.

Мне интересно, есть ли компании или организации, которые говорят, делают спайки или начинают использовать другую технологию, с идеей прекратить использовать java для проектов «зеленых полей» так же, как 15 лет назад компании мигрировали из C ++, perl и другие технологии на Java. Мне также интересно узнать, каковы впечатления от этого, например: планирование перехода на другую технологию через 2 года.

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

Аугусто
источник
1
Разве Groovy и Scala не зависят от JVM? Если это так, то они также обеспокоены тем, что Oracle хочет монетизировать JVM.
POSIX_ME_HARDER
Вы правы. Это повлияет на принятие Scala, Groovy или JRUby в компаниях, которым нужен коммерческий jvm вместо открытого jvm. Я оставлю первоначальный вопрос без изменений, так как думаю, что некоторые компании могут с радостью заплатить за коммерческую JVM, чтобы использовать другой язык
Августо,
Как разработчик Java, я не согласен с вашим утверждением «как знает каждый разработчик Java». Я думаю, что будущее Java является а) ясным и б) ярким. Я уверен, что некоторые люди, возможно, захотят доплатить за «премиальный» пакет поддержки Oracles, но для тех из нас, кто просто планирует придерживаться бесплатной версии Java с открытым исходным кодом (которая не исчезнет!), Тогда это несколько не имеет значения.
Микера
Микера, вы упомянули открытый исходный код, но некоторые влиятельные Java-разработчики, которые раньше руководили проектами с открытым исходным кодом, сейчас ведут проекты на других языках, поэтому их «энергия» отвлекается от Java. Проверьте все удивительные фреймворки для Scala, Groovy или Ruby. У меня нет цифр, подтверждающих это, но может быть интересно проверить, сколько «строк кода» было выделено для репозиториев с открытым исходным кодом на разных основных языках и тенденциях.
Августо

Ответы:

9

Вовсе нет - на самом деле я вкладываю большие средства в Java как платформу в моей компании (стартап, разрабатывающий приложения SaaS и инструменты для интеллектуального анализа данных).

Вот причины:

  • Выбор Java в качестве платформы не означает, что вы должны использовать Java в качестве языка. Мы используем Clojure в качестве основного языка разработки приложений, время от времени обращаясь к Java. Но и другие языки JVM, такие как Scala и Groovy, также хороши.

  • Я лично не беспокоюсь об Oracle . Основная реализация Java почти наверняка будет по-прежнему с открытым исходным кодом ( OpenJDK ) и свободно доступна. Если Oracle сделал что-то глупое, то другие крупные компании (я думаю, что IBM и Google в частности) слишком много вложили в Java, чтобы позволить себе покончить с этим, и они могли бы легко продолжить разработку Java без помощи Oracle.

  • JVM является отличной средой выполнения . Кроссплатформенность, очень высокая производительность, чрезвычайно хорошая оптимизация технологии JIT. Он достаточно близок к собственной скорости, поэтому меня не волнует дробная величина, так как он медленнее, чем C / C ++, и эти издержки более чем компенсируются правильной сборкой мусора, управляемой средой выполнения байт-кода и т. Д.

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

  • Eclipse - отличная среда разработки и предоставляет фантастический набор инструментов для разработки надежных корпоративных приложений. Мы используем интеграцию Maven, JUnit, Git / SVN и множество других инструментов, которые доступны как плагины Eclipse. Все это "просто работает".

Наконец, каковы другие варианты?

  • .NET - единственная платформа с сопоставимыми возможностями, и мне лично нравится C #, но она привязывает вас к технологиям Microsoft (хуже, чем Oracle / IBM IMHO) и не обладает такой же широтой экосистемы с открытым исходным кодом. Прекрасно для магазинов Microsoft, но не для тех, кто хочет контролировать свою технологическую судьбу. И да, Mono хорош, но я не могу позволить себе ставить свой бизнес на платформу, которая может поддерживать или не поддерживать работоспособный уровень совместимости с .NET.

  • Кроме того, есть все другие замечательные языки, которые очень хороши в своих действиях (например, Ruby, Python, PHP, Javascript), но не предлагают убедительного, всеобъемлющего эквивалента платформе Java. Риск состоит в том, что вам придется начать склеивать множество вещей в архитектуре чуть менее красивой. Не проблема для создания веб-сайтов, быстрых и грязных приложений, но менее привлекательная для долгосрочной разработки продукта.

  • C / C ++ отлично подходит для системного программирования и игр, но слишком сложен / дорог / негибок для разработки современных веб-приложений.

  • И еще есть прекрасные языки, которые я люблю, такие как Haskell, которые фантастичны с академической точки зрения, но просто не имеют промышленного внедрения / экосистемы, необходимых для того, чтобы сделать их надежным выбором платформы. Также я могу получить большинство преимуществ современного функционального программирования, запустив Clojure на JVM .....

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

ОБНОВИТЬ

Несколько слов о выборе Clojure на JVM в качестве выбора языка. Основными мотивами для этого были:

  • Параллелизм - у Clojure есть уникальная история параллелизма, хорошо поработайте, посмотрев это видео, которое описывает некоторые из основных концепций. Он может надежно масштабироваться до массивных многоядерных архитектур с использованием программной транзакционной памяти . И ему удается сделать это без особых накладных расходов (без блокировки!), Что является довольно замечательным подвигом инженерии.
  • Функциональное программирование - Clojure - это функциональный язык, который подчеркивает неизменность и функции более высокого порядка. Это не так чисто функционально, как Haskell, но это прежде всего язык FP. Некоторые люди говорят, что это помогает вам писать лучшие программы.
  • Продуктивность программиста - Clojure получает все преимущества производительности от философии Lisp code-is-data. На практике это означает невероятно мощные возможности макросов и простой, но чрезвычайно гибкий синтаксис, который вы можете использовать для определения собственных DSL для любой проблемы, с которой вы сталкиваетесь.
  • Потребность в динамическом языке, подходящем для быстрой разработки и создания сценариев - Clojure можно использовать в стандартном цикле сборки-тестирования-развертывания, но на самом деле более естественно использовать REPL для интерактивной разработки, изменяя среду работающего кода по мере необходимости. Например, я использую Incanter, чтобы иметь возможность строить графики и визуализировать данные на лету, когда я разрабатываю, чтобы увидеть результаты серийных прогонов.
  • Взаимодействие Java - взаимодействие Java Clojure в очень эффективной. Объекты Clojure являются объектами Java и наоборот, поэтому тривиально вызывать API-интерфейсы и библиотеки Java всякий раз, когда они вам нужны. Это дает вам все преимущества всей экосистемы Java библиотек и инструментов.
  • Хорошее сообщество - сообщество Clojure небольшое, но динамичное, дружелюбное и быстро растущее. Уже много хороших проектов с открытым исходным кодом, таких как Incanter (статистические вычисления) или Ring / Compojure (платформа веб-сервера) или против часовой стрелки (плагин Eclipse IDE)
mikera
источник
Микера, это именно то, что я спрашивал. Ваша компания оставляет Java в качестве основного языка для разработки приложений и использует вместо этого Clojure. Я согласен с вами, что JVM не исчезнет, ​​особенно с некоторыми компаниями, инвестирующими в другие языки, которые работают поверх JVM. Не могли бы вы рассказать немного больше о том, что стояло за решением использовать clojure в качестве основного языка разработки?
Августо
Конечно, я добавил несколько комментариев о том, почему именно Clojure (я также рассматривал Scala, которая также была очень многообещающей, но Clojure выиграл с небольшим отрывом из-за своего
Лиспенса
Спасибо за объяснение того, почему ваша компания решила использовать clojure!
Августо
7

Все зависит от клиента.

У Java всегда будет своя маленькая ниша, где люди будут стремиться к ней по той или иной причине, по тем же причинам, по которым люди тяготеют к .php или .net, но в конечном итоге это зависит от требований и предпочтений клиента.

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

У нас есть приложения, написанные на Java, которые имеют давнюю историю, но кажется, что клиент тщательно заменяет ВСЕ на марку Windows .... Oracle на SQL Server ... Unix / Linux с сервером 2008 ... и PHP и Ява с .net.

Если это произойдет, тогда да ... если только новый клиент не придет и не скажет "эй" ... мы хотим, чтобы это было написано на Java ... мы будем использовать .net.


источник
Крупный американский автомобильный ритейлер делает нечто подобное, он начинает строить большинство новых проектов в рубине, а не в Java.
Августо,
1

Во-первых, я не работаю в софтверной компании.

Хорошо, мы используем Oracle в качестве основной базы данных, где хранится вся важная информация. Из-за этого мы планируем продолжать использовать Java для всего, что связано с Oracle. Приобретение Oracle компанией Sun является стимулом для нас, чтобы продолжать использовать Java для всего, что связано с Oracle.

Но любые настольные приложения написаны на C #, так как все основано на Windows.

санге
источник
0

Ваша компания думает о переходе с Java на другую технологию?

Чтобы ответить на ваш вопрос. Нет.

Как знает каждый разработчик Java ...

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

... будущее Java выглядит довольно неясным, особенно если учесть, что Oracle хочет монетизировать JVM.

Наоборот, я думаю, что будущее ясно. Эволюция Java будет продолжаться медленными, но устойчивыми темпами, а основные технологии SE и EE будут по-прежнему бесплатными. Для меня единственная реальная область неопределенности - то, что случится с булл-боем Oracle против Google. Но, так или иначе, я ожидаю, что Android / Davlik будет процветать как альтернатива Java ME ... но только для мобильных платформ.

Java как язык также устарела в последние несколько лет, одним из примеров является отсутствие включения замыканий (которое может быть включено в Java 1.8).

Это может раздражать разработчиков, но «устаревание» на самом деле является следствием того, что Sun / Oracle обращают внимание на то, что хочет бизнес ... язык / платформа с долгосрочной стабильностью.

В то же время, некоторые новые технологии, такие как Ruby, Scala и Groovy, используются для доставки сложных сайтов.

Опять же, с точки зрения руководства, жюри определились с тем, насколько эти технологии лучше по всем направлениям.

  • Действительно ли заявленное повышение производительности действительно демонстрируется в долгосрочной перспективе?
  • Производительность уже есть? Масштабируемость? Сторонние инструменты и библиотеки?
  • Могут ли они нанять опытных сотрудников?

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

Стивен С
источник
@ Августо - я ответил на твой вопрос; см. первое предложение. Ты счастлив сейчас?
Стивен С.