Организации Apache Software Foundation представила интегрированную среду разработки Apache NetBeans 16, которая предоставляет поддержку языков программирования Java SE, Java EE, PHP, C/C++, JavaScript и Groovy. Готовые сборки сформированы для Linux (snap, flatpak), Windows и macOS...Подробнее: https://www.opennet.me/opennews/art.shtml?num=58393
Ну и зачем оно надо когда есть IDEA?
У IDEA не лояльный подход к пользователям, а посему в топку.
Те кто реально работают на реальных проектах больше чем в 100 строк кода понимают, что от idea никто не уйдет никогда ни на каком проекте ни в какой стране. А те кто нет, они да, будут писать бред про то что есть альтернативы.
Зачем IDEA, когда есть NetBeans?))
Зачем они оба, когда есть VS Code
а ты действительно... бывалый...
Зачем эти трое, когда есть QtCreator?
В QtCreator нет поддержки xdebug.
Оно в последнюю очередь для JS, а не в первую
Котлин в build.gradle не поддерживает :(
С выходом java 21 в котлине совсем не останется смысла. Только null safety в java придется подключать плагином как и раньше, а остальное уже будет в языке. Градл же должен быть торжественно сожжен как пример говнокодового проекта и спагетти кода. Так что не поддерживает и фиг на него :)
В java изменяемые по умолчанию коллекции. Исправить это без нарушения обратной совместимости невозможно. unmodificableCollection просто бросает runtime исключение и всё. Ни во время компиляции ни во время выполнения выяснить, изменяемая ли коллекция или нет невозможно.Вместо null безопасности Optional, который не часть синтаксиса языка и сам может быть null, куча несовместимых сторонних null-аннотаций. Даже простейшего null-coalescing оператора который есть в kotlin, c#, groovy, javascript, typescript, php до сих пор нет. Что за за волшебный плагин я не знаю, но не думаю что он что-то решит не создав еще больше проблем.
И java 21 не lts релиз, на него никто не будет переходить. Что там будет в java 26 lts и когда это будет неизвестно.
Ты очень плохо знаешь java. Kotlin это просто синтаксический сахар над java. Все, что можно в нем, можно и в java.> В java изменяемые по умолчанию коллекции
Иммутабельные коллекции в котлин это просто интерфейс. Есть гора либ с иммутабельными коллекциями. Гуава хоть, да море.
> Вместо null безопасности Optional, который не часть синтаксиса языка
Весь котлин налсейф это просто сахарок. Посмотри однажды декомпайлед код. Совершенно нет разницы чем сахарок реализовывать, писать одно слово или другое. Прочти хотя бы это
https://habr.com/ru/post/695004/
> И java 21 не lts релиз, на него никто не будет переходить.Java 21 это lts. Читать тут
https://www.oracle.com/java/technologies/java-se-support-roa...
Вообще, надо больше читать
Безусловно я очень плохо знаю и java и kotlin, ни в пример очередному экспертузапусти suspend функцию из java, потом рассказывай про "сахарок" и про null-анотаций, 3-4 штуки из которых, несовместимых к тому же приведено в статье.
Если ты посмотришь во что компилируется kotlin, но увидишь что на java оно похоже очень смутно.
public final class MainKt {
// access flags 0x19
public final static main([Ljava/lang/String;)V
// annotable parameter count: 1 (visible)
// annotable parameter count: 1 (invisible)
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
L0
ALOAD 0
LDC "args"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkNotNullParameter (Ljava/lang/Object;Ljava/lang/String;)V
L1
LINENUMBER 2 L1
LDC "Hello World!"
GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
SWAP
INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/Object;)V
L2
LINENUMBER 6 L2
NEW java/lang/StringBuilder
DUP
INVOKESPECIAL java/lang/StringBuilder.<init> ()V
LDC "Program arguments: "
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
ALOAD 0
ACONST_NULL
ACONST_NULL
ACONST_NULL
ICONST_0
ACONST_NULL
ACONST_NULL
BIPUSH 63
ACONST_NULL
INVOKESTATIC kotlin/collections/ArraysKt.joinToString$default ([Ljava/lang/Object;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String;
INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
SWAP
INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/Object;)V
L3
LINENUMBER 7 L3
RETURN
L4
LOCALVARIABLE args [Ljava/lang/String; L0 L4 0
MAXSTACK = 10
MAXLOCALS = 2@Lkotlin/Metadata;(mv={1, 7, 0}, k=2, xi=48, d1={"\u0000\u0014\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0002\u0008\u0002\u001a\u0019\u0010\u0000\u001a\u00020\u00012\u000c\u0010\u0002\u001a\u0008\u0012\u0004\u0012\u00020\u00040\u0003\u00a2\u0006\u0002\u0010\u0005\u00a8\u0006\u0006"}, d2={"main", "", "args", "", "", "([Ljava/lang/String;)V", "untitled2"})
// compiled from: Main.kt
}
// ================META-INF/untitled2.kotlin_module =================
MainKt" *
давайте поющим java в "сахарке" с очень хорошо знающим java экспертом.
> запусти suspend функцию из java, потом рассказывай про "сахарок"Это называется зеленые потоки и они будт в 21 версии :) налл аннотации же выбери подходящие и пользуй, неясно зачем тебе все, да еще совместимые.
> Если ты посмотришь во что компилируется kotlin, но увидишь что на java
> оно похоже очень смутно.Это байткод интерпретированный у тебя в коменте :), джава компилится в него же, и он от котлина декомпилится в джава. То есть любой jvm язык это сахар над байткодом. За исключением одного, зеленых потоков, которые будут в 21 версии. Но и они это просто авторазбиение саспендов на куски компилером. Нехитрое дело вообще-то.
Чел, тут такое дело... языками и пользуются за "сахарок" и лаконичное выражение алгоритмической мысли. Нравится все if-ами оборачивать, да протаскивать значения через Optional - дело твоё, но многим другим такой бойлерплейт, зашумляющий бизнес-логику изрядно надоел.
Kotlin... ох, что люди только не придумают, чтобы не писать на C#
Но зачем на нем писать тем,кто до этого 10-15 лет писал на джаве, хорошо знает большинство библиотек для коммерческой разработки и просто применяет язык, в котором можно использовать то же самое, но менее муторным и многословным образом?
> Чел, тут такое дело... языками и пользуются за "сахарок" и лаконичное выражение
> алгоритмической мысли. Нравится все if-ами оборачивать, да протаскивать значения через
> Optional - дело твоё, но многим другим такой бойлерплейт, зашумляющий бизнес-логику
> изрядно надоел.Я пока на котлине около 70к строк написал, может не проникся, но лаконичности особо не вижу. Такое же количество примерно строк на все надо. Просто другой язык немного...попытка превратить java в js, чтобы вебмакакам проще жилось :)
Ну, я на нем последние 5 лет пишу как основном языке бэкенда.
А где там JS? Типизация как была статической, так и осталась, тип выводится компилятором.
var используют и в джаве для локальных переменных, ибо если не можешь понять тип из правой части присваивания, то написан говнокод.
Основная фишка котлина - это явное разделение типов на nullable и not nullable и наличие коротких символьных null-safe операторов. Ну и плюс всякие фишки, уже являющиеся частью синтаксиса языка, которые в джаве достигаются ворохом аннотаций Lombok. Плюс очень удобная тема, что куча всего является, expression, а не statement и может быть чему-нибудь присвоено.
По моим наблюдениям, код на котлине получается примерно на треть короче того, как если бы я бы на джаве делал то же самое.
> Ну, я на нем последние 5 лет пишу как основном языке бэкенда.
> А где там JS? Типизация как была статической, так и осталась, тип
> выводится компилятором.
> var используют и в джаве для локальных переменных, ибо если не можешь
> понять тип из правой части присваивания, то написан говнокод.Ты смотришь код в гитлабе, а не в IDE и котлин превращается в пытку на ревью комита. Код должен говорить - это принцип java, потому, что его проектировали инженеры по подходу. Иначе, я хороший программер и напишу хороший код хоть на асме, но язык должен запрещать с концами писать плохо. Потому java это хороший язык, который маскирует минимум поведения.
> Основная фишка котлина - это явное разделение типов на nullable и not
> nullable и наличие коротких символьных null-safe операторов.Это тоже достигается одной аннотацией над корневым пакетом и плагином в мавене, в остальном отличий не шибко найдешь. Так что разницы нет, может в тонкостях, но это пофиг. Тотесть эта аннотация сделает все в проекте @notnull, и только спецом отмеченное наллабл. Как и в котлин.
Ну и плюс всякие
> фишки, уже являющиеся частью синтаксиса языка, которые в джаве достигаются ворохом
> аннотаций LombokНу прям уж ворохом, набор конструкций почти совпадает, а на чем автодополнение вызвать, все равно, количество нажатых кнопок одинаковое. Не вижу в ломбоке особых отличий от синтаксиса, слова и слова, писать и писать. Нужно смотреть количество нажатых кнопок, а не текста в итоге и наступит прояснение. При этом код в джаве самоописательный, в котлин, нет в итоге и это лостигается как раз тем, что он немного многословнее. Зато польза на ревью.
Боярин, вы попутали понятия.Объектно-ориентированный язык с промежуточным байткодом в формате JVM и язык надстройка над языком Java - это 2 большие разницы.
Возьмите любой ООП-язык и приглядитесь к нему повнимательнее. Сама по себе концепция модели, описывающая поведенческие особенности объектов чужда физическому железу. На железе нет и не может быть "классов" - там структуры. На железе не может быть "событий" - там конечные автоматы... и так далее.
Из-за архитектурной чуждости все без исключения языки компилируются 2 раза. Сначала анализируется вся эта модель и генерируется некоторое структурное представление (байткод). Потом по структурному коду промежуточного представления можно сформировать некий нативный машинный код (см. С++)... или не делать этого, начав выполнять этот байткод в некоторой виртуальной машине, которая по своему "на лету" будет интерпретировать инструкции байткода.
Так вот JVM имеет стандарт байткода. Вы можете написать свой ЯП и написать к нему компилятор с вашего языка в байткод JVM. Тогда его сможет выполнить виртуальная машина Java. Или вы можете скомпилировать ваш язык в Common Intermediate Language, но тогда ваше приложение будет выполняться внутри .NET Common Language Runtime, что, по сути, то же самое.
Вот примеры настоящего синтаксического сахара:
Vala - это надстройка над С
TypeScript - это надстройка над JavaScript
Мы просто по разному понимаем слово сахар, бывает. Это сленг.
java 21 lts. Погугли что ли. И раз не знаешь плагин, ну, погугли что ли. Нафантазировал себе невесть чего.
что там виртуал треды введут?
нормальный паттерн-матчинг?
> что там виртуал треды введут?
> нормальный паттерн-матчинг?Ага. Что до паттерн матчтнга, его пропихнули для тех, кто паттерн посетитиль не знает...для веб макак по сути.
а нормальные кортежи онстековые когда добавят?
а не рекорды которые по сути датакласс из кокотлина
> а нормальные кортежи онстековые когда добавят?
> а не рекорды которые по сути датакласс из кокотлинаЕсли эту хрень хоть кто то признает необходимой, добавят поди. Дурное дело нехитрое.
а про паттерн матчинг - посмотри какой он в эрланге например.
я лично как перешедший в жяву после него сильно страдаю от его отсутствия
> а про паттерн матчинг - посмотри какой он в эрланге например.
> я лично как перешедший в жяву после него сильно страдаю от его
> отсутствияДа смотрел, ну, другая парадигма. Бывает. Берешь молоток, забивай гвозди, взял отвертку, ковыйряй в ухе, всему свое место. Я даже эликсир смотрел.
ну в той же скале вместо кортежей куча клоунских классов Pair**
использовать удобно в том же паттерн матчинге.
например метод возвращающий кортежcortage MethodResult{
int result,
String message,
int error}
MethodResult method(...)case {
res, mes, err: (err==0) -> method(){
sout(res+mes)
}
_, _, err: () -> method() {
sout(err)
}
}что то вот такое хочу
вот за такую яву я бы был благодарен создателям.
> ну в той же скале вместо кортежей куча клоунских классов Pair**Java не функциональный язык программирования, он только имеет элементы функциональщины, которые посчитали удобными и принесли. Просто пользуйся другим языком. Мне функциональные не нравятся в их полноценном виде, а вот кусочки, не превращающие код в кашу, очень даже нравятся. Типа stream и прочего плюс иммутабельность некоторых штук, не всех (ибо всех дорого очень). Тут кому, что ближе. Мне что то среднее между функциональщиной и императивщиной нравится, а крайние варианты нет.
>> ну в той же скале вместо кортежей куча клоунских классов Pair**
> Java не функциональный язык программированиятем не менее я всегда стараюсь использовать финальные переменные(это вроде как еще и ГЦ упрощает работу) и писать чистые функции.
>>> ну в той же скале вместо кортежей куча клоунских классов Pair**
>> Java не функциональный язык программирования
> тем не менее я всегда стараюсь использовать финальные переменные(это вроде как еще
> и ГЦ упрощает работу) и писать чистые функции.Это вполне разумно, я тоже. Но полностью функционально надо писать на другом языке на мой взгляд. Я, можно сказать, центрист в этой политике языков.
> я всегда стараюсь использовать финальные переменные(это вроде как еще и ГЦ упрощает работу) и писать чистые функции.Дело в том, что хорошие компиляторы умнее программистов. Компилятор может легко просканировать исходный код и выяснить, изменяется ли переменная в методе, и сам применить нужные оптимизации, если считает нужным. Время рукопашных подсказок в коде для компилятора (и GC) на зрелых языках высокого уровня давно прошло.
Время рукопашных подсказок в коде
> для компилятора (и GC) на зрелых языках высокого уровня давно прошло.Иммутабельность нужна что бы многопоточку писать с меньшим числом ошибок, как и чистота функций, то, что это для гц проще просто побочный эффект.
в java даже класса Pair в стандартной библиотеке нет.
> в java даже класса Pair в стандартной библиотеке нет.Думаю причина тому, в том, что если ты не написал осмысленную дтошку, а заюзал пайр, твой код гавно. Ну тли тебе шибко некогда и позже ты все перепишешь.
Даже если Java 21 была бы не хуже Котлина... как минимум, для него остаётся Андроид.
> Даже если Java 21 была бы не хуже Котлина... как минимум, для
> него остаётся Андроид.Гугл работает над дартом и флуттером именно потому, что не хочет чужих языков больше на своей платформе. Так что это временно. Ни джава, ни котлин там не нужны ему.
Лучшие
самый ламповый интерфейс! кстати, а на чём он?
На Java Swing скорее всего.
почему на Java перестали поддерживать библиотеки интерфейсов? То был Swing и JavaFX, потом забросили. Наверно супержадный Оракул хотел очень продвигать свои тормозные решения с вебней поверх WebLogic.
> почему на Java перестали поддерживать библиотеки интерфейсов? То был Swing и JavaFX,
> потом забросили.кто их забросил?
swing даже в jdk есть
а openfx отдельно развивается
swing не разрабатывают с начала 200х годов. в 2001 или когда-то тогда.
javafx выкинули вообще.
JavaFX нормально развивается.
https://github.com/mkpaz/aboutfx
потому что Оракл убивает java. Даже за java se без расширенной поддержки требовал деньги с организаций. Кажется в java 17 только передумал
Куча народу сидит на OpenJDK и не платит ни копейки.
Ну хорошо, то что основная реализация виртуальной машины и sdk платная это не убивает, а наоборот, помогает распространению
Релиз был месяц назад?
> поддержку языков программирования Java SE, Java EEЭто разные языки или самодеятельность автора новости?
Да, разные.
Java ME ещё была/есть.
Это разные и сильно вещи.
А, точно. Ещё есть языки GCC и Clang!
не позорился бы
Надо же, а казалось, умрёт проект.
Он мёртв внутри, это же жаба
Притворилась мёртвой, значит, хладнокровно
Пока притворилась мёртвой - приползла гадюка.
А что за CPPLight?Не гуглится совершенно, только эта новость про Netbeans в результатах.
Это NetBeans'овая обертка над GDB.
Отдельно никто не использует.
Кстати, если кому полезно: в этой 16-й версии наконец нормально работает подключение плагинов от 8.2, нужно только активировать репозиторий в настройках. Можно теперь с новым интерфейсом использовать полную "старую" версию поддержки C/C++. Памяти правда жрет хорошо больше.
Большое спасибо за очень хорошую новость! А то NetBeans мне ну очень нравится, но отсутствие нормальной поддержки С/С++ сводит на нет все остальные плюсы этой IDE. А с нормальным плагином (пусть и старой версии), можно будет попробовать обновиться.
Да я всё время пользовался плагином для C/C++, не было почти проблем с этим во всех предыдущих версиях.
> Готовые сборки сформированы для Linux (snap, flatpak), Windows и macOS.На сайте универсальный zip, установщик для винды, пакет для мака, пакеты deb и rpm, и только в конце скромно "Linux snap package".
> На сайте универсальный zipРаспаковываешь ZIP-файл (netbeans-16-bin.zip) в домашний каталог.
В файле netbeans/etc/netbeans.conf в самом низу расскоментируешь соответствующую строчку и указываешь:
netbeans_jdkhome="/usr/local/openjdk18" # подставляешь свой путь к каталогу с JDK.Назначаешь право выполнения для файла запуска среды (если вдруг файл не опознаётся как выполняемый):
$ chmod +x netbeans/bin/netbeansМожно запускать:
$ netbeans/bin/netbeansАналогичные действия в Windows — только запуск среды нужно делать из netbeans64.exe
Таким образом, ZIP-архив среды Netbeans универсален — только приложить немного ручных усилий.
Зачем, когда есть idea?
оно в разы легче
Idea денег стоит. А тут java ee и spring бесплатно.
и php, cpp, javascript, html/css в придачу
Зачем idea, когда есть vim|neovim|emacs?
что это всё? есть православный nano, остальное от лукавого
Зачем это все, когда есть Notepad.exe?
зачем, когда есть
copy CON: noname.pas
Пираты моря Лаптевых?
Мда, погибает IDE, после phpStorm'a пользоваться NetBeans PHP было просто нереально трудно, очень не очень темная тема, плохо работает xDebug, как насчет работы с Docker из коробки? Работа с БД не удобна (по сравнению опять же с phpStorm). А IDEA 1 раз купил на год и получаешь вечную лицензию и не паришься
>IDEA 1 раз купил- а второй уже нет, ибо сказано на сайте JetBrains: "JetBrains приостановила продажи продуктов и услуг в России"
Нужно винить JetBrains. Это они во всем виноваты.
Сделал узбекскую карту и оплачиваю нормально
Во-первых, при желании всё отлично платится даже той же пэйпалкой. Адресные данные в профиле немножко меняешь и всё.
Во вторых fallback license для тех кому надо было работать, а не ныть - прекрасно работает.
Там уже один только DataGrip с лихвой отбивает покупку all products pack.
Ну и жаба не нужна, уже есть котлин
>при желании всё отлично платится даже той же пэйпалкой- при желании девушку которая Вас не желает можно взять силой. Но не всем такие отношения нравятся
>жаба не нужна, уже есть котлин
- моему работодателю нужна Java, а Котлин нет. Мы с Вами живем в разных мирах
Есть Jetbra
Мне работать с БД неудобно даже в DataGrip -- понапихали кучу СУБД, но всё поверхностно и неюзабельно.
Ты просто ленивый балабол и тебе по определению работать неудобно. DataGrip работает как по сраному волшебству, половину запроса сам напишет, только успевай поля из подсказок выбирать. От кривых удалений всех записей подстрахует. Поля xml/json/whatever сохранённые как текст при необходимости подсветит и отформатирует, сравнит с данными в буфере / другой записи / другой таблице / другой БД
Добавляешь туда Markdown и HTTP Client и саппортить становится вообще норм.
А для меня наоборот. Пробовал разные IDE, но всё ровно приходится возвращаться к NetBeans. Её тема, возможности, дружелюбность многим в принципе не достижима, а когда ставишь ещё и русский язык, так вообще сказка.
> А для меня наоборот. Пробовал разные IDE, но всё ровно приходится возвращаться
> к NetBeans. Её тема, возможности, дружелюбность многим в принципе не достижима,
> а когда ставишь ещё и русский язык, так вообще сказка.дебаггер в нетбинсе убогий, тут кроме идеи ничего и нет
IDEA — это текстовый редактор с подсветкой синтаксиса и автодополнением кода. Точно такое же есть в Netbeans. Но в бесплатной IDEA нет интеграции с серверами приложений, с СУБД и удалённой отладки. Вроде бы не завезли визуальный редактор форм для приложений на JFC/Swing. Так что Netbeans выигрывает по всем фронтам у этой недо-IDE.
Программисты, использующие родной язык в интерфейсе инструментов для работу, профнепригодны
Оч смешной аноним вот этот
Т.е. все программисты-носители английского языка профнепригодны?
Этим повезло больше всех, так как они носители лингва франка. Это для всего остального мира работает правило, что использовать локализованный интерфейс или писать комменты не на английском - моветон.
да Вы, батенька, англофил!
Сейчас программисты 1С, получающие больше тебя в два-три раза, с недоумением покрутили пальцем возле виска. И ещё америкосам про родной язык расскажи...
Ога, расскажи ещё, как одинэсники получают больше, чем тимлид, пишущий бэк под страхование и медицину последние 12 лет, и давно не живущий в РФ. Сколько там щас у вас самые суровые специалисты OdinAss получают килорублей? 200? 250? Тоже мне the voice from below. Выдыхай, бобёр, пора пилить очередную бухгалтерию в ООО "Рогокопыта", солнце ещё высоко. Потом всем расскажешь, как ты много заработал.
Я на степик бесплатные ключи получаю раз в 3 месяца.
Потому что в днище-шарпшаиной-конторе лицензии на среду разработки не положено 😥
Судя по тому что ты не можешь даже оплатить такую мелочь, как разраб ты прям на уровне своей шараги
да 😥
я абсолютно тупая. Если из шарашки выгонят, вообще не понятно куда устроиться.
Листовки раздавать, разве что.
А вообще, забавно каждый раз читать, как программисты кричат об убогости NetBeans, но никто даже пальцем не пошевелил, чтобы улучшить ситуацию. Вот такие вот нынче программисты.
Но зачем, если есть альтернативы? Так работает естественный отбор в мемофонде.
Оно уже стало таким-же клёвым как NetBeans 6/7/8 и можно начинать пробовать или ещё немножко подождать надо?
Что мешает попробовать?))
Пробовал некоторые предыдущие версии... потому и спрашиваю чтобы опять время даром не тратить
После того как нашёл как русифицировать интерфейс, для меня различий уже нет.
> Оно уже стало таким-же клёвым как NetBeans 6/7/8 и можно начинать пробоватьэх восьмерка ванлав
сколько я в ней набыдлокодил ЕЕ в свое время
Просто запустил - 800 метров нет. Сами жрите это овно на своих ява*
Так мало, всего 800 метров. Видимо хорошо отоптимизировали.
на raspberry pi запускал?
64Гб хватит всем
Для PHP последние версии кто-нибудь использует?
> Для PHP последние версии кто-нибудь использует?Использует)) В 17 версии обещают поддержку php 8.2.
Да, использую. Всё отлично, полёт нормальный. Всё никак не дождусь когда реализуют подсветку синтаксиса и автодополнение кода HTML и JS в кавычках и heredoc PHP(наверное и не дождусь никогда).
Удивительно что оно ещё живо
Для Си и С++ VIM forever!
Да-да... А ещё можно гречневую кашу вилкой с одним зубом есть...
Или - вот - восточные люди, для успокоения нервов, рис, по одной рисинке, палочками кушают...