powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Scala
25 сообщений из 94, страница 2 из 4
Scala
    #39449278
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rfqHett,
в общем, у меня возникли те же чувства, что и у вас. Некоторые кроме чувств приводят весомые аргументы: http://www.mapdb.org/blog/scala_has_weakly_typed_syntax/
Но понимать тексты на Scala весьма выгодно в плане зарплаты.

Лол, автор путает by-name параметры и лямбды, о чем тут можно говорить... А аргументы в стиле

Код: java
1.
2.
map
  put(3,"two") 



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

Да, scala сложна, но не настолько как рисуют оналитеги типо этого. Она нашла свою нишу в bigdata, где по факту не нужна никакая магия, а просто функциональные коллекции, которые на голову выше чем в java.
...
Рейтинг: 0 / 0
Scala
    #39449485
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Можно начать программировать в стиле java, даже точки с запятой можно оставить в конце выражений.
> И постепенно осваиваться.

Я думаю это один из самых больших недостатков Скалы. Правильный подход - ломать практики Java поскольку они плохо ложаться на функциональное и "легковесное" программирование. А Скала позволяет писать Жава код, Куча скалистов - это бывшие жависты, продолжающие писать свою Жава лапшу. В итоге - все библиотеки и экосистема языка забита низкокачественными проектами в стиле Жава.
...
Рейтинг: 0 / 0
Scala
    #39449833
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде всего, зачем вам читать эту простыню: я прогал 8 лет на джаве, я сижу 3 года на скале и возвращаться не собираюсь. Это как возвращаться на паскаль с С++.

говоря субъективно, на scala надо писать, т.к. я не знаю ни одного человека, который вернулся бы обратно на java после хотя бы полугода разработки.

говоря объективно:

- scala как процедурно-объектный язык мощнее джавы по дизайну. В ней удобнее использовать лямбды, она обладает намного более мощным аналогом switch (pattern matching), её коллекции изначально заточены под операции, которые в джаве доступны только через стримы или внешнюю либу типа гуавы, в ней более гибкие упрощающие инкапсуляцию области видимости и т.д. и т.п.

- scala/sbt как среда сборки пропагандирует современный подход к разработке с автоматической рекомипляцией/быстрым рестартом приложения. Идеологию Play framework следовало бы почитать всем разработчикам для JVM.

- scala как технология представляет собой идеологию и набор библиотек для разработки эффективного асинхронного кода. Scala future, Akka, Finagle.

- scala как функциональный язык позволяет перетянуть больше парадигм ФП в промышленное применение. В основном это касается стандартных монад (Option, Future, Either) и их композиции. Продвинутые темы, такие как монадные трансформеры, свободные монады, абстрактные типы и типонезависимый код всё еще на стадии эксперимента - нет 100% уверенности, что это упрощает разработку, а не наоборот

И минусы:

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

- scala компилируется значительно медленнее, чем java. В ФП-проектах время компиляции становится сравнимым с С++.

- 100% надежной поддержки в IDE пока нет. Ситуация похожа на С++ в начале века - простой код обрабатывался IDE хорошо, но шаблоны посложнее сводили с ума анализатор.

- минус, он же плюс: отладчик в скале малополезен. Из-за обилия лямбд проще переписать код так, чтобы в нем гарантированно не было ошибок, чем ставить точки останова.
...
Рейтинг: 0 / 0
Scala
    #39449842
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПодытожив все прочитанное вчера (а мыслей было на много больше чем я тут написал, что-то уж из головы все вылетело) - пришел к выводу, что это скорее инструмент фанатиков, помешанных на "идеальном коде", которые больше времени теоретизируют.

Что скажете?
Кину 5 копеек.

