LINUX.ORG.RU

Джависты, нужен совет

 ,


0

2

Есть, кто пишет на джаве?

Вообщем если кратко: Писал раньше года два на плюсах всякие QT-шные приложухи, какие-то свои проекты, последние пол года забавляюсь с сетевыми протоколами, ясное дело сначала начал с хттп, потом понесло что-то в всякие ICMP, ARP, работа с сырыми сокетами и тд.

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

Посоветуйте хорошие ресурсы по джаве кроме документации для ее изучения, причем желательно не книги, где половину книжки посвящена где же мне пригодится ООП, а вторая дай бог про язык. Сейчас изучаю по Metanit-у, ясное дело читая наискосок темы, которые основа основ, но все же читаю, тк как никак язык другой и есть кое какие отличия. Ясное дело скорее всего метанита хватит (для изучения core), ибо ресурс неплохой, дальше только практика, практика, практика, проекты, но все же может есть какие подвохи там? Например знаю на w3schools, который я тоже часто использую для быстрого гайда по какой либо технологии, там нет и половины того, что есть на метаните.



Последнее исправление: chebo7 (всего исправлений: 1)
Ответ на: комментарий от peregrine

0>ИИ сильно автоматизирует и с ним делать готовые проекты может уже моя мама

А поддерживать и развивать это потом кто будет? %)

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от LongLiveUbuntu

Лямбды из коробки, ФП из коробки, мощная система типов.

Всё это есть в Rust.

Нет причин использовать Java, даже если какой-то старикан-не-в-теме её посоветовал.

Saakx
()
Ответ на: комментарий от LongLiveUbuntu

Кстати вот, вроде с развитием ИИ по идее Си должна избавится от проблем с безопасностью. ИИ проанализирует код и укажет … разве нет?

anonymous
()
Ответ на: комментарий от Saakx

Нет причин использовать Java, даже если какой-то старикан-не-в-теме её посоветовал.

Как в Расте обстоят дела с доступом к большим данным и масштабируемостью на миллионы серверов с миллионами транзакций в секунду?

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

Так было бы, если бы доступ к хорошим ИИ был бесплатным и для всех. Например, DeepCode превосходно отлавливает утечки (анализируя текст), но сколько стоит доступ к нему?

anonymous
()
Ответ на: комментарий от anonymous

Понятно, специально режут. Т.е. с распространение локальных ЛЛМ и накоплением баз это штука улетит. Вообще в идеале нужен FreeAI чтобы все что юзеры в него валят попадало им же.

А вообще прикольно придумано, народ вот вам ИИ юзайте, наполняйте его, мы это будем фильтровать перетащим в платное и будем брать с вас деньги за юзание (отключаемого контента).

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

anonymous
()
Ответ на: комментарий от chebo7

Тебе верно выше советовали Go. Нет оверхеда java-машины, софт работает, считай, на голом ядре, стандартная библиотека - огонь, производительность выше Java (нет машины же). Зеленые треды - огонь, конкурентное писать - одно удовольствие. ИМХО, если в комменрческую разработку бэкенда целиться, то лучше не Java - оно слишком неповоротливое и существенно более сложное, по сравнению с Go. И с большой вероятностью, будешь поддерживать legacy всю дорогу, а не новое писать.

На Go сейчас делают быстрые бэкенды в разных там бигтехах. Совсем критичное - на Rust и плюсах. Java, впрочем, пригодится, чтобы с НЕЕ на Go переписывать :)

paddlewan
()
Ответ на: комментарий от paddlewan

Ну на голом ядре это уж слишком. Go-рантайм с GC все равно есть как ни крути. В остальном Java как язык и экосистема имхо получше будет. Нужна компиляция в бинарь - есть GraalVM и еще Project Leyden на подходе. Переписывать с JVM на Go вряд ли будут что-то, сколько ни работал на Go - приходилось переписывать легаси на питончике/пхп на Go, и это переписывание было практически «вечное», то есть был какой-то старый монолит написанный на питоне при царе горохе, и вот вокруг него строили портянку микросервисов на Go, куда постепенно перетаскивали функциональность из монолита.

Сам свитчнулся недавно с Go (писал на нем с 2021 по 2025 годы) в JVM (Java/Kotlin) экосистему, подводных камней ровно 0. При этом работы на Java (пока что) в разы больше чем на Go, как минимум за пределами России. В России на Go пишет порядка ~5 компаний, куда еще попробуй сейчас попасть, одна из которых к тому же WB.

anonymous
()

