Восемь мифов про Java. Серверные приложения в сфере финансовых услуг. Можно ли загрузить Java бесплатно

  • Перевод

Легко забыть значимость технологии, как только она пронесется кометой через коллективное сознание и погаснет огненной смертью за горизонтом. К примеру, Cobol - когда-то этот язык был культовым для целой эпохи, а сейчас его можно сравнить разве что с протухшей рыбой. В наши дни любой хипстер-программист вам отчеканит, что Cobol – это полный отстой, старый и бесполезный язык. Java может стать следующей жертвой «актуальных» суждений.

Пик продаж книг по Java – далеко в прошлом. Матерые Java-утилиты уже не достаточно сексуальны для обложек журналов. Java уже 19 лет, а прогрессивные разработчики увлечены такими моднейшими и актуальнейшими технологиями как Node.js, Objective-C, Dart, Go и т.д., удивляясь: «Java? Этот артефакт эпохи Web 1.0 еще жив?»

Беглый поиск на Dice.com показывает, что работы на Java - навалом. Если для iOS около - 2500 предложений, для Java - более 17000. Конечно, нельзя всецело полагаться на эти цифры. Но тот факт, что на Dice.com рынок работы на Java потенциально в семь раз больше, чем для моднейшей iOS, говорит о том, «старина Java» чувствует себя довольно таки неплохо.

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

Прежде, чем мы забудем огромный вклад Java в IT-отрасль и его роль в наши дни, хотелось бы озвучить 12 веских причин, почему Java не просто выживает, но и активно процветает наши дни.

Не называйте это возвращением; Java никуда не уходила, она тут и повсеместно доминирует.

Причина № 1: Непотопляемость в мире политики (зачастую грязной)

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

Первым большим врагом Java была Microsoft. Эта компания увидела в Java наиболее достойного преемника тому единству, которое на то время предлагал только MS-DOS. Редмонд критиковал и боролся с Java с самого начала. Java не пользовалась успехом для разработки десктоп-приложений, отчасти потому, что магическая виртуальная машина Java запускалась слишком медленно. Несмотря на небольшие притормаживания, в целом, Java приложения в Windows достаточно юзабельны.

По какой-то необъяснимой причине, Стив Джобс никогда не любил Java. Даже когда Mac в значительной степени проигнорировали все, кроме Adobe, Java не дали шанс. Java-совместимость могла бы активизировать разработку для Mac-а, но для Apple – Java всегда была актером второго плана. (В общем-то, смартфоны на iOS работают более плавно, чем мой Android, так что, возможно Стив был прав)

Java также пострадала от многочисленных внутренних разборок. В IBM любили этот язык, но всегда сражались с Sun. Решение IBM о том, чтоб назвать свою замечательную IDE «Eclipse» (Затмение), было довольно холодно принято людьми из Sun (парни из Sun никогда не понимал в бизнесе настолько хорошо, как IBM).

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

Причина № 2: Магия потоков

Одна из сильных сторон виртуальной машины Java, всегда была ее способность с легкостью жонглировать несколькими потоками. JVM оптимизирована для больших многоядерных машин, и она без проблем может управлять сотнями потоков. Благодаря этой способности, на JVM появились и другие языки - создаются кросс-компиляторы и эмуляторы, работающие поверх JVM.

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

Ruby является одним из современных конкурентов Java. У него более чистый, напоминающий живой английский язык, синтаксис. Но все же, когда любителям Ruby нужна высокая производительность, они обращаются к JRuby. Это версия Ruby, которая бежит поверх JVM, обеспечивая гораздо более высокую производительность при больших нагрузках с множеством потоков. Вложив кучу усилий для надежной работы с потоками, инженеры из Sun не прогадали.

Причина №3: Java, как первый язык программирования

Java является основным языком для Advanced Placement Computer Science (Advanced Placement (AP) - учебная программа и экзамены для учащихся средней школы в США). Это означает, что зачастую, для студентов Java является первым языком программирования. Таким образом, Java дальше с ними «и в горе и в радости». Когда в дальнейшем студенты изучают новые языки программирования, они сравнивают с тем, что есть в Java. Если они даже меняют Java на что-то другое, их мнение все равно базируется на том, что они узнали «в первом классе».

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

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

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

Причина №4: (Почти) кроссплатформенная совместимость

Язык Java не был первым языком для написания кроссплатформенных приложений, но он стал самым популярным. Это не означает полную совместимость на разных платформах - отсутствующие библиотеки или несовместимые версии библиотек запросто похоронят ваш код. Вы не можете взять код десктоп приложения, скомпилированный под JRE 1.7 и запустить его на телефоне в Java ME. Чуда не произойдет.

Sun, а сейчас и Oracle, выжимают по максимуму для кроссплатформенности. Когда код не работает, как правило, понятно, в чем проблема. Если вы используете правильные версии Java и у вас достаточно памяти, ваш код будет работать. Java разработчики могут разрабатывать приложение на своем компьютере, а затем развернуть его на целевой платформе, будь то телефон или сервер. Если для компилятора доступны нужные библиотеки, код будет работать. Это бесценно.

Причина № 5: Устойчивый успех Java на микрочипах

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

