I think the language design and syntax is fantastic. I found nothing came close in terms of being able to express objects and functions without clutter. I simply cannot praise the cleanliness of scala enough.
The drawbacks for me were:
1 — implementation on .net and Java VMs gives you process/threading oriented limitations of those VMs.
2 — few libraries/frameworks that take advantage of the scala. Just wrappering Java libraries will bleed through to your program design. My main reason for going through a thorough language review before starting my new projects was I was really tired of Java and the like.
While you can still use Scala as a nice language for
development from scratch, reusability will hinge on the
degree to which people adopt new ways of thinking.
Scala is a language worth keeping an eye on, though, IMO.
The problem with Scala is that it doesn't have atoms.
Хотя это объезжается
I don't think that this is a problem at all in Scala,
thanks to Scalas built-in quote mechanism.
Concurrency in Scala is provided by the underlying
backend, at the moment either the JVM or the CLRE, which is assumed
to provide a thread model compatible with the thread model of Java.
A disadvantage is that threads in most Java implementations
are not very lightweight, and starting new threads as well as
context switching between them can be relatively slow.
Дарней,
E>>Можно ли попросить поделиться причинами выбора именно этих языков? И что ты от них ожидаешь? Д>прежде всего, наверно, возможность использовать Lisp-style макросы Д>плюс интеграция с .NET Д>плюс лямбда и прочие вкусности
А от лямбд до функций высшего порядка один шаг. Наличие функции высшего порядка позволило бы создать mapcar, только вот списков нет. Да и другие операции со списками тоже спать не дадут. Потом возникнет мысль "а что это я всё руками да руками, давай-ка я это один раз в общем виде забабашу, а компилер мне нашинкует чего надо... Чё компилятор не понимает полиморфные типы, что ли? Вот же !" И так захочется полиморфных типов, просто жуть (как известно, чего нет, того хочется больше всего). Ну а хотя бы синтаксис настраивать можно? И т.д. и т.п.
Наконец, придёт озарение: "Чёрт меня дёрнул связаться с этими скалами, лучше бы брал сразу Лисп..."
Ещй один товарищ, который учавствовал в разработке Скалы.
Длиннющий пост, в котором он эмулирует почти полностью (!) синтаксис и семантику Эрланга: процессы, асинхронная передача сообщений, линки и прочее. Для меня это было небольшим шоком. (Правда, не без ньюансика одного, если интересно расскажу).
Заканчивает это следующим:
Anyway... Scala is a really cool language and I encourage you all to try it out, you just might like it as much as I do. Still, though, I am back in the Erlang world now, and I'm loving every minute of it.
/Erik Happi Stenman
Просьба не воспринимать это как рекламу Эрланга, из песни слов не выкинешь...
VladD2,
LCR> Шутка
VD>Ты прежде чем "шутить" в следующий раз хотя бы общее описание языков, о которых собрался по говорить, прочти. А то смешен скорее ты.
Правильно будет "смешон". Если я ошибся насчёт Скалы, то ненамного. И вообще, расслабься. Не хочу даже минуты тратить на бодание с тобой (как известно, это futile activity).
Кроме того моё сообщение было шуткой. За определением слова "шутка" — фгугл.
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>А от лямбд до функций высшего порядка один шаг. Наличие функции высшего порядка позволило бы создать mapcar, только вот списков нет. Да и другие операции со списками тоже спать не дадут. Потом возникнет мысль "а что это я всё руками да руками, давай-ка я это один раз в общем виде забабашу, а компилер мне нашинкует чего надо... Чё компилятор не понимает полиморфные типы, что ли? Вот же !" И так захочется полиморфных типов, просто жуть (как известно, чего нет, того хочется больше всего). Ну а хотя бы синтаксис настраивать можно? И т.д. и т.п.
я сам еще не разобрался толком, что там есть а чего нет. Потому и спрашиваю
Но функции высшего порядка в Nemerle вроде бы есть.
LCR>Наконец, придёт озарение: "Чёрт меня дёрнул связаться с этими скалами, лучше бы брал сразу Лисп..."
интересно, а есть реализации CLOS для .NET? хотя у Лиспа синтаксис очень уж непривычен
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, Дарней, Вы писали:
Д>хочу попробовать заюзать один из сабжей в своем проекте, но сначала хотелось бы узнать о возможных граблях Д>Кто-нибудь пробовал? Какие впечатления?
Скажу чесно, если бы Скала полноценно работала поверх второго фрэймворка, то я бы с удовольствием на ней попрограммировал. Многие идеи красивые.
... << RSDN@Home 1.2.0 alpha rev. 628>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, Дарней, Вы писали:
Д>прежде всего, наверно, возможность использовать Lisp-style макросы Д>плюс интеграция с .NET Д>плюс лямбда и прочие вкусности
Интеграция с .NET там через Яву, то есть через ж.
... << RSDN@Home 1.2.0 alpha rev. 628>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>А от лямбд до функций высшего порядка один шаг.
Я бы даже сказал наоборот. Вот в C# 1.x лямбд небыло, а функции высшего порядка поддерживались.
LCR> Наличие функции высшего порядка позволило бы создать mapcar,
Ага. Охринительное решение всех проблем программирования.
LCR>только вот списков нет.
Ага. Непреодолимые технические трудности по их реализации.
Кстати, в Скале (не скажу за Немерел) встроенные списки имеются. И даже спец-синтаксис для работы с ними.
LCR> Да и другие операции со списками тоже спать не дадут. Потом возникнет мысль "а что это я всё руками да руками, давай-ка я это один раз в общем виде забабашу, а компилер мне нашинкует чего надо... Чё компилятор не понимает полиморфные типы, что ли? Вот же !" И так захочется полиморфных типов, просто жуть (как известно, чего нет, того хочется больше всего). Ну а хотя бы синтаксис настраивать можно? И т.д. и т.п.
LCR>Наконец, придёт озарение: "Чёрт меня дёрнул связаться с этими скалами, лучше бы брал сразу Лисп..."
LCR>Шутка
Ты прежде чем "шутить" в следующий раз хотя бы общее описание языков, о которых собрался по говорить, прочти. А то смешен скорее ты.
... << RSDN@Home 1.2.0 alpha rev. 628>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, VladD2, Вы писали:
VD>Скажу чесно, если бы Скала полноценно работала поверх второго фрэймворка, то я бы с удовольствием на ней попрограммировал.
Похоже, у Nemerle дела с этим делом обстоят получше.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Дарней, Вы писали:
Д>>Похоже, у Nemerle дела с этим делом обстоят получше.
VD>Nemerle я вообще не смотрел.
А посмотреть стоит...
Очень много интересных вещей...
В Блоге еще про версию 3 с какими-то цифирками написано что типа если вы ждете c# 4.0, то он уже есть — это Nemerle
Про программирование с помощью макросов, создание своих синтаксических конструкций и метапрограммирование — это все про Nemerle.
Получаеться своего рода круче чем Форт под .NET
Вот еще бы дождаться реализации Nemerle через VSIP под VS 2005... и все... вот оно щастье...
Делай добро и бросай его в воду...
Re[5]: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, Mckey, Вы писали:
M>Вот еще бы дождаться реализации Nemerle через VSIP под VS 2005... и все... вот оно щастье...
а что там можно с лямбдами делать? Наример, можно с их помощью генерить код в рантайме? Сохранить лямбда-функцию в базу данных или передать через ремотинг?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: кто-нибудь уже пробовал писать на Scala или Nemerle?
Здравствуйте, Дарней, Вы писали:
Д>посмотри туториал на nemerle.org Д>там достаточно неплохо написано
Посмотрел. Откровенно хотелось бы иметь статью, а не набор разроезненных примеров.
Тяжело оценить язык по "запаху", но какое-то впечатление я о нем составил.
К сожалению многих мощьнейших вещей из Скалы в Нумерле нет (или я не заметил). Так нет мощьнейшей вещи mixin-ы и ковариантность дженериков.
Однако, похоже этот Немерл (кстати, забавно "не Мерл", ну, в смысле на наш Ваная ) чешет сегодняший C# в хвост и в гриву по возможностям.
Вот только зачем было так издеваться над if-ами?
Хотя конечно при наличии мета-макросов востановить классический if задача на пять минут.
Так что остается надыбать для этого дела поддержку стреды и рефактринг. Возможно после этого все споры о том "как надо писать select" окажустя попросту не нужными .
Вот только сделать такое щастье будет не так то просто. Может здесь поможет ДжетБрэйн? Надо бы Хвоста спросить...
... << RSDN@Home 1.2.0 alpha rev. 631>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.