Языки программирования создают не боги и не небожители. А обычные инженеры (зачастую). Языки
становятся на долгие десятилетия стандартом общения между программистом и имплементацией.
Как следствие. Ошибки или недостатки которые заложил создатель мы тащим долгие годы.
Почему Джеймс Гослинг не заложил в java парадигму беззнаковой арифметики. Ведь процессоры
прекрасно это поддерживали? Почему в первых версиях не было типа enum, не было generics,
и не было семантики строкового аргумента внутри switch? Почему API сразу не поддержал
out.printf, а потребовалось несколько лет чтобы осознать что это реально практично и полезно?
Почему строки нужно сравнивать только через equals() а не через более короткий binary operator?
Почему нельзя перегрузить + для сложения матриц и векторов? В какой-такой концепции ООП
записано что этого делать нельзя? И такой поток "почему" у меня - бесконечен.

И с другой стороны. Мартин Одерский. Профессор. Да еще и специализируется на ЯЗЫКАХ.
Этот человек знает всё о всех парадигмах. Он не стал размениваться на мелочи.
Он заложил в Scala ВСЕ-ВСЕ языковые парадигмы которые только существуют.
Серъезно! Там только чорта в ступе не хватает. И если вы однажды (с похмелья)
вдруг решили создать свой язык или DSL или скриптик .. то замрите (!) на минуточку
и вспомните что в Scala это уже есть! Натурально. Фундаментальные стратегии
работы с коллекциями такие как map, flatMap, fold воплощены в scala в то время
как в Java к ним только-только подходят и то без понимания сути а инструментально,
как побочка от работы со Streams. В Scala можно постулировать не то что жалкое
целое число или комплексное или вектор. Можно объявить "группы", "кольца"
и прочие материи высокого порядка математики и далее унаследовать от них
поведение. В Scala решена проблема ромбовидного наследования. Решена бротва!
Вы всё спорите в топиках ООП? Так знайте! Она - формализована в Scala и результат
детерминирован. Никакого UB! Scala - статически типизирована на уровне компиллятора.
А это значит что мы получаем формальное доказательство правоты нашего
алгоритма после компилляции целого леса шаблонов и функций. И это значит
что никаких ошибок рантайма при кастинге не будет! Это - закон! А что
может быть лучше для программиста чем закон который гарантирует
что код - верный.

И еще раз. В Scala есть всё! Если чего-то нет - то читайте внимательно.

Я сейчас не говорю о практике или о статистике использования этого ЯП.
Это отдельный вопрос. Но теоретический батл Java уже давно проиграла.
Что может инженеришко Гослинг противопоставить профессору языковых
наук Одерскому!? Это вам не хер собачий! Это академичский подход.
Это - наука! А не дурацкие фреймворки с бинами. Мдя....

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

Вот такие вот 5 копеек. Спасибо за внимание.
...
Рейтинг: 0 / 0
Scala
    #39449849
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonHettПодытожив все прочитанное вчера (а мыслей было на много больше чем я тут написал, что-то уж из головы все вылетело) - пришел к выводу, что это скорее инструмент фанатиков, помешанных на "идеальном коде", которые больше времени теоретизируют.

Что скажете?
Кину 5 копеек.

Языки программирования создают не боги и не небожители. А обычные инженеры (зачастую). Языки
становятся на долгие десятилетия стандартом общения между программистом и имплементацией.
Как следствие. Ошибки или недостатки которые заложил создатель мы тащим долгие годы.
Почему Джеймс Гослинг не заложил в java парадигму беззнаковой арифметики. Ведь процессоры
прекрасно это поддерживали? Почему в первых версиях не было типа enum, не было generics,
и не было семантики строкового аргумента внутри switch? Почему API сразу не поддержал
out.printf, а потребовалось несколько лет чтобы осознать что это реально практично и полезно?
Почему строки нужно сравнивать только через equals() а не через более короткий binary operator?
Почему нельзя перегрузить + для сложения матриц и векторов? В какой-такой концепции ООП
записано что этого делать нельзя? И такой поток "почему" у меня - бесконечен.

