LINUX.ORG.RU

Брам Муленаар представляет Зимбу

 , , , , , , , ,


0

0

Bram Moolenaar, автор Vim, представил вниманию общественности новый экспериментальный язык программирования Zimbu.

Язык предназначен для написания новых программ, например текстовых редакторов, и сочетает в себе полезные идеи из Java, Python, C, C++, D, Ruby, Boo и Groovy (в порядке убывания полезности), избегая при этом присущих этим языкам недостатков.

Интересными находками следует признать встроенный в язык контроль стиля (например, отсутствие пробелов вокруг знака «=» приводит к ошибке компиляции) и использование закрывающей фигурной скобки в качестве ограничителя блоков кода — например hello.zu выглядит так:

MAIN()
  IO.write("Hello, World!\n")
}

В настоящее время доступен транслятор Zimbu в C, способный скомпилировать собственный код, ведется работа над ZWT (Zimbu Web Toolkit) и Zim (тектовый редактор).

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

★★★

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

> использование закрывающей фигурной скобки в качестве ограничителя блоков кода

OMG! Это симметричный ответ питону что ли? В очередной раз убеждаюсь, что дизайн языков - искусство, доступное единицам. Брам, при всём уважении, явно не из их числа.

anonymous
()

Да, почитал inspiration, многое становится понятным. У Брама слишком узкий кругозор для создания хорошего языка.

anonymous
()

ВЕЛОСИПЕД!

anonymous
()

У чувака бардак в башке.
Мамбы, Зимбы, Убунты... Всех на баржу и в Африку на борьбу с малярией.

splinter ★★★★★
()

>отсутствие пробелов вокруг знака "=" приводит к ошибке компиляции

ну вот что за бред? зачем?!

>использование закрывающей фигурной скобки в качестве ограничителя блоков кода


... моментально скоратит гибкость языка на треть.

jcd ★★★★★
()

Одна закрывающая фигурная скобка - это сильно.

Nekto0n
()

OMG! Нет, нет, Дэвид Блейн, нет!!! Оставь нас в покое.

shty ★★★★★
()

Что-то мне это так не понравилось, что подумываю перестать пользоваться вимом совсем.

anonymous
()

>Интересными находками следует признать встроенный в язык контроль стиля
привет, питон!
>отсутствие пробелов вокруг знака "=" приводит к ошибке компиляции и использование закрывающей фигурной скобки в качестве ограничителя блоков кода

а вот это уже идиотизм полный, только путаницу разводить

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

И хаскелл, да. Очередной никому не нужный язык.

alex4
()

Непонятно какие преимущества у этого языка перед, скажем, Обероном, или Компонентным Паскалем (если кто-то вдруг непосредственно ассоциирует Компонентный Паскаль с паскалем, то прежде чем отвечать, прочитайте хотя бы википедию: http://ru.wikipedia.org/wiki/Oberon http://ru.wikipedia.org/wiki/Компонентный_Паскаль -- паскаль ему приходится прапрадедушкой).

anonymous
()

Мне кажется наличие кучи языков разъединяет и создает некоторые неудобства. В общем как в реале.

Lennier ★★★★
()

"срань господня!" (с)

Предлагаю в компилятор очередного передового языка программирования добавить поддержку Автономного Анального Карателя (в дальнейшем ААК). В случае несоблюдения стиля форматирования программ, ААК бьет электрическим зарядом. В случае ошибки компиляции - впрыскивает горчицы. Программистов на подобном языке можно будет узнавать на улице по особой кавалерийской походке.

shutty
()

Создан язык, от которого питониста, сишника и паскальщика одинаково тянет блевать

anonymous
()

> Язык предназначен для написания новых программ

Вот это да.

> использование закрывающей фигурной скобки в качестве ограничителя блоков кода

Это пи***ц, простите. Мне бы при работе с таким языком постоянно казалось, что я забыл открывающую скобку, да и большиноство нормальных текстовых редакторов подсчечивают *парные* скобки.

bff7755a
()

Вот это убило:

> WriteFlags wf = NEW().echo(TRUE).where(atstart).repeat(2))

bff7755a
()

ну про пробелы вокруг «=» еще как-то можно понять - в баше при вычислении выражений наличие пробелов тоже имеет значение. но ОДНА закрывающая скобка - это уже бред имхо, пусть Брам отсыпет.

drull ★☆☆☆
()

Язык предназначен для написания новых программ

Вот это убило:

WriteFlags wf = NEW().echo(TRUE).where(atstart).repeat(2))

4.2 Язык предназначен для переплавки мозгов.

drull ★☆☆☆
()

> и Zim (тектовый редактор).

Надеюьсь он, наконец, будет лишен недостатков vim'a?

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

Конечно! Он будет за тебя проверять наличие пробелов вокруг «=» - неоспоримое преимущество!

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

> Надеюьсь он, наконец, будет лишен недостатков vim'a?

А что иммено в vim'е вы считаете недостатками? Не холивар, просто интересно.

bff7755a
()

Очередной пузырь в луже. Ненужно.

PS: Vim наше всё

los_nikos ★★★★★
()

Этот язык рожден уже мертвым. Выкидыш однако...

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

А что иммено в vim'е вы считаете недостатками?

