LINUX.ORG.RU

Вышла Scala 2.10

 


1

3

Объявлено о выходе новой версии языка программирования Scala 2.10.

Основные нововведения:

  • классы-значения (value classes) — новый механизм, позволяющий уменьшить расходы на выделение памяти;
  • неявные модификаторы (implicit classes) теперь относятся к определению классов и призваны упростить расширения для других типов;
  • интерполяция строк (string interpolation) — новый механизм создания строк;
  • Futures и Promises призваны упростить создание многопоточного кода;
  • библиотека Akka Actors теперь является частью языка;
  • наконец-то в состав языка добавлена поддержка макросов.

Текущая стабильная версия языка программирования Scala может быть получена на странице загрузки проекта; исходные коды распространяются на условиях лицензии BSD.

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

★★★★★

Проверено: maxcom ()
Последнее исправление: mono (всего исправлений: 2)

интерполяция строк (string interpolation) — новый механизм создания строк;

А это ещё зачем в ядре? У них же какие-то макросы есть, нельзя чтоли на макросах сделать?

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

Value classes - это не полноценные value-типы из .Net, а по сути, обертка над _одним_ значением.

It has a single, public val parameter that is the underlying runtime representation

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

scala vs ocaml

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

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

HQL в тексте, тут можно надеяться на интеллект идейки, которая одну строку отличит от строки HQL. А там это естественный синтаксис языка. Ну и естественно LINQ работает поверх совершенно разных источников данных, от коллекций до баз

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

Ненужное против ненужного.

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

Шла уже 2.10 версия ненужности, а ее все на закапывали и не закапывали. Она уже и пятнами покрылась, и провоняла вся, а закопать так и не догадались.

Лол, какой смачный БОФОРТ маргинальчика.

Пора признать: Scala вобрала самые полезные фичи, спонтанно изобретенные яйцеголовыми авторами маргинальщины, и довела их до рабочего состояния. Теперь Scala семимильными шагами чешет в мейнстрим, а маргинальщина остается там, где ей и следует быть, — догнивает на помойке.

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

Что-то подсказывает мне, что через несколько релизов Scala перейдёт на круглоскобочный синтаксис

Средневековые алхимики и знахари интуитивно, по наитию приходили к результатам, которые потом были приняты (и проверены!) химией, медициной и биологией. Но при этом алхимия не перестает быть «тупиковой ветвью» в истории познания природы человеком.

Так и с лиспом и прочими маргинальными течениями в IT. Все сколько-нибудь удачные и значительные идеи, случайно родившиеся у разработчиков лиспа, давно перекочевали в нормальные языки. Но это не отменяет все те многочисленные технические изъяны, которые сделали лисп нежизнеспособным и фактически обусловили его фиаско.

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

Готовые надежные библиотеки от Apache/Eclipse/JBoss

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

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)
Ответ на: комментарий от shty

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

Ну, давай. Я посмотрю на тебя, как ты будешь изобретать:

  • кластеризуемый отказоустойчивый высоконадёжный сервер приложений, прозрачно обеспечивающий authentication/authorization/audit и управляемый по JMX;
  • ORM с поддержкой десятков СУБД, NoSQL БД, LDAP и т.п.;
  • распределённый кэш;
  • менеджер распределённых транзакций;
  • транзактную очередь сообщений с гарантией доставки, security и персистентностью;
  • rule engine;
  • MVC-фреймворк;
  • REST-стек;
  • взаимодействие с CORBA 3.0;
  • коннекторы к legacy-ресурсам (мейнфреймы и т.п.).

Для начала хватит. Время пошло, буратино.

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

Впрочем, есть для тебя и другое предложение.

Отставить тарелку с мамкиным борщом и пойти найти серьезную, взрослую работу. Тогда, быть может, ты поймешь, почему «enterprise» неразрывно связан со стеком технологий Oracle, RedHat/JBoss, Apache и Eclipse.

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

Ну, давай. Я посмотрю на тебя, как ты будешь изобретать

ремарка: я всё же удивляюсь - это всегда и во всех проектах нужно? :)

кластеризуемый отказоустойчивый высоконадёжный сервер приложений, прозрачно обеспечивающий authentication/authorization/audit и управляемый по JMX;

kvm + N (of your favorite) linux nodes

ORM с поддержкой десятков СУБД, NoSQL БД, LDAP и т.п.;

ORM - ересь для одностраничных сайтиков по продаже прона

распределённый кэш;

уточни задачу

менеджер распределённых транзакций;
транзактную очередь сообщений с гарантией доставки, security и персистентностью;

берёшь любую mq и вперёд, клиентов полно

rule engine;

что это и зачем?

// точнее даже - что ты здесь имеешь в виду и что хочешь получить

MVC-фреймворк;

зачем?

REST-стек;