И с другой стороны. Мартин Одерский. Профессор. Да еще и специализируется на ЯЗЫКАХ.
Этот человек знает всё о всех парадигмах. Он не стал размениваться на мелочи.
Он заложил в Scala ВСЕ-ВСЕ языковые парадигмы которые только существуют.
Серъезно! Там только чорта в ступе не хватает. И если вы однажды (с похмелья)
вдруг решили создать свой язык или DSL или скриптик .. то замрите (!) на минуточку
и вспомните что в Scala это уже есть! Натурально. Фундаментальные стратегии
работы с коллекциями такие как map, flatMap, fold воплощены в scala в то время
как в Java к ним только-только подходят и то без понимания сути а инструментально,
как побочка от работы со Streams. В Scala можно постулировать не то что жалкое
целое число или комплексное или вектор. Можно объявить "группы", "кольца"
и прочие материи высокого порядка математики и далее унаследовать от них
поведение. В Scala решена проблема ромбовидного наследования. Решена бротва!
Вы всё спорите в топиках ООП? Так знайте! Она - формализована в Scala и результат
детерминирован. Никакого UB! Scala - статически типизирована на уровне компиллятора.
А это значит что мы получаем формальное доказательство правоты нашего
алгоритма после компилляции целого леса шаблонов и функций. И это значит
что никаких ошибок рантайма при кастинге не будет! Это - закон! А что
может быть лучше для программиста чем закон который гарантирует
что код - верный.

И еще раз. В Scala есть всё! Если чего-то нет - то читайте внимательно.

Я сейчас не говорю о практике или о статистике использования этого ЯП.
Это отдельный вопрос. Но теоретический батл Java уже давно проиграла.
Что может инженеришко Гослинг противопоставить профессору языковых
наук Одерскому!? Это вам не хер собачий! Это академичский подход.
Это - наука! А не дурацкие фреймворки с бинами. Мдя....

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

Вот такие вот 5 копеек. Спасибо за внимание.


Взвился бывший алкоголик,
Матершинник и крамольник,
Надо выпить треугольник,
На троих его даёшь.
Разошёлся, так и сыпет,
Треугольник будет выпит,
Будь он параллелепипед,
Будь он круг, едрёна вошь.
...
Рейтинг: 0 / 0
Scala
    #39449867
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfИ минусы:

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

- scala компилируется значительно медленнее, чем java. В ФП-проектах время компиляции становится сравнимым с С++.

- 100% надежной поддержки в IDE пока нет. Ситуация похожа на С++ в начале века - простой код обрабатывался IDE хорошо, но шаблоны посложнее сводили с ума анализатор.

- минус, он же плюс: отладчик в скале малополезен. Из-за обилия лямбд проще переписать код так, чтобы в нем гарантированно не было ошибок, чем ставить точки останова.
это очень весомые минусы для промышленной разработки. IMHO
...
Рейтинг: 0 / 0
Scala
    #39449883
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это правда. Под Scala пока нет вменяемого учебника. Тоесть нет дидактического материала
подобного тому что пишет Шилдт, Хорстман.

Нет наработанных практик code-review.
...
Рейтинг: 0 / 0
Scala
    #39449891
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonТоесть нет дидактического материала
подобного тому что пишет Шилдт, Хорстман.
.

Кей Хорстман "Скала для нетерпеливых"
...
Рейтинг: 0 / 0
Scala
    #39449899
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЭто правда. Под Scala пока нет вменяемого учебника. Тоесть нет дидактического материала
подобного тому что пишет Шилдт, Хорстман.

Нет наработанных практик code-review.

Т.е. нету закостенелой единственно верной непогрешимой точки зрения, известной как "лучшие практики".
...
Рейтинг: 0 / 0
Scala
    #39449915
Фотография ponuch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переход на версию 2.12 сломал нафиг проект, написанный под 2.11.7
...
Рейтинг: 0 / 0
Scala
    #39449979
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ponuchпереход на версию 2.12 сломал нафиг проект, написанный под 2.11.7

