LINUX.ORG.RU

Scala для занятых программистов: классы

 , , , , ,


0

0

Во второй статье Тед Нюард продолжил в кратком и легком стиле рассказ особенностях языка Scala. Как он заметил, "сила языка напрямую зависит от его возможности выражать новые концепции". Он демонстрирует легкость, с которой на Scala вводятся новые сущности, на примере комплексных чисел.

http://www.ibm.com/developerworks/jav...

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

anonymous

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

Автор новости статью читал? Рациональные там числа, рациональные.

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

Автор, наверное прочёл

> Ted Neward follows a basic premise of language measurement: that the power of a language can be measured in direct relation to its ability to integrate new facilities -- in this case, support for complex numbers.

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

А где написано про новую КОНЦЕПЦИЮ? Вроде речь шла о том как ввсети новую ссучность.

anonymous
()

Посмотрел я немного на это, визгов от новых мегаязыков конечно много, и все они, безусловно, повышают производительность программиста в 2, нет в 5, нет в 10 раз!, но тем не менее, кто-нибудь этим на практике пользуется?

anonymous
()

Любопытно.. познавательно.. ;-)

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

Конечно же пользуются! Разработчики самих языков. На каждом из мегаязыков написано целое одно приложение - компилятор мегаязыка. :)))

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

> Нет, конечно. Все до сих пор в машинных кодах пишут и загрузчики на память диктуют.

Да я не про то, вот никаких очень сильных преимуществ перед жабой (языком) не заметил, а вот недостатков судя по всему много. А насчет пользования, я про то, что пишут вот компиляторы в явабайткод (в .нет тоже), например bigloo, вот это поделие, еще много чего, а вот кроме учебных примеров, показывающих невье..ть этих инструментов, на них что нибудь делают? Может все же для каждой задачи свой инструмент? Зачем тащить тот же лисп или питон в жабомашину, если этим практически пользоваться не будут? Пускай используются в своих нишах.

anonymous
()

0_o! Создатели сКалы открыли для себя классы! Ждем открытий инкапсуляции и рекурсии! %)

DOKA
()

КГАМ какой то. МОжно подумать что это лучшее что есть на девелоперворкс если в новостях запостили.

Там дофига гораздо более полезных и качественных статей кроме мало кому нужной скалы.

Давайте их все в новости постить! Засрем ресурс, превратим в филиал ибмовского сайта, начали - так до конца надо.

anonymous
()

> вводятся новые сущности,

"Новые сущности" :))) Ну сразу я вспомнил старину Оккама! :)

PS. Бимеры лучше бы подумали, почему их ВебСпхеру никто не покупает, а не статейки на "джавоподобные" темы тискали.

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

> А насчет пользования, я про то, что пишут вот компиляторы в явабайткод (в .нет тоже), например bigloo, вот это поделие, еще много чего, а вот кроме учебных примеров, показывающих невье..ть этих инструментов, на них что нибудь делают?

Как правило на сайте каждого "поделия" есть что-то вроде "success story" - посмотри. Т.е. таки хоть кто-то да использует.

> Может все же для каждой задачи свой инструмент?

Несомненно!

> Зачем тащить тот же лисп или питон в жабомашину, если этим практически пользоваться не будут?

Почему не будут? Просто в той-же пропорции, что и без JVM (lisp languages)/(other languages), т.е. мало.

> Пускай используются в своих нишах.

Да так и делают. Иногда эта "ниша" оказывается связана с JVM.

Встречный вопрос: тебя кто-то розгами принуждает использовать на JVM что-то кроме Java? Если нет - то откуда столько апломба и презрения?

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

>она там есть, и нормальная, в отличии от самой жабки ;)

Да? В смысле ручного заката солнца?

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

> Конечно же пользуются! Разработчики самих языков. На каждом из мегаязыков написано целое одно приложение - компилятор мегаязыка. :)))

ха... Компилятор - это целое дело, а вот что действительно у всех есть - это ХеллоВорлд! Причём, чем короче оно написано, тем оно круче! (считают создатели языка) Идиёты, право слово... Нет бы подумать - а оно надо? Очередной лисапед с квадратными колёсами.

anonymous
()

вообще этот "инфикс" скалы мозк немножко ломает на первых порах. Например

