powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Сложить два числа в Kotlin :)
25 сообщений из 69, страница 2 из 3
Сложить два числа в Kotlin :)
    #39918276
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что скала имеет более глубокие различия. а котлин - это просто беттер жава. ну и жидбрейнзы постарались в своих продуктах его протолкнуть. куда уж тут одерскому-академику.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918280
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
потому что скала имеет более глубокие различия. а котлин - это просто беттер жава. ну и жидбрейнзы постарались в своих продуктах его протолкнуть. куда уж тут одерскому-академику.
+1
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918303
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
потому что скала имеет более глубокие различия. а котлин - это просто беттер жава. ну и жидбрейнзы постарались в своих продуктах его протолкнуть. куда уж тут одерскому-академику.


Как бы да.
Но на Scala было выпущено несколько хайповых проектов.
К которым потом кое-как прикрутили совместимость Java.
Т.е. средний java-программист не смог в Scala (как например я)
А проекты хорошие, разработчиков нужно много, чтобы пилить БП

Kotlin-же лихо стартовал, без хайповых проектов.
Только за счет огромного количества синтаксического сахара.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918327
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul, David Pollak тоже не смог. Хотя он и автор книг по Scala.

Так что ты - не один.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918329
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он стартовал за счет того что его промоутили и продолжают промоутить житбрейны и гугель лично впихивая туда кучу усилий и конечно же бабла.
на мое имхо на скале писать как на котлине или даже как на джаве проблем особых нет от слова совсем - плюшки все те же в наличии.

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

я сейчас сижу на проекте где по стечении двух лет тупо решили что скала в целом бизнесу не интересно, нет очевидного и явного бизнеспрофита, а вот головняк есть - и переезжают на джава котлин.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918341
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT, не одобряю твою манеру коверкать слова.

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

Не держи в себе короче.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918346
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT

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

Есть проект что-то типа scala-native. Насколько я понял ребята замахнулось на сильный перформанс.
Если он взлетит тогда scala будет собирать бинарники по производительности такие-же как clang/rust.
Потому-что в стек технологий они вставили тот-же промежуточный компиллятор.

Серъезная предъява. Я так ду.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918421
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
он стартовал за счет того что его промоутили и продолжают промоутить житбрейны и гугель лично впихивая туда кучу усилий и конечно же бабла.


JetBrains - да промоутили.
С Гуглом немного сложнее.
Скажем так они (Гугл) дествовали по принципу - "Не можешь победить, возглавь!"
Т.е. это было большей частью иннициатива снизу.
Когда еще бета версию Kotlin распробовали мобильщики.

andreykaT

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


Ну ФП сейчас и в Java внедряют, так что тут Scala первая, но не единственная.

andreykaT

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


Главная проблема Scala что интероперабельность с Java ну очень посредственная.
Так что иногда нужно плясать с бубном, чтобы подключить библиотеку Java и наоборот.

Для примера Spring.
Был такой проект Spring Scala но как-то сдулся.

В то же время Spring Kotlin наоборот вполне себе живет и процветает.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918479
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спринг со своей парадигмой просто не встроился в скалу. вернее, они это поняли но уже сильно позже и стали рожать какую то реактивщину но сильно после.

у скалы свой спринг есть - плей на акке и гуисе. для сферического в вакууме набора задач в общем то тоже самое что и спринг но такой модный реактивный... да он и на джаве есть.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918481
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Ну ФП сейчас и в Java внедряют, так что тут Scala первая, но не единственная.

Давай я тебе расскажу одну штуку. Java - это очень (!) консервативный язык. У него есть комьюнити (JCP
Java Community Process) где обсуждаются все-все возможности развития. Комьюните это строгое.
И практически всегда отвергающее всё новое. Потому что слишком много стоит на кону. Много
ентерпрайза. И позволить себе такие эксперименты над языком как делает C# это комьюнити не
может.

И это первое и последнее чудо что они втащили в язык синтаксический сахар для method-reference
или как его назвали lambda. Потому что остальное было реализовани библиотеками типа Streams.
Насколько я понимаю под это дело подпилили спецификацию виртульной машины и добавили возможность
жонглировать ссылками на методы. (я попробую найти эти изменения в спеках где-то между 7 и 8).

