LINUX.ORG.RU

Выпущена Scala 2.8.0

 , , ,


1

1

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

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

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

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

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

★★★

Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от Viglim

> .NET? JAVA? Скрещивание? Не нужно!

Viglim не нужен! :))

Scala весьма неплохой язык, жаба по сравнению с ним - говно.

Misanthrope
()

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

val myButton = new QPushButton {
  clicked --> {
    doSomething()
    // and yet another
  }
}

Misanthrope
()

> Переработанная библиотека коллекций.

Новая реализация массивов.


ППЦ... А вам не кажутся такие вещи слишком фундаментальные, чтобы к версии 2.8 их менять? Я не в том смысле, что прогресс - это плохо, а что С САМОГО НАЧАЛА это надо делать правильно, чтобы на выходе не получалось такое Г как ДотНЕТ?

matumba ★★★★★
()

Классный язык. Отличное сочетание ООП и функционального подхода.

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

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

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

Переработанная библиотека коллекций.

Коллекции и так были очень хороши. А теперь их ещё улучшили. С сохранением совместимости.

Новая реализация массивов.

А это для скорости. Тоже с сохранением совместимости благодаря неявным преобразованиям.

С САМОГО НАЧАЛА это надо делать правильно

Это неплохо, конечно. Только вот никто не знает как делать сложную систему правильно с первого раза.

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

:)) Просто кончаю майонезом!

И давно это с вами? :)

Это ВСЕ причины, по которым надо юзать Сцалу?

Нет. Это просто пример засахаренного с помощью имплицитов кода.

Misanthrope
()

Редко появляется язык, который нравится почти всем, кто с ним ознакомился

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

> Коллекции и так были очень хороши. А теперь их ещё улучшили. С сохранением совместимости.

Лады, вопрос снят. Меня напугал опыт с ДотНЕТом, когда сначала сделали тупые массивы, написали классы, а потом, почесав затылок, придумали дженерики и соотв. коллекции - а библиотеку-то уже не перепишешь!

Только вот никто не знает как делать сложную систему правильно с первого раза.


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

matumba ★★★★★
()

Жаба по сравнению со Скалёй говно хотя бы потому, что не умеет так:

import com.example.{MyFuckingClassWithLongLongName => MFClass}

val mfc = new MFClass

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

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

SlothSpot
()

Выбирал для проекта между Scala и Clojure, остановился на последнем, но за скалой продолжаю следить, отличный инструмент

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

>Примерно так сейчас развивается D

И поэотму на нём никто ничего не пишет%)

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

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

Там, вроде как, есть привязка к Camel. Но мне разбираться было некогда, а ничего такого навороченного не требовалось. А JMS осилить несложно.

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

Там функциональщины полный набор. ADT, pattern matching, оптимизация хвостовой рекурсии, замыкания и всё то, что я сходу забыл упомянуть.

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

>> там функциональщины столько сколько и в питоне?

даже поболее, большое влияние ML-языков

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

Там функциональщины полный набор. ADT, pattern matching, оптимизация хвостовой рекурсии, замыкания и всё то, что я сходу забыл упомянуть.

Справедливости ради, по-моему, не в этом основное преимущество Скали. Скорее, оно в наличии огромного количества жабских библиотек (которые, кстати, вынуждают писать больше императивного ОО кода). Если нужно только ФП, то я бы предпочёл Haskell или, на худой конец, OCaml. Но функциональные фитчи Скали аццки рулят!

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

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

folone
()

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

ох щи~! теперь оно есть памяти в 2 раза больше? Не нужно.

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

а где это ты функциональщину в питоне увидел?

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

Было бы неплохо привести код этих бенчмарков. А то чувствуется что написаны они в жаба-стиле и левой ногой.

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

> А что не так с коллекциями и массивами в .NET?

С коллекциями как раз всё так - БЕЗ коллекций хреново! :) Помнишь времена ArrayList? Отсюда и имеем (в ВыньФормс) вместо красивого List<Control> уё_ищный ControlCollection.

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

> Но синтаксис того же Хаскеля выглядит более привлекательным для ФП.

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

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

Пффф, нашел что показать. На shootout нельзя полагаться вообще ни в чем. По ссылке традиционно императивный жабовский код, только на scala ( что и ожидалось ). Можешь еще там посмотреть код бенчмарков Ocaml - они вообще в Си-стиле написаны, по тыщще LOC, жуть!

anonymous
()

достали новости с опеннета

hdclnr
()

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

Подробности

...


Подробности



Артемий негодуе!

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

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

Да ну вы бросьте. Скаля - язык костылей (весьма неплохих), которые делают её FP'like и не ломают совместимость с жабой. Приоритет для операторов задать нельзя; передавать функции приходится с подпоркой «_», mList.map(fun _), сравните mList `map` fun, ну и т. п.. Это, конечно, только из мелочей. Просто у меня есть неплохой опыт программирования на Хаскеле и Окамле (около 2-х лет) и к Скале я отношусь, скорее, как к хорошему ОО языкус ФП фитчами, ну и совместимостью с жабскими библиотеками.

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

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

писать все одной простыней - это действительно «песня»

ahonimous
()

Забыли тэг «sexual minorities»

anonymous
()

для платформ Java и .Net Scala 2.8.0.

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

А как в скале принято работать с событиями. Есть что-то свое и функциональное типа IObservable? Или через стандартный явовский шаблон XXXListener/addXXXListener/removeXXXListener? Знаю, что не ФП, но иногда такое ООП очень бывает нужным.

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