Это господство не в новинку. Урезанная версии языка и виртуальной машины, известные как Java ME широко использовались во многих так называемых недосмартфонах (feature phone), которые исчисляются миллионами во всем мире.

Если все это слить вместе, доминирование Java - ошеломляющее.

Причина № 6: Blu-Ray

Язык Java когда-то назывался «Oak» предназначался для ТВ-ресиверов, где компания Sun хотела доминировать. Точно придерживаться плана не получилось, но Java все равно удалось найти уютное место в гостиной. Blu-Ray стандарт построен вокруг Java, и тому, кто хочет добавить дополнительный контент на Blu-Ray нужно будет воспользоваться Javac компилятором.

Blu-Ray диски – это не просто сырое видео. С помощью Java-кода можно изменить/добавить дополнительные функции и интерактивность. Blu-Ray диски – это смесь сжатого видео и Java байт-кода.

Причина № 7: Фигурные скобки просто работают

Любители таких модных языков, как Ruby, Python, или CoffeeScript снисходительно наблюдают за тем, как Java (и C) принуждают программистов вставлять фигурные скобки, явно обозначая начало и конец каждого блока кода. Круглые, фигурные, и даже квадратные скобки - все это проклятие для этих прогрессивных разработчиков. (Я сам не люблю скобки, и до сих пор ностальгирует по тому, как в некоторых версиях Lisp-а можно закрыть все открытые скобки одной квадратной скобкой)

Но изменение пунктуации не устраняет сложности, а скрывает их. Использование пустого пространства для обозначения вложений заставляет вас интуитивно видеть то, что вы не можете видеть. Обозначение вложенности пробелами отлично работает, если ваше выражение помещается на одну строку, но становится ужасным, если у вас несколько уровней вложенности. Когда я пишу на Python-е, я замечаю за собой, что считаю и пересчитываю отступы. Если код выглядит как английский язык, не означает, что его также легко понять, как и предложение на английском.

Причина № 8: Groovy

Если Java программистам нужен более чистый и простой синтаксис, динамическая типизация, это не повод сбежать к новомодным языкам. Они могут использовать Groovy, аккуратный хак Java с препроцессором, который производит JVM байт-код. Язык полностью интегрирован с Java - вы можете смело вызывать Java библиотеки из Groovy кода. Это как Java с плюшками.

Такая гибкость позволяет программистам самостоятельно конструировать решение своих проблем. Когда Groovy медленнее (такое часто бывает при использовании динамического вызова методов), программист всегда может переписать куски кода критичные для производительности на core Java.

Причина № 9: JVM

JVM была построена и оптимизирована под типизированный код со статическим контекстом, генерируемый javac компилятором, но со временем разработчики языков поняли, что JVM может запускать код написанный не только на языке Java. Если компилятор создает корректный Java байт код, JVM не волнует на каком языке он был написан. Разработчики Haskell, Scala, Clojure и вскочили на подножку «мощного электровоза Java» создав свои компиляторы.

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

Microsoft позаимствовала эту идею (а также многое другое), создав C# и свой подход к созданию компиляторов для языков, работающих на C# VM (CLR). C # программисты говорят, что могут писать на разных языках – правда, только на VM под Windows. Удивительная гибкость!

Причина № 10: Революция NoSQL, построенная во многом на Java

Давным-давно, база данных была непостижимым черным ящиком, который хранит информацию и быстро и эффективно отвечает на запросы. Потом пришла революция NoSQL, - программисты поняли, что могут писать свои собственные базы данных и адаптировать код к своим потребностям. Большая часть из основных игроков на рынке NoSQL была написана на Java. Cassandra, Lucene, ElasticSearch, HBase и neo4j – это лишь некоторые примеры. Кроме того, есть некоторые ACID-совместимые базы, написанные на Haskell и работающие на JVM.

Эти базы, как правило, с открытым исходным кодом и легко встраиваемы. Кто-то запускает их как независимые сервисы, кто-то встраивает их код (в виде библиотек) в свой собственный стек. В любом случае, статус Java в качестве рабочего языка на уровне базы данных гарантирует, что разработчикам на Java разобраться и работать с этими базами будет легче. Кодировки или разделители строк не будут волновать Java-разработчиков.

Причина № 11: в этом веке рулит Minecraft

Пока Ruby продолжает собирать свою долю поклонников, следующее за ними поколение влюбляется в Java. Почему? Одно слово: Minecraft. Он написан на Java. Юные геймеры, желающие расширить Minecraft, должны знать Java, чтобы писать плагины под Minecraft. Это гарантирует, что повзрослевшие «детки» будут непременно писать на Java.

Причина № 12: Открытый исходный код

Компания Sun всегда была одним из лидеров в Open Source сообществе, но она так и не решилась полностью освободить Java. Это не помешало Java программистам написать кучу отличных библиотек и проектов под свободными открытыми лицензиями. Проект Apache продолжает поставлять множество проектов на Java под лицензией, которая не требует многого взамен.

Sun закончила выпускать большую часть кода под лицензией GPL в 2007 году. С тех пор, компания Sun и ее новый владелец, Oracle, старались быть хорошими менеджерами для языка Java. Несомненно, Oracle подмочил свою репутацию исками к Google, но в остальном, платформу можно в значительной степени считать открытой и свободной.