Интересно, вы разобрались, что конкретно поломалось?
Бинарную совместимость на уровне библиотек никто не обещал, например...
...
Рейтинг: 0 / 0
Scala
    #39449985
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВУ scala мощней система типов, больше уровень абстракции. Можно писать более короткие программы, но и порог вхождения больше.Отлично, немного экстраполируем -> нужен бесконечно сложный абстрактный язык, но и программы на нем писать будет не надо!

Ява взлетела по двум причинам (причем взлетела именно в той области что есть):
- достаточно простой и детерминированный в написании и поддержке (когда определились со стеком)
- достаточно кроссплатформенный (а времена ее создания были как раз самые неопределенные)

Переплюнуть Кобол №2 будет сложно. Хоть скале, хоть чему.
...
Рейтинг: 0 / 0
Scala
    #39449986
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80maytonТоесть нет дидактического материала
подобного тому что пишет Шилдт, Хорстман.
.

Кей Хорстман "Скала для нетерпеливых"
Дада. Это моя настольная книга. Но она не годится в качестве учебника тоже.
...
Рейтинг: 0 / 0
Scala
    #39450113
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80maytonТоесть нет дидактического материала
подобного тому что пишет Шилдт, Хорстман.
.

Кей Хорстман "Скала для нетерпеливых"
Скорее нет книги аналогичной Эффективная Java от Блоха. С best practice и стандартизированными подходами к решению задач.
...
Рейтинг: 0 / 0
Scala
    #39450568
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭтот человек знает всё о всех парадигмах. Он не стал размениваться на мелочи.
Он заложил в Scala ВСЕ-ВСЕ языковые парадигмы которые только существуют.
Серъезно! Там только чорта в ступе не хватает.

И это весьма плохо. Поскольку вынуждает тратить на освоение языка куда больше сил и времени нежели реально надо. Мастодонты реализующие все и вся регулярно появляются и проваливаются. Например, был такой язык PL/I. Вчистую проигравший С и Pascal. Почему? Было очень мало программистов освоивших его полностью.
Аналогичная ситуация с противостоянием С++ и Delphi в коммерческом секторе, С vs C++ в написании драйверов. Ну неохота тратить время на тысячи бесполезных тонкостей. В последнем случае формально используются компилятор С++, но реально пишут используя лишь некоторые расширения к С.
Называть Гослинга инженеришкой глупо. Гослинг сознательно урезал язык и большое ему за это спасибо. Хотя, если бы Java была бы разжиревшим слоном, то она бы не пришла к языку № 1 в мире. Он взял концепции оправдавшие себя и выкинул все что без особой надобности.
Ну что ж, академические языки потому и не находят применения в коммерческом секторе, что их мощь чаще вынуждает тратить силы впустую.
...
Рейтинг: 0 / 0
Scala
    #39450631
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quot Hett]Вот вчера не мог уснуть и решил почитать про эту Scala.
Просмотрел несколько разных статей на тему "Почему скала в овер100500 раз удобнее чем ява" и, честно говоря, так и не понял.


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

Одна невстроенность в язык BigDecimal уже много стоит. Это для языка, который используется для бизнес-приложений!


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


это уже немало! Если тебе это не важно, почему на ассемблере не пишешь?

- Функциональное программирование - действительно ли оно нужно?..

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

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

Что скажете?

ты непрофессионал.
...
Рейтинг: 0 / 0
Scala
    #39450638
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Blazkowicz]ФП реально нужно. Благодаря лямбдам решение многих моих насущных задач упростилось в разы.

Ну, лямбды - это еще далеко не все ФП...

. Для бизнеса актуальна и проблема кадров. Порог входа в язык ещё выше. А рынок и так голодает от недостатка квалифицированных разрабов.