По самой Java лично у меня вот такой список есть:

  • Бесплатный курс https://java-programming.mooc.fi/ от какого-то финского университета, много простой практики, чтобы именно язык поучить.
  • Книги Core Java, Volume I: Fundamentals и Core Java, Volume II: Advanced Features. Автор Cay S. Horstmann. Это именно то, что называют Java Core. Как раз осенью 2025 года вышло издание которое покрывает Java 25 LTS.
  • Книга Java Concurrency in Practice. Автор Brian Goetz. Фундамент по многопоточке. Довольно тяжелая и академическая книга, надо очень вдумчиво читать.
  • Книга Effective Java. Автор Joshua Bloch. Просто про хорошие и плохие практики в Java.
  • Книга 100 Java Mistakes and How to Avoid Them. Автор Тагир Валеев. Тоже про хорошие и плохие практики в Java.

В целом это то, что касается самого языка.

Если по Spring и бекенд в целом, то я бы читал вот это:

  • Книга Spring Start Here. Автор Laurentiu Spilca. Там скоро второе издание выйдет, но и первое издание (2021 года) тоже можно читать, оно не сильно устарело.
  • Книга Spring Security in Action. Автор Laurentiu Spilca. Тоже про Spring, но про одну из самых сложных и неприятных его частей.
  • Книга Microservices Patterns. Автор Chris Richardson. Про микросервисную архитектуру. Или книга Building Microservices. Автор Sam Newman. Тоже подойдет.
  • Ну и конечно же знаменитая книга с кабанчиком. Designing Data-Intensive Applications. Автор Martin Kleppmann. Мастхев для любого бекендера.

В идеале еще что-то про СУБД прочитать, но я могу только посоветовать книгу «PostgreSQL 18 изнутри», автор Рогов Е. В.

Другой вопрос - а нужно ли сейчас это все читать, изучать, писать свои проекты? Мне кажется эпоха программирования ушла совсем. Сейчас с точки зрения денег вероятно выгоднее ничего не учить, а сразу пойти ИИ агентами что-то делать по быстрому. Даже если ты работу найдешь, то вряд ли когда-либо уже будешь руками писать код и читать его глазами. ИИ убил программирование и теперь твоя работа по сути просто проверять что ИИ нагенерировал. Если тебе такая перспектива не нравится, то лучше чем-то другим по жизни заняться.

anonymous
()

Если всякая базовая скукота, вроде inner classes и IO не нужна (это я учил по книге Thinking in Java), то из того что я сам читал когда-то могу посоветовать книгу Effective Java и раздел 17 (threads & locks) из Java Language Specification. Возможно, первая и устарела местами, но там очень много ява-специфичных мелких шаблонов и идиом, именно то что нужно, когда приходишь с другого языка. Threads & Locks можно заменить/дополнить лекциями Шипилева на ту же тему.

urxvt ★★★★★
()
Ответ на: комментарий от anonymous

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

Лично я слабо представляю, что там можно напроверять, если самому не разбираться в том, что написано. Через эту призму, чтение как минимум также актуально, а то и больше. Это джуном можно кодя опыта нахвататься.

bbc69
()
Ответ на: комментарий от iZEN

Как в Расте обстоят дела с доступом к большим данным и масштабируемостью на миллионы серверов с миллионами транзакций в секунду?

Потенциально лучше, чем в инфраструктуре апача, как ни странно. Потому как уж больно джава жручая в плане памяти и с масштабированием там не так всё хорошо, т.к. если ещё дальше упарываться в вычисления (а это будет необходимо), то надо думать про менее централизованные решения и модели вокруг p2p и dht (но ничего хорошего пока не придумали).

На практике джава (а точнее jwm) выигрывает за счёт зрелости. Но это наживное.

anonymous
()
Ответ на: комментарий от peregrine

Если про рынок труда говорить, то в России он не в лучшем виде. Тут хоть что учи, хоть С++, хоть Rust, хоть Erlang/Elixir, хоть Java, Go - с работой будет тяжко. Нужны рабочие руками, а не белые воротнички.

В странах ЕС из моего опыта Go весьма редко встречается, а вот JVM гораздо больше. А там где Go встречается - там на Go пишут строго инфраструкурные вещи, а не бизнесовые. В России просто в какой-то момент полюбили писать на Go бизнес-логику для всяких банков и маркетплейсов и был спрос на Go разрабов.

Вот я сколько не ищу позиции на Go в Европе - это будет либо Nebius, либо Plata (обе компании с российскими корнями), либо какой-то iGaming на Кипре. За их пределами Go весьма редкий зверь, увы.

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

anonymous
()
Ответ на: комментарий от urxvt

Глава 17 JLS самая трудная, да. Да и лекции Шипилева тоже не самые простые для понимания и их надо сидеть и разбирать много часов.

И лучше перед этим всем все-таки книгу с поездами прочитать.

anonymous
()
Ответ на: комментарий от anonymous

Нужны рабочие руками