Ненавистников предостаточно, но Java двигается вперед

У Java, безусловно, хватает своих проблем. Java-хейтеры будут продолжать брызгать слюной и стучать по клавиатуре, постя злостные коменты в интернете. Сборщик мусора может вызвать икоту и дрожь. Типизация данных является рутиной и не может отбраковать действительно плохой код. Аннотации слишком сложны. Новые возможности Java развиваются не так быстро, как это было в прошлом. Фигурные скобки добавляют некоторый беспорядок. Этот список можно продолжать и дальше.

Однако ни одна из конкурирующих технологий не смогла настолько широко и глубоко высадиться на берега IT-индустрии. Хотя некоторые из проблем Java довольно легко исправить, исправления обычно вносят свои собственные проблемы.

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

В статье будут рассмотрены восемь наиболее распространенных мифов и заблуждений о Java.

Java медленно работает

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

Но несмотря на это, в настоящее время скорость работы байт-кода на современных виртуальных машинах уступает лучшим компиляторам машинных кодов всего лишь на несколько десятков процентов, а в некоторых случаях даже и превосходит их! Неужели интерпретация может обогнать скомпилированную программу? Разумеется, нет.

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

По тестам на “скорострельность” Java весьма неплоха, но как же обстоят дела с реальными приложениями? К сожалению, с пользовательскими приложениями дела обстоят не так уж и хорошо. Причина тому - медленная работа графических компонентов системы.

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

На Java сложно программировать

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

Язык программирования Java является полностью объектно-ориентированным. По синтаксису он похож на Си++. При этом избыточный, приводящий к ошибкам функционал Си++ (такой, как перегрузка операторов или множественное наследование) отброшен.

Вместо множественного наследования в Java применяется гораздо более простая концепция “интерфейса”, т. е. именованного соглашения о вызовах набора функций. Java использует строгую типизацию и не допустит неверной передачи параметра, к тому же она гораздо строже Си++ относится к небрежностям в исходном коде и, к примеру, не позволит создать метод с заведомо неиспользуемым участком кода. Также Java не откомпилирует программу с неинициализированной переменной.

Один из главных источников проблем при разработке программ - неправильное использование динамической памяти, а точнее, некорректное освобождение занятых ранее блоков. Java использует концепцию “сборщика мусора”. Это означает, что программисту совершенно не нужно заботиться об освобождении занятого участка памяти. Система сама добавит его к свободной памяти, когда обнаружит, что ссылок из программы на данный объект уже нет.

Для сигнализации об ошибках Java прибегает к модной концепции “исключений”. Исключение - это некое специальное событие, которое сигнализирует об ошибке в программе. Большинство языков программирования (и API) для сигнализации об ошибке передают вызывающему результат вызова функции (”плохо” или “хорошо”). Код анализа возвращенного значения в результате оказывается перемешанным с кодом нормального выполнения программы, это затрудняет чтение программ и их модификацию.

Однако, что гораздо важнее, исключения не только улучшают читаемость исходных текстов, но и не позволяют вызывающей функции проигнорировать ошибку. Программист обязан либо “отловить” исключение, либо переложить эту обязанность на вызывающую функцию.

К сказанному можно добавить, что в Java “встроена” поддержка мультизадачности. При создании многопотоковых приложений разработчику, как правило, приходится использовать средства операционной системы (семафоры, мьютексы) для синхронизации задач. Java же предлагает универсальное решение на основе конструкций самого языка.

Резюмируя, можно сказать, что по сложности программирования Java и в сравнение не идет с Си++ или Паскалем. Развитые возможности языка, поддержка “сбора мусора”, единая стандартная библиотека классов, контроль со стороны компилятора - все это заметно упрощает создание приложений и ускоряет их отладку.

Java работает везде одинаково

“Создаешь один раз - используешь где угодно” (“Write once - run anywhere”). Вторая часть этого лозунга создателей Java содержит утверждение, что Java-программа работает везде одинаково. К сожалению, в действительности все не так просто. Java-машины различных компаний на различных платформах НЕ стопроцентно совместимы друг с другом.

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

Например, программист может столкнуться с ситуацией, когда его код на многопроцессорной машине ведет себя иначе, чем на однопроцессорной. Особо следует упомянуть Java-машину, созданную компанией Microsoft (далее MS JVM). Она носит название Java не совсем законно (что было подтверждено недавним решением суда).

В MS JVM вы не увидите поддержки технологий RMI или CORBA, зато здесь можно использовать объекты ActiveX - технологию, специфичную только для платформы Windows и более нигде не существующую. Microsoft расширила стандартную Java-библиотеку классов типами, которые отражают некоторые особенности работы платформы Windows.

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

Java - это язык программирования

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

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

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

Java - младшая сестра Си++

Действительно ли язык программирования Java ведет свое происхождение от Си++? Скорее нет, чем да. Идея Sun заключалась в том, чтобы упростить обучение Java, сделав ее синтаксис похожим на тот, что используется в наиболее распространенном языке программирования. Это должно было в конечном итоге стимулировать и упростить переход на Java Си-программистов.

