metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-01-08 07:33 pm
Entry tags:

Знаете ли вы, что

Scala - это Haskell в жабьей шкуре?

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

Язык знатно безумный, я почти Programming in Scala дочитал. И кое-какие вещи там сильно похожи на решение некоторых проблем с наследованием и зависимостями типов друг от друга, которых мне не хватало в дельфи и дотнетах :)

[identity profile] berezovsky.livejournal.com 2013-01-09 08:26 am (UTC)(link)
сколько можно править ёбаный комментарий

(Anonymous) 2013-01-09 08:46 am (UTC)(link)
giter8

[identity profile] juan-gandhi.livejournal.com 2013-01-09 08:52 am (UTC)(link)
пять лет назад я поставил на Скалу.

[identity profile] triampurum.livejournal.com 2013-01-09 08:52 am (UTC)(link)
Мне понравился подход из BETA к expression problem, 4 странички с примерами и библиографией. Суровые северные люди. http://www.daimi.au.dk/~eernst/tool07/papers/maspeghi04-ernst.pdf

[identity profile] nealar.livejournal.com 2013-01-09 08:53 am (UTC)(link)
+1

[identity profile] harry_claymore (from livejournal.com) 2013-01-09 10:01 am (UTC)(link)
а sbt такого не умеет ?

[identity profile] thesz.livejournal.com 2013-01-09 11:02 am (UTC)(link)
Через год (в конце 98-го) я начал изучать Хаскель.

[identity profile] permea-kra.livejournal.com 2013-01-09 12:02 pm (UTC)(link)
По сравнению с хаскелем главная проблема в отсутствии гарантированной TCO, только гарантированная оптимизация хвостовой рекурсии. Это сразу налагает довольно много ограничений на код.

[identity profile] Игорь Петров (from livejournal.com) 2013-01-09 01:18 pm (UTC)(link)
И что это за загадочные "остальные прелести языка"?

[identity profile] tonsky.livejournal.com 2013-01-09 01:50 pm (UTC)(link)
Да ладно, у нас была часть кложа-проекта на Жабе, о мейвене даже не думали. lein javac все замечательно билдит.

[identity profile] thedeemon.livejournal.com 2013-01-09 03:41 pm (UTC)(link)
А в соседнем посте вон показывают, что от банальных null'ов избавиться не удается в скале. Some(null) - это ж курам на смех.

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

[identity profile] thedeemon.livejournal.com 2013-01-09 03:43 pm (UTC)(link)
А надо было джаву, был бы уже уважаемым калифорнийским программистом. :)

[identity profile] juan-gandhi.livejournal.com 2013-01-09 03:54 pm (UTC)(link)
Вот, ещё мудрое решение... я тогда и не слыхал про него.

[identity profile] thesz.livejournal.com 2013-01-09 04:42 pm (UTC)(link)
Не быть мне уважаемым калифорнийским программистом. ;)

[identity profile] thesz.livejournal.com 2013-01-09 04:44 pm (UTC)(link)
Ну, я на него попал только с третьего прохода списка языков программирования. ;)

(доступных на тот момент)

[identity profile] thesz.livejournal.com 2013-01-09 04:45 pm (UTC)(link)
В ней нет даже типизации эффектов, о каком богатстве может идти речь?

[identity profile] isorecursive.livejournal.com 2013-01-09 05:56 pm (UTC)(link)
Это, конечно, проблема, но другого уровня, и, во-первых, Null (1 и 2) и NotNull (1 и 2), во-вторых, Just undefined, Just (fix id).

[identity profile] isorecursive.livejournal.com 2013-01-09 06:05 pm (UTC)(link)
Макросы, implicits, удобный синтаксис (согласитесь, это намного лучше, чем это).

[identity profile] golikov konstantine (from livejournal.com) 2013-01-09 06:06 pm (UTC)(link)
из коробки нет, с плагином -- да

[identity profile] golikov konstantine (from livejournal.com) 2013-01-09 06:17 pm (UTC)(link)
а TCO разве не есть "оптимизация хвостовой рекурсии"?

[identity profile] kurilka.livejournal.com 2013-01-09 06:17 pm (UTC)(link)
case выглядит явно лишним, а помимо этого имхо разница очень косметическая (или речь про записать objec.method(args)?)

[identity profile] isorecursive.livejournal.com 2013-01-09 06:19 pm (UTC)(link)
Смотря каких. Например, типизация сдвигов в delimited-продолжениях есть.
А IO и ST нету, но если говорить о хаскеле, то такого как там не сильно и хочется.
Неразглаживаемый из выражений (>>=) - это очень и очень неудобно. Ну кому приятно постоянно писать
x <- a n
y <- a k
if (x `op` y)
  a j =: z

вместо
if (a n `op` a k)
  a j =: z

[identity profile] isorecursive.livejournal.com 2013-01-09 06:24 pm (UTC)(link)
Тем не менее, её хватает, чтобы в хаскеле так никто не писал, а вместо этого выдумывал имя для фунарга и выносил его в where.
Так и получается ... where f ... = ...; g ... = ... и т.д., ведь осмысленные имена не всегда придумываются, и не всегда есть время и желание думать над именованием каждого фунарга.

[identity profile] thesz.livejournal.com 2013-01-09 06:42 pm (UTC)(link)
>if (a n `op` a k)

Я от такого отказался, когда мне было 23 года. 18 лет тому назад.

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

Плюс, вы не знаете про ifThenElse.

[identity profile] thesz.livejournal.com 2013-01-09 06:43 pm (UTC)(link)
А, и внутри STM можно удалить файл.

Так что нет типизации эффектов в Скале, нету. Нетуточки.

Page 2 of 4