Шесть причин стать Java-разработчиком

Данная статья написана для тех, кто стоит на распутье выбора первого языка программирования. Несколько лет назад такой же выбор стоял передо мной. Я поделюсь своей историей, опытом, выводами — кому-то это поможет сэкономить годы.

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

Впоследствии, ещё долгое время я недоумевал, почему другие языки не такие изящные как Python. Понимание того, что эта простота — ловушка, я понял далеко не сразу.

Вот, для сравнения 2 классические программы “Hello, World!” на Python и Java:

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

Итак,  первое, совсем неочевидное для новичком преимущество Java:

Синтаксис

После понимания синтаксиса Java вам легко доступны для изучения все языки, в которых присутствуют скобки и специальные символы, которых нет в Python. После последнего вам будут доступны лишь мало кем востребованные языки программирования вроде Nil, Julia или Crystal. А после Java вы сможете быстро освоить топовые языки: JavaScript, Scala, Rust, C, C++, C#, Solidity и прочие.

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

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

Java по своей задумке — язык для бытовых электронных устройств, что подразумевало лёгкость и быстроту написанных на нём программ. Он изначально  был создан, чтобы быть крайне эффективным 

Во время создания Java, языком номер один тогда был С++ — крайне эффективный язык программирования, имеющий один недостаток: программы написанные на нём, нужно было переписывать под нужную платформу. Java должен был стать более гибким, чем C++ и поэтому, в него было заложено множество верных принципов.

Отсюда вытекает второе преимущество языка Java:

Правильное мышление

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

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

Например, такую парадигму как Объектно Ориентированное Программирование. В самом начале изучения Java понадобится понять разницу между «public» и «private», у вас не будет другого выбора, кроме как писать «правильные» программы.

Python, JavaScript или Ruby тоже Объектно Ориентированные языки программирования. И в них тоже есть публичные и приватные методы класса. Но, например, в том же Python всё это не явно и с точки зрения “правильного программирования” реализовано не правильно.

Изучив Java вы постигните азы программирования, что станет крепким фундаментом. Изучив первым языком Ruby или Python, вы будете понимать лишь «верхушку айсберга», которой в любом случае, будет недостаточно в долгосрочной перспективе.

Возможно по этой причине Java получил следующее своё преимущество:

Популярность

По Индексу TIOBE за Январь 2020 года, Java является самым популярным языком в мире.

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

Индекс популярности языка Java
Популярность языков программирования по Индексу TIOBE

Исходя из более чем десятилетнего беспрекословного доминирования Java, вытекает ещё одно преимущество:

Востребованность

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

Зная Java, разработчик найдёт работу даже не в самом крупном городе, зная же, например, только Swift, программисту из маленького городка, скорее всего, придётся перебираться в столицу.

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

Такая востребованность Java-разработчиков ведёт к ещё одному преимуществу языка Java:

Перспектива

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

Есть ряд языков, например Kotlin, Scala или Сeylon, которые работают поверх JVM (Java Virtual Machine). Ряд экспертов в области считают, что за этими языками будущее. И кто как ни Java-разработчики будут использовать их в своих новых проектах.

Некоторые считают, что Kotlin или Сeylon со временем вытеснят Java в программировании под Android устройства. Даже сам Google рекомендует использовать Kotlin для написания новых Android приложений. Даже если это так, то переход на эти новые языки будет очень простым и быстрым для специалистов со знаниям Java, и причины всё те же — мышление и понимание фундаментальных процессов.

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

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

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

Заключение

Есть языки для изучения которых понадобиться меньше времени и меньше трудозатрат. Но как уже писалось выше, за всё приходится платить.

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

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

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