LINUX.ORG.RU

Группа разработчиков Scala получила грант Евросоюза

 , , ,


1

4

Группа разработчиков языка Scala получила грант Евросоюза, выиграв конкурс языков для параллельного программирования. Разработчики получат в течение следующих 5 лет на развитие своего детища 2,3млн €.

Scala — язык программирования для платформы JVM, сочетающий возможности объектно-ориентированного и функционального программирования. Scala был разработан в лаборатории швейцарского ВУЗ’а EFPL.

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

★★★★★

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

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

Ну так всегда же гораздо приятнее писать код как можно меньше?
Или это, «сложные задачи требуют еще более сложных и громоздких решений»?

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

>недавно пробовал в Eclipse замутить проектик на Scala
Хм, у меня только по памяти вылетает

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

Кстати, хороший вопрос, на самом деле. :)
Уверен, на него не дадут прямого ответа.

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

> Именно поэтому вас и называют сектантами, ибо верите во всякую мистику. Есть объективные показатели - такие как спектр поддерживаемых аппаратных/программных платформ, доступных библиотек, потенциальных разработчиков и т.п. И здесь ваши идолы в полном ауте. И есть мистическо-субъектиные вроде лаконичности кода, выразительности, элегантности и прочая чепуха. Вот этим вы себя и тешите.

Набор предложенных тобой критериев опровергается упрямыми фактами. Например, С рвёт Java и по количеству платформ, и по количеству библотек, как впрочем и (сюрпиз!) Scala.

Это и понятно - находясь в низу пищевой пирамиды трудно увидеть полную картину.

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

И много обычных программ можно проще написать на С, а не на жабе? Обычные среднестатистические разработчики (не все гении же) быстро понаделают на С таких утечек памяти, что работать ничего не будет.

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

>Ну так у скалы он выше чем у джавы, не говоря уж о С#.

Во-первых, мне влом проверять, но, как говорил Василий Иванович, меня терзают смутные сомненья. Во-вторых, речь в целом про языки, не только про скала/джава/шарп. Я уверен что какой-ть С скалу порвёт здесь как тузик грелку.

PHP/VB заруливает тут всех. Объективно!


Для веба PHP показал себя более чем эффективно. (Хотя сам я питоноперловик PHP не знаю вообще...)

Выразительность прямо влияет на это обїективный показатель. Аналогично с количеством багов на строку кода и прочими вполне объективными показателями.


Выразительность - это субъективный фактор. Он не может быть объективным. Про количество багов - тоже спорно. Нужно учитывать удобство средств отладки/профилирования и т.п., их выразительность и прочее прочее. У мейнстрим-языков это всё как правило на высоте. А у такой экзотики можно потратить на каждую ошибку в пять раз больше времени по статистике.

А «вы» находясь в полном ауте свою безграмотность оправдываете тем что «и лопатой можно это сделать».


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

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

> Именно поэтому вас и называют сектантами, ибо верите во всякую мистику. Есть объективные показатели - такие как спектр поддерживаемых аппаратных/программных платформ, доступных библиотек, потенциальных разработчиков и т.п. И здесь ваши идолы в полном ауте. И есть мистическо-субъектиные вроде лаконичности кода, выразительности, элегантности и прочая чепуха. Вот этим вы себя и тешите.

Тогда бы все до сих пор писали на Коболе и Фортране. У Лёма была хорошая мысль на этот счет ;)

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

> Кстати, хороший вопрос, на самом деле. :)

Уверен, на него не дадут прямого ответа.

Могу про себя сказать. Код на Scala пишу быстрее кода на Java в 2-10 раз в зависимости от задачи. Выигрыш тем больше, чем сложнее задача, и особенно велик для определенных типов задач, например, компиляторов (благодаря поддержке алгебраических типов данных и pattern matching). Быстрее получается, даже если прототип делать на Scala, а потом переписывать его на Java (приходилось заниматься и таким).

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