В то же время в Java заложены идеи и механизмы, почерпнутые из ряда других систем и языков программирования. Взять хотя бы контроль выхода за границу массива (Паскаль). Или тот факт, что компиляция Java-программ является раздельной, классы разбиты по пакетам. Это является одним из вариантов модульного программирования (как, скажем, в Модуле-2), отличающимся от концепции независимой компиляции файлов Си++.

Некоторые новации были взяты из неизвестных широкой публике языков и систем.

К примеру, принцип интерфейса классов перенесен из языка Objective C, разработанного компанией NeXT. Механизм обработки исключительных ситуаций почти полностью позаимствован из Модулы-3. Принципы внутренней реализации такой важной составляющей языка Java, как “сборка мусора”, почерпнуты прежде всего из Лиспа. Часть “нормальных” языков, таких, как Эйфель, Модула-3, Оберон, также изначально располагала этим механизмом.

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

Язык Java годен только для аплетов и Интернета

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

Идея встраиваемых приложений в гипертекстовые документы (HTML) не так уж и нова. Многие фирмы пытались продвинуть свои технологии на этот сектор рынка, но в настоящее время конкурентов у Java здесь немного. На сегодня это, пожалуй, JavaScript, ActiveX и технология Flash. Две последние, правда, работают только под управлением Windows.

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

Ну, если в браузерах Java есть, то как обстоят дела с приложениями, которые выполняются без браузера, а под управлением виртуальной машины прямо в операционной системе? Здесь ситуация похожая, в каждой современной ОС уже установлена какая-то версия JVM. И пользователи способны исполнять с ее помощью имеющиеся у них приложения для JVM, хотя большинство даже не подозревает о такой возможности.

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

А если сюда прибавить еще и клиентские приложения или даже аплеты, то получается полный комплект для автоматизации.

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

Java - идеал, она не нуждается в улучшениях

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

В Си++ существует средство проверки условий, называемое asset. Эта функция проверяет некоторое условие, задаваемое программистом, на “истину”. Если условие “ложно”, asset останавливает программу и указывает, что допустимые условия работы нарушены, при этом компилятор при создании конечной версии программы вызовы asset отбрасывает. В Java подобной возможности не существует. Разумеется, можно использовать проверку условий и генерацию исключений на их основе, но в результате все эти проверки попадут в исполняемый код программы.

Существует более мощная технология, чем asset. Это Design By Contract, “программирование по контракту”, позволяющее упростить создание больших приложений, которые используют ранее созданный код. Java же не поддерживает и “программирование по контракту”.

Шаблоны классов в Си++ - это возможность генерации кода “под” указанный пользователем класс (на самом деле разработчики Java вполне осознанно отказались от шаблонов, полагая, что от них больше проблем, чем пользы. - Прим. ред.). Коллекция объектов, реализованная с помощью шаблона, будет компилироваться каждый раз для каждого типа объектов, хранимого в этой коллекции. Типичная коллекция объектов в Java хранит экземпляры класса Object, предка всех Java-классов.

Программист, извлекая объекты из коллекции, вынужден использовать приведение типа, чтобы воспользоваться своим “рабочим” классом. Такое приложение работает прекрасно до тех пор, пока другой программист случайно не добавит в коллекцию экземпляр совершенно другого класса. Тогда на этапе компиляции ошибки не возникает, но она происходит позднее, при извлечении экземпляра и попытке приведения его к неверному типу.

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

Java стоит кучу денег

Действительно ли технология Java является дорогостоящей? Все зависит от сложности разрабатываемого программного обеспечения. Скажем, для небольшого приложения (от одного до трех человеко-месяцев) Java может не стоить вообще ничего. Безусловно, совершенно бесплатной эта технология не является. Квалифицированный Java-программист стоит денег.

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

В данной статье я сделаю небольшое сравнение java с другими языками программирования и опишу наиболее весомые, по моему мнению, плюсы этого языка.

1. Java самый популярный/востребованный язык программирования .

И в ближайшее время, думаю, это вряд ли поменяется т.к.

2. на Java пишут мобильные приложения (Под операционную систему андроид, аудитория которой весной 2013 года составляла более, чем 162 млн пользователей), веб и настольные решения. Можно очень долго писать отдельно о каждой категории, ограничусь небольшим количеством цифр и моих мыслей.
Если не ошибаюсь, платформа Андроид появилась в 2005 году т.е. ей всего 8 лет (!) и за это время она сумела покорить такое количество пользовательской аудитории. Прирост ее за последний год составляет почти 80 процентов. Более подробную статистику можно посмотреть
И почитать про андроид вооот
Настольные и веб приложения создаются на джава уже большое количество лет и многим проектам необходима поддержка, клиенты хотят видеть новые версии, обновления и пр., что говорит о необходимости разработчиков, которые будут заниматься поддержкой. Так же java регулярно обновляется (еще один ее плюс:)) и предоставляет миру новые технологии, которые весьма востребованы! И естественно нужны люди, владеющими этими “штучками”.

Так же хочу отметить что google glass (продукт компании, которая, я уверен, в ближайшее время продвинет товар в массы) используют ОС Android! Думаю, в свое время будет пик на эту штуковину и молодежь наверняка будет стремиться купить ее, т.е. аудитория заметно увеличиться.

