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 ()
Ответ на: комментарий от rtvd

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

а С тут, кстати, не самый страшный пример... посмотрите на Python: там можно всё переопределить и вообще всю объектную иерархию просто нагенерить...

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

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

а пример есть такого языка?

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

Вероятно, любой чистый функциональный язык.

eRazor ★★★
()

> и сочетает в себе полезные идеи из Java, Python, C, C++, D, Ruby, Boo и Groovy

хммм... действительно, толстенько и зелененько :) лучше бы более нишевым языком занялся, действительно с какими-то киллер-фичами...

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

> Брам _уже_ там.

Собственно и название в стать.

Кстати, стремное какое-то название, неприличное. Сказать кому «— Я пишу текстовый редактор на Зимбе», — засмеют :)

zHACKa
()

Человек, родивший такое "чудо" как vim, родил новый язык? Наверное такой же "удобный". А кроме дурацкого синтаксиса другие интересные идеи есть?

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

> а vim'ом теперь только конфиги фиксю на удалённых машинах :)

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

yk4ever
()

Хотя, а знаете, "Enforcing a naming style" я в целом одобряю. Правильный ход.

Но клиники тоже много.

yk4ever
()

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

Да, текстовых редакторов сейчас очень мало.

Закрывающая скобка без открывающей - это вообще полнейший бред.

Да и вообще это какой-то ненужный велосипед.

vkos ★★
()

Сравнение кода на Zimba с кодом C++ не впечатлило. Если вместо классов C++ использовать структуры, то будет более близкий эквивалент кода на Zimba, который будет занимать столько же кода. Единственное исключение - цикл for() в конце.

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

В-общем, совсем неубедительно. Проблемы, которые Брам пытался решить, никого не интересуют, либо прекрасно решаются без создания нового языка.

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

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

nano - самый неудобный из когда-либо существовавших редакторов. Даже курение мануалов не помогло хоть сколько-нибудь приблизить его по эффективности хотя-бы к vi. Кстати, что Вы понимаете под Быдлоредактором?

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

> Даже курение мануалов не помогло хоть сколько-нибудь приблизить его по эффективности хотя-бы к vi.

Первый раз вижу слова "хотя-бы" и "vi" в одном предложении. Молодой человек, вы вообще хоть пару строчек в vi набрать пробовали?

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

> есть отличный nano

нано - это сейчас в моде, да.

> позволяет забыть о Быдлоредакторе совсем

уж не про вим ли это?

сравнивать вим и нано - это как %уй с пальцем

SilentBob
()

D - единственный язык, проблема которого (по мнению автора) во временных недостатках toolchain'а, а не в решениях при дизайне языка.

> Keywords are in capitals, this avoids the problem that you need to know all keywords when picking a name.


А так нужно знать все ключевые слова при выборе имени константы. Лучше было бы написать язык без ключевых слов. Примеров масса. Кстати, почему это MAIN и IO (имя модуля) - ключевые слова?

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

> Молодой человек, вы вообще хоть пару строчек в vi набрать пробовали?

Да. И режим ввода в zsh имитирует именно vi, а не vim.

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

> а vim'ом теперь только конфиги фиксю на удалённых машинах :)

откройте для себя C-x C-f /ssh:user@host:/path/to/file и можете выкинуть вим из свое головы окончательно)

anonymous
()

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

Вот это мне очень даже нравится!

Но одинарные скобки таки ужасны.

sv75 ★★★★★
()

Почему, когда создают новый язык, то пишут, что он вобрал от себя все лучшее из других языков и избавился от их недостатков? Шаблонно как-то это.

Таких языков создается множество, и где они сейчас? К этому язычку внимание только из-за того, что его создал Моленар.

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

>ну, какбэ, например Haskell.

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

а что там так всё хорошо, и правда?

shty ★★★★★
()
Ответ на: "Try it" sucks. от Camel

>Плоховата try'илка. То ли дело у Ruby

>http://tryruby.sophrinix.com/


Здорово! Спасибо за ссылку. Руби интуитивно понятен, понравился.

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

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

он будет подсвечивать одиночную скобку.

spaceblock
()

Where I can find information about Zim-text editor? I followed link above, but I didn't find any information about it.

anonymous
()

Определённо, велосипед. Закапывайте, не нужно.

SpeedyWizard
()

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

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

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

возможности верификации/тестирования напрямую зависят от дизайна языка. referential transparency, статическая типизация, design by contract, etc

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

изоморфизм Карри-Говарда, например

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

>а пример есть такого языка?

Haskell, Clean, Coq, Agda2, Epigram, Isabelle

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

> Закрывающая скобка без открывающей - это вообще полнейший бред.

Это да, но символ начала блока без символа завершения (как в пистоне) - не менее бредовая идея. Я даже не удивляюсь, что оба бредогенератора родом из одной богатой на вещества страны.

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