>Набор предложенных тобой критериев опровергается упрямыми фактами. Например, С рвёт Java и по количеству платформ, и по количеству библотек, как впрочем и (сюрпиз!) Scala.

И где здесь опровержение? Всё так и есть С - вот Ъ.

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

>Обычные среднестатистические разработчики (не все гении же) быстро понаделают на С таких утечек памяти, что работать ничего не будет.

Не надо бросаться в крайности, будто все не-гении пишут быдлокод. Все ошибаются, все делают утечки. Для этого и написали valgrind и прочее. А быдлокодер на любом языке ахтурга понапишет.

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

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

Дык критерии твои же были. Что, начинаешь понимать, что фичи языка таки играют роль?

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

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

Меня сейчас отталкивает два момента:
1. Фанатизм коммьюнити. Даже лисперы и рядом не валялись по уровню фанатизма.
2. Сомнительнй выбор vm.

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

>Тогда бы все до сих пор писали на Коболе и Фортране.

С их зарулил по вполне объективным причинам (хотя и да, многие согласятся, что он выразительнее этих). Но тот же ГНУ начали писать именно на С (см. GCS) т.к. он был широко известен программистам, легко переносился на другие платформы, был быстр и т.д. Именно это и послужило залогом успеха.

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

>меня терзают смутные сомненья.

Скала полностью интероперабельна с жабой. Это значит что ее платформа - это вся жаба + скала > жабы. Какие тут могут быть вопросы?

Для веба PHP показал себя более чем эффективно.


Для какго веба? Большинство народу на даче копает лопатой, и по сути большинство населения которое чего-то там огородит - делает это лопатой. При чем - РАБОТАЕТ!!! Обозначает ли это что лопата наиболее эффективное изобретение всех времен и народов и способна накормить всех?

Выразительность - это субъективный фактор.


Может в с с перлами этот фактор и субьективный - но для меня выразительность определяется объективный колличеством абстракций которые можно выразить в языке не через жопу.

Нужно учитывать удобство средств отладки/профилирования и т.п.,


Все те же что и для жабы. Все три основные жабские IDE поддерживают скалу, самый мейнстримовый порфайлер VisualVM тоже ее поддерживает.

их выразительность и прочее прочее.


Ого - выразительность.

Во-первых, «вы» вульгарно перешли на личности


Да неуж-то я?

Во-вторых, я не призываю лопатой забивать гвозди.


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



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

>Где мне поискать бутылки которые надо переставить?

Во-первых, я не конкретно про тебя, я в целом. Во-вторых, по твоему описалову совершенно не понятно куда это всё идёт, какие веб-системы и приложения.

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

>Дык критерии твои же были

Нас анонов здесь много. Это писал другой.

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

Выигрыш тем больше, чем сложнее задача,

Я еще заметил что банальный Option - делает программы намного более надежными в плане необработанных инвариантов, при чем значительно короче чем в жабе.

Конкретный пример:

      @rest.Method(httpMethod = Array(POST))
        def login(request: rest.Request,
                  @rest.Param(name = "login") login: String,
                  @rest.Param(name = "password") password: String) = {
                debug("accessing login... " + login)

                if( login == null || password == null ) respond(UNAUTHORIZED, "You should provide login and password")
                else AccountsStorage.find(login) match {
                        case None => respond(UNAUTHORIZED, "User not found")
                        case Some(user) if user.inactive => respond(UNAUTHORIZED, "Account is inactive")
                        case Some(user) if user.authScheme == "PETRIVKA" =>
                                if( user.passwordMatches(password) ) request.session("user") = user
                                else respond(UNAUTHORIZED, "Authentication failed")
                        case Some(user) => AccessStorage.access.auth_configs.find(_.key == user.authScheme) match {
                                case None => respond(FORBIDDEN, "Unknown authentication scheme: " + user.authScheme)
                                case Some(scheme) =>
                                        log.debug("authenticating with " + scheme.command)
                                        val exec = Runtime.getRuntime.exec(scheme.command.replace("{login}", login).replace("{password}", password))
                                        if( exec.waitFor == 0 ) request.session("user") = user
                                        else respond(UNAUTHORIZED, "Authentication within " + scheme.key + " failed")
                        }
                        case _ => respond(UNAUTHORIZED, "Authentication failed")
                }
        }

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