Объективно реализовать в полной мере ФП в Java будет скорей всего невозможно. Тут будут виновны
система типов (mixin атомов и объетов) а также ограничения самой JVM. А также неполноценный механизм
генериков который был хорош тем что он вообще был создан. И плох тем что он неполноценный. Не такой
как в С++ например.

Поэтому ФП в Java - это жалкая пародия на настоящее ФП. По сути это некий компромисс чтоб бородачи
на самокатах почувствовали себя "в тренде".

Вобщем не обольщайтесь.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918482
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на джаве фп рюшки есть да. и синтаксис с определенными допущениями позволяет писать код.. но... это все не какое то топорное штоле. выглядит как попытка натянуть сову на кактус.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918484
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT

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

Это и сила и слабость скалы. Проблемы начинаются когда собираются вместе лютый ФП-шник с вчерашним java-прогером. А HR как набирают? Знаешь скалу? -Знаю. Ну на 200К. Начинаешь завтра.
В лучшем случае они разобьют друг другу лицо)))
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918489
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Ну ФП сейчас и в Java внедряют, так что тут Scala первая, но не единственная.


Не внедряют а пробуют внедрить, успехи так себе и я не думаю что станет лучше. Java никогда не сможет стать ФП если они сохранят backward compatibility

Код: java
1.
2.
3.
4.
5.
Главная проблема Scala что интероперабельность с Java ну очень посредственная.
Так что иногда нужно плясать с бубном, чтобы подключить библиотеку Java и наоборот.

Для примера Spring.
Был такой проект Spring Scala но как-то сдулся.



И да, и нет. Подключить библиотеку в Java проект не составляет никакого труда, если разработчики озаботились созданием API, как спарк и кафка например. Требовать же спринг на скале - это как требовать поддержку ruby on rails для питонистов, наверное конечно можно, но не стоит. Но тут речь о фреймворках а не либах
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918497
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще уже не понимаю, что в данной дискуссии понимают под ФП )))

В 1990-ом году, в школе, изучал APL.
Ну да, нет там циклов for (как в Basic или Pascal которые изучали до этого), вместо циклов и вызова функции в цикле, нужно делать функцию и перемножать ее на матрицу. В целом, нам было глубоко пофиг, что for, что умножить на матрицу - какая разница?

Только сейчас (лет 5-ть назад), случайно узнал, что оказывается, я изучал ФП ! Как я был крут !

mayton

Java - это очень (!) консервативный язык

Что и плохо.

Посмотреть на Delphi. Взяли Pascal и не побоялись поменять язык так, что бы он был удобен, прост и хорошо сочитался со средой разработки и новыми (на тот момент) веяниями/технологиями. Программы для COM на Delphi выглядят не чуть не хуже/сложнее, чем на VB.

Проперти в Delphi.... Блин, вроде элементарное расширение языка. Почему этого нет в Java? Смотришь на бесконечные простыни get'ов / set'ов и честно говоря, ООП тут же начинает асоциироваться с рядом слов из великого и могучего.

mayton

И это первое и последнее чудо что они втащили в язык синтаксический сахар для method-reference
или как его назвали lambda.
...
Насколько я понимаю под это дело подпилили спецификацию виртульной машины и добавили возможность
жонглировать ссылками на методы

Не уверен.

У меня чувство, что для каждой лямбды просто создается свой отдельный внутренний класс. Никто не мешал и раньше делать "лямбды" (callback'и), только нужно было самому класс создавать.

Т.е. чисто синтаксический сахар. Полезный, но:
1) нужно было сделать уже давно
2) синтаксис лямбд.... совершенно странный, через одно место и полностью велосипедно-квадратный

Ссылок на ф-ции/методы (как в C++) вроде нет.
mayton

Объективно реализовать в полной мере ФП в Java будет скорей всего невозможно.

Ху есть ФП, которое невозможно реализовать?

mayton

А также неполноценный механизм
генериков который был хорош тем что он вообще был создан. И плох тем что он неполноценный. Не такой
как в С++ например.

IMHO механизм генериков в Java хорош именно своей неполноценностью.

Может с точки зрения теории, оно и неполноценно. Но зато с точки практики - просто, понятно и в большинстве случаев работает