Куда? Зачем? Что они делать будут? Где у нас заводы и рынки сбыта? Нужны военные, больше никто не нужен.

anonymous
()
Ответ на: комментарий от anonymous

Я сомневаюсь что кто-то когда-либо будет писать софт, который на миллионах серверов сидит и что-то там обрабатывает. Этим в американских бигтехах занимаются и там вероятно самые нагруженные части на С++ написаны. Как минимум у Гугла. Хотя вон Amazon (и в том числе AWS), Netflix и Apple приличную часть инфраструктуры на Java держат до сих пор.

Я вообще склонен думать что язык программирования сильно роляет сегодня. Instagram вон на Python как был написан, так и до сих пор написан в 2026 году. Где язык играет роль - это какие-нибудь HFT где надо за микросекунды сделки на бирже совершать.

anonymous
()

да поставь IDEA Community и спрашивай ChatGPT какой-нибудь по ходу дела. Зачем какие-то книжки, или прости господи, курсы?

lovesan ★★☆
()
Ответ на: комментарий от lovesan

да поставь IDEA Community и спрашивай ChatGPT какой-нибудь по ходу дела. Зачем какие-то книжки, или прости господи, курсы?

Для этого достаточно обычных поисковиков.
Да они впрочем уже ИИ давно используют.

anonymous
()
Ответ на: комментарий от anonymous

Ну на голом ядре это уж слишком. Go-рантайм с GC все равно есть как ни крути.

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

В остальном Java как язык и экосистема имхо получше будет.

Кхм… ну, ну буду спорить о вкусах, но инфраструктура и тулинг, кмк, не сравнимы (и не в пользу Java). Что касается языка самого - Go предельно прост и заточен куда лучше под определенный круг задач, чем Java. Тут вопрос не в «красоте», а в решаемых задачах и «подходящести» языка под них.

Переписывать с JVM на Go вряд ли будут что-то, сколько ни работал на Go - приходилось переписывать легаси на питончике/пхп на Go, и это переписывание было практически «вечное», то есть был какой-то старый монолит написанный на питоне при царе горохе, и вот вокруг него строили портянку микросервисов на Go, куда постепенно перетаскивали функциональность из монолита.

Ну, тут как повезет, что называется. Есть и бесконечное переписывание и проекты на Go с нуля. Насчет переписывания с Java на Go - тут, кмк, все просто. Работает - не трогай (если производительность не надо выжимать, конечно, такое тоже бывает). А вот со скриптовых языков - самый прямой выигрыш.

Сам свитчнулся недавно с Go (писал на нем с 2021 по 2025 годы) в JVM (Java/Kotlin) экосистему, подводных камней ровно 0. При этом работы на Java (пока что) в разы больше чем на Go, как минимум за пределами России.

За пределами России и работы В ЦЕЛОМ больше, как и того самого legacy на Java, поэтому удивляться особенно тут нечему, в целом-то Россия - очень небольшая часть этого мира :) И да, Java была чрезвычайно популярной некоторое время назад, и долго еще будет, бесспорно.

В России на Go пишет порядка ~5 компаний, куда еще попробуй сейчас попасть, одна из которых к тому же WB.

Это, по моей информации, совершенно неверная оценка. Просто открой hh.ru и увидишь вакансии от куда большего числа компаний. Начиная от местного «бигтеха», заканчивая относительно небольшими компаниями. Справочно могу сказать, что в сфере бизнеса, где я работаю, все буквально наши серьезные конкуренты пишут на Go бэкенды. И да, это не бигтех. И да, только этих конкурентов больше пяти :)

paddlewan
()

изучать что-то по программированию в 2026

Программирование умерло 5 февраля 2026 года с выходом модели Claude Opus 4.6

Тебе нет ни малейшего смысла изучать ни программирование, ни backend, ни Java. Сейчас код пишут специальные программы - агенты под контролем бывших программистов, которых хватит еще лет на 30-40.

Ты банально не нужен.

Ты еще оч молод, когда тебе будет лет 25-30, о программировании уже даже никто не вспомнит.

Иди учиться на рабочую профессию где ручками надо что-то делать.

anonymous
()
Ответ на: комментарий от paddlewan

в сфере бизнеса, где я работаю, все буквально наши серьезные конкуренты пишут на Go бэкенды

А про что примерно сфера бизнеса, если не секрет? Что-то связанное с облаками/обработкой трафика/телекомом? Или видеостриминг какой-нибудь?

Сам ишачил на позиции Go разраба в клаудах российских и в видеостриминге, потом ушел в другую отрасль. Насчет тулинга и инфры вокруг Go - вопрос дискуссионный. Да, много чего вшито в стандартный go, govulncheck например, рейс детектор, пакет для тестов и бенчмарков, удобно работать с sbom, причем никаких тебе сложных xml или groovy/kotlin dsl, а просто CLI.