>1. Фанатизм коммьюнити. Даже лисперы и рядом не валялись по уровню фанатизма.

Ну - как-то не заметил. Хотя если по полу филипсу судить - так он там местный всл.

2. Сомнительнй выбор vm.


Среди...?

vm конечно супер_подходящая_. С другой стороны ткните меня в более подходящую?

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

>Во-вторых, по твоему описалову совершенно не понятно куда это всё идёт, какие веб-системы и приложения.

Пацаватый энтерпрайз.

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

[quote]
Меня сейчас отталкивает два момента:
1. Фанатизм коммьюнити. Даже лисперы и рядом не валялись по уровню фанатизма.
[/quote]

Вы, наверное, с немерловцами не общались :)

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

>> насколько программисты знающие эти любопытные расширения дешевле java или C#?

Дешевле - это как-то по-ынтырпрайзовски меришь.

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

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

А Kate, как понимаю, на надмножестве Ъ (т.е. С++) напейсан?
Просто я только что этим блокнотиком чуть не завалил себе систему
(попытался открыть 24Г файл, благо винт внешний - выдернул).

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

>Какие тут могут быть вопросы?

Касательные шарпа и сравнения платформ джавы скажем с нативыным С.

[Бред проскипан]...

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


Неправда и вовсе нет. Я этого не говорил и тем более ничего не доказывал. Я лишь утверждаю, что для успешного вспахивания огорода как правило не нужно бежать заказывать каталог новых лопат, всех их покупать и пробовать. И про промышленный уровень - он скорее как раз показывает, что большинство успешных садоводов копают старыми лопатами.
Я вовсе не противник технического прогресса, наоборот. Я же не агитирую писать на том же коболе. Но и рваться вперёд батьки в пекло не лезу.

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

>> насколько программисты знающие эти любопытные расширения дешевле java или C#?

Лучше спроси, насколько программисты знающие эти любопытные расширения эффективние знающих только голые java или C#?

интересно эффективность * стоимость разработчика * коэффициент редкости этих разработчиков. За какую цену нужно заплатить за команду для написания проекта на scala и какую цену на java. Что дешевле, то и выберем.

Если люди редкие, то это увеличивает стоимость многократно ввиду жесткого геморра найти замену ушедшему программисту.

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

if user.authScheme == «PETRIVKA» =>

Магия в коде - некошерно :)

PS. А куда смотрят разрабы лора - где подсветки для эрланга, C#, Scala ?

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

> Вы, наверное, с немерловцами не общались :)

Общался пару лет назад, но думал они уже вымерли.

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

> vm конечно супер_подходящая_. С другой стороны ткните меня в более подходящую?

Может быть BEAM? Хотя там свои... компромиссы.

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

>> В чем конкретное преимущество языка против Java или C# ?

traits, встроенный xml - перед C#
traits, generics и почти все остальное - перед Java

встроенный XML как раз в C# есть, дженерики есть в Java.

traits вообще штука странная. на первый взгляд рискованная - какой из traits выстрелит если на все приложение из 5к файлов написано 10-20 traits для одного класса.

Java хороша тем, что деревянная и можно заранее предсказать как будет работать код. АОП немного меняет дело, но он привинчивается сбоку отдельными либами и к языку java отношения не имеет.

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

>Код на Scala пишу быстрее кода на Java в 2-10 раз в зависимости от задачи.

Ну что тут скажешь - аргумент. А производительность свою вы как архимаг - по числу строк меряете?

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