3. Java - кроссплатформенный Язык Программирования (В дальнейшем ЯП). Т.е. программы, которые пишутся могут быть запущенны на разных ОС (windows, linux…).

4. Разрабатывая на Java работа по «сбору мусора» производится автоматически. Я лично жутко не любил и забывал очищать память, программируя на С (честно говоря, это даже не назовешь программированием). Работы с памятью нет вообще! (с указателями я тоже не подружился). Если перевести на простой язык, работать с джавой проще , нет необходимости заботиться и заморачиваться на некоторых вещах (язык более высокого уровня, чем C\С++).

5. Одним из главных факторов для меня была ЗП. Зарплата джава программиста как правило больше , чем у разработчика другого ЯП, на тот момент это были максимальные числа, и сейчас, если не ошибаюсь, ситуация такая же.
Ссылки с более подробным описанием ситуации:

6. Java прост в изучении . Мой первый ученик чуть больше чем за пол года практически с нуля изучил джаву до такого уровня, чтоб его взяли на оплачиваемое обучение в ИТ компанию, занимаясь в основном раз в неделю. Так же в недавнем будущем я был соучастником того, как ребята за 2 месяцу на моих курсах с нуля научились программировать и тоже устроились на работу. Особенно легко java дается тем, кто знает английский. А тем кто не знает, рекомендую срочно начать его изучать т.к. после java это первый необходимый язык для большинства программистов =).

7. JAVA - свободная платформа с открытым исходным кодом .
(Тут нужно немного пояснить что Java это ЯП, но в тоже время это целая платформа - множество классов, созданных разработчиками языка с целью его развития и упрощения работы).

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

В статье я не упомянул набирающий популярность ruby on rails. К сожалению с ним не работал и не могу ничего сказать, знаю что спрос и зарплаты растут ооочень быстро.

И еще небольшие дополнения: естественно, java это не единственный язык программирования с автоматической сборкой мусора и приложения под андроид можно написать к примеру на C++ и есть другие бесплатные языки и т.д. и т.п. НО java одновременно попадает во все эти категории, в отличии от других языков.

Я ЛЮБЛЮ JAVA! =)


  • Перевод

Легко забыть значимость технологии, как только она пронесется кометой через коллективное сознание и погаснет огненной смертью за горизонтом. К примеру, Cobol - когда-то этот язык был культовым для целой эпохи, а сейчас его можно сравнить разве что с протухшей рыбой. В наши дни любой хипстер-программист вам отчеканит, что Cobol – это полный отстой, старый и бесполезный язык. Java может стать следующей жертвой «актуальных» суждений.

Пик продаж книг по Java – далеко в прошлом. Матерые Java-утилиты уже не достаточно сексуальны для обложек журналов. Java уже 19 лет, а прогрессивные разработчики увлечены такими моднейшими и актуальнейшими технологиями как Node.js, Objective-C, Dart, Go и т.д., удивляясь: «Java? Этот артефакт эпохи Web 1.0 еще жив?»

Беглый поиск на Dice.com показывает, что работы на Java - навалом. Если для iOS около - 2500 предложений, для Java - более 17000. Конечно, нельзя всецело полагаться на эти цифры. Но тот факт, что на Dice.com рынок работы на Java потенциально в семь раз больше, чем для моднейшей iOS, говорит о том, «старина Java» чувствует себя довольно таки неплохо.

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

Прежде, чем мы забудем огромный вклад Java в IT-отрасль и его роль в наши дни, хотелось бы озвучить 12 веских причин, почему Java не просто выживает, но и активно процветает наши дни.

Не называйте это возвращением; Java никуда не уходила, она тут и повсеместно доминирует.

Причина № 1: Непотопляемость в мире политики (зачастую грязной)

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

Первым большим врагом Java была Microsoft. Эта компания увидела в Java наиболее достойного преемника тому единству, которое на то время предлагал только MS-DOS. Редмонд критиковал и боролся с Java с самого начала. Java не пользовалась успехом для разработки десктоп-приложений, отчасти потому, что магическая виртуальная машина Java запускалась слишком медленно. Несмотря на небольшие притормаживания, в целом, Java приложения в Windows достаточно юзабельны.

По какой-то необъяснимой причине, Стив Джобс никогда не любил Java. Даже когда Mac в значительной степени проигнорировали все, кроме Adobe, Java не дали шанс. Java-совместимость могла бы активизировать разработку для Mac-а, но для Apple – Java всегда была актером второго плана. (В общем-то, смартфоны на iOS работают более плавно, чем мой Android, так что, возможно Стив был прав)

Java также пострадала от многочисленных внутренних разборок. В IBM любили этот язык, но всегда сражались с Sun. Решение IBM о том, чтоб назвать свою замечательную IDE «Eclipse» (Затмение), было довольно холодно принято людьми из Sun (парни из Sun никогда не понимал в бизнесе настолько хорошо, как IBM).

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

Причина № 2: Магия потоков

Одна из сильных сторон виртуальной машины Java, всегда была ее способность с легкостью жонглировать несколькими потоками. JVM оптимизирована для больших многоядерных машин, и она без проблем может управлять сотнями потоков. Благодаря этой способности, на JVM появились и другие языки - создаются кросс-компиляторы и эмуляторы, работающие поверх JVM.

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