без очень толстого мегаэнтерпрайзного фреймворка тут ну никак :)

взаимодействие с CORBA 3.0;
коннекторы к legacy-ресурсам (мейнфреймы и т.п.).

с трупом не взаимодействуют - его хоронят

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

Пора признать: Scala вобрала самые полезные фичи, спонтанно изобретенные яйцеголовыми авторами маргинальщины, и довела их до рабочего состояния.

Неверно. Scala вобрала в себя все высеры маргинальщины, и стала убер-мега-супер-маргинальщиной. Преумножив ненужность маргинальщины тысячекратно.

Теперь Scala семимильными шагами чешет в мейнстрим

Ню ню. Так ее там и ждут. Scala чешет аккурат к параше, где всей маргинальщине самое место.

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

Диванный теоретик такой теоретик.

не угадал - каждой задаче свой инструмент

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

В каких сферах?

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

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

так это какой-то HQL получается

Не - это какой-то expression trees получается. Это контрольная точка LINQ.

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

ремарка: я всё же удивляюсь - это всегда и во всех проектах нужно? :)

В проектах, которые классифицируются специалистами как «enterprise» — да, обычно требуется бОльшая часть перечисленного. Но твое понимание «enterprise» становится всё чудесатее и чудесатее.

kvm + N (of your favorite) linux nodes

Вывод: ты не знаешь, что такое сервер приложений, AAA и monitoring/management.

ORM - ересь для одностраничных сайтиков по продаже прона

Вывод: ты не знаешь, что такое ORM.

уточни задачу

Вывод: ты не знаешь, что такое распределённый кэш.

берёшь любую mq и вперёд, клиентов полно

Вывод: ты невнимательно читал и упустил из виду требования транзактности (в смысле JTA), персистентности и security.

что это и зачем?

Вывод: ты не знаешь, что такое rule engines.

зачем?

Вывод: ты не знаешь, что такое MVC (а также, как следствие, о важнейшем принципе separation of concerns).

без очень толстого мегаэнтерпрайзного фреймворка тут ну никак :)

Не фреймворк ради REST-стека, а REST-стек для интеграции во фреймворк.

с трупом не взаимодействуют - его хоронят

Вывод: ты никогда не работал на реальных крупных проектах, которые оперируют петабайтами информации, в т.ч. накопленной в прошлом.

Итого: ты совершенно не знаком со спецификой enterprise, абсолютно не владеешь терминологией и демонстрируешь общую некомпетентность. Твои представления об enterprise ложны. Вследствие этого, твои реплики в адрес enterprise заслуживают вполне определённого отношения, а дальнейшее продолжение дискуссии представляется сомнительным.

Впрочем, если поработаешь годик другой на серьёзном предприятии, поднимешь свой уровень — возвращайся, продолжим.

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

кластеризуемый отказоустойчивый высоконадёжный сервер приложений, прозрачно обеспечивающий authentication/authorization/audit и управляемый по JMX;

Внимание вопрос: А на хрена JMX? Как бы если уж мы пишем систему, то зачем завязываться на чужеродную технологию? Или для взаимодествия, к примеру, с C++ серверами ты тоже потребуешь JMX?

ORM с поддержкой десятков СУБД, NoSQL БД, LDAP и т.п.;

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

P.S.: Анонимус, ты что то слишком увлекся. В данный момент ограниченным фанбоем начинаешь выглядеть ты. А Enterprise действительно бывает разный.

TheKnight ★★★
()
Последнее исправление: TheKnight (всего исправлений: 2)
Ответ на: комментарий от anonymous

REST-стек;

А я, наивный, думал, что tcp сокеты есть во всех современных языках программирования. Оказывается это такой сириоз бизнес.

почему «enterprise» неразрывно связан со стеком технологий

Если ваш энтерпрайз связан с этими поделками, не значит что все. Кактусы от M$, как минимум, не менее вкусны.

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

>> кластеризуемый отказоустойчивый высоконадёжный сервер приложений, прозрачно обеспечивающий authentication/authorization/audit и управляемый по JMX;

kvm + N (of your favorite) linux nodes

ууу, как все запущенно... погугли что ли, что такое сервер приложений и зачем он нужен.

>>ORM с поддержкой десятков СУБД, NoSQL БД, LDAP и т.п.;

ORM - ересь для одностраничных сайтиков по продаже прона

Как раз там то он и не нужен - проще все организовать несколькими запросами. И писать все это на PHP.

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

Сишарпу до скалы как до луны.

Да.
Ещё лет 5-10 и Скала по популярности Лисп догонит а там и до Луа недалеко!

Может быть макросы уже позволяют.

Imho некоторые особенности на JVM реализовать не получится. К примеру в C# так и не реализовали каринг полностью изза накладных расходов.