>На мой взгляд тут больше интересен вопрос перспективности самого функционального подхода для распараллеливания. Я понял они именно на это метят. И несмотря на теоретическую пригодность, на практике тут есть куча серьёзных препятствий.

Все препятствия проистекают из эмуляции систем с управлением данными на нищебродских архитектурах с цпу, узенькой шинкой и дешевой памятью.

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

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

> А производительность свою вы как архимаг - по числу строк меряете?

ЕМНИП это тролли его производительность по числу строк меряли.

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

>пока не видно другого языка для дешевой разработки.

дешевая разработка должна умереть.

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

> Магия в коде - некошерно :)

Это не магия - это внутренняя система (раннее единственнная) расширена подключаемыми. Внутреннюю как подключаемую смысле далеть не было - тем более это кусок и таког ополулевого проекта в свободное время:)

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

А где реально сейчас используется Minix? Я имею в виду десктопы, ноутбуки, смартфоны, а не «поставил шестой операционкой на комп поглядеть, повозиться».

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

> И есть мистическо-субъектиные вроде лаконичности кода, выразительности, элегантности и прочая чепуха. Вот этим вы себя и тешите.

бугага

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

то, что этому не найдено (?) объективных метрик — это проблема CS, а не твоих оппонентов

еще недо-язык проявляется как ситуации, где приходится нарушать DRY и необходимость паттернов, которые невозможно выразить средствами языка  — в виде плюсового шаблона или явовского дженерика

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

>> пока не видно другого языка для дешевой разработки.

дешевая разработка должна умереть.

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

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

> Erlang R.I.P.

С чего это? Как же активно развивающиеся CouchDB, RabbitMQ, ejabberd и др?

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

>> Обычные среднестатистические разработчики (не все гении же) быстро понаделают на С таких утечек памяти, что работать ничего не будет.

Не надо бросаться в крайности, будто все не-гении пишут быдлокод. Все ошибаются, все делают утечки. Для этого и написали valgrind и прочее. А быдлокодер на любом языке ахтурга понапишет.

утечка возможна только там, где программист может получить память и забыть ее вернуть. в языках высокого уровня Java, C# или той же scala утечка ПАМЯТИ невозможна.

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

> вот попробуй передай функции *позиционно* 20 аргументов в языке без ключевых параметров; при этом еще у всех этих аргументов есть умолчания, свои для каждой функции

Функции с 20 аргументами противоречат идеалогии Java

еще недо-язык проявляется как ситуации, где приходится нарушать DRY и необходимость паттернов, которые невозможно выразить средствами языка — в виде плюсового шаблона или явовского дженерика

пример?

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

> утечка возможна только там, где программист может получить память и забыть ее вернуть. в языках высокого уровня Java, C# или той же scala утечка ПАМЯТИ невозможна.

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

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

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

так ссылки не утекают - они продолжают быть доступны из приложения.

Единственный вариант утечки который я словил - было открытие файла находящегося внутри jar через URLClassLoader. Это известный, хотя и редкий косяк и его хотят вылечить в 7-ке.

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

> [утечка памяти] еще как возможна, просто механизм возникновения другой - утечка ссылки на объект. Но результат - тот же.

Не могли бы вы рассказать, как это происходит? Я в самом деле не знаю, мне интересно.

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

Добавлю, что, Option[+A] - это как раз очень удачный и полезный пример применения алгебраического типа данных.

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

> Есть объективные показатели - такие как спектр поддерживаемых аппаратных/программных платформ, доступных библиотек, потенциальных разработчиков и т.п.

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

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

> утечка возможна только там, где программист может получить память и забыть ее вернуть. в языках высокого уровня Java, C# или той же scala утечка ПАМЯТИ невозможна.

Элементарно можно выделять память под, например, записи в хэш-таблице и забывать её возвращать. То что память выделяется неявно не отменит того факта, что она не освободится.

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