Java
Преимущества
- Статическая типизация. Чуть больше надежности по сравнению с PHP или Python
- Много библиотек и много работы.
- OpenJDK свободное ПО.
Недостатки
- Бесполезные геттеры и сеттеры, которые просто сетают поле или просто тянут поле с тем же именем
- Нет именованных аргументов
- Нет трейтов
- Для рефлексии надо использовать отдельный флаг после Java
- Переусложненный код во многих библиотеках
- Корпоративное влияние на язык скорее всего довольно серьёзное
Сертификация
Подготовка
- https://dev.to/javinpaul/how-to-become-a-certified-java-developer-professionals-1jfb
- https://dev.to/javinpaul/how-to-become-a-certified-spring-developer-professional-in-2022-5f31
Высокоуровневый язык программирования со статической строгой типизацией. Имеет огромную реализацию и стандартную библиотеку. Работает на множестве систем в частности Windows. Требует предустановки рантайма.
Видео
Преимущества
- 0 не равно False, [] не равно False и т.д. Хорошая логика и практика.
- Настоящее "Явное лучше чем неявное" в отличии от питона
- Традиционное ООП, которое работает на всей уровни системы в отличии от PHP
- Довольно безопасный язык относительно скриптовых и C(++)
Недостатки
- Пакеты распространяются собранными (почти проприетарщина)
- Сложный процесс бутстрапа (https://github.com/oriansj/talk-notes/blob/master/ghm-2017/bootstrappable.org)
- Сложный компилятор сам по себе
- Система типов не такая мощная как у ML
- Система типов unsound (https://dl.acm.org/doi/pdf/10.1145/3022671.2984004)
Сниппеты
foreach
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6); for (int number : numbers) { number ... }