LINUX.ORG.RU

вопросы по Scala


0

0

Вот решил ознакомиться с Ынтерпрайзно-гламурненькими технологиями
(привычки С/C++). Жабку пробовал когда-то - сильно не понравилась.
Заинтересовала Scala. Ну и ессно вопросы:

1. Перспективы развития/использования ?;
2. Область применения: та же что и java или есть нюансы ?;
3. Использование java-наработок(либы и т.п.) полностью ли совместимы?;
4. Использование jvm: можно ли использовать все возможности,
производительность - не падает ли ?
и, scalac myScala.scala; scala
myScala - работает, а java myScala - нет... Почему, или не должно ?
5. Ну и вообще...


>Перспективы развития/использования ?

Вроде развивается. По крайней мере новые версии выходят, книги тоже появляются.

Область применения: та же что и java или есть нюансы ?

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

Использование java-наработок(либы и т.п.) полностью ли совместимы?

В основном совместимы. Слышал только про проблемы с jpa/hibernate (но не уверен что их сейчас уже не порешали).

Использование jvm: можно ли использовать все возможности, производительность - не падает ли ?

Производительность похуже чем у жабки. Но не на порядки насколько я помню тесты.

Ну и вообще...

А вообще у нее большая проблема со средами разработки. И делать в имеющемся что-то серьезнее hello-world увольте.

Nagwal ★★★★
()

Благодаря Scala в Java пришли Generics, а в ближайшее время придут Lambda, синтаксис для Collections и Type Inference для Generics.

Все совместимо, полные возможности JVM, используется в Twitter/Yandex, интересные фреймворки - akka & liftweb.

Будущее? Мейнстримом не станет.

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

насколько я понимаю жаба-технологии: та же жабка, тока поприятнее, и, если уж VM - то кашерный языка )

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

>Благодаря Scala в Java пришли Generics,
Неслабый такой алтернативный взгляд на историю, гыгы

а в ближайшее время придут Lambda,

Анонимные классы куда-то девались?

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

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

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

такой набор - никому не помешает.

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

>так а на что посоветуеш посмотреть ?

Честно говоря я сам пишу либо на самой жабе, либо на питоне. Очень изредка С.

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

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

Ну под другие языки ее тоже потихоньку пилят... Но тихонько-тихонько, низэнько-низэнько ;)

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

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

drZlo
() автор топика
Ответ на: комментарий от Nagwal

с пайтоном как-то не складывается, ибо тормоз, вот и гугл от него не очень, (cython) дела не спасает. Хочется что-нить с прицелом на будущее...

drZlo
() автор топика
Ответ на: комментарий от Nagwal

с пайтоном как-то не складывается, ибо тормоз, вот и гугл от него не очень, (cython) дела не спасает. Хочется что-нить с прицелом на будущее...

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

У тебя там все нормально с чтением буковок? Или в глазах двоится?
Долбоеб это типо например ты, как бы, врубаешься?

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

>Что за день такой, все нахамить хотят.
Наверное, потому что ты долбоеб и всех заебал, ок?

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

>Технологически не совсем понятно, если в машина одна, байткод один, что доожно отличаться ?

Луговский (?) жаловался на дубовость байткода. Типа много надо транплинного кода генерить для гибкой диcпетчеризации вызовов.

Absurd ★★★
()

>4. Использование jvm: можно ли использовать все возможности,
производительность - не падает ли ?

Падает. В некоторых случаях существенно.

и, scalac myScala.scala; scala

myScala - работает, а java myScala - нет... Почему, или не должно ?

Должно. Добавь scala-compiler.jar и scala-library.jar в CLASSPATH

5. Ну и вообще...


Вообще, чистый объектно-ориентированный язык. Очень интересен с семантической точки зрения. Интересен с синтаксической точки зрения.

В 2.8 можно будет разрабатывать плагины для компилятора. Типа ради метапрограммированя времени компиляции.

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

> Луговский (?) жаловался на дубовость байткода.

Ну так это надо для всех, как я понимаю ? ( Т.е. если плохо, то для всех, «Я так думаю)

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

>Ну так это надо для всех, как я понимаю ?

