LINUX.ORG.RU

Выпущена Scala 2.8.0

 , , ,


1

2

После выпуска 7 релиз-кандидатов увидела свет финальная версия реализации гибридного языка программирования для платформ Java и .Net Scala 2.8.0.

Версия 2.8.0 по сравнению с предыдущими содержит следующие изменения:

  • Переработанная библиотека коллекций. Подробности
  • Новая реализация массивов. Подробности
  • Специализация типов. Подробности
  • Именованые аргументы и аргументы по умолчанию. Подробности
  • Объекты пакетов. Теперь пакеты могут содержать не только классы и объекты, но и функции, переменные и алиасы типов.
  • Дополнена библиотека Scala Swing, улучшена документация
  • Переработан REPL. Основным нововведением является автодополнение по Tab.
  • Изменения в алгоритме поиска неявных аргументов.
  • Новая библиотека комбинаторов парсеров. Теперь поддерживаются грамматики с левой рекурсией.
  • Улучшения в библиотеке обработки XML.
  • Улучшения в процедуре вывода типов.
  • Улучшения аннотаций. Подробности
  • Улучшения в реализации актёров.
  • Поддержка продолжений (continuations). Продолжения поддерживаются плагином компилятора.
  • Множество исправлений. Подробности

Также выпущены новые версии сопутствующих инструментов: scaladoc 2, sbaz 2, scalap, Scala-плагин для Eclipse.

>>> Подробности

★★★

Проверено: JB ()

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

Я бы сказал, что именно синтаксис и погубил Хацкель

а мужики-то и не знают

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

>Я бы сказал, что именно синтаксис и погубил Хацкель. :) Каждый раз, когда я за него брался, эта белиберда из знаков пунктуации убивала всё напрочь.

Лишь твоя убогость в этом виновата, мартышка.

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

Майкрософт недавно проспонсировал Одерского сотоварищи чтобы запилили им скалу и всю инфраструктуру (типа там плагинов для студии) под дотнет.

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

>Я бы сказал, что именно синтаксис и погубил Хацкель. :) Каждый раз, когда я за него брался, эта белиберда из знаков пунктуации убивала всё напрочь.

Где? Меньше «знаков пунктуации» пожалуй только в лисп да форт =)

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

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

Настоящий Программист обращает внимание на фичи языка, а на ерунде типа синтаксиса не задрачивается.

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

>Разрабатываем GUI на Scala + QT (Jambi) — это просто песня!

Он к стати мерт или жив? Джамби в смысле?

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

>Ещё один наслушался Луговского.

Не важно, кого наслушался. Синтаксис - это даже не вторичный фактор при выборе ЯП.

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

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

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

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

>А вам не кажутся такие вещи слишком фундаментальные, чтобы к версии 2.8 их менять?

А я сильно сомневаюсь, что «Новая реализация массивов.» автоматически обозначает отказ от старой реализации и прекращение её поддержки.

KRoN73 ★★★★★ ()

Радостно. Бесспорно единственный язык под JVM на котором можно писать.

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

> Майкрософт недавно проспонсировал Одерского сотоварищи чтобы запилили им скалу и всю инфраструктуру (типа там плагинов для студии) под дотнет.

пруфлинк не помешал бы.

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

>Настоящий Программист обращает внимание на фичи языка

Синтаксис - одна из основных фич любого языка :)

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

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

Можно поподробнее?

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

Scala - статически типизированный, Clojure - динамически. шонепонятно?

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

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

Серьезно?
http://www.digitalmars.com/d/2.0/features2.html

Ну и где он этот D?

r ★★★★★ ()

>языка программирования для платформ Java и .Net Scala 2.8.0.

К стати 2.8.0 - это для JVM. Для .NET еще не сделано.

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

> Для событий есть actor'ы.

Взглянул на scala.actors (??). Мне кажется, это не то. События не требуют такой сложности. К примеру, F#-вская реализация довольно просто устроена.

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

>передавать функции приходится с подпоркой «_», mList.map(fun _)

Что-то ты не докурил.

scala> val l = 1::2::3::4::Nil
l: List[Int] = List(1, 2, 3, 4)

scala> def f(x:Int) = x * x
f: (x: Int)Int

scala> l map f
res1: List[Int] = List(1, 4, 9, 16)

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

>Хороший язык, но на .NET вряд ли пробьется. Во-первых, трудно себе представить реальный код без завязки на явовские либы. Во-вторых, F#.

Именно поэтому Микрософт дал денег Одерскому чтобы над версией для .NET трудились выделенные люди?:)

http://archive.fosdem.org/2009/interview/martin+odersky

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

>А я сильно сомневаюсь, что «Новая реализация массивов.»

Ничего не поменялось вообщето с точки зрения языка. Изменился механизм трансляции в нативные массивы JVM.

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

то что ты написал будее эта-экспандится в

myList.map({$x -> fun($x)})

- что есть лишним.

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

> передавать функции приходится с подпоркой «_», mList.map(fun _)

Нифига подобного. fun _ - это синтаксический сахар для лямбды: x => fun x. В данном случае лямбда-выражение тут не нужно, можно просто fun.

Сахар с _ удобен в других случаях, например x, y => x.size + y заменяется на _.size + _

