Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Java или JavaScript

Усі статті, обговорення, новини про Front-end — в одному місці. Підписуйтеся на телеграм-канал!

Закончил институт, сейчас планирую устроиться работать программистом.
На данный момент, имеется 3 года опыта работы Java Developer-ом.
В последнее время поглядываю на JavaScript, как на основной язык разработки.

Передо мной встала проблема выбора:
1. Идти работать как уже умею, на Java
2. Переквалифицироваться в «разработчика переднего конца» (JavaScript)

С Java все понятно: зарплаты большие, спрос есть.

Но JavaScript, как мне кажется, является очень перспективным, хотя это еще не все осознали.
1. Для серверной части, помимо Java, есть много альтернатив (Python, Ruby, PHP, и т.д.). На клиенте, все сводится к JavaScript
2. Идея Single Page Applications — очень хороша и архитектурно более правильная. Зачем каждый раз передавать один и тот же HTML с сервера на клиент? Обмениваться нужно только данными. С развитием фреймворков (Angular, Ember, и др.), писать SPA станет проще и их станет больше.

В Киеве, похоже, уже появилось немало JS вакансий. В Харькове их пока немного, но волна должна дойти.

Пока, я более склоняюсь к переходу на JavaScript. Что посоветуете, коллеги?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

попробовать найти жава работу где много фронтенда.

Node.js во внимание не берешь?

Node.js — отличная штука для JS девелопера, чтобы не учить другие языки, типа Java, PHP и т.д.
Если брать архитектуру REST API + клиент, то REST API можно написать на любом из популярных языков, клиента — только JS (+его производные).

Если подсуммировать, на начальном этапе, более интересны технологии клиента. В последствии же, не отбрасываю выучить и node.js .

О, а аргументы есть? :) Не троллинга ради, просто интересно.

больше похоже, на -> «мне этот язык/платформа не нравится потому что я не хочу ее изучать!»

Кто-то написал нехвалебную статью на очередной хипстерский тормозной фреймворк? О ужас! Он неуч и вообще дурак!

Автор стать действительно прославился как «неуч и дурак».
www.google.com.ua/... Cancer article

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

Ну так. Аффтар, схоже навіть не в курсі, що нода — це не фреймворк, а платформа. Нічого не заважає мені писать на ноді не-серверні прожки або cgi причепить. Спеціально потестив його приклад: він вивалився з еррором, довелось трохи пофіксить. Про наброс на сам js як мову — занадто товсто.

У нас самый популярный стек разработки сейчас JAX-RS + др. JavaEE6 технологии на сервере и Javascript SPA на клиенте плюс часто еще нативные мобильные клиенты (Android, iOS). Возможность кодить одновременно и клиент и сервер сильно упрощает жизнь, поэтому однозначно оба варианта. Если ищете компанию в Харькове с таким стеком разработки — присылайте резюме.

Размышления о тенденциях в принципе верные, но упущен один момент. Мир движется не только в сторону клиентского джаваскрипта, но ещё и в сторону мобильных приложений, где знание Java может оказаться весьма полезным для смены направления. Стоит учитывать принимая решение.

на мобильниках так-то тоже есть браузер, так что JS тут вполне подходит. Не учитывая всяких PhoneGap и FirefoxOS.

Браузер, конечно есть, но рано или поздно все пишут мобильное приложение, потому что мобильный браузер — это больше костыль, чем решение задач клиента.

У меня была подобная ситуация, только небыло никакого ИЛИ.
Работай как Java и учи Javascript. Начнёшь на работе больше заниматься JS частью — скорее всего твои коллеги только рады будут, ну а тебе опыт. А когда дойдёт тренд и до нас, ты будешь на том коне, на котором захочешь.

+1 Найди проект, где у тебя будет front+back-end. Это хороший опыт. Изучить оба языка на хорошем уровне — это вполне нормально. Шире будет кругозор!

Тут несколько моментов:
А) жабаСкрипт вас рано или позно найдет. Никуда от него не деться и не спрятатьсё.
Б) Фронтенд это не только жабаскрипт но и хтмл, цсс, и прочие штуки.
В) питон руби и пых — это совсем не альтернатива жабе. У них немного разное назначение и применение, хотя и пересекаеться.
Д)Сингл пейдж аппликейшн — на клиенте никак не отменяет необходимость в сервере(!)

Вот мое (чисто субъективное) мнение о Java Script:
В удобстве применения для фронтенда он аналогичен языку С на бекенде. Т.е. это язык скорее «низкого уровня», на котором можно написать все и хорошо оптимизировать. Но времени на разработку и отладку понадобится в 2-3 раза больше, чем на языке «высокого уровня».
Мало кто пишет на языке С коммерческие приложения: это долго, сложно, требует опытных девелоперов, код получается громоздкий и запутанный. На том же C#, Java или Ruby, используя готовые фреймвоки, шаблоны и «синтаксический сахар» средний девелопер соберет такой-же сайт намного быстрее.
Думаю то же самое произойдет с Java Script. Уже сейчас все придумывают высоко-уровневые альтернативы: либо клиентские «обертки» (JQuery, Angular и т.д.), либо даже свои языки, которые «транслируются» в Java Script на сервере.
SPA приложения на Java Script, которые я видел, сильно страдают «детскими» ошибками, которые давно невозможны в GUI приложениях. В большинстве случаев работает только «позитивный» сценарий: нужные данные вернулись, нарисовали — ура! Если не вернулись, или вернулись не такие или еще 100500 причин — просто Java Script ошибка в консоли. Юзер ничего не замечает — и работает дальше (это GUI приложение может «вылететь» и закрыться после ошибки, а SPA что делать?).
Опытный QA, если будет тестировать SPA приложение как обычное десктопное, баги будет писать не переставая: двойные клики на линки, что-то «недогрузилось», кнопочка «назад», рефреш страницы, переход фокуса по табу, драг — дроп, зум, жесты, лаги сервера, хитрые плагины в браузерах и еще сотни способов увидеть java script error. И это не говоря уже про все виды браузеров и все виды мобильных девайсов.
Думаю скоро появятся надежные и целостные платформы для разработки SPA приложений вообще без Java Script. Т.е. девелоперы смогут «формошлепать» такие приложения, как десктопные: редактор страниц + простые обработчики «кликов». Все остальное платформа добавит сама. Появление какого-нибудь WPF для SPA от Microsoft — вопрос ближайшего времени.

