LINUX.ORG.RU

Встречайте Golo — новый язык для платформы Java

 golo, ,


1

1

Жюльен Понж (Julien Ponge), Java-разработчик и доцент в области информатики, известный по своим публикациям в Java Magazine, объявил о создании нового языка программирования Golo. Язык динамический, со слабой типизацией. По словам автора, он стремится сделать его максимально простым (изучается за несколько часов), понятным (предпочитая явное неявному) и быстрым.

В настоящее время Golo находится в стадии беты, однако уже сейчас использует по-максимуму возможности последних версий JVM: в частности, он является прекрасным примером использования новой инструкции invokedynamic.

Из интересных особенностей языка можно отметить предусловия (preconditions), отказ от оператора new и наличие функций-сутенёров (pimps). А классическая программа «Здравствуй, мир» будет выглядеть на Golo следующим образом:

module hello.world

function main = |args| { 
    println("Hello world!")
}

Официальный веб-сайт языка Golo

Документация

Исходный код

★★★★

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

function main = |args| { println(«Hello world!») } прям как блоки в ruby

BillDver ★★★
()

Язык динамический, со слабой типизацией

сперва усильте, только потом в новость печатайте ))

gray ★★★★★
()

со слабой типизацией

Ужасно.

функций-сутенёров

Пройдите вслед за шрифтом Libertine и больше никогда не возвращайтесь.

Deleted
()

наличие функций-сутенёров

а блэкджек на нём уже реализовали?

Lennart
()

Скоро у каждого погромиста будет свой ЯП.

функций-сутенёров

ZOMFG

libdotnet
()

Так и просится:«Шо опять?»

Rakot ★★
()

Язык динамический, со слабой типизацией.

Не взлетит.

nikodymus
()

Хосподи, ещё один, опять и снова. Надеюсь это просто так им было написано для развлечения не более того.

Dron ★★★★★
()

Функции-сутенеры. Отлично.
А вообще язык, судя по примерам, ничего.

Nanodesu
()

Из интересных особенностей языка можно отметить предусловия (preconditions)

А у нас, для руби, реализованы подобного рода хелперы?

special-k ★★★★
()

А вообще, хотите сделать удобный язык, реализовывайте:
- блоки
- опциональные скобки
- опциональные точки с запятой
- что-то свое

а до тех пор есть руби, который априори более лаконичный, понятный и удобный.

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

гугли по design by contract, дядька Мейер ввел моду на это, даже для явы аннотации подобные появились, правда с отсутствием сколь-нибудь годных средств метапрограммирования, все что смотрел, получились не очень. В рубях у вас все должно быть норм.

RedPossum ★★★★★
()

наличие функций-сутенёров

и аргументов лёгкого поведения

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

Ура! А то под JVM так мало языков!

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

Wizard_ ★★★★★
()

Вау, новый язык для платформы java!

thesis ★★★★★
()

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

имеется ввиду «для Java кодеров», или «для всех кодеров»?

drBatty ★★
()

отказ от оператора new

правильно!

и наличие функций-сутенёров (pimps).

если есть функции-сутенёры, значит есть и проститутки? Или я чего-то не так понял?

drBatty ★★
()

Название вызывает ассоциации с галоперидолом.

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

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

, который априори более лаконичный

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

понятный
руби

/0

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

удобный

чем удобный?

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

чем удобный?

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

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

Анон, да типизация, это отдельный разговор.

Даже если смотреть чисто на грамматику, то, как сам Матц признает, т.к. наделали этих дурацких укорочений типа опциональных скобок для методов, часто выражения парсятся контр-интуитивно. Плюс к тому, странные понятия о силе бинарных операторов... Затем имеем over 9000 методов сделать то же самое (типа операторов сравнения).

В итоге получается какой-то evil Python: возможности больно облажаться просто на каждом шагу, если наизусть томик Матца не выучил.

anonymous
()

динамический

со слабой типизацией

максимально простым

Да это же вершина ненужности

интересных особенностей языка можно отметить предусловия (preconditions)

Чрезвычайно интересно

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

По аналогии с одной телепередачей стоит обозвать это «прокачкой» классов.

Если бы автор знал о боянистом паттерне pimp my library, то он бы знал что действительно переводится в данном контексте как «прокачать», а не как оригинальный перевод

vertexua ★★★★★
()

...в частности, он является прекрасным примером использования новой инструкции invokedynamic

Я боюсь, что это единственная причина создания Golo :))

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

Если |args| {} — это синтаксис лямбды, то значит.

dmfd
()

После D, Vala, Go, Rust и прочих читать о языке с динамическою и слабою при том типизацией как-то стрёмно.

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

Чем оно лучше Rust?

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

т.е. чисто синтаксис смотрите?

I-Love-Microsoft ★★★★★
()

The world didn't need another JVM language.
So we built yet another one. A simple one.

Логично...

Закопать.

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

питону я тоже не доверяю, но это так. мне просто надоело что этот школотун в каждом треде кукарекает про руби.

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

D

как там уже исправили баги? сколько контрибуторов?

Go

хипстерство в последнее время.

Rust

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

вывод очередной король хэлоуворлдов перед нами.

P.S. не уверен что он даже знает чем типизации друг от друга отличаются и их слабые\сильные стороны.

anonymous
()

function main = |args|

мда...

println(«Hello world!»)

мне одному это напоминает ******?

наличие функций-сутенёров

function wrap = |left, str, right| -> left + str + right

# (...)
let str = wrap("(", "foo", ")")
println(str) # prints "(abc)"

ужоснах

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