Ну жабий виртуальный вызов делается одной инструкцией JVM. Но насчет ФП-шных матчингов я в этом не уверен.

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

> Падает. В некоторых случаях существенно.

Хоть убей - не пойму почему ? Если честно транслируется в жаба-код, то какая разница ...

Очень интересен с семантической точки зрения


Вот это-то и купило )

drZlo
() автор топика
Ответ на: комментарий от Absurd

Ну так должен же переводится в «вызов делается одной инструкцией JVM» один в один ...

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

>> Падает. В некоторых случаях существенно.

Хоть убей - не пойму почему ? Если честно транслируется в жаба-код, то какая разница ...

«Compilers are giant pattern-matching machines» (c) Наверное, в случае Скалы последовательности байт-команд не соответствуют имеющимся у JIT-компилятора.

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

> не соответствуют имеющимся у JIT-компилятора

Хм, думал, что, если раз перегнать под jvm - дальше индеферентно...

drZlo
() автор топика
Ответ на: комментарий от tailgunner

>Наверное, в случае Скалы последовательности байт-команд не соответствуют имеющимся у JIT-компилятора.

Это еще надо проверить. Я написал почему оно может тормозить, а не почему оно тормозит и тормозит ли вообще.

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

> Хм, думал, что, если раз перегнать под jvm - дальше индеферентно...

«Compilers are giant pattern-matching machines» (c), что непонятно? :)

P.S. индИфФирентно, мля.

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

Ю P.S. индИфФирентно, мля.

Ну Вам р'уским видней :))))

drZlo
() автор топика
Ответ на: комментарий от tailgunner

не понимаю, что может помешать работе jvm, когда уже код scala перегнали в байт-код... все like java...

drZlo
() автор топика
Ответ на: комментарий от tailgunner

> P.S. индИфФирентно, мля.

Некоторые быстро набирают и не всегда... ОК ?

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

>Если честно транслируется в жаба-код, то какая разница

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

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

> Например, функции в скале представлены в виде функциональных объектов.

Ну так для jvm все транслируется в байт-код, и ей все пофиг.... или я туплю по-черному ?

drZlo
() автор топика
Ответ на: комментарий от Love5an

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

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

>приятный язык, не без недостатков, но они активно устраняются

Да, хотелось бы в Ынтырпрайз таких, дайте два )))

drZlo
() автор топика
Ответ на: комментарий от Love5an

> Неслабый такой алтернативный взгляд на историю, гыгы

http://www.cis.unisa.edu.au/~pizza/gj/People/

Анонимные классы куда-то девались?

http://openjdk.java.net/projects/lambda/

> Мейнстримом не станет.
Почему?

Потому что Java7 догоняет ее в основных фишках, дальшейшие превосходства Scala в основном - матан. То же самое сейчас происходит с Grails, после появления Spring Roo + посыпать JRebel.

Jython/JRuby - это не для Java-истов, а вот Clojure с STM и тулзами типа Incanter очень привлекательно выглядит.

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

>http://www.cis.unisa.edu.au/~pizza/gj/People/
http://www.parashift.com/c++-faq-lite/templates.html

http://openjdk.java.net/projects/lambda/

http://www.papajohns.com/catering/index.shtm
нутыпонел идею


Вот все-таки у большинства фанатов модных «новых» и «современных» говноязыков в голове такое обгашенное говно, что даже называть это говном стыдно - ну т.е. это вроде как говорить что трава зеленая - дебилом немножко выглядишь

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

> Потому что Java7 догоняет ее в основных фишках, дальшейшие превосходства Scala в основном - матан.

Хм. Я не большой спец ни по Яве, ни по Скале, но разве Разве в Java7 есть вещи вроде structural typing, pattern matching, гибкий синтаксис? Или это «матан»?

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

> Хм. Я не большой спец ни по Яве, ни по Скале, но разве Разве в Java7 есть вещи вроде structural typing, pattern matching, гибкий синтаксис? Или это «матан»?

Да допилят к 8 подобие traits, ну switch из Groovy возьмут, улучшат Type inference. Гибкий синтаксис для DSL? Я вот когда последний раз смотрел liftweb - он на порядок слабее Grails по красоте MVC-классов. Java читабельна - it's enough.

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