xs filter (0 <=) map Math.sqrt

что тут где пришлось минуты 3 переваривать.

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

> она там есть, и нормальная, в отличии от самой жабки ;)

И чем же так плоха рекурсия в Java? Рекурсия везде одна, где ни смотрел - что в Java, что в delphi, что в C++.

DOKA
()

Мне вот не совсем понятно, почему они совсем от 'new' не избавились, 
как например в Nemerle. в некоторых конструкциях этот 'new' просто 
захламляет код. 

val r = Rational(1,2) + Rational(5,7) + Rational(9, 10);

ывглядит гораздо приятнее чем 

val r = new Rational(1,2) + new Rational(5,7) + new Rational(9,10);



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

>> она там есть, и нормальная, в отличии от самой жабки ;)

> И чем же так плоха рекурсия в Java? Рекурсия везде одна, где ни смотрел - что в Java, что в delphi, что в C++.

Есть подозрения, что в Яве она не хвостовая, а потому область применения имеет очень узкую.

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

> Мне вот не совсем понятно, почему они совсем от 'new' не избавились, как например в Nemerle. в некоторых конструкциях этот 'new' просто захламляет код.

case классы можно так создавать

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

> Есть подозрения, что в Яве она не хвостовая, а потому область применения имеет очень узкую.

В Джаве рекурсия не хвостовая, а подхвостовая.

Профессор В.С.Луговский

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

>case классы можно так создавать

русское слово "совсем" обладает совершенно четкой семантикой.

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

>Мне вот не совсем понятно, почему они совсем от 'new' не избавились, как например в Nemerle.

Немножко непонятен ход мыслей разработчиков - точнее количество пелосипедных решений даже в смысле названий - просто зашкаливает.

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

> PS. Бимеры лучше бы подумали, почему их ВебСпхеру никто не покупает, а не статейки на "джавоподобные" темы тискали.

Это почему её никто не покупает? Крупные компании покупают, больше то нечего, не с ораклом же связываться.

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

На самом деле есть ещё "99 bottles of beer" на каждом языке. Так что на целую страничку с Success Stories наберётся!

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

Как-то в обсуждении Scala на ЛОРе проскакивала фраза, что это гениальный язык, в котором можно организовать параметры у метода так, что будет требоваться от параметра лишь наличие у него своих некоторых методов, а не наследование его от какого-то первоначального класса или имплементация интерфейса... Я вот нашёл только неявные касты, но это ж совсем не то

Может кто-нибудь пояснит? ;-)

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

>Может кто-нибудь пояснит? ;-)

Я на тему вопроса придумал только такое:

trait Sayer {
    def say:String
}

def say[S <: Sayer](s:S) = s.say

class Cat {
    def say = "murr"
}

class Dog {
    def say = "wuff"
}

scala> say(new Dog with Sayer)
res4: String = wuff

scala> say(new Cat with Sayer)
res5: String = murr

Хотя да - не окамл конечно - этот микс тоже что-то хитрого приведения.

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

на окамле все поэлегантнее конечно

# let say s = s#say;;
val say : < say : 'a; .. > -> 'a = <fun>
# class cat = object method say = "myaw";end;;
class cat : object method say : string end
# class dog = object method say = "wuff";end;;
class dog : object method say : string end
# say new cat;;
- : string = "myaw"
# say new dog;;
- : string = "wuff"

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

Спасибо, мне подойдёт :)

А окамл для меня слишком элегантен ;-)

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

вот никогда бы не подумал , что жаба-программисты busy

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

Эх, что-то я тупанул... Я думал, что: def dog = new Dog() say (dog with Sayer)

а на деле-то

def dog = new Dog() with Sayer say (dog)

Это полная лажа ((

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

>Это полная лажа ((

Ну и я про то. Там по факту анонимный класс генериться:(. Да - не окамл:)

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

> на окамле все поэлегантнее конечно

один к одному на скале:

scala> def say(s: {def say: String}) = s.say
say: (AnyRef{def say: String})String

scala> class Cat { def say = "murr"}
defined class Cat

scala> class Dog { def say = "wuff"}
defined class Dog

scala> say(new Cat)
res0: String = murr

scala> say(new Dog)
res1: String = wuff


см. "The Scala Language Specification. Version 2.6" Example 3.2.4

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