Ruby является одним из современных конкурентов Java. У него более чистый, напоминающий живой английский язык, синтаксис. Но все же, когда любителям Ruby нужна высокая производительность, они обращаются к JRuby. Это версия Ruby, которая бежит поверх JVM, обеспечивая гораздо более высокую производительность при больших нагрузках с множеством потоков. Вложив кучу усилий для надежной работы с потоками, инженеры из Sun не прогадали.

Причина №3: Java, как первый язык программирования

Java является основным языком для Advanced Placement Computer Science (Advanced Placement (AP) - учебная программа и экзамены для учащихся средней школы в США). Это означает, что зачастую, для студентов Java является первым языком программирования. Таким образом, Java дальше с ними «и в горе и в радости». Когда в дальнейшем студенты изучают новые языки программирования, они сравнивают с тем, что есть в Java. Если они даже меняют Java на что-то другое, их мнение все равно базируется на том, что они узнали «в первом классе».

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

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

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

Причина №4: (Почти) кроссплатформенная совместимость

Язык Java не был первым языком для написания кроссплатформенных приложений, но он стал самым популярным. Это не означает полную совместимость на разных платформах - отсутствующие библиотеки или несовместимые версии библиотек запросто похоронят ваш код. Вы не можете взять код десктоп приложения, скомпилированный под JRE 1.7 и запустить его на телефоне в Java ME. Чуда не произойдет.

Sun, а сейчас и Oracle, выжимают по максимуму для кроссплатформенности. Когда код не работает, как правило, понятно, в чем проблема. Если вы используете правильные версии Java и у вас достаточно памяти, ваш код будет работать. Java разработчики могут разрабатывать приложение на своем компьютере, а затем развернуть его на целевой платформе, будь то телефон или сервер. Если для компилятора доступны нужные библиотеки, код будет работать. Это бесценно.

Причина № 5: Устойчивый успех Java на микрочипах

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

Это господство не в новинку. Урезанная версии языка и виртуальной машины, известные как Java ME широко использовались во многих так называемых недосмартфонах (feature phone), которые исчисляются миллионами во всем мире.

Если все это слить вместе, доминирование Java - ошеломляющее.

Причина № 6: Blu-Ray

Язык Java когда-то назывался «Oak» предназначался для ТВ-ресиверов, где компания Sun хотела доминировать. Точно придерживаться плана не получилось, но Java все равно удалось найти уютное место в гостиной. Blu-Ray стандарт построен вокруг Java, и тому, кто хочет добавить дополнительный контент на Blu-Ray нужно будет воспользоваться Javac компилятором.

Blu-Ray диски – это не просто сырое видео. С помощью Java-кода можно изменить/добавить дополнительные функции и интерактивность. Blu-Ray диски – это смесь сжатого видео и Java байт-кода.

Причина № 7: Фигурные скобки просто работают

Любители таких модных языков, как Ruby, Python, или CoffeeScript снисходительно наблюдают за тем, как Java (и C) принуждают программистов вставлять фигурные скобки, явно обозначая начало и конец каждого блока кода. Круглые, фигурные, и даже квадратные скобки - все это проклятие для этих прогрессивных разработчиков. (Я сам не люблю скобки, и до сих пор ностальгирует по тому, как в некоторых версиях Lisp-а можно закрыть все открытые скобки одной квадратной скобкой)

Но изменение пунктуации не устраняет сложности, а скрывает их. Использование пустого пространства для обозначения вложений заставляет вас интуитивно видеть то, что вы не можете видеть. Обозначение вложенности пробелами отлично работает, если ваше выражение помещается на одну строку, но становится ужасным, если у вас несколько уровней вложенности. Когда я пишу на Python-е, я замечаю за собой, что считаю и пересчитываю отступы. Если код выглядит как английский язык, не означает, что его также легко понять, как и предложение на английском.

Причина № 8: Groovy

Если Java программистам нужен более чистый и простой синтаксис, динамическая типизация, это не повод сбежать к новомодным языкам. Они могут использовать Groovy, аккуратный хак Java с препроцессором, который производит JVM байт-код. Язык полностью интегрирован с Java - вы можете смело вызывать Java библиотеки из Groovy кода. Это как Java с плюшками.

Такая гибкость позволяет программистам самостоятельно конструировать решение своих проблем. Когда Groovy медленнее (такое часто бывает при использовании динамического вызова методов), программист всегда может переписать куски кода критичные для производительности на core Java.

Причина № 9: JVM

JVM была построена и оптимизирована под типизированный код со статическим контекстом, генерируемый javac компилятором, но со временем разработчики языков поняли, что JVM может запускать код написанный не только на языке Java. Если компилятор создает корректный Java байт код, JVM не волнует на каком языке он был написан. Разработчики Haskell, Scala, Clojure и вскочили на подножку «мощного электровоза Java» создав свои компиляторы.

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

Microsoft позаимствовала эту идею (а также многое другое), создав C# и свой подход к созданию компиляторов для языков, работающих на C# VM (CLR). C # программисты говорят, что могут писать на разных языках – правда, только на VM под Windows. Удивительная гибкость!

