LINUX.ORG.RU

Что почитать по Scala.


0

0

Прочитал Scala in examples, не понял, чем все так восхищаются.
Не плохо конечно, но ничего сверхъестественного, ничего
абсолютно уникального. Есть подозрение, что я самое интересное
упустил. Соответственно вопрос, что почитать по Scala,
чтобы узнать самые интересные фичи?

★★★
Ответ на: комментарий от dave

Бегло просмотрел, отличается от Scala in Examples только спеком.

Можно тогда еще список основных отличительных интересных фич языка?
Безотносительно к эффективности их реализации.

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

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

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

Да, кстати, «батарейки» тоже интересуют.
Поскольку например наличие рельс серьезный аргумент в пользу Ruby.

Svoloch ★★★
() автор топика

> Не плохо конечно, но ничего сверхъестественного, ничего абсолютно уникального.

жаба с фичами из ФП. просто и удобно. от кложуры отличается имхо +/- вменяемой связкой стыка жабской объектности и ФП фич. и скоростью :)

хотя... быть может я кложуру просто ниасилил...

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

Ну естественно интересуют «батарейки» Scala а не jvm.

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

Я кстати не заметил радикальных положительных отличий от Сlojure.
С объектами работа поинтереснее чуть-чуть ( :> и <: ) и все.

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

Для такого списка есть «An Overview of the Scala Programming Language» (ScalaOverview), но текст местами тяжелый (System F<:, nuObj).

Мне же скала запомнилась очень сильным ООП. Такого я нигде еще не встречал (смолтока не знаю). Например, абстрактные типы-члены позволяют где-то заменить параметрические типы, а неявные приведения позволяют приблизиться в чем-то к хаскелевским классам типов. Вариантность выглядит естественным продолжением идеи наследования. Несколько напрягает то, что коллекции реализуются через трейты, но это соответствует общей идеологии языка, когда вызывается не функция модуля, а метод объекта. В общем, скала произвела на меня впечатление очень мощного, гармоничного и целостного языка, в котором красиво сочетаются ООП и ФП.

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

Ну, и конечно восхитительный паттерн-матчинг, включая активный (немного напоминает F#).

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

Сама по себе статическая типизация не особо интересна.
Вообще если вдуматься статической типизации и в джаве хватает.
А вот динамически посмотреть как там все крутится из clojure очень удобно.
Но вопрос вообще не в этом. Вопрос какие задачи я могу решить
с помощью этого языка со статичекской типизацией легче, проще и
красивее чем в другом языке со статической типизацией,
например в C++, C#, F#, Haskell.

Например quicksort на Haskell в одну строку.
Это конечно не особо эффективно, но все же интересно.
Или в TCL есть expect. И удобно и интересно.
А в Perl регулярные выражения для обработки текста использовать удобно.

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

> Вообще если вдуматься статической типизации и в джаве хватает.

Хм... может, лучше не вдумываться?

Вопрос какие задачи я могу решить с помощью этого языка со статичекской типизацией легче, проще и красивее чем в другом языке со статической типизацией,

Это было бы отличным вопросом...

например в C++, C#, F#, Haskell.

Если бы не откровенно понтовый^Wнелепый список языков.

quicksort на Haskell в одну строку.

Или в TCL есть expect. И удобно и интересно.

А в Perl регулярные выражения для обработки текста использовать удобно.

Есть у меня странное впечатление, что тебе не нужно читать о Scala.

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

Вопрос какие задачи я могу решить

с помощью этого языка со статичекской типизацией легче, проще и
красивее чем в другом языке со статической типизацией,
например в C++, C#, F#, Haskell

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

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

Хм... может, лучше не вдумываться?

Вот и я о том же :) В рамках моего вопроса,
в типизацию не стоит вдумываться.

Это было бы отличным вопросом...

Это и есть мой вопрос. В чем Scala хороша.

Если бы не откровенно понтовый^Wнелепый список языков.

Это просто список языков со статической типизацией которые я вспомнил
сходу.