> сравнивать вим и нано - это как %уй с пальцем

Правильно, сравнивать надо с vi, а не c vim. Вот ту nano пожалуй поудобнее. Но местная школота не в курсе, чем vim от vi отличается.

anonymous
()

> Zimbu
ZALGO!!!! HE COMES!!!!

AITap ★★★★★
()

Эх, где ж он был, когда Brainfuck делали?!

mind
()

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

madcore ★★★★★
()

Ох-ох-ох. Итак,

избегая при этом присущих этим языкам недостатков.

s/избегая/вобрав/g просто-таки. Я всё понимаю, но одиночное наследование, да ещё со словом extends - это пхпизм.

Объявление REPLACE (я перекрываю тебя, сволочь!) - отдельная дурь.

Keywords are in capitals, this avoids the problem that you need to know all keywords when picking a name.

LANGUAGE.GOAL = [ 'CAPS', 'BLONDE' ]

} в качестве конца блока - этого не поймёт ни один вим. Или емакс. Даже человек.

[imagine] MAIN()

IO.write(«{-:»)

}

Compilation error: YOU USED LEFT BRACE!!!!1111 [/imagine]

list<Animal.I> animals = NEW() (из примеров)

Вся дурь C++ - только сегодня и только сейчас! Функция NEW - есть жесть!

1 # Zimbu example program: Unix style «echo»

2

3 MAIN()

4 bool writeNewline = TRUE

5 string sep = «»

6 bool didFirst

7 FOR arg IN ARG.getAll()

8 IF !didFirst && arg == "-n"

9 writeNewline = FALSE

10 ELSE

11 IO.write(sep + arg)

12 sep = " "

13 }

14 didFirst = TRUE

15 }

16 IF writeNewline

17 IO.write(«\n»)

18 }

19 }

LANGUAGE.GOAL.ADD( [ 'REINVENTINGBIKE', 'БЫДЛОКОДИНГ' ] )

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

PS: Vimер. Был я на этом вашем Емаксе... Преимуществ перед SciTe и тем мало, у меня не столько рук, и мануалом, распечатанным на ксероксной бумаге, можно убить. Зачем редактору текстовая игра?

Pythonist
()

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

Создается впечатление, что этот Bram сам никогда программ не пишет :-) При помощи парных скобок очень удобно ориентироваться в коде: это и их подсветка, и возможность "бегать по ним". В Emacs это очень удобно делать.

>Bram Moolenaar, автор Vim


Вот он, враг человечества ;-)

sinister666 ★★
()

> "Avoid: expression by itself is return value, causes mistakes."

это он зря

kelyar ★★★★★
()

Я, кстати, никогда не ставлю пробелов вокруг "=", зачем это нужно? Читабельность это не улучшает, только уменьшает срок службы клавиши Space и занимает полезное место в строке (у меня в программах длина строки <80 символов -- вот это действительно делает текст более читабельным).

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

> Vimер. Был я на этом вашем Емаксе... Преимуществ перед SciTe и тем мало ...

Ты не вкурил. Я тоже не с первого раза на емакс подсел, но теперь на вим и всякие скайты смотреть не могу. Да, как редактор вим может быть удобнее (и то спорно). Но даже для фанатов "модальности" есть viper-mode. Впрочем, этот вечный холивар неконструктивен. Никто никого ещё не смог переубедить, понимание само должно прийти.

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

>>ну, какбэ, например Haskell.

>а что там так всё хорошо, и правда?

ну, как бы, есть свои бенефиты, как видишь

zHACKa
()

Любой язык, посягающий на свободу выражения мыслей, обречён. Что Пистон со своими мудаковатыми отступами, что Фортран, что вот этот Зимбу. По-моему, прогеров таких языков надо сразу принудительно лечить от комплекса бога.

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

> Я даже не удивляюсь, что оба бредогенератора родом из одной богатой на вещества страны

:) Более того, они оба ровесники и оба сейчас работают в гугле (если википедия нам не врет)

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

> Я, кстати, никогда не ставлю пробелов вокруг "=", зачем это нужно?

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

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

> Более того, они оба ровесники и оба сейчас работают в гугле

Ждём новых разоблачений: "Скандалы, интриги, расследования! Руководство корпорации Google разрешает своим сотрудникам употреблять наркотики!"

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

> Я, кстати, никогда не ставлю пробелов вокруг "=", зачем это нужно?

Действительно, кому нужны эти глупые пробелы между токенами. То ли дело:

$v=delete($arg{v})||(@_?3:2);

Читается на одном дыхании! А сколько места сэкономили, не говоря уж об амортизации клавиши Space (а ведь это первейшая забота программиста!)

anonymous
()

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

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

>Скобок должно быть четное количество!!!!!!!!!!!

Скобок не должно быть вообще!!!!!!!!!!!

ЗЫ. Да, питонист. И да, отступы в питончике ни разу не мудаковые.

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