Причина № 10: Революция NoSQL, построенная во многом на Java

Давным-давно, база данных была непостижимым черным ящиком, который хранит информацию и быстро и эффективно отвечает на запросы. Потом пришла революция NoSQL, - программисты поняли, что могут писать свои собственные базы данных и адаптировать код к своим потребностям. Большая часть из основных игроков на рынке NoSQL была написана на Java. Cassandra, Lucene, ElasticSearch, HBase и neo4j – это лишь некоторые примеры. Кроме того, есть некоторые ACID-совместимые базы, написанные на Haskell и работающие на JVM.

Эти базы, как правило, с открытым исходным кодом и легко встраиваемы. Кто-то запускает их как независимые сервисы, кто-то встраивает их код (в виде библиотек) в свой собственный стек. В любом случае, статус Java в качестве рабочего языка на уровне базы данных гарантирует, что разработчикам на Java разобраться и работать с этими базами будет легче. Кодировки или разделители строк не будут волновать Java-разработчиков.

Причина № 11: в этом веке рулит Minecraft

Пока Ruby продолжает собирать свою долю поклонников, следующее за ними поколение влюбляется в Java. Почему? Одно слово: Minecraft. Он написан на Java. Юные геймеры, желающие расширить Minecraft, должны знать Java, чтобы писать плагины под Minecraft. Это гарантирует, что повзрослевшие «детки» будут непременно писать на Java.

Причина № 12: Открытый исходный код

Компания Sun всегда была одним из лидеров в Open Source сообществе, но она так и не решилась полностью освободить Java. Это не помешало Java программистам написать кучу отличных библиотек и проектов под свободными открытыми лицензиями. Проект Apache продолжает поставлять множество проектов на Java под лицензией, которая не требует многого взамен.

Sun закончила выпускать большую часть кода под лицензией GPL в 2007 году. С тех пор, компания Sun и ее новый владелец, Oracle, старались быть хорошими менеджерами для языка Java. Несомненно, Oracle подмочил свою репутацию исками к Google, но в остальном, платформу можно в значительной степени считать открытой и свободной.

Ненавистников предостаточно, но Java двигается вперед

У Java, безусловно, хватает своих проблем. Java-хейтеры будут продолжать брызгать слюной и стучать по клавиатуре, постя злостные коменты в интернете. Сборщик мусора может вызвать икоту и дрожь. Типизация данных является рутиной и не может отбраковать действительно плохой код. Аннотации слишком сложны. Новые возможности Java развиваются не так быстро, как это было в прошлом. Фигурные скобки добавляют некоторый беспорядок. Этот список можно продолжать и дальше.

Однако ни одна из конкурирующих технологий не смогла настолько широко и глубоко высадиться на берега IT-индустрии. Хотя некоторые из проблем Java довольно легко исправить, исправления обычно вносят свои собственные проблемы.

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

Язык Java прочно укрепил свои позиции на первом месте рейтинга языков программирования TIOBE . За 2015 год в общем рейтинге он прибавил почти 6% и занял почти 22% всего рынка. Популярность Java продолжает расти и в 2016, а порог вхождения в среду разработчиков на этом языке постепенно снижается. Почему все это происходит, как стать Java-программистом и чего ожидать от работы, рассказал нам сегодня преподаватель Владимир Голованов.

Владимир, почему вы выбрали для себя профессию разработчика?

Однажды в 1990-м году (мне тогда было 4 года) к нам привезли большой ящик. Потом из этого ящика появился первый в моей жизни компьютер – «Электроника». Конечно, вначале меня привлекали компьютерные игры. Но через некоторое время мне попалась в руки книга про ЭВМ для детей. Я всегда любил читать, особенно те книги, до которых добирался сам, когда родители почему-то их от меня прятали. Из этой книги я узнал много интересного о том, как устроен компьютер и что с его помощью можно делать. В ней даже приводились программы на языке Basic, и, читая исходные коды программ и объяснения принципов работы, я изучал свой первый язык программирования. Позднее, когда мне в руки попала среда разработки Quick Basic, я попробовал все эти примеры на практике: набирал исходный код, запускал – и оно работало так, как написано! А когда что-то поменяешь, начинало работать по-другому, так, как тебе нужно! Это очень похоже на исполнение желаний, только в немного меньшем масштабе. Я думаю, именно это когда-то прочно связало мою жизнь с программированием, а в дальнейшем и в школе, и в университете я уже точно знал, что хочу стать профессиональным разработчиком. И ни разу не пожалел об этом решении.

Сложно было устроиться на работу программистом в первый раз?

Когда в конце 3-го курса университета я шел устраиваться разработчиком, я еще не знал, на каком языке программирования остановиться. Я одинаково хорошо знал Pascal, C, C++ и Java, по крайней мере ту часть, что касалась самого языка программирования. Также у меня был опыт создания своих приложений в средах программирования Visual Basic и Delphi.

Однако, в большинстве вакансий требовались знания каких-то технологий, framework’ов и библиотек, о которых я слышал в первый раз. На одном из собеседований на вакансию разработчика C++ меня попросили рассказать, как должна выглядеть архитектура драйвера, эмулирующего ISO-файл в качестве диска! На тот момент я понимал, что мне не хватает знаний для решения подобных задач.