"еще выше"?
Выше чего, нулевого порога в Java?
Он просто какой-то есть, ТС тому свидетель...
...
Рейтинг: 0 / 0
Scala
    #39450645
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЕвгенийВУ scala мощней система типов, больше уровень абстракции. Можно писать более короткие программы, но и порог вхождения больше.Отлично, немного экстраполируем -> нужен бесконечно сложный абстрактный язык, но и программы на нем писать будет не надо!
В конечном итоге да! Но сумма интеллекта величина постоянная, а количество населения постоянно растет.
Был например derive , написанный на диалекте lisp, который помещался на дискетку 1,2 дюйма и который позволял работать со всей известной мне математикой! MathCad и Maple сильно отставали по возможностям.
SiemarglЯва взлетела по двум причинам (причем взлетела именно в той области что есть):
- достаточно простой и детерминированный в написании и поддержке (когда определились со стеком)
- достаточно кроссплатформенный (а времена ее создания были как раз самые неопределенные)

Переплюнуть Кобол №2 будет сложно. Хоть скале, хоть чему.
Ява еще долго будет в тренде, ибо формоклепательство и тривиальная кодописанина пользуется спросом.
Такие языки, как scala предназначены для решения серьезных задач.
...
Рейтинг: 0 / 0
Scala
    #39450650
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivэто уже немало! Если тебе это не важно, почему на ассемблере не пишешь?
Краткость - не всегда сестра таланта.

MasterZivпочему бы и нет? например, оно позволяет автоматически распараллеливать выполнение программы.
Мой вопрос скорее подразумевал парадигму ФП в чистом виде, коим обсуждаемый язык преподносится.

MasterZivты непрофессионал.
Даже и не собирался себе этот титул присуждать.
...
Рейтинг: 0 / 0
Scala
    #39450653
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettМой вопрос скорее подразумевал парадигму ФП в чистом виде, коим обсуждаемый язык преподносится.
И чтобы не цеплялись к словам, поправлюсь, имел в виду чистым от процедурного стиля.
...
Рейтинг: 0 / 0
Scala
    #39450678
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivпочему бы и нет? например, оно позволяет автоматически распараллеливать выполнение программы.

Сомнительное утверждение.
...
Рейтинг: 0 / 0
Scala
    #39451919
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://ru.coursera.org/learn/progfun1

есть такой курс - его нужно пройти и решить для себя нужна ли скала или нет
...
Рейтинг: 0 / 0
Scala
    #39452084
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВMasterZivпочему бы и нет? например, оно позволяет автоматически распараллеливать выполнение программы.

Сомнительное утверждение.
Erlang
https://ru.wikipedia.org/wiki/Erlang#.D0.9F.D0.B0.D1.80.D0.B0.D0.BB.D0.BB.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B2.D1.8B.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F
...
Рейтинг: 0 / 0
Scala
    #39452642
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часто вижу люди упоминают что язык Х не такой мощный как Скала. Инересно увидеть пример кода на Скале демонстрирующий это, желательно короткий который демонстрирует это. Но реальный, не просто какой-то абстрактный функтор или монада, а привязанное к чему-то совершенно реальному и практичному, т.е. этот пример должен реально использоваться и использоватся часто и приностиь значительную пользу .
...
Рейтинг: 0 / 0
Scala
    #39452661
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  sealed trait Shape //sealed - все потомки должны быть объявлены в этом файле
  case class Dot(x: Int, y: Int) extends Shape //иммутабельный класс с конструктором, equals, hashcode и toString
  case class Circle(x: Int, y: Int, r: Int) extends Shape
  case class Square(x1: Int, y1: Int, x2: Int, y2: Int) extends Shape

  //вычисляем площадь фигуры
  def area(s: Shape): Double = s match {
    case Dot(x, y) => 0 // s instanceof Dot, x и y - это поля объекта Dot
    case Circle(x, y, r) => Math.PI * r * r
    case Square(x1, y1, x2, y2) => (x2 - x1) * (y2 - y1)
      //если мы забыли задать условие для какого-то типа, компилятор выдаст предупреждение
  }



А теперь прошу - то же самое на джаве.
...
Рейтинг: 0 / 0
25 сообщений из 94, страница 2 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Scala
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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