Он закрываться по ^C не умеет =(

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

> А что иммено в vim'е вы считаете недостатками?

Режимы.

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

> В очередной раз убеждаюсь, что дизайн языков - искусство, доступное единицам. Брам, при всём уважении, явно не из их числа.

Просто Брам наконец вспомнил, что когда он клепал Vim, его сокурсники проходили дизайн языков и создание компиляторов. Он решил все-таки сдать диплом.

По теме: Ждем плагин для Eclipse!

valich ★★★
()

> полезные идеи из Java, Python, C, C++, D, Ruby, Boo и Groovy (в порядке убывания полезности)

толсто же...

Evil_Fate_17506
()

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

anonymous
()

Очень похоже, что г-н Брам решил перенести IRL свой опыт в создании скриптового языка для Вим (тот же дикий ужас, по сравнению с которым хаскел и перл - псевдокод) :)

anonymous
()

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

vasily_pupkin ★★★★★
()

начать: до тех пор пока () { цикл(...) перейти на ; } кончить;

пора бы уже и с русской нотацией язык придумать

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

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

а поподробнее можно? что есть:

1) автоматическая проверка корректности кода и как оно связано с языком?

2) автоматическое доказательство - тут поясните, плз..

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

>начать: до тех пор пока () { цикл(...) перейти на ; } кончить; пора бы уже и с русской нотацией язык придумать

man: uno asso (1C) :)

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

+1

Только надо еще добавить почитателей Java.

ei-grad ★★★★★
()

> Язык предназначен для написания новых программ, например текстовых редакторов

хорошая шутка

fenris ★★★★★
()

> например текстовых редакторов

Кто бы сомневался!

Не дает покоя слава имакса, видимо. Поэтому, конечно, надо написать свой ЯП, на котором написать редактор, в котором будет встроен этот ЯП.

Внимание, вопрос: зачем?

SilentBob
()

>Язык предназначен для написания новых программ

Не верю!

Deleted
()

The } character is used to end a block. There is no {, we know where the block starts. This avoids useless discussions about where to put the {.

But we don't know where the blocks ends.

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

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

> Не дает покоя слава имакса, видимо. Поэтому, конечно, надо написать свой ЯП, на котором написать редактор, в котором будет встроен этот ЯП. > Внимание, вопрос: зачем?

Ну, не может же он просто пересесть на имакс. ;-)

eRazor ★★★
()

Брам Муленаар похоже что-то не то съел. :-)

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

> 1) автоматическая проверка корректности кода и как оно связано с языком? > 2) автоматическое доказательство - тут поясните, плз..

Я думаю тут имеется в виду, что код на приличном языке можно проанализировать и, например, автоматически доказать что:

1) в коде типа

int [] a = new int [N]; for(int i = 0; i <= N; i ++) a[i] = i*i;

есть выход за границы массива. А если выхода нет, то даже не делать runtime проверки.

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

3) что штуковины типа

int *a = 0; *a = 9;

приводят к смерти ибо a null pointer is being dereferenced

Ну и т.д.

И все это - на этапе компиляции, а не как в C (когда при запуске шарахнет и голову оторвет).

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

>автоматическая проверка корректности кода и как оно связано с языком? ...

Ну чтобы компилятор сказал "чувак, у тебя тут в ту функцию может проскочить значение для которого она не определена, вон там при таки-то условиях может произойти обращение по NULL, а если эта переменная будет равна 666 то вон там далеко будет утечка памяти и потому я тебе нифига не соберу, иди править руки". Как-то так. Анализ кода, логики, невозможность даже скомпилировать некорректную программу и всё такое.

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

Зачем нужен еще один емакс с vimscrip^Wзимбой вместо елиспа?

PS: Vim - наше все!

SilentBob
()

гн. Муленар разочаровывает чем дальше тем больше. мало того что vim на день сегодняшний не умеет: нормального скриптового языка (vim-script ужасное поделие, не имеющее нормального api), не умеет нормально подсвечивать и форматировать смешанные файлы (всякие там eruby/php/.... + html + js) и ещё N траблов... так гн. Муленар решил с тем же подходом написать язык программирования Zim, который судя по сайту и пример представляет из себя, мягко говоря, унылое поделие: половина кода в верхнем регистре, 1 фигурная скобка тоже доставляет, требование стиля в каком-то фашистском виде: нет пробелов? ошибка компиляции! т.е. на кой оно такое нада известно одному лишь г-ну. Муленару.

Порадовало

>>В настоящее время доступен транслятор Zimbu в C:

скажите, так это язык или транслятор с космическим синтаксисом?

я просидел под vim'ом 4 года, надоела кривизна и ушёл под Emacs. да, грабли есть, граблей много, но тут их хотя бы фиксят. а vim'ом теперь только конфиги фиксю на удалённых машинах :)

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

код на приличном языке можно проанализировать и, например, автоматически доказать что:

1) в коде типа

int [] a = new int [N]; for(int i = 0; i <= N; i ++) a = i*i;

есть выход за границы массива. А если выхода нет, то даже не делать runtime проверки.

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

shty ★★★★★
()

Велосипед. При чем, совершенно не оригинальный и с идиотским синтаксисом(мелочь, да, но не приятно)

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