LINUX.ORG.RU

Что вы думаете сегодня про Kotlin Native

 ,


1

2

Насколько эта технология имеет смысл?

Есть ли шансы мигрировать существующие Java-проекты со Spring на неё?

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

Рынок труда по java на порядок шире, чем по голанг, и гораздо больше выбор предметных областей. Заниматься хайлоадами и бекендами, честно говоря, скучно.

Но jvm и всё вот это нагоняет грусть. Kotlin Native выглядит на вид неплохо, но хочется понять, это реальная технология или просто маркетологическая замануха.

★★★★★

Последнее исправление: den73 (всего исправлений: 1)

Ладно, ср@ч, так ср@ч.

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

https://habr.com/ru/company/piter/blog/172743/

(Каюсь - я купил этот отстой в бумажном виде.)

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

Ну и как дело обстоит сейчас?

ЫЫЫ

Есть только Java, Java и Java.

А всё остальное - кульхацкерские поделия для шибко вумных студиоузов - «программирование ради программирования».

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

За такое
ArrayList<char[][]> solutions = new ArrayList<char[][]>();
а не такое
List<char[][]> solutions = new ArrayList<>();
сразу с собеседования «выносят».

Ты у нас профессиональный проходильщик собеседований? Ну типа как спидранеры в играх.
Можно спорить про то, что у ArrayList есть два метода, которых нет в интерфейсе, но лично я бы сказал, что это просто два сорта говна и разницы нет до возникновения реальной необходимости принятия решения. Для сокращения конструктора массива использовал особенность жавы под названием «стирание типов», которая, по некоторым мнениям, является провальным способом ввода обобщений в язык (при том что сами обобщения являются костылем под выводом типов), иллюстрируемым следующим примером:

package test;

import java.util.ArrayList;
import java.util.List;

public class test {
	public static void main(String[] args) {
		List l = new ArrayList<Number>();
		List<String> ls = l;       // unchecked warning
		l.add(0, new Integer(42)); // another unchecked warning
		String s = ls.get(0);      // ClassCastException is thrown
	}
}

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

А то я из Google только GWT использую.

Зря, уже почти все на Angular/TypeScript и AngularDart свалили. У нас тоже

Это не мои проблемы.

Проект жив - https://en.wikipedia.org/wiki/Vaadin

GWT они под себя допилят

ExtAngular и ExtReact тоже имеет место быть.

Spring MVC, знание которого вообще-то более чем желательно даже для бэкэнд-программиста, никто не отменял.

Все новые проекты у нас - либо Vaadin, если средний проект, либо чёткое разделение на font (JS) и back(Java+Spring+Hibernate) с разными людьми, если большой проект.

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

Во многих редакторах нет возможности взять и переименовать переменную/функцию. Да, можно через инструмент поиска-и-замены (Ctrl-H), но с ним есть вероятность накосячить.

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

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

Да, трудно быть Незнайкой.

Идите в мак-дак или KFC - в программисты Вы не годитесь.

import java.util.*;

public class Test {
    public static void main(String[] args) {
       List<Object> l = new ArrayList<>();
       l.add(new Integer(42));
       l.add(new String("Answer"));
       System.out.println(l.get(0) + " " + l.get(0).getClass());
       System.out.println(l.get(1) + " " + l.get(1).getClass());
    }
}

42 class java.lang.Integer
Answer class java.lang.String

Не знали, что так корректно?

А теперь перепишите код с Java 8 на Java 12, чтобы не выдавал предупреждений при компиляции в Java 12 («Сюрпри-и-и-иззз!»(С)).

----

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

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

перегружают кодера
Как это?
Вы так ничего и не обосновали.
Вам я конкретные примеры привел.

Вот больше проекты есть: https://www.javatpoint.com/fee-report-project-in-java А есть еще больше, с наследованиями и интерфейсами, где копи-пасты в коде и сложного ручного рефракторинга еще больше.

Обычно позёры сразу же «срезаются» на лямбдах.

А что лямбды? Что они родили примитивный вывод типов? Замыкания-то настоящие они до сих пор не родили.

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

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

Ну, да. Это очевидно, но это очень неудобный и тупой способ.

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