Но если про какие-нибудь библиотеки говорить… то для Джавы их просто больше в разы будет, начиная от тяжеловесных фреймворков заканчивая какими-то мелкими либами. Много чего для Go тоже было написано, но увы, для многих моих нужд часто оказывалось, что Go-либа если и есть, то часто написана в 2015-2021 год, и потом заброшена. Сейчас конечно это менее актуально стало, так как можно навайбкодить свое, да и вообще в Go часто ничего не используют кроме стандартной либы и net/http, но тут как повезет и смотря с чем придется столкнуться.

anonymous
()
Ответ на: комментарий от anonymous

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

Конечно больше, одно то что должен ухнуть в систему целый жре о многом говорит.

anonymous
()
Ответ на: комментарий от anonymous

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

Так и тут, го слишком простой, приходиться сразу писать прогу а не извращаться с яп.

anonymous
()
Ответ на: комментарий от anonymous

Если про рынок труда говорить, то в России он не в лучшем виде. Тут хоть что учи, хоть С++, хоть Rust, хоть Erlang/Elixir, хоть Java, Go - с работой будет тяжко. Нужны рабочие руками,

приезжие среднеазиатские рабочие руки справляются

а не белые воротнички.

а кто будет импортозамещать? ведь надо практически всё - от микроконтроллеров до вебни
если китайская коммунистическая партия введет санкции, то будет туго

anonymous
()
Ответ на: комментарий от dynamic_cast

ASP.NET 10 (Web API)

Хороший совет, однако с работой даже в жырные годы в РФ по этому стеку было тухловато. А сейчас когда галеры ушли…

anonymous
()
Ответ на: комментарий от paddlewan

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

То же самое было со скалой когда-то и где сейчас скала?

tzekunosyosha
()
Ответ на: комментарий от tzekunosyosha

жава дефакто sota и стандарт в энтерпрайзе для managed языков.

Это было на майнфреймах при JavaEE, теперь это давно не так. По сути возникновение Сприга уже показало что ЕЕ кирдык.

anonymous
()
Ответ на: комментарий от anonymous

Возникновение Спринга показало, что Java EE нуждается в переработке.

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

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

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

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Иди учиться на рабочую профессию где ручками надо что-то делать.

Через пять лет это будет удел роботов.
Людям остаётся лишь плакать о том как хорошо было без ИИ.

anonymous
()
Ответ на: комментарий от iZEN

Возникновение Спринга показало, что Java EE нуждается в переработке.

Когда новые версии Java EE впитали всё то, что успел предложить Спринг, дальнейшая судьба Спринга стала неинтересна.

Чуть икрой не подавился. На всякий случай перечитал что такое JavaEE и Spring, может я уже не в теме и все переделали, нет вроде все на месте. Ну тогда я вообще ничего не понимаю :(

anonymous
()
Ответ на: комментарий от anonymous

а кто будет импортозамещать

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

GenAI уже не только код пишет, а еще активно применяется для электроники и машиностроения. Количество белых воротничков с инженерным, математическим, computer science образованием в ближайшие годы будет стремительно сокращаться, а выпускники этих специальностей будут все чаще и чаще находить себя в безработице и будут вынуждены уходить в труд руками. Увы, никто больше не будет платить за то, что вы какой-то код можете написать или микросервисы спроектировить, или за то, что мы можете чертежи и модели в каком-нибудь САПРе делать. Это огромный рынок труда ранее был и сейчас он исчезает практически полностью.

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

anonymous
()
Ответ на: комментарий от anonymous

GenAI уже не только код пишет, а еще активно применяется для электроники и машиностроения.

Проблема в том, что из Г. и П. хороший дом не построишь.
Нынешнии программные технологии создания проектов именно такие.

anonymous
()
Ответ на: комментарий от anonymous

ИИ будет все делать.

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

будут вынуждены уходить в труд руками

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

anonymous
()
Ответ на: комментарий от anonymous

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

Согласен, ИИ это голос из пустоты.

anonymous
()
Ответ на: комментарий от Nervous

А поддерживать и развивать это потом кто будет? %)

Мне вот тоже не понятно как ИИ проект сможет развивать иной разработчик?
Да много вопросов …
Наваять-то можно.

anonymous
()
Ответ на: комментарий от anonymous

Согласен, ИИ это голос из пустоты.

А кто знаете, почему ИИ лишь в последние года смогли разработать?
Японцы так ещё в начале 80-х обещали в течении пятьи лет ИИ разработать.

anonymous
()
Ответ на: комментарий от anonymous

разработать это не значит пустить в массы.

Шила в мешке не утаишь.
Скорее всего неосилили.

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария