Рубрики
Без рубрики

Честное мнение о Java и ее экосистеме.

Хорошо, я признаю, что C# – мой основной язык. но это мое непредвзятое мнение о Java и экосистеме… Помеченный как java, c sharp, программирование.

Хорошо, я признаю, что C# – мой основной язык. но это мое непредвзятое мнение о Java и окружающей ее экосистеме.

итак, все происходит примерно так ~

Раньше я довольно часто критиковал java, указывая на все ее слабые стороны, такие как отсутствие свойств у java. изначально у него нет событий, у него нет структур, нет перегрузки операторов, и до java 10 не было никакого вывода, так что и ‘var’ тоже не было. Все это есть в C#!

До недавнего времени я довольно часто ругал java за отсутствие LINQ, ‘var’ и перечислений И все же я довольно много пишу на java! особенно когда я пишу приложения для Android, но и для других целей тоже! Черт возьми, мой первый проект по кодированию тоже был на java! Итак, в эту пятницу вечером, из-за срочности доставки, мне пришлось писать Java 8 часов подряд.

и угадайте, что я обнаружил? ПОТОКИ!

по-видимому, Java 8 представила потоки! и я понятия не имел об этом! для тех из вас, кто не знает, Streams – это реализация LINQ на Java.

Кроме того, я обнаружил, что Java 10 имеет вывод типов, так что ‘var’ теперь есть в java!! (Я не могу поверить, насколько я устарел, и поверьте мне, для этого есть причина.)

Открытие этих 2 вещей сильно изменило мое мышление! знаете ли вы, что в java всегда были проверенные исключения, а в C# – нет!? Я признаю, что это функция, которой мне очень не хватает в C#! Да, у него нет структур, свойств и т.д., Но бой, это элегантно!?

Я думаю, что Java по замыслу будет вынуждать вас писать более надежные приложения. В то время как в мире .NET в основном разработчик должен быть осторожен. [Теперь некоторым разработчикам нравится это навязывание и ограничения там, где другие могли бы предпочесть свободу] Хотя оба они довольно безопасны, но очевидно, что Java может иметь здесь небольшое преимущество!

Итак, почему крупные организации предпочитают java? Да, может быть, теперь я понимаю. 😃

Что меня больше всего задевает, так это то, что … в большинстве примеров кода, которые вы видите в Интернете, эти расширенные функции используются не всегда.. щеколда Я думаю, что если довольно новый разработчик Java увидит “var”, написанный по всей кодовой базе, он сойдет с ума! 😂 и потоки? что такое потоки? Разработчики Java обожают свой цикл For! на самом деле, даже циклы foreach довольно редки в мире java. (и, возможно, есть причина для этого, поскольку цикл намного более оптимизирован!)

Но это хорошие возможности! Я зайду так далеко, что заявлю, что это потрясающие функции! мне больно до глубины души, когда я пишу приложения для Android и замечаю, что перечисления почти нигде в Android API не используются! и это справедливо, потому что android был написан давным-давно. Что меня больше всего раздражает, так это то, что мне приходится использовать константы каждый раз, когда мне приходится использовать функцию “Активность для результатов” в Android, например: в

Братан, это безумие! и все же люди во всем мире пришли к тому, чтобы принять это. и, напротив, даже я:D

В Java тоже отсутствует собственная реализация событий! если бы только у него были события и делегаты, подобные C #… (эй, разработчики языка java, если вы, ребята, читаете это, вы должны добавлять события! и если у вас уже есть или он находится в разработке, дайте мне знать 😃 )

В любом случае, я думаю, что знаю, что может быть самым большим недостатком в экосистеме Java

ДОКУМЕНТАЦИЯ!!

Раздражающая бесполезная документация на веб-сайте Oracle. это глупо! он выглядит старым! прямо с 2007 года.

Кроме того, в нем не всегда есть фрагменты примеров. если вы поищете относительно необычную языковую функцию или метод API, вы найдете скучное определение функции, объявление, аргументы, к какому пакету она принадлежит, и все! Я думаю, что это абсурдно. вам не кажется, что это абсурдно? никаких фрагментов кода?