Есть у меня странное впечатление, что тебе не нужно читать о Scala.

А почему? Рылом не вышел? :)

Или поставим вопрос так, а кому и зачем стоит читать о Scala?

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

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

Ну это от личной фантазии зависит :) Как-то надо мне было вывести
в формате имя_файла:номер_строки список всех реализаций функций,
в проекте на C написанном. Так lang-c мне много сил сэкономил.
Ну и parsec тоже весьма ничего.

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

Это и есть мой вопрос. В чем Scala хороша


http://www.linux.org.ru/forum/development/5264671?#comment-5267595Ы?

Или поставим вопрос так, а кому и зачем стоит читать о Scala?


Тем кто верит что Scala это серебрянная пуля и решение всех их проблем в грешной юдоли

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

Тем кто верит что Scala это серебрянная пуля и решение всех их проблем в грешной юдоли


Да, проблема. С вопросами веры это не ко мне.

А ссылки я изучу, спасибо.

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

>> Если бы не откровенно понтовый^Wнелепый список языков.

Это просто список языков со статической типизацией которые я вспомнил сходу.

Я понял. И, что характерно, среди них не оказалось ни одного языка для JVM. Такое вот представление о практических задачах, реашаемых с помощью Scala.

Есть у меня странное впечатление, что тебе не нужно читать о Scala.

А почему? Рылом не вышел? :)

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

Или поставим вопрос так, а кому и зачем стоит читать о Scala?

Тем, чья работа связана с Java и языками на JVM.

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

Я понял. И, что характерно, среди них не оказалось ни одного языка для JVM. Такое вот представление о практических задачах, реашаемых с помощью Scala.

Так я и не знаю ни одного статически типизированного под JVM кроме Scala.
JRuby, Clojure - динамика. Groovy не знаю. Jython вроде тоже динамика.
Что еще известного есть?

Если говорить о интеграции с JVM - Clojure моя любовь. Дает мне то,
чего не хватало в Java. Пытаюсь понять что мне может предложить Scala.

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

Спасибо за честность. И о каких стоит читать?

Тем, чья работа связана с Java и языками на JVM.

Как связана? Моя тоже связана. Но я не все время на Java пишу.
Что же не так?

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

>> что характерно, среди них не оказалось ни одного языка для JVM. Такое вот представление о практических задачах, реашаемых с помощью Scala.

Так я и не знаю ни одного статически типизированного под JVM кроме Scala.

И при этом задавать вопрос «какие задачи я могу решить с помощью Scala легче, проще и красивее, чем с помощью Java?» ты почему-то не стал. А ведь именно для этого предназначена Scala - для более простого и красивого решения задач, которые сейчас решаются на java.

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

Спасибо за честность. И о каких стоит читать?

Всякой интересной экзотики много - от Mercury до Clean.

Тем, чья работа связана с Java и языками на JVM.

Как связана?

Непосредственно.

Но я не все время на Java пишу. Что же не так?

Догадайся.

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

И при этом задавать вопрос «какие задачи я могу решить с помощью Scala легче, проще и красивее, чем с помощью Java?» ты почему-то не стал. А ведь именно для этого предназначена Scala - для более простого и красивого решения задач, которые сейчас решаются на java.


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

Всякой интересной экзотики много - от Mercury до Clean.

Mercury - да. Clean - непортабелен и мертв, времена когда он был в
разы быстрее Haskell прошли. Из интересных концепций только
уникальные переменные. Или я не прав?
Но экзотика - это для общей эрудиции.
А к Scala у меня интерес другой. Ее позиционируют не как
экспериментально-экзотический язык, а как язык практический.
Я хочу знать что этот язык мне сулит. Чисто с практической точки зрения.

Догадайся.

Чем троллить, лучше сдамся и выслушаю ответ.

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

> Так что ответ на вопрос «какие задачи я могу решить с помощью Scala легче, проще и красивее, чем с помощью Java?» я тоже буду рад услышать.

