Java, стоит ли изучать сегодня, особенно со всеми новыми появляющимися языками программирования? Мне нравится оценивать такие решения, перечисляя плюсы и минусы, сравнивая их.
Java — это язык программирования высокого уровня, разработанный в 1995 году и ставший одним из самых популярных языков в мире. Он с открытым исходным кодом, он работает практически во всех операционных системах, которые используются для создания всего: от приложений Android до серверных сетей и видеоигр. Так что Излишне говорить, что это очень мощный и милосердный язык, так что давайте начнем с плюсов.
Java включает в себя объектно-ориентированное программирование. По сути, это была перестройка C. Однако с C они в основном взяли C и добавили туда возможность иметь классы. Это сделало этот синтаксис и просто общее ощущение использования классов. Кроме того, неуклюжая Java была построена с нуля с учетом классов. Все является объектом, и это просто общая более чистая реализация.
Так почему же это хорошо? Ну, это позволяет разработчикам легко повторно использовать объекты и их программы. Это помогает только общему обслуживанию вашего кода.
Во-вторых, это независимость от платформы. В написании на Java есть известная поговорка. Один раз запустите его где угодно. Java работает поверх виртуальной машины, которая называется виртуальной машиной Java или JVM. Итак, пока на машине установлена JVM, вы можете запускать код Java. Таким образом, вы можете написать и запустить свой код на машине Windows, взять тот же код, запустить его на Mac или Linux, и действительно технически вы можете просто взять байт-код, который скомпилирован Java-код, и запустить его на JVM, работающем на любой машине, чтобы вы даже не нужен оригинальный исходный код.
С Java вы также получаете автоматизированное управление памятью. Теперь, если вы пришли с такого языка, как Python, вы будете похожи на то, что в этом большое дело, но если вы похожи на меня. В вашем первом языке был C++. Это удивительная особенность.
Итак, что это значит? Что ж, если ваша программа работает, вам может понадобиться дополнительная память на таком языке, как C. Как только вы закончите использовать эту память, вам нужно освободить этот темп назад, и если вы забудете это сделать, это вызовет утечку памяти в вашей программе.
В таком языке, как Java, после того, как на фрагмент кода больше нет ссылок, запускается нечто, называемое сборщиком мусора, которое автоматически освобождает его для вас.
Таким образом, автоматизированное управление памятью просто добавляет дополнительную подстраховку и просто позволяет вам расстроиться, и вам придется делать это вручную. Java имеет встроенную поддержку многопоточности. Это означает, что вы можете иметь несколько потоков, работающих одновременно. Поток — это просто единица процесса, которая может выполнять действие, и тот факт, что в Java это встроено, и, на мой взгляд, встроено в него очень хорошо. Это просто дает ему огромное преимущество перед другими языками.
Последнее за то, что это очень зрелый язык. Java существует уже несколько десятилетий. У него отличное сообщество. Он поддерживается Oracle, и они действительно поддерживают его в актуальном состоянии с функциями конкурирующих языков, таких как C Sharp и Kotlin. Кажется, что когда один из этих языков выходит с новой функцией и следующим обновлением Java, они, как вы знаете, создают что-то подобное, и на веб-сайте Oracle есть одна из лучших документаций, которые я видел для языка, фреймворков и библиотек. был очень хорошо протестирован, и этот язык, вероятно, будет существовать еще долгое время.
Все в порядке? Таковы плюсы изучения Java. Давайте посмотрим на некоторые минусы.
Первый недостаток заключается в том, что сейчас он теряет популярность, хотя это настолько широко используемый язык, что я верю, что с годами его популярность начнет медленно снижаться. Теперь это не произойдет за одну ночь, но вы знаете, что у вас все еще есть много новых языков, которые выходят. Например, Go и ржавчина, которые набирают популярность.
Затем вы думаете об Android, использующем исключительно Java, и теперь они уходят, чтобы начать использовать Kotlin. Опрос разработчиков Stackoverflow за 2017 и 2020 годы показывает, что в 2017 году он был третьим по популярности языком в 2020 году. Сейчас он опустился на 5-е место, хотя он немного выше, например, на полпроцента. Мы видим, что другие основные языки, такие как JavaScript, выросли с 62% до 67%. Мы видим Python с 32 до 44%, поэтому, хотя он вырос на полпроцента, я вижу, как он достигает своего пика, и я чувствую, что с годами он начнет снижаться.
Следующим недостатком является то, что это очень многословный язык, а это означает, что вам нужно написать много кода, чтобы сделать немного. Оба языка должны быть очень похожи на декларативные, и должно быть очень ясно, что вы делаете. Но, на мой взгляд, это делает код немного загроможденным и на самом деле трудным для чтения, и, знаете ли, это может показаться не таким уж большим. Потому что вы просто печатаете немного больше, но если вы пишете код на Java целыми днями, каждый день, это может стать довольно утомительным и, честно говоря, немного неприятным, особенно если сравнивать его с таким языком, как Python.
Java — медленный язык. Помните, я упоминал, что Java работает на виртуальной машине? Ну, этот слой абстракции замедляет работу. Виртуальные машины действуют как операционная система, работающая поверх другой операционной системы, поэтому здесь много накладных расходов, но это программное обеспечение находится дальше от оборудования. Чем медленнее производительность, особенно если сравнивать два языка, таких как C, который очень близок к аппаратному обеспечению.
Все, где вам нужны операции в реальном времени, такие как онлайн-игры или автомобильная операционная система. Java просто не будет хорошим выбором для этого. Мы также хорошо упомянули сборщик мусора, когда он запускается, вся ваша программа приостанавливается, затем запускается сборщик мусора, а затем программа возобновляется. Сейчас это всего лишь доли секунды.
Пользователи действительно этого не заметят, но опять же, если вы действительно ищете быстродействующее приложение, почувствуйте небольшой удар по производительности.
Заключение
Итак, с учетом сказанного, стоит ли изучать Java сегодня? Очевидно, зависит от того, во что вы хотите попасть. Но в целом, я все еще думаю, что это действительно хороший язык. За этим все еще стоит огромное сообщество. Очевидно, что его поддерживает такая крупная компания, как Oracle, и очевидно, что Oracle никуда не денется в ближайшее время. Я думаю, что это просто отличный язык для выбора, будь вы новичок, изучающий свой первый язык, или просто более опытный разработчик, желающий добавить в свой набор инструментов.