Поэтому нам, разработчикам, приходится в значительной степени полагаться на форумы, такие как StackOverflow, или другие веб-сайты по программированию, такие как TutorialsPoint.. иногда они действительно помогают с хорошими примерами кода, подчеркивающими эту функцию, но в других случаях они тоже не так полезны. Я имею в виду серьезно оценить документы Microsoft на C# с помощью oracle docs на Java.. нет никакого сравнения! (не веришь мне? Проверьте: Oracle Microsoft )

Документы MS прекрасны! черт возьми, у них даже есть “темный режим”! боже, темный режим 😂 мы, разработчики, сходим с ума по темному режиму, а как насчет Oracle docs? как я уже сказал, прямо с 2007 года. в 2007 году не было концепции темного режима, не так ли? Итак, я хочу сказать, что Java – это потрясающе! но он сильно страдает от устаревания документации. в основном старые документы и старые учебные пособия. которые не выделяют новые горячие функции, такие как потоки, переменные и перечисления Теперь люди говорят, что Java начинает устаревать и ее заменят Kotlin, и я с этим не согласен. Потому что даже если это правда. Он не просто заменит его сразу, по крайней мере, через много-много лет!

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

Теперь, наконец.. есть одна вещь, которая возбуждает меня больше, чем что-либо в мире Java, и я имею в виду “что угодно”. И это получение JDK, Почему, черт возьми, так сложно получить JDK???? Я имею в виду, что если мне понадобится JDK, простой поиск в Google укажет на веб-сайт Oracle, я захожу туда и нахожу нужную мне версию JDK. пока относительно легко, но затем, чтобы загрузить его, я должен зарегистрироваться. что? почему? зачем мне создавать учетную запись в oracle, а затем каждую неделю разбираться с их почтовым мусором, просто чтобы, черт возьми, загрузить JDK!? имейте в виду, что Java с открытым исходным кодом с 1-го дня!!! в отличие от C #, который стал открытым исходным кодом совсем недавно, в 2015 году, поэтому я расстраиваюсь и переключаюсь на второй веб-сайт в результатах поиска Google. это указывает мне на веб-сайт OpenJDK. Я нахожу там JDK и нажимаю загрузить. но сюрприз-сюрприз, они дают ссылки на реализации JDK с других сайтов! Среди этих сайтов есть этот чертов оракул. но есть также ссылка на веб-сайт Red Hat.

Теперь Красная шляпа – это потрясающе. Они действительно являются одними из пионеров среди компаний с открытым исходным кодом в мире. Так что я иду, хорошо! Тогда я скачаю его оттуда! Я нажимаю на эту ссылку, нахожу нужную версию JDK, и угадайте, что? Я тоже должен там зарегистрироваться. (драматическая пауза) Теперь это просто печально…

И к черту все это! Что не так с этими людьми?

Наконец, я сдаюсь и устанавливаю Chocolatey. (это похоже на apt-get, но для Windows. Я думаю, что это первый широко принятый и используемый менеджер пакетов для Windows), и поэтому после этого я должен написать простую команду в PowerShell, например: choco install jdk-1.8 и с меня хватит. (если вы разработчик C#, вы будете знать, как легко получить .Net SDK, всего 2-3 клика, без регистрации, и все готово)

В заключение моей длинной тирады скажу, что Java – отличный язык программирования. Это красиво, это надежно, и у него (на мой взгляд) лучшая ИДЕЯ в мире, печально известная “ИДЕЯ IntelliJ” от JetBrains, у Java очень полезное сообщество, обширная и разнообразная экосистема, и все это исходит от разработчика C #.

Но нам нужно обновить документы! примеры кода! апис! нам нужно упростить получение JDK!

В целом, Java движется в хорошем направлении, ее популярность, возможно, немного пострадала в последнее время, но это не заставит java исчезнуть. в настоящее время и уже десять лет он входит в число 10 лучших языков мира!

Я действительно использую java на регулярной основе и буду продолжать делать это и в будущем.

Всем потрясающим разработчикам Java, я выражаю вам свое уважение! С уважением, @zanjeer

Оригинал: “https://dev.to/zainjer/an-honest-opinion-on-java-its-ecosystem-1g6”