Только, как показывает практика, Vagrant под Windows работает далеко не всегда, особенно если хочется подключить нормальный provisioner типа ansible. Коплю на мак(
Cyrax2014: дресскод, фейсконтроль, рабочий день с 9 утра, тимбилдинг, корпоративы, kpi, матрица эффективности, подковерные игры, офисная политика. 80% кода - говнолегаси со времен C# 1.0 или Java 4.
Я не спорю что вакансии есть, и их много. Просто кому что интересно, тот то и выбирает)
Cyrax2014: Какие именно системы пишут на Java? Java на 2 месте по популярности, но какова ее удельная доля? Оставшиеся за вычетом джавы и C/C++ проценты - это ведь миллиарды строк кода, работы хватит всем)
Программисту для работы нужен миллион вакансий или хватит одной? Все языки, которые я озвучил, находятся далеко за порогом "ненанимаемости", на хлебушек с маслицем будет хватать с запасом и на Python и на Go и на Scala, и на Ruby, и даже на Clojure и всяких F# (11 место в рейтинге www.tiobe.com/index.php/content/paperinfo/tpci/ind... между прочим). Поэтому выбирать нужно то, что нравится. А нравится некоторым людям не работать в унылых банках например, корябая унылый ынтерпрайз, наворачивая абстрактные фабрики фабрик)
Cyrax2014: хорошее то, что это одна из самых старых и отлаженных виртуальных машин с выполнением байткода, которая еще и более-менее портирована в отличие от CLR. VM с управляемой памятью - это очень сложно, это искусственный интеллект практически. А насчет вакансий - появляются конечно. В некоторых местах например до сих пор на Delphi программируют. Просто лично я за более гибкие и выразительные языки программирования
Cyrax2014: Все хорошее, что есть в джаве это JVM, но под JVM теперь можно писать на человеческих языках, которых не было в бородато-девяностом году, когда Яндекс начинался. + можно нанять армию ынтерпрайзеров в тыщу человек сравнительно легко. Чем плоха ява, можно легко понять, написав на ней что-нибудь. Ну например вот steve-yegge.blogspot.ru/2006/03/execution-in-kingd...
Google вот например на Go и питоне многие проекты пишет, и правильно делает)
А главное, нужно понимать, что это очень много труда и изрядная доля таланта и вообще непросто, иначе талантливым программистам не платили бы по 50,100,200 тысяч)
derpderpenko: Не совсем так. Backend - это то, что происходит на сервере, логика приложения и база данных, если в двух словах. Ruby on Rails как раз закрывает эту нишу. Frontend - это то, что происходит на клиенте, то есть в браузере - верстка (HTML), внешний вид (CSS), интерактив (Javascript). Это разные направления, но в рельсах исторически сложился свой специфический стек технологий для фронтэнда, который уже используется и просто фронтэнд-разработчиками всех мастей, и сильно облегчает жизнь. HTML-верстку пишут на HAML и SLIM - это такие шаблонизаторы, специально заточенные под написание лаконичного и емкого кода, который компилируется в HTML. Для работы со стилями есть язык-расширение SCSS, который также компилируется в CSS на сервере, позволяет писать вложенные селекторы, использовать переменные, циклы, модули (mixins). Есть еще SASS, это то же самое, но синтаксис меньше похож на обычный CSS. На этих языках написано несколько мощных CSS фреймворков: Foundation, Bourbon, существует SCSS порт Bootstrap'а. Для javascript'а рубисты по аналогии изобрели Coffeescript - язык с большими возможностями синтаксиса + немного магии, который аналогично на сервере компилируется в javascript. Насчет Coffeescript'а мнения разнятся, к тому же есть другие аналоги типа jsx, а вот HAML+SCSS - это очень и очень здорово.
Можно уйти во фронтэнд на рельсах, для этого сильно пригодятся базовые знания рельсов, особенно то, что касается views, rendering, layouts + вышеперечисленные технологии. Можно уйти в бэкэнд на рельсах - более глубокие знания принципов БД, SQL, нюансов ActiveRecord, рубишного ООП. Можно оставаться фуллстек разработчиком, что, для фрилансера, на мой взгляд, полезнее.
Специфика javascript - прототипная модель наследования, отсутствие классов и обычного ООП из коробки, кругом замыкания, слаботипизированный, куча нюансов с type coercion. Отладка кода за счет асинхронности и колбеков далеко не всегда тривиальна.
Ruby - классы и модули из коробки, внятная объектная модель на основе smalltalk, строго типизированный, в целом выстрелить в ногу сложнее.
А java - она сильно на любителя. Если очень надо написать что-то под JVM, всегда можно сделать это на нормальном языке - Scala, Clojure, JRuby, и т.д.
olexandr7: зависит от позиции, если фуллстек, то требуют еще сверх того: HAML/SLIM, SCSS, CoffeeScript и т.д. Но дизайны рисовать обычно не просят конечно)
В RoR больше магии, это создает трудности поначалу, потом, когда выучиваешь соглашения (пресловутое Convention over Configuration), можно очень быстро выкатывать код, который при этом будет лаконичным и понятным коллегам, которые точно так же выучили соглашения. То, чего нет в рельсах из коробки (Form Objects, бэкэнд для редактирования базы/контента), есть в виде гемов (подключаемых модулей). Из плюсов Ruby - более гибкая и стройная объектная модель(имхо конечно, но все же), меньше проблем при миграции от версии к версии (такого разделения как между Python 2/3 нет, я мигрировал на Ruby 2.1 вообще безо всяких проблем в прошлом году).
На вкус и цвет конечно, питон с джангой тоже хороши, имеет смысл выбрать что-то одно и сосредоточиться на этом.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.