с программистом

Да, я не профи, со мной «не так». Но оправдывать ситуацию, когда откровенный lack of features диктует workflow - это явно проигрышная позиция с точки зрения здравого смысла.

VS Code, к слову, позволяет подобные переименовывания, хотя и не для всех языков.

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

Первый - не значит лучший.

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

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

При чём тут Котлин. Ты пишешь, что Java перегружена повторениями. При этом приводишь код на Java 6. Ты ещё на Java 1.4 приведи код и пожалуйся на кучу кастов.

Скорее Java 9.

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

Есть одно очень известное выражение.

Про дискуссии.

Его сказал не Марк Твен, но оно приписывается Марку Твену.

Вы, следуя этому афоризму, просто «задавили всех своим опытом»(С).

Догадайтесь каким (из известного выражения), а если не догадаетесь - не беда...

----

Для адекватов:

public class Test {
    public static void main(String[] args) {
       var l = new java.util.ArrayList<>();
       l.add(42);  // Java 12
       l.add("Answer");
       l.forEach(a -> System.out.printf("%s %s\n", a, a.getClass()));
    }
}

42 class java.lang.Integer
Answer class java.lang.String
Bioreactor ★★★★★
()
Последнее исправление: Bioreactor (всего исправлений: 3)
Ответ на: комментарий от anonymous

Ты, наверно, мощных IDE не видел.

Скорее всего. Наверное, таки действительно, Eclipse, JetBeans, MS Visual Studio, и Delphi - это убогие IDE, не заслуживающие внимания.

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

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

Переименовать идентификатор как в неубогом языке?

Я же написал: нашел его и переименовал.

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

Может я просто не понял? О каких шаблонах идет речь?

В статичном языке информации для умного комплита достаточно, или приведи пример где нужен рантайм.

У тебя в языке не только статичные структуры, но и их взаимосвязи есть. Я понимаю, что жава статизирована вусмерть, но даже в ней нужно понимать, какой объект создан, какой - еще не создан, какой массив заполнен, какой - нет.

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

Стоимость квадратного метра в Дублине (вне центра, естественно) около €4000.

Привоз в Дубліні є? Якщо є, то купіть там гусака і полоскати мізки йому, а не мені!

Bioreactor ★★★★★
()

Но jvm и всё вот это нагоняет грусть.

Весьма продвинутая штука между прочим по сравнению с некоторыми хипстерскими поделками, хоть и старая

annulen ★★★★★
()
Ответ на: "That's a bingo!"(C) от Bioreactor

Подброшу гуана на вентилятор -
https://habr.com/ru/post/322256/

У человека типичный синдром утенка - он решительно не согласен со всем, что отличается от жавы и сей, потому что оно отличается от жавы и сей. Вся статья о том что «почему убрали...?» и «зачем было менять...?». К слову, в си таки нет обнуляемых целых чисел, что меня удивило, поскольку он заявляет, что «уже лет 25 успешно пишу на С».

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

Есть только Java, Java и Java.
А всё остальное - кульхацкерские поделия для шибко вумных студиоузов - «программирование ради программирования».

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

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

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

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

JetBeans

o_O

Пользуюсь студией с решарпером под C++. Всё там нормально, очень помогает. До того на виме 7 лет просидел, возвращаться не тянет. А мой нынешний проект на нем вообще написан бы не был.

Поиском по тексту

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

Проблема возникает, когда код нашинкован на мелкие куски и разбросан по отдаленным модулям

Или на крупные куски. Короче, для любого сложного проекта. Для простых IDE некритична, да.

Я же написал: нашел его и переименовал.

Программирование тогда сводится к «сел и написал программу». И никаких инструментов не нужно.

О каких шаблонах идет речь?

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

У тебя в языке не только статичные структуры, но и их взаимосвязи есть

Тут уже я не понимаю, чего бы еще тебе хотелось. Но то что уже есть помогает. Не киллер-фича, но помогает, а что еще от инструмента надо.

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

System.out.println(l.get(0) + " " + l.get(0).getClass());

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

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

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

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

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

Ну, да. Это очевидно, но это очень неудобный и тупой способ.

