LINUX.ORG.RU

Напиши мод для майнкрафта - совместишь обучение с развлечением. А перед этим тебе придётся изучить как оно устроено. Заодно и джаву изучишь. Я по крайней мере джаву изучил именно в процессе работы с майнкрафтом.

Хотя я перед этим же Си (и ООП) знал, а у тебя как? Если хочешь учить первый язык то лучше не с джавы начинать.

Какие книги посоветуете?

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)

на компьютере стоит 21 версия

Забить на версию. Можешь хоть по 8-й книгу читать.

А так любую книгу. В свое время мне нравились следующие две:
* Thinking in Java — по самому языку.
* Effective Java — с шаблонами и идиомами. Очень толковая. Подобные книги редкость. Но она не для новичка.

Что можно написать на Java в качестве личного проекта?

В том то и проблема, что Java это такой язык, на котором не хочется писать личные проекты. А так напиши Тетрис, например. Змейку.

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 2)
Ответ на: комментарий от firkax

Ну фиг знает. В Java на самом деле много нюансов, которых нет в других языках (если это не C# конечно, тот похож на Java). Рефлексия, аннотации и их использование вместе с рефлексией для получения IoC и DI. Это как минимум то по чему стоит почитать что-то и не нейробред с интернета.

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

А чем Java хуже для личных проектов чем C/Rust/C++ (вот уж хуже ЯП придумать нельзя для любых проектов и пользуют его от безнадёги, когда C мало, а C#/Java медленно и нужно много оптимизаций в коде/низкоуровневый код).

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

Боюсь оно и в книги проникнет. На сайты по Java уже проникло. javarush раньше более-менее приличный сайт был, а теперь там такое https://javarush.com/groups/posts/4130-kofe-breyk-232-ponimanie-razlichiy-mez... ужас, AI галлюцинирует и immutable становятся mutable прям по ходу действия без всякой рефлексии ну и наоборот.

ЗЫ

ТС, возьми лучше Java 25, 21 устарела малость, а 25 и самая свежая и LTS. Пока изучешь она как раз будет самой популярной из свежих.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 3)

Установить средства разработки. Кто установил Java 21? Оно само не устанавливается. Нужно выяснить, JRE это или JDK. Если установлено как пакет, посмотреть а описании пакета. Установить IDE. Самое популярное Eclipse. В него устанавливаются дополнительные модули. Вариант дистрибутива Eclipse for Java developers - уже с ними. Можно рассмотреть Visual Studio Code , установив в некоторых модули для работы с Java (но я сам пользовался только Eclipse). Немногочичленные, но шумные фанаты расхваливают Jetbrains IDE. ,Оно платное и из России заплатить затруднительно, но есть и бесплатная версия Community Edition. Установить Apache Tomcat для веб-поиложнний (не путать с Apache). Не надо полагаться на уже установленный OpenJDK. Можно вдобавок Установить свои разных версий. Не надо добавлять их системный PATH - в настройках Eclipse и Tomcat можно указать нужный. Доя работы Eclipse достаточно JRE, но доя разработки нужен JDK. В настройках Eclipse указывается путь к нужному доя его работы JRE, а в настройках проектов в Eclipse выбирается JDK. В общем, Установить средства разработки и произвести минимальную настройку, чтобы убедиться, что работают.

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

А чем Java хуже для личных проектов чем C/Rust/C++

Да примерно всем. От потрясающей неэффективности по ресурсам через никакую работу с зависимостями до отсутствия нормального GUI.

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

От потрясающей неэффективности по ресурсам

Python и js те да, потрясающе неэффективны. А для своего проекта который в одно рыло пилится, как по мне главный критерий, чтоб язык был достаточно эффективный, чтоб ты успел хотя бы за год что-то рабочее собрать (внезапно скорее всего ты ещё работаешь/учишься где-то, а может и семья есть). Проект который ты делаешь на работе и для работы в рабочее время это не твой проект, даже если ты пишешь опенсорс на корпорастов. А для этого как раз нужны жирные библиотеки. А так если ручками всё на Java делать, как на сишке, то да, оно всё равно будет удобнее, но по размерам и скорости внезапно очень и очень сопоставимо. Точнее куда ближе к сишке, чем к питону. Представим на секунду, что в тред влетает царь и кричит что на сишке оно будет на порядок быстрее, но при досканальном изучении вопроса выяснится что у сишки будет либо переполнение типов, либо некорректная работа со строками на языках, отличных от ASCI (для Java тоже справедливо, но в меньшей степени), а когда пофиксятся все переполнения, все утечки памяти, все защиты от дурака или злоумышленника, то код на сишке оказывается уже не такой и быстрый как хотелось бы. Понятно что он всё ещё будет быстрее равнозначного кода на Java, но далеко не на порядки, особенно если забыть как страшный сон 8 Java которой уже 12 годиков и взять ту же 25.

никакую работу с зависимостями

Это ты про сишку, да? До maven-а, gradle и ant-а cmake как до Пекина раком. Про простой мейк вообще молчу. У растишки у того да, поближе к Java дела. А у python-а хуже.

до отсутствия нормального GUI

GUI да, GUI это проблема, но я вообще не знаю никакого ЯП и фреймворка у которого с GUI нет проблем, кроме WebUI. Потому что оно либо прибито к своей родной ОС (Windows Forms), либо везде выглядит инородно, кроме как на родном окружении (GTK для Gnome и Qt для KDE), либо не умеет в HiDPI (WxWidgets), либо выглядит ещё хуже Java UI (FLTK), либо течёт память (Avalonia C# та же этим страдает хронически), либо бинари пухнут (Lazarus, Electron), либо лютая проприетарщина (те же Windows Forms и вообще всё что связано с UI в Windows и OSX). Нет у нас хороших UI ни на одном языке, это всегда компромисс. Лучше всего веб пошел, там удобнее всего клепать что-то, особенно если UI нужен сложный, а не просто 3 кнопки и поле ввода аля из 90-ых, когда не очень понятно, надо ли было так делать, может вообще хорошего TUI хватило бы.

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

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

Для C и C++ есть xmake, интегрированный спакетными менеджерами, с простой конфигурацией и возможностью генерации файлов сборки в разных форматах.

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

сидят на старых версиях

Ну, типа, нет. Не сидят.

А если копнуть тапочком ещё глубже, то окажется, что жаба в целом легаси, а новые проекты пишут сразу на котлине.

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

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

ran-chan
() автор топика
Ответ на: комментарий от seiken

Я к тому, что для новичка не важны все эти последние версии, не важно освоить 100% всех супер-фич языка. Всё это неважно на данном этапе, фокус должен быть на другом.

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

я на нём пишу т_т

при всей своей всратости и плохой поддержке тулзами, котлин - это шаг вперёд. Нормальные стримы, нормальные лямбды, null safety на уровне языка вместо цирка с Optional/@Nullable, вот это вот всё.

EAT_INSIDE
()

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

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

А мне вот очень не нравятся все эти операторы Элвиса со знаками вопроса и восклицательными знаками. Я не знаю, что на уме у этих разработчиков Котлина и C#…

После Scala (и другого ФП, откуда Option родом, собственно) все это кажется такой безвкусицей, таким ширпотребом!

anonymous
()

В качестве книги могу порекомендовать Clojure на производстве. Т.к. кложа, в отличии от жабы, не унылая, вы и новый язык выучите и яву (как платформу) изучите. В качестве личного проекта могу порекомендовать написать систему инициализации. Давно новых не появлялось.

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

Хорошо, что ты тут объявился. У меня тут очередная волна интереса к Схеме, и я ни фига не понял, как писать на Схеме библиотеки так, чтобы их можно было запускать одновременно в Gambit, Chez Scheme, Guile, Chicken Scheme и Racket (из того, что у меня под рукой). Что они не поделили с этими R6RS и R7RS?

В дебиане видел пакет со SRFI для Chez Scheme. Можно на Chez Scheme писать на основе R7RS? И как с этим стандартом в самом Racket?

Racket мне понравился, но и другие реализации тоже интересны. Однако после Common Lisp как-то сложно прижиться. Такого разнообразия не ожидал

// dave

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

я на нём пишу т_т

Сразу видно человека мыслящего логически.

при всей своей всратости и плохой поддержке тулзами, котлин - это шаг вперёд. Нормальные стримы, нормальные лямбды, null safety на уровне языка вместо цирка с Optional/@Nullable, вот это вот всё.

Я *не* утверждал противоположное. :)

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

Да, очень логично. На вопрос про Java ,отвечать про Kotlin. Botlin, Motlin, Clojure, bash и что ещё в голову взбредёт. Опять заболтали тему. В общем: автору темы. Установить среду разработки, как я описал. Начать в ней что-нибудь делать и читать документацию, например указанные книги.

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

я чёто сбился, о чём спор вообще.

По моему супер-компетентному мнению, во всратом финтехе идёт движ по замене джавы на котлин, просто потому что быстрее писать код -> меньше ТТМ -> чуть меньше говна льётся на команды, которые перешли. Что потешно, у сбера в джавовых вакансиях уже не только котлин, а опыт вайбкодинга требуется. Полагаю, по той же причине.

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

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

По моему супер-компетентному мнению, во всратом финтехе идёт движ по замене джавы на котлин

Это подтверждается статистикой нас сайтах вакансий?

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

старья

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

статистикой нас сайтах вакансий

по сайтам хз, на самом деле. На HH вместо поиска по ключевым словам теперь помойка, а более мелкие чекать лень.

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

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

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

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

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

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

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

И что же в этой Java такого принципиального изменилось, кроме добавленного синтаксического сахара? Речь про язык, не про виртуальную машину, не про API (которое можно использовать из других языков).

Мне и правда интересно. После того, как я открыл для себя Scala, а потом и Kotlin, то после мне возвращаться к самой Java уже никогда не хотелось. И знаю много людей, у которых также, и с которыми вместе работал

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

смысл учить язык 10-летней давности, в котором дофига всего изменилось

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

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

Ну как - не изменилась… Многострочные строки, новый свитч, новый instanceof, записи эти вот… Стримы с 8 джавы перестали быть лапшой копипасты и хоть какими-то хелперами обросли, новые классы даты-времени довели до ума, что можно без апачевских либ юзать, многопоточку обновили. Вроде по мелочи, а половину кода на ревью отправят на доработку.

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

Java:

  • Скучаная

А минусы будут?

  • На каждый чих тебе придется таскать жирнющие библиотеки

Это ещё зачем? Кто тебя заставляет?

  • Твой хелоуорлд будет весить десятки (сотни?) мегабайт. Лучше уже на баше сделать

Хеллоуорлд будет весить несколько килобайтов.

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

Хеллоуорлд будет весить несколько килобайтов.

Ага, особенно после прогонки через Excelsior JET…

Кстати, тоже вот не следил. Каков новый AOT в Java?

Новосибирский Excelsior JET когда-то очень давно запускал. Понравилось

anonymous
()