template в C++ - IMHO это жуть и мрак.

mayton

Поэтому ФП в Java - это жалкая пародия на настоящее ФП.

У меня большое подозрение, что значительная часть людей под "настоящее ФП" понимают всевозможную порнографию из Java Script и прочих скриптовых языков.

Начиная от отказа в типизации - а кому нафиг нужна НЕ типизированная Java? и останется ли она Java'ов?
и до возможнсоть переписывать вся и все "на лету" и впендюривать свои методы в чужие объекты

Только при чем тут ФП, мне не понятно. Та же самая возможность "впендюривать" в Java Script реализована через ФОРТ ядро. Который, вроде, к ФП и не относится.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918502
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВикипедияА в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов — чистые функции

https://ru.wikipedia.org/wiki/Функциональное_программирование

Как можно сделать ФП который компилируется в JVM bytecode или "будет собирать бинарники по производительности такие-же как clang/rust" мне совершенно не понятно. Что там останется от ФП ?
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918510
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Насколько я понимаю под это дело подпилили спецификацию виртульной машины и добавили возможность жонглировать ссылками на методы. (я попробую найти эти изменения в спеках где-то между 7 и 8).
Скорее - между 6 и 7.
У Шипилёва в одном из старых роликов было про "лямбы врукопашную" на Java 7.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918517
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

У меня чувство, что для каждой лямбды просто создается свой отдельный внутренний класс. Никто не мешал и раньше делать "лямбды" (callback'и), только нужно было самому класс создавать.

Я кажется дизассемблировал лямбду в восьмерке. Получалось что вроде каждая лямбда компилирует в текущем классе
метод в знаком $ в составе имени.

Попробую сегодня уточнить для 11-тки.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918523
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev


Как можно сделать ФП который компилируется в JVM bytecode или "будет собирать бинарники по производительности такие-же как clang/rust" мне совершенно не понятно. Что там останется от ФП ?

Вот тут не понял - а что мешает то? ФП это как SQL - декларативное описание программы. В какой очередности что-то дергать или выполнять(в том числе в абсолютно императивном стиле) - все идет на откуп движку БД. Но у тебя же не возникает вопроса - что там остается от SQL?
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918528
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
Leonid Kudryavtsev


Как можно сделать ФП который компилируется в JVM bytecode или "будет собирать бинарники по производительности такие-же как clang/rust" мне совершенно не понятно. Что там останется от ФП ?

Вот тут не понял - а что мешает то? ФП это как SQL - декларативное описание программы. В какой очередности что-то дергать или выполнять(в том числе в абсолютно императивном стиле) - все идет на откуп движку БД. Но у тебя же не возникает вопроса - что там остается от SQL?

ФП-шность и способность кода собираться через LLVM - это два независимых вектора развития.
Одно другому не мешает. Вот хаскель вроде тоже использует LLVM и ничего.

Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо
умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше
весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе.
То поесле нативного компиллятора ситуация может быть диаметральной.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918532
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Я вообще уже не понимаю, что в данной дискуссии понимают под ФП )))

В 1990-ом году, в школе, изучал APL.
Ну да, нет там циклов for (как в Basic или Pascal которые изучали до этого), вместо циклов и вызова функции в цикле, нужно делать функцию и перемножать ее на матрицу. В целом, нам было глубоко пофиг, что for, что умножить на матрицу - какая разница?

Только сейчас (лет 5-ть назад), случайно узнал, что оказывается, я изучал ФП ! Как я был крут !

Тогда ты изучал процедурное программирование а не ФП.

maytonХу есть ФП, которое невозможно реализовать?


Все можно, вопросв том как получится. Классическое ФП предполагает как минимум immutable - в Хаскеле например это вшито, в java же мутабельность повсеместна и нету способа гарантировать ее отсутствие в отдельно взятом куске кода, это и создает проблемы. Все эти map, flatMap io-монады работают потому что они следуют неким законам
Также в джаве геморно с нулами и эксепшенами ну и система типов слабовата, поэтому не внося кардинальные изменения в язык ее не сделаешь ФП-шной, да и не надо если честно.
IMHO механизм генериков в Java хорош именно своей неполноценностью.