Это правильный вопрос. Я и сам не знаю точного ответа, но склоняюсь к ответу «все».

Я хочу знать что этот язык мне сулит. Чисто с практической точки зрения.

Более выразительный язык.

лучше сдамся и выслушаю ответ.

Я не знаю, что не так. libastral.so подсказывает, что Java не является твоим основным языком программирования.

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

> какие задачи я могу решить с помощью Scala легче, проще и красивее, чем с помощью Java?

асиль http://projecteuler.net/, где-то с 30-ой и до конца, на жабе и на скале и сравни. имхо только так (собсно писЯ на языке).

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

Это правильный вопрос. Я и сам не знаю точного ответа, но склоняюсь к ответу «все».


Честно скажу, слабо представляю, чтобы с Hibernate работать было
разительно удобнее работать. Это так, в качестве примера. Буду рад
контр-примеру.

Более выразительный язык.

Тут не поспоришь.


Я не знаю, что не так. libastral.so подсказывает, что Java не является твоим основным языком программирования.


Верно подсказывает. Я сейчас волен в выборе языка для решения задач,
и в последнее время у меня Java была потеснена Clojure.

Но Ваша аргументация, весьма слаба по сравнению с тем же dave.
Что-то на уровне «как-то оно мне ближе».
Что именно Вы на Scala писали и было удобно?

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

Ммм... Поправьте меня если я не прав, но ProjectEuler это же
математика. Не поймите меня не правильно, математика хорошо,
но это не все, что можно делать на языке программирования.
Это раз.
А два, я пока не собираюсь глубоко изучать Scala.
Я просто не единожды слышал очень позитивные отзывы о Scala здесь.
Соответственно, я хотел собрать позитивные примеры, от тех,
кто восхищался Scala, чтобы определить для себя, насколько мне
нужно более глубокое знакомство.

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

> это же математика.

это пачка задачек, которые можно порешать в обед на том или ином языке. мы ведь про язык сейчас, да? безотносительно либ, просто про язык. про его выразительность и мощщЪ.

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

я не понимаю что ты хочешь...

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

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

я хотел собрать позитивные примеры

примеры чего...?

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

> слабо представляю, чтобы с Hibernate работать было разительно удобнее работать.

попробуй.

у меня Java была потеснена Clojure

тогда что ты тут делаешь?

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

это пачка задачек, которые можно порешать в обед на том или ином языке. мы ведь про язык сейчас, да? безотносительно либ, просто про язык. про его выразительность и мощщЪ.


Как раз относительно либ и прочего.

я не понимаю что ты хочешь...


Видимо я плохо объясняю. Выразительность языка - хорошо, но это не все.
Есть еще и платформа на которой он реализован, удобные библиотеки
и фреймворки.

Меня интересует все вместе. Т.е. просто сумма чужого опыта.
Вот надо было сделать - то-то и то-то. На джаве пришлось бы 2 дня писать,
а на Scala 3 строки.

Нужно было на Java взять кучу значений, обработать, отфильтровать,
выбрать первые 300 и построить график статистики.
В Java куча кода, в Clojure - filter, lazy seq, и Incanter и 5 строк обвязки.
Не все в этой ситуации выразительность языка.

Вот такое хотелось бы. Причем не только относительно Java но и того же Clojure.

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


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

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

попробуй.


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

тогда что ты тут делаешь?

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

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

> Как раз относительно либ и прочего.

лолшто?

В Java куча кода, в Clojure - filter, lazy seq, и Incanter и 5 строк обвязки.

в скале +/- так же, как в кожуре.

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

в скале +/- так же, как в кожуре.


Ну вот как раз это я и пытался понять. +/- или на определенных задачах
есть много плюсов. И есть есть то на каких.

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

> на каких.

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

скаля vs кложура — хз. это отдельное и, видать пока, неизведанное поле. во всяком случае копья пока все на месте.

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

>Так я и не знаю ни одного статически типизированного под JVM кроме Scala.

groovy++

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