Среди вакансий Java-разработчиков было немного лучше, в несколько мест требовались именно Junior Java developer, и свой первое собеседование в качестве Java-разработчика я прошел на «отлично». Сегодня ситуация похожая: много где требуются Java-разработчики, и разработчику уровня Junior всегда найдется подходящее место работы.

Что необходимо знать разработчику уровня Junior?

В первую очередь разработчик должен понимать, как происходит выполнение программы, хотя бы на уровне инструкций самого языка программирования. Во-вторых, очень полезно уметь работать хотя бы с одной средой разработки и хотя бы с одной системой контроля версий – в этом случае работодателю не придется учить этому кандидата, а это значительный выигрыш во времени. Следующим пунктом идет умение отлаживать собственный код. Потом – умение разбираться в чужом коде. И, самое главное – нужно не бояться изучать и пробовать что-то новое: новые технологии, подходы, средства разработки и т.д. Поначалу это кажется сложным, со временем привыкаешь, и это становится просто частью работы.

А весь этот “зоопарк” технологий и библиотек знать, конечно, полезно, но вовсе не обязательно. Задача разработчика не в том, чтобы выучить все это, а в том, чтобы правильно использовать. Есть документация, примеры, исходный код – этого вполне достаточно. Главное – задавать правильные вопросы, и ответы обязательно найдутся. Кстати, приятная новость: многие задачи уже решены за нас другими разработчиками, с большинством типовых ситуаций уже кто-то когда-то успел столкнуться, и на сайтах типа Stack Overflow содержатся огромные базы ответов на самые разные вопросы, причем в развернутой форме.

Какой язык программирования лучше: C++, C# или Java?

На этот вопрос правильнее всего отвечать другим вопросом: «А в каком контексте?» Каждый из этих языков программирования создавался для решения определенного круга задач. Если решать с его помощью те задачи, для которых он был создан – это будет лучший язык программирования для данной задачи. Если же решать задачи, для которых язык не был предназначен – скорее всего, придется столкнуться со множеством проблем, некоторые из которых могут оказаться непреодолимыми.

Например, в C# есть метапрограммирование. Казалось бы – круто! Но у этого есть и другая сторона: создавая особенные конструкции, мы усложняем код для тех, кто будет его читать. Ведь читатель, скорее всего, будет знать C#, но вот про наши конструкции он понятия не имеет. Да и среда разработки откажется нам помогать, видя неизвестные ей конструкции. Поэтому, как сказал в своей книге «Совершенный код» Стив Макконнелл, используйте язык в зависимости от поставленной задачи .

А начинать можно практически с любого языка программирования. Как показывается практика – Java в этом плане выигрывает у других языков. Так что если у вас еще нет опыта программирования, Java – это именно то, что вам нужно.

Можно ли выучить язык программирования самостоятельно, без курсов?

Ответ, конечно, «можно». Но при этом есть другой вопрос: а сколько на это уйдет времени? И второй вопрос: насколько качественными будут подобные знания? Ведь разработчик должен быть уверен в своих знаниях. Можно прочитать обучающую книгу по программированию на языке Java, есть несколько замечательных книжек для начинающих. Но если у человека не было опыта программирования, то ему придется еще со старта решить несколько не самых простых вопросов. Например, установить JDK, установить и настроить IDE, создать проект, написать простую программу, запустить ее. А если программа упадет по неизвестной причине – ее нужно будет отладить, для чего нужно владеть соответствующими навыками. В таких книгах часто приводятся только простые примеры подобной интеграции с окружающей средой. А если, например, у вас операционная система Linux? Или IDE падает с непонятной ошибкой при запуске? Человеку без опыта практически невозможно разобраться в подобных вопросах самостоятельно.

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

Правда ли, что разработчики только пишут код?

Конечно, нет. Все будет зависеть от корпоративной среды в той организации, куда вы попадете. Но могу с уверенностью сказать: везде есть место для творчества. Где-то приходится общаться с заказчиками и узнавать у них, что требуется сделать. В другом случае аналитики предоставляют готовое техническое задание, и нужно просто его реализовать. В третьем случае кроме написания кода нужно еще и выложить готовое решение на боевой сервер. Так что разработчик может совмещать свою основную деятельность с обязанностями аналитика, тестировщика, сопровождения, системного администратора… А можно быть и просто разработчиком, только пишущим код – зато высшего качества! Каждому найдется свое место.

Имеет ли смысл идти в профессию разработчика только за высокой зарплатой?

Можно попробовать. Если вы никогда не пробовали программировать, то вы не знаете, получится у вас или нет. Курсы как раз и дают вам возможность почувствовать, что будет вас ожидать в дальнейшем на пути разработчика, и сделать правильный выбор. Я видел примеры, когда программист переходил в другую IT-специальность.Однако я ни разу не слышал, чтобы разработчик ушел из IT насовсем. И дело тут, я думаю, далеко не только в деньгах.Так что если вы еще сомневаетесь – попробуйте!

Присоединиться к можно со второго блока программы, для тех, кто знаком со структурным программированием и ООП или с третьего блока программы, для тех, кто знаком со структурным программировнаием и ООП. Ждем вас!

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то