Думаю скоро появятся надежные и целостные платформы для разработки SPA приложений вообще без Java Script.
Да уже все было. Flex например. Отличная же технология, жаль что политические войны компаний ее загубили.

это не более чем ваши фантазии. не будет никакого жабаскрипт формошлепства в обозримом будущем.

Появление какого-нибудь WPF для SPA от Microsoft — вопрос ближайшего времени.
Microsoft не придумывает а копирует. И Microsoft уже использует JavaScript в своем GUI
msdn.microsoft.com/...s/br211385.aspx

жаль на этом сайте нет кнопки «дизлайк»

но на лицо ваша полная некомпетентность либо зангажированность тотально неверными идеями

я склонен к первому варианту

жаль на этом сайте нет кнопки «дизлайк»

Артём, а что Вам мешает просто игнорировать такие коментарии, почему сразу дислайкнуть хочется? Почему бы популярные мнения просто лайками подымать, а остальные — пропускать?

P.S. В истории найдется немало примеров того, когда большинство ошибалось.

Я для себя смысла не увидел. Лично мне не нравится JS и меня от него воротит, чем-то напоминает лада Калину, которую хвалят только из-за того что на ней проехался Путин.
Но давайте поговорим о Вас — вы готовы начать свой путь с junior-а, отбросив свой опыт на back-end?
1) Возможно лет через 5, когда (если) станете senior-ом на front-end-е, то перещеголяете свою з.п. сейчас, ну а до того момента будете зарабатывать меньше.
2) куча проблем и WTF-ов JS как нетипизируемого и интерпретируемого языка: сравните дебаг на Java и на JS хотя бы.
3) разработчики браузеров добавляют проблем и в JS необходимо использовать адские костыли и велосипеды в отличие от Java: write once — run everywhere
4) Будьте готовы выучить инфраструктуру опять только вокруг JS: менеджеры зависимостей и пакетов (npm, bower), тесты под js еще та радость и разумеется 100500 библиотек mvvm, mvc.
Пример: приложение на Backbone.js требует в среднем в 15-20 раз больше кода, чем на jQuery, смысл? А код надо поддерживать, понимать и оптимизировать. ИМХО — хрень.

Выводы: я на вашем месте углубился бы в back-end, а эту всю хрень оставил кому-то другому. В любом случае это ваша жизнь и ваш выбор.

так и на бекенде есть жабаскрипт — node.js

ну давай разберем по частям все тобою написанное

1) вы говорите «у ждавистов большая зп» , как будто сейчас это самое главное, через 5 лет конъюнктура рынка может измениться и спрос на ява сениоров будет таким же, как и на дельфи сениоров, а вот яваскрипт точно не утонет

2) не заметил принципиальной разнице в дебаге — там и там брейкпойнты, там и там можно посмотреть переменые из скоупа, там и там можно в скоупе выполнять выражения, на самом деле, при дебаге разницы нет вообще

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

4) инфраструктура у джаваскрипта на порядок меньше чем у того же дотнота или явы, так что да, я повелся на ваш троллинг

складывается впечатление, что ты реально....(ну и далее по тексту)

debug прилетающих из ajax скриптов весьма неудобен ;)

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

Async в chrome developer tools недостаточно?
есть еще XHR breakpoints.
или речь о $.script?

спрос на ява сениоров будет таким же, как и на дельфи сениоров, а вот яваскрипт точно не утонет
Ну JVM его думаю вытянет, ведь из-за нее ява есть на большинстве девайсов
write once — run everywhere

Лучший выбор — Java/Scala и JavaScript. Scala + Play + Angular.js/Backbone.js — лучший стек технологий для веб-разработки на текущий момент.

Старый добрый жеквери живее всех живых )

Javascript при сравнении с Java неполноценен. После опыта работы и с тем и с другим сделал для себя вывод — на js делать приложения (в том числе и back-end) сложней из-за его простоты.
С другой стороны спрос прогрессивный и порог входа гораздо легче.

JavaScript просто другой. Большинство вещей, которых нету в js и есть в java связанных с наличием развитой системы типов. Поэтому в js они просто не нужны. Писать на js сложней по этой же причине, квалификация разработчика использующего слаботипизированный язык как правило должна быть выше.
Сам js развит в отдельных вещах куда более чем java, если уж говорить про реализации commonjs спецификации, тем более использующие возможности ES6.

Пока, я более склоняюсь к переходу на JavaScript. Что посоветуете, коллеги?
Быть мужиком и принимать решения самостоятельно. Это важный навык и не зависит от технологии.

Прислушиваюсь к мнениям компетентных людей, принимаю решение самостоятельно.

ребе, где же вы тут компетентных людей видели ?

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

+ фронтовику нужно уметь хорошо верстать, а верстка непонятно почему, как я заметил, является каким-то проклятьем для большинства девов.

А зачем деву давать вёрстку, когда есть верстальщик, час которого стоит дешевле часа работы дева?

Чтобы не нанимать верстальщика

Підписатись на коментарі