Может с точки зрения теории, оно и неполноценно. Но зато с точки практики - просто, понятно и в большинстве случаев работает

Реально тебе нравится Map<Key<? super String>, Container<A extends Comparable<A>> понятным и очевидным? а как в рантайме отличить List<String> от List<Int>?
template в C++ - IMHO это жуть и мрак.

Возможно, но есть же и другие языки? Та же Scala просто уделывает по дженерикам
У меня большое подозрение, что значительная часть людей под "настоящее ФП" понимают всевозможную порнографию из Java Script и прочих скриптовых языков.

Ну это их проблемы. Вообще не сталкивался конкретно с таким, но что ФП понимают неправильно - это да

Начиная от отказа в типизации - а кому нафиг нужна НЕ типизированная Java? и останется ли она Java'ов?

Хотя есть примеры нетипизирванного ФП, все же на мой взгляд оно реально рулит только при сильной типизации

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

Это может быть полезно. Как вариант решения expression problem.

Но соглашусь с основным поинтом - ФП у каждого свое в голове, но нормальные материалы начинают появляться и я думаю что в скором времени "все договорятся". Просто говоря о ФП мешают много всего в кучу, хотя сама идея очень простая - программа описывается как "рецепт" где прописываются зависимости по данным(что от чего зависит) и способы получить из одних данных другими посредством чистых функций. Все описания сайд эффектов выносятся в lazy трансформации, и они выполняются непосредственно в рантайме.
Таким образом ФП программа это некое синтаксическое дерево, которое подается на вход интерпретатору, в идеальном случае в методе main - которое и делает всю черную работу
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918534
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо умного и лаконичного языка еще и язык с высоким перформансом.
Подчёркнуто мною.
Могут и не получить, поскольку функциональный язык может генерировать больше "мусора", мемоизация может потребовать больше памяти, а без мемоизации - может не быть и выигрыша по скорости.Если раньше на чаше весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе.
То поесле нативного компиллятора ситуация может быть диаметральной.А что понимается под "нативным компилятором"???
Если AOT/JIT, то оба они работают с байт-кодом и не зависят от механизма генерации этого байт-кода.
Если речь о прямой трансляции входного языка в байт-код (без промежуточной генерации java-текста), то как-то не наблюдается таковой.
Наверное, создание эффективного компилятора с языка высокого уровня - не самая тривиальная задача?
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918535
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В С++ темплейты позволяют инжектить примитивные типы. int/double/long.
В Java - только объекты-обёртки каждый из которых имеет офигенный футпринт.
Концептуально вроде цель достигнута. Генерик работает но реализация конечно говно.
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918536
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо
умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше
весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе.
То поесле нативного компиллятора ситуация может быть диаметральной.


Ну я ради интереса года два назад писал бенчмарки и никакой разницы между скалой и java не заметил по перфомансу, все в пределах погрешности. Насчет того что при native станет лучше - я бы сильно не надеялся. Во-первых там есть ряд ограничений, во-вторых таже java заоптимизирована по самое небалуй и местами сравнимо с C++, так что...
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918538
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
mayton


Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо
умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше
весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе.
То поесле нативного компиллятора ситуация может быть диаметральной.


Ну я ради интереса года два назад писал бенчмарки и никакой разницы между скалой и java не заметил по перфомансу, все в пределах погрешности. Насчет того что при native станет лучше - я бы сильно не надеялся. Во-первых там есть ряд ограничений, во-вторых таже java заоптимизирована по самое небалуй и местами сравнимо с C++, так что...

Я в топиках карточного рей-трейсера обязательно подниму эту тему.
Просто мой технический долг там лежит. Scala- реализация глючит.
Тоесть не рендерит картинку правильно. И это меня обескураживает.
Так-бы я уже сделал native benchmark
...
Рейтинг: 0 / 0
Сложить два числа в Kotlin :)
    #39918542
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В С++ темплейты позволяют инжектить примитивные типы. int/double/long.
В Java - только объекты-обёртки каждый из которых имеет офигенный футпринт
... который можно удалить за счёт эскейп-анализа в JIT.
Точно-точно офигенный?
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Сложить два числа в Kotlin :)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]