Если у тебя меньше полсотни упоминаний имени в коде, то ты просто заменяешь их и идешь дальше. А если у тебя больше полсотни упоминаний, то либо ты пишешь что-то не так, либо у тебя проект на java/c++/c++.

Но оправдывать ситуацию, когда откровенный lack of features диктует workflow - это явно проигрышная позиция с точки зрения здравого смысла.

Lack of features - отсутствие функциональности.
Workflow - рабочий процесс.
Да, это явный проиграш. Использование жавы диктовало построение рабочего процесса, но все просто привыкли, и ничо, живы-здоровы-энтерпрайзны.

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

Как раз это и является основной проблемой.

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

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

Как они вообще узнают о языке?

Есть такое слово - маркетинг.

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

Не нужно. Разработчикам такого ЯП достаточно показать его преимущества на деле. А такие как я прочитают и запилят на нём свои проекты и стартапы. Там и остальное болото подтянется.

Зачем им это будет нужно?

Затем, что разрабы не хотят страдать, а хотят работать с комфортом.

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

ЯП на голову превосходящий весь мейнстрим
Например?

Такой ЯП не изобрели. Для этого нужно много мозгов и широкий кругозор. А имеем хипстеров и копроразрабов. Так что надежды нет.

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

l.forEach(a -> System.out.printf(«%s %s\n», a, a.getClass()));

Теряется проверка типов. Можно прямо объявлять объект:

public class test2 {
    public static void main(String[] args) {
       var l = new java.util.ArrayList<>();
       l.add(42);
       l.add("Answer");
       for (Object o: l) {
           System.out.println(o + " " + o.getClass());
       }
    }
}
42 class java.lang.Integer
Answer class java.lang.String

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

До того на виме 7 лет просидел, возвращаться не тянет.

Так тут проблема в виме. Меня тоже не тянет возвращаться на вим. А вот на notepad++ - постоянно тянет.

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

Для умного языка уже не работают все ваши рефакторинги. Да и не нужны они там.

Проблема возникает, когда код нашинкован на мелкие куски и разбросан по отдаленным модулям

Или на крупные куски. Короче, для любого сложного проекта. Для простых IDE некритична, да.

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

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

У меня тоже есть снипgеты - я пользовался ими раз или два. Абсолютно бессмысленная вещь. Я печатаю 100-300 символов в минуту, и мне не составляет труда набрать пару лишних слов или символов.

У тебя в языке не только статичные структуры, но и их взаимосвязи есть

Тут уже я не понимаю, чего бы еще тебе хотелось. Но то что уже есть помогает. Не киллер-фича, но помогает, а что еще от инструмента надо.

Жаве чудовищно не хватает динамичности. Нет проблемы в том, чтобы в двухсотый раз вбить повторяющийся идентификатор в код - проблема в том, чтобы разобраться, в каком взаимоотношении состоят создаваемые во время выполнения объекты. А объектов будет много, потому что это чуть ли не единственный источник изменчивости кода на жаве.
Я так понимаю, что ты вынес эту функцию в отладчик, таким образом разбив IDE на редактор с анализатором с одной стороны, и отладчик с другой стороны. Я же вижу процесс разработки как единый REPL, где вместе работают и редактор, и отладчик.

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

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

Ну так мы об этом и пытаемся сказать вместе в ним. Другое дело - почему они взлетают? Взлетит что угодно, если найдутся те, кто будет продвигать язык.

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

Есть такое слово - маркетинг.

Есть такое слово. В основном оно применяется теми, кто хочет оправдать отсутствие у себя каких бы то ни было навыков - «я специалист по маркетингу». Менеджер, конечно, более каноничный пример.

Разработчикам такого ЯП достаточно показать его преимущества на деле. А такие как я прочитают и запилят на нём свои проекты и стартапы. Там и остальное болото подтянется.

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

Затем, что разрабы не хотят страдать, а хотят работать с комфортом.

Ты ошибся, тут тред про жаву.

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

чтобы болото хотя бы заметило что-то.

Сдалось мне это болото. То, что болото будет использовать менее эффективные инструменты только в плюс. Меньше конкурентов.