С другой строны комманда достаточно изобретательна.
Посмотрим.
Ка минимум extensions уже есть.

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

Опять эту джаву с лямбдами со Scala сравнивают

Вы видимо что-то сказать хотели, но не получилось?

grim ★★☆☆
()
Ответ на: комментарий от I-Love-Microsoft

это ж хорошо, не?

Yep.
Скале бы ещё и синтаксис нормальный...
Вот почему так?
Вложат столько интелектеульного труда в дизайн языка и обгадят синтаксис :(

помню как ныли что в жабке мало сахара

У Жабы свой рынок и Скала туда не просочится.

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 1)
Ответ на: комментарий от Legioner

В orm библиотеку передается выражение, она его может разобрать по составляющим и составить соответствующий sql запрос.

linq2sql это всего лишь небольшая часть linq
Я, лично гораздо чаще linq2xml использую.

Суть же в том что lambda calculus завернули в простую на вид обёртку которая не пугает тех кому тонкости знать не нужно.

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

распределённый кэш;

уточни задачу

Изза тормознутости ОРМ брокеров, объекты кэшируют в памяnи а изза проблем Java с потреблением этой самой памяти её никогда не хватает и поэтому под кэш отводят кластеры в которых организуют кэш объектов котрые при нормальном проектировании можно было грузить из БД по мере необходимости.

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 1)

любопытно, мне одному кажется что было бы удобнее иметь(или включать глобально или флагом компиляции) интерполяцию по умолчанию. и отключать её в случае необходимости флагом типа n"неинтерпретируемая строка"?

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

с другой стороны - наверное это сказалось бы на производительности, ведь s это замена на call(s). Т.е. каждая строка бы интерпретировалась, что в рантайме дало бы накладки... а так интерпретируются только те что должны.

может быть спасёт макрос-левел интерполейшн? включил по дефолту интерполяцию s к примеру. оно на этапе компиляции переписало это в виде обычных ява-строк. а на рантайме это никак не скажется.. вроде должно работать..

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

Вывод: ты не знаешь, что такое сервер приложений, AAA и monitoring/management.

как не знаю, знаю - три с половиной баззворда

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

MVC-фреймворк;

Вывод: ты не знаешь, что такое MVC (а также, как следствие, о важнейшем принципе separation of concerns).

ой, прости, неловко сформулировал (видимо) - зачем целый «фреймворк»-то?

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

Вывод: ты не знаешь, что такое rule engines.

как на духу - вот не знаю я что за за зверь «руле энгинес», виноватый я

// идиотство же, да ещё и во множественном числе написал, впрочем небось очередной баззворд

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)
Ответ на: комментарий от anonymous

ты невнимательно читал и упустил из виду требования транзактности (в смысле JTA)

как я мог забыть Jewish Telegraphic Agency, позор на мою седую голову!

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

REST-стек для интеграции во фреймворк

у Вас баззворды накренились :)

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

Впрочем, если поработаешь годик другой на серьёзном предприятии, поднимешь свой уровень — возвращайся, продолжим.

ты это, вылазь в реальный мир, а то на своём «мега-проекте» засолился уже, иногда даже гирное (?) место работы стоит менять

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

kvm + N (of your favorite) linux nodes

ууу, как все запущенно... погугли что ли, что такое сервер приложений и зачем он нужен.

1. ты же не думаешь, что я перепутал слово «linux» со словом «сервер»?
2. а что не так со всяческими виртуализаторами?

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

ORM - ересь для одностраничных сайтиков по продаже прона

Как раз там то он и не нужен - проще все организовать несколькими запросами.

о! не подскажешь какую схему лучше юзать для иронии?

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

прекратите распинаться, вредно для здоровья

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

смотрите мальчик шутить изволит.

а девочка подглядывает, всё в духе времени, в духе времени - да

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

Неее, если с очеень большой натяжкой, то linux, как и любую ОС тоже можно назвать сервером приложений. Ну а по факту - все же не то. Ну или я чего то очень яркого и важного не знаю про виртуализаторы и даже не представлял, что это на самом деле.

Или не понял твоей очередной тонкой иронии.

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

HQL в тексте

А там это естественный синтаксис языка.

LINQ работает поверх разных источников данных

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

A.Select(x=>x.y).Where(x=>SomeCond(x.y))

Для коллекций оно будет выполняться поочереди, а для БД будет разбираться и из этого будет сделан один запрос, я правильно примерный механизм понимаю?

И это они так с AST играются?

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

Не - это какой-то expression trees получается.

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

RedPossum ★★★★★
()

Посмотрел в документации пример «Hello world», очень удручающее впечатление. В Lua или Python код гораздо меньше.

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

Scala вобрала самые полезные фичи, спонтанно изобретенные яйцеголовыми авторами маргинальщины

все спиды индустрии, ты хотел сказать?

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