Чи думає ваша компанія про перехід від Java до іншої технології? [зачинено]


9

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

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

Щоб було зрозуміло, я не запитую, яка технологія краща. Я запитую, чи думає ваша організація залишити Java для іншої технології.


1
Чи не Гроовий і Скала не залежать від СВМ? Якщо це так, Oracle також стурбований тим, що хоче монетизувати JVM.
POSIX_ME_HARDER

Ти правий. Це матиме вплив на прийняття Scala, Groovy або JRUby в компаніях, які хочуть комерційного jvm замість відкритого jvm. Я залишаю оригінальний питання незайманого , як я думаю , що деякі компанії можуть бути готові платити за комерційну віртуальну машину Java, щоб використовувати іншу мову
Аугусто

Як розробник Java, я приймаю питання з вашим твердженням "як знає кожен розробник Java". Я думаю, що майбутнє Яви є а) ясним і б) світлим. Я впевнений, що деякі люди можуть захотіти доплачувати за пакет підтримки «Преміум» Oracles, але для тих із нас, хто просто планує дотримуватися безкоштовної, відкритої версії Java (яка не відходить!), То це дещо неважливо.
mikera

Mikera, ви згадуєте про відкритий код, але деякі впливові розробники 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 - це чудова IDE і забезпечує фантастичну ланцюжок інструментів для розвитку надійних корпоративних програм. Ми використовуємо інтеграцію Maven, JUnit, Git / SVN та безліч інших інструментів, які доступні як плагіни Eclipse. Все це "просто працює".

Нарешті, які ще варіанти?

  • .NET - це єдина платформа з порівнянними можливостями, і мені особисто подобається C #, але вона замикає вас на технологіях Microsoft (гірше, ніж Oracle / IBM IMHO) і не має такої ж широти екосистеми з відкритим кодом. Чудово для магазинів Microsoft, але не, якщо ви хочете контролювати власну технологічну долю. І так, Mono мило, але я не можу дозволити собі робити ставку на свій бізнес на платформі, яка може або не може підтримувати робочий рівень сумісності з .NET mainstream.

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

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

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

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

ОНОВЛЕННЯ

Кілька слів про вибір Clojure на JVM як вибір мови. Основними мотиваціями до цього були:

  • Паралельність - Clojure має унікальну історію паралельності, добре працюйте під час перегляду цього відео, де описано деякі основні поняття. Він може надійно масштабувати багатоядерні архітектури за допомогою програмної пам'яті транзакцій . І це вдається зробити це без особливих накладних витрат (без замків!), Що є неабияким подвигом техніки.
  • Функціональне програмування - Clojure - це функціональна мова, яка підкреслює незмінність та функції вищого порядку. Це не настільки функціонально, як Haskell, але це перш за все мова FP. Деякі люди кажуть, що це допомагає вам писати кращі програми.
  • Продуктивність програміста - Clojure отримує всі переваги продуктивності філософії Lisp-код-дані. На практиці це означає неймовірно потужні макро-можливості та простий, але надзвичайно гнучкий синтаксис, який ви можете використовувати для визначення власних DSL-файлів для будь-якої проблеми, з якою ви маєте справу.
  • Потреба в динамічній мові, що підходить для швидкої розробки та сценаріїв - Clojure можна використовувати в стандартному циклі складання-тестування-розгортання, але насправді більш природним є використання REPL для інтерактивного розвитку, змінюючи середовище бігового коду під час проходження. Наприклад, я використовую Incanter, щоб мати змогу будувати графіки та візуалізувати дані під час руху, коли я розробляю, щоб побачити результати запуску пакетів.
  • Взаємодія оперативної Java - взаємодія Java Clojure дуже ефективна. Об'єкти Clojure - це об'єкти Java і навпаки, тому тривіально викликати Java-API та бібліотеки, коли вони вам потрібні. Це дає всі переваги всієї екосистеми Java з бібліотек та інструментів.
  • Добре співтовариство - Громада Clojure невелика, але динамічна, доброзичлива і швидко зростає. Вже багато чудових проектів з відкритим кодом, такі як Incanter (статистичні обчислення) або Ring / Compojure (рамки веб-сервера) або проти годинникової стрілки (плагін IDE Eclipse)

Мікера, це саме те, про що я питав. Ваша компанія залишає Java як основну мову для розробки додатків і замість цього використовує Clojure. Я погоджуюсь з вами, що СП не зникне, особливо з деякими компаніями, які інвестують в інші мови, які працюють на вершині Спілки. Не могли б ви поділитися трохи більше про те, що стояло за рішенням використовувати clojure як основну мову розробки?
Август

Звичайно, я додав коментар щодо того, чому Clojure зокрема (я також вважав Scala, що також було дуже перспективним, але Clojure виграв вузьким відривом через свою Lisp-ness)
mikera

Дякуємо за пояснення щодо того, чому ваша компанія вирішила використовувати clojure!
Август

7

Все залежить від замовника.

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

Якщо клієнт каже ... Я хочу, щоб ця програма знаходилась у Java ... чи ми скажемо "ні"? напевно, ні ... якщо вони кажуть, що нас насправді не цікавить .... чи будемо ми це писати на Java? Мабуть, ні, але це просто міркування.

У нас є програми, написані на Java, які мають давню історію, але виявляється, що клієнт ретельно замінює ВСЕ на бренд Windows .... Oracle на сервер sql ... unix / linux з сервером 2008 ... і php і java з .net.

Якщо це станеться, то так ... якщо новий клієнт не прийде і не каже, що ... ми хочемо, щоб це написано на Java ... ми будемо використовувати .net.


Великий американський роздрібний торговець займається чимось подібним, він починає будувати більшість проектів «greenfield» у рубіні, а не на Яві.
Август

1

По-перше, я не працюю в компанії, що займається програмним забезпеченням.

Гаразд, ми використовуємо Oracle як нашу основну базу даних з усією нашою важливою інформацією, що зберігається на ній. Через це ми плануємо продовжувати використовувати Java для будь-якого спільного з Oracle. Придбання Oracle Sun для нас є стимулом продовжувати використовувати Java для всього, що стосується Oracle.

Але будь-які програми для настільних ПК написані на C #, оскільки все базується на Windows.


0

Чи думає ваша компанія про перехід від Java до іншої технології?

Щоб відповісти на ваше запитання. Ні.

Як знає кожен розробник Java ...

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

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

Навпаки, я вважаю, що майбутнє ясно. Еволюція Java триватиме повільними, але стабільними темпами, а основні технології SE та EE надалі будуть безкоштовними. Для мене єдиною реальною зоною невизначеності є те, що буде з вибухом Oracle vs Google. Але так чи інакше, я очікую, що Android / Davlik процвітатиме як альтернатива Java ME ... але тільки для мобільних платформ.

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

Це може дратувати розробників, але "несвіжість" насправді є наслідком того, що Sun / Oracle звертає увагу на те, чого хоче бізнес ... мова / платформа з довгостроковою стабільністю.

У той же час деякі нові технології, такі як Ruby, Scala та Groovy, використовуються для доставки складних сайтів.

Знову ж таки, з точки зору менеджменту, журі вирішує питання про те, чи є ці технології кращими.

  • Чи реально демонструється підвищення продуктивності в довгостроковій перспективі?
  • Виступ там ще є? Масштабованість? Сторонні інструменти та бібліотеки?
  • Чи можуть вони набрати досвідчених працівників?

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


@Augusto - я відповів на ваше запитання; див. перше речення. Ви щасливі зараз?
Stephen C
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.