pitekantrop ★★★ ()

Хороший язык Scala, одна беда - прибит к JVM. А это значит, что вся инфраструктура у него жабская -> жаба-стайл API, жабские монстро-фреймворки, жабские недо-GUI. Это может и хорошо для ынтырпрайза, но в целом ужасно... Ещё интересно, как относятся к Scala средние жаба-кодеры. Что то мне подсказывает, что в любом проекте, где можно всунуть Scala, кода на самой Scala будет процентов 20, не больше. Эх, беда с современными языками. OCaml заброшен, D - вечный долгострой, Хаскель? - только для извращенцев. Так боюсь и останется старый уродец C++ единственным адекватным выбором ещё лет на 10.

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

Ну дык, слово «динамика» контекстнозависимо, а libastral не установлен.

alt-x ★★★★★ ()
Ответ на: комментарий от pitekantrop

> Сахар с _ удобен в других случаях, например x, y => x.size + y заменяется на _.size + _

Сильный удар по ясности кода. Как же тут отличить один аргумент от другого? Подсчитывать андерскоры? Это напомнило перловские $_[i] для доступа к аргументам. Там и то очевиднее. Вообще, даже по туториалам заметно, что Scala провоцирует обфускацию. Бедные Java-кодеры... Боюсь будущее языка туманно. Ещё и Микрософт его подхватил, опасный симптом. Решили похоже пополнить свою кунсткамеру малоперспективных cool-языков, чтобы в рекламном проспекте к очередной выжал-студии было чем красоваться. Потом переманят Одерски сотоварищи и всё, труба Скале на JVM. А на дотнете он не нужен никому, ясное дело. Может случиться очередной Nemerle.

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

Ладно, толстячок, капельку покормлю.

1. Андерскоры советуют использовать в тех ситуациях, где понятно, зачем они. Не хочешь — не используй. Скала пропагандирует краткость и доступность.

2. Очередной немерле не случится, так как немерле, собственно был задавлен ф#. И майкрософт просто не обратил внимания на него.

3. Одерски точно не переманят, таких идеалистов жвм ещё надо поискать.

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

>Это может и хорошо для ынтырпрайза, но в целом ужасно...

РАсскажи мне про альтернативу. .NET? c++?

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

>Как же тут отличить один аргумент от другого? Подсчитывать андерскоры?

Это и сделано для простых выражений чтобы избежать синтаксического мусора с одной стороны, и с другой стороны это механизм реализации partial application. Маньяки конечно могут употреблять варианты вида:

scala> (_:Int) + (_:Int) + (_:Int)
res9: (Int, Int, Int) => Int = <function3>

но это проблема маньяков:)

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

Вот пример использования (реализация свинового лейаута):

   def minimumLayoutSize( parent: Container ) = layoutSize( parent, _.getMinimumSize, (compWidth, proposedWidth) => max( compWidth, proposedWidth ) )

   def preferredLayoutSize( parent: Container ) = layoutSize( parent, _.getPreferredSize, (_, proposedWidth) => proposedWidth )

   def maximumLayoutSize( parent: Container ) = layoutSize( parent, _.getMaximumSize, (compWidth, proposedWidth) => min( compWidth, proposedWidth ) )

   private def layoutSize( parent: Container, dim: Component => Dimension, limit: (Int, Int) => Int ) = {....}

Эквивалент этих строчек на жабе - охрененно кода.

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

> вместо красивого List<Control>

What a plonker you really are? (C)

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

Я как посмотрел сколько в этом clojure знать надо faustus.webatu.com/clj-quick-ref.html так ну его нафиг

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

> РАсскажи мне про альтернативу. .NET? c++?

Я же упомянул С++. Да, это единственная альтернатива. Дотнет можно было бы принять, если б не анальный зонд... Я лично лет 7 назад ещё верил в прорыв окамла. Увы. Хотя теперь есть OCaml AnalProbeEdition aka F#. Но такие удовольствия не для меня.

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

Потестили, пописáли, поняли, что неудобно - изменили, опять потестили...


Так они так и делали, потестили, пописали, до версии 2.5.0, 2.6.0, 2.7.0 а потом поняли что неудобно и изменили, и тестили 1,5 года между 2.7.0 и 2.8.0

2.8.0 считается релизом 3, но решили 3.0 не называть

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

Вообще все что после Java 1.2 ненадо, испортили язык и испохабили платформу


Тоньше, еще тоньше

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

3. Одерски точно не переманят, таких идеалистов жвм ещё надо поискать


Одерски папа javac, как он сможет бросить свой компилятор?

Karapuz ★★★★★ ()

Scala выползла из могилы? Не нужна, закопайте обратно!

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

одна беда - прибит к JVM


Это не беда, это показывает уровень твоего развития и уровень М.Одерски

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

>Единственный нормальный язык для JVM? Разумеется надо!

Зачем нормальный язык для убогой VM? её это не спасёт.

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

Когда ты нам дашь лучше jvm, все перейдут на нее

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

>Когда ты нам дашь лучше jvm, все перейдут на нее

4.2

Led ★★★☆☆ ()

ненужно, ждём релиза Groovy++ :)

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

Или из-за культовой книги books.slashdot.org/story/10/07/08/152236/?

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