Затем, что разрабы не хотят страдать, а хотят работать с комфортом.
Ты ошибся, тут тред про жаву.

Ну не тебе говорить о джаве, я выше почитал твои познания о современных IDE, рефакторинге и джаве в частности. Ты околонулевой спец в этой области, чтобы что-то реально судить и предлагать. Даже не понимаешь для чего люди делают рефакторинг. А поиск методов через regexp-ы в 21 веке, просто «Рука - лицо»...

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 3)
Ответ на: комментарий от byko3y

Да-да, торгаши и менеджерье это дебилы.

Вот только зарабатывают многие из них очень даже ок, а работают, в отличие от типичного программиста, ровно в рабочие часы, а не 12-16 часов в сутки, 7/365.

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

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

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

У них ничего в жизни нет, потому они в том числе развлекаются поиском халявы, пока программист пишет код.

Бгг. И логика прям простая и понятная, и озлобленности-зависти не видно.

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

И здесь.

И да, торгаши и менеджеры - дебилы.

И здесь.

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

Бгг. И логика прям простая и понятная, и озлобленности-зависти не видно.

Разница между мной и тобой заключается в том, что когда ты будешь возмущаться, что банк с твоими депозитами закрылся, не оставив тебе ничего не прощание, а на пенсию ты выйдешь в 95 лет, то ты будешь ругать кого угодно, кроме эффективных менеджеров и специалистов по PR. Более того, я понимаю, откуда они взялись, как живут и о чем мечтают - у меня есть знакомые из их числа. И даже более того, я понимаю, что их не в чем винить, потому что они не понимают, что делают, и каким образом социально-политическая система сделала их такими.

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

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

Я, между прочим, вполне годный совет дал. Это вроде «хочешь быть счастливым - будь им». Ну то есть «не хочешь работать - не работай».

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

социально-политическая система сделала их такими

ну-ну. наивный

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

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

Теперь я понимаю, почему у Украины не ни единого шанса на будущее

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от byko3y

пока программист пишет код

А нужен ли этот код? Или это просто имитация бурной деятельности?

И да, торгаши и менеджеры - дебилы

Они не дебилы, а прилежные винтики системы. Ты можешь предложить, что-то лучше? С такой системой худо бедно имеем интернет, робототехнику, gps, супермаркеты, да кучу всего.

А то, что ты считаешь себя лучше их, как раз делает тебя не очень умным человеком.

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

Кодеры, к слову, такие же винтики.

Если отвлечься от школофилософии, типа «все винтики», получается что не винтики, т.е. те чей образ жизни радикльно отличается от остальных это:

1. Известные актеры и музыканты. 2. Политики первого эшелона. 3. Некоторые особо талантливые люди, которых единицы, в любых областях. 3. Фрики и экстремалы.

Как-то так.

Смешно ведь рассматривать Васяна, трудящегося на галере на какой-нибудь банк или клипеающего интернет-магазины, «не винтиком», да? Тоже мне, Тайлер Дёрдан.

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

Москва пиздатее Дублина?

Канеш. Дублин это мухосрань типа житомира. Единственная фича: лондон близко.

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

Знатокам из Житомира нет повода не доверять.

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

Если же рассматривать «пользу для человечества», то и там прогеры и прочие «технори» ничем не лучше.

Ну да, 1% занят полетам на Марс, поиском лекарства от рака и прочими благородными возвышенными сферами, за которые надо говорить «спасибо».

Но остальные-то нет.

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

Зато благодаря «умным» программистам у нас сейчас есть прекрасное изобретение, с которым 1984 близок как никогда: видеокамеры на каждом шагу с фантастически точными методиками опозанавания лиц. Браво, че.

И эти же прогеры, вместо того чтоб рвать себе волосы на жопе и думать как справиться _с этой_ ситуацией, обсуждают вопрос «швободы» в контексте доступа к исходникам. Молодцы. У м н ы е.

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

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

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

Ну это не столько прогеры, сколько инженеры и технологи, которые сделали всё это дешёвым. А так-то фотокамеры, встроенные в пуговицу, были ещё во времена второй мировой.

den73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.