LINUX.ORG.RU

ЯП с минималистичным и единообразным синтаксисом

 , ,


2

3

Подскажите пожалуйста, какие существуют языки программирования с минималистичным и единообразным синтаксисом?

На примете есть только

  • Lisp
  • forth (любые стековые яп)
  • io

смоллток, io, ooc
factor

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

oberon .

ещё могу модулу-3 посоветовать :-)

он не только объектно-ориентированный, сколько компонентно-ориентированный. а внутри всё те же ADT + структурное программирование Хоара+Дейкстры+кого_ещё_там (по той их памятной статье 1976 года, где как раз пишется про ООП, только называется это «структурным программированием», лолъ)

модула-3 — с исключениями и шаблонами (в виде дженериков), в отличие от симплициссимуса оберона. ООП там специфичесское — полиморфизм на уровне модулей, и надо специально при перекрытии методов помечать что оно дескать, перекрывает и наследует.

а оберон как король эльфов интересен нам не только этим. а ещё и тем, что это по сути пример простого метаинтерпретатора, ну почти МСП по Турчину. то есть: структура оберон-приложения это оберон-система и открытая система на базе этого как апи. структура оберон-системы — это
1) «псевдомодуль» SYSTEM, изолирующий низкоуровневое
2) модуль Kernel: или SYSTEM.GC + управление памятью
3) модуль Modules, реализующий динамический загрузчик/выгрузчик модулей (с проверкой целостности «stable ABI nonsense», лолъ — через fingerprints, то есть не сосёт в отличие от dlopen в .so/LoadLibrary в .dll)

далее по сути Modules позволяет реализовать команды ну или call-by-name вручную, с возможностью опять же вручную мемоизации и call-by-macroexpansion.

то есть: оберон-система это пример метасистемы, метаязыкового интерпретатора или метаинтерпретатора. которая может реализовать метасистемный переход по Турчину (опять же, см. про Ершова и его «лексикон программирования» — вот этот свой метаязык).

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

см. также: Шуваев «Книга Предтеч» про теорию техномагии и «книгу исхода», язык математической реальности Оберона оттудова.

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

Шуваев книга предтеч:

НЕКОТОРЫЕ УЦЕЛЕВШИЕ ФРАГМЕНТЫ ПИСЬМА «ОБЕРОНА» НЕУСТАНОВЛЕННОМУ КОРРЕСПОНДЕНТУ

«… случай с Вами вообще следует считать особым, потому что Вы не только сами по себе подходите нам по всем параметрам, но и работы ваши из числа уже опубликованных просто-напросто необходимы нам уже на самых ранних этапах осуществления проекта. Помимо всего прочего должен выразить Вам еще и личное восхищение Вашей концепцией «третьего радикала» любых логических выражений в связи с Вашим же дерзновенным утверждением о реальности, – и природе этой реальности! – любых абстрактных объектов. Это что же получается, – переворот в теории познания? Создание некой металогики, вполне пригодной для решения, в конечном итоге, любых реальных задач? Ай-яй-яй! Я прямо-таки все локти себе до костей изгрыз от зависти, что такие простые, очевидные, ПРОЗРАЧНЫЕ вещи пришли в голову не ко мне… Но это, как Вы сами понимаете, шутка: хоть мы с Вами, в какой-то мере, и коллеги, но работаем все-таки в существенно-разных областях. Впрочем, судя по письму, Вы основательно знакомы с некоторыми моими опусами, особливо касающимися сингулярных точек «сложных» множеств типа особых классов многомерных пространств, – и так далее, а потому мой псевдоним в этом письме является, скорее, данью обычаю, потому что свои официальные статьи я чистосердечно подписываю своими истинными именем и фамилией…»

ДЕМОНОЛОГИЧЕСКОЕ ЛИЦО ЛИНГВИСТИКИ (Предисловие к монографии «Место так называемого «безусловного программирования» в структуре проблемы искусственного интеллекта». Тезисы)

я тащуся.

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

попыткой формализации операционной семантики теории и метатеории техномагии (то есть, теоретической магии и метамагии), по-видимому, следует считать вот это

в другом тексте, «ГНОМ», Шуваев высказывал интересную мысль на тему нанотехнологий и формальной теории всего. про «обобщённое число», обобщённое до канторовых трансфинитных чисел. опять же, есть Хренников, процессы мышления в p-адических числах. P-адические можно представить как обобщённые числа, где количество цифр в каждом разряде обобщённого числа (обобщённых цифр) разное. например, классификатор (или система адресации в xanadu, через трансфинитные числа, лолъ; наподобие purple numbers).

представим обобщённое число с обобщёнными цифрами — простыми из ряда p-адических. если взять например ряд фибоначчи, то он сойдётся в пределе к числу фи, золотой пропорции. для p-адических — не сойдётся, будет любое число.

далее можно изобразить на таком вот числе совмещённые цифро-аналоговые вычисления — количественные для цифр и качественные, аналоговые для обобщённых цифр, квалиа :-))

если формализовать все такие процессы, в свете статьи с тринитаризма и «модус генезис» — то его и получим, язык Оберона из «книги предтеч»

или формализм теории метамагии

дискас если есть чо.

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

причинный цикл, ПЛС, «циклическая детерминация» — это круг понимания, логический круг, PDCA цикл, API метасистемы, ЖЦ метасистемного перехода, хронотоп Бахтина и морфопроцесс Беклемишева, геймерский цикл миниингры на отвлечение внимания и микроменеджмент, система загОворов и заклинаний, Namshub of Enki из Стивенсона, «Лавины» :-)))

и МСП Турчина (ср.: «перестройка» дерева конфигураций, сворачивание дерева конфигураций — а тут наоборот, разворачивание в цикл) и язык программирования метасистем из Земли Обероновой, короля эльфов

:-)))))

anonymous
()

А чего про питон не сказали? Не модно уже что ли?

alix ★★★★
()

Brainfuck куда одноооднее то.

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

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

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

Сишечка! Синтаксис языка простейший, спека оч короткая.

Ну вот прийдет ТС на вечеринку, а там девочки спросят, что лучше питон, руби или гоу? А он такой «я на си пишу». А они такие фуууу, какой ты скучный и джинсы у тебя тертые и свитер растянутый... и не дадут :( Печалька.

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

Ну зато всегда будет о чём с objective-c мальчиками поговорить )

Про objective-c можно говорить только со старыми пидарасами, с мальчиками теперь только про swift.

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

Мало. А ещё она единообразна.

Знаменитое «a».equals(«a») - это следствие.

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

Образовательная ценность этих языков крайне высока.

t184256 ★★★★★
()

дык есть языки вообще без общепринятого «синтаксиса». То есть такие что утверждать что выхлоп /dev/random является некорректной программой нельзя не начиная этот самый выхлоп исполнять.

так что возможно какой-то пост в этом треде является программой вычисляющей факториал ;-)

MKuznetsov ★★★★★
()

Откуда в Lisp «единообразный синтаксис»? Замена пробелов на скобки теперь так называется?

Miguel ★★★★★
()

Lisp

Годно, если нужен результат

forth (любые стековые яп)

годно, можно запинать в STM8, и вообще для самообразования

io

Академическая дрочь.

А кстати, что никто ерланг не назвал?

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

Годно, если не нужен результат

Починено. Результат на Lisp это исключение, когда несколько процентов пользователей вдруг решают сделать что-то полезное, тратят на это годы и у них все-таки иногда получается.

anonymous
()

http://sam.cat-v.org/cheatsheet/ :

cose unix is ide : https://en.wikipedia.org/wiki/Shebang_(Unix)#History

from man ed

if the optional argument id given, ed simulates an e command on the named file; that is to say, the file is read into ed's buffer so that it can be edited. . . Command to ed have a simple and regular structure: zero or more addresses followed by single character command, possibly followed by parameters to the command. These addresses specify one or more lines in the buffer. Every command which reqyires addresses has default addresses, so that the addresses can often be omitted.

from ed -h :

If 'file' begins with a !, read ouput shell command.

so, but :

$echo ,p|ed !pwd
pwd: No such file or directory
?

:( ?! ;)

$echo ,p |ed \!pwd
15
/home/qulinxao
qulinxao ★★☆
()
Ответ на: комментарий от dazdraperma

1. В языке нет параметрического полиморфизма 2. Но есть универсальные типы - map, array, channel - и реализовать их в самом языке в силу первого пункта невозможно 3. Но мало того - для каждого из них еще применяется свой собственный синтаксис Где же там единообразие? И это только 1 пример, а там такого много.

anonymous
()

Shebang(Unix) -> CrunchBang Linux -> https://ru.wikipedia.org/wiki/CrunchBang_Linux -> crunchbang.org -> https://www.bunsenlabs.org/

. . . .

with tint2 panel and conky system monito

$sudo apt-get install tint2
$run tint2

Итак киррилическими глифами:

Минималистичный синтакскис у конкатинирующих языков ну и асма однокомандного компа где семантика_синткаксис упрятывается в отношения адрессов.

вообще мания к минималистичным и единообразным языкам обусловленна формой образования

т.е. см http://codeforces.com/blog/entry/2139 :

о пользе 42сточной Гутенберга и эвм Земля Автор Qulinxao, 4 года назад, По-русски, Прикрепить данный блог к какому-либо соревнованию *

подход http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/cat.c;hb=HEAD == CISC подход http://inferno-npe.googlecode.com/svn/trunk/utils/cat/cat.c == RISC

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

CISC сейчас есть фильтр для селекции лучших.

RICS будет распространнено тогда же когда программирование действительно(:) ) есть часть грамотности(знание алфавита(чтение,чтение письмо), арифметика(цифры,+,-,*,/),программирование(последовательность,выбор,повтор|рекурсия,...))

в данных момент RISC подход экономически не оправдан .

счёт в Римской нотации (а поделика MMMCMXCIX на DLXXXIII ) прост если человек достаточно умён для самостоятельного!!! открытия оптимизирующих методов.

http://ershov.iis.nsk.su/russian/second_literacy/article.html

* нет НУЖДЫ-потребности в следовании http://harmful.cat-v.org/cat-v/ :

UNIX Style, or cat -v Considered Harmful

It seems that UNIX has become the victim of cancerous growth at the hands of organizations such as UCB. 4.2BSD is an order of magnitude larger than Version 5, but, Pike claims, not ten times better.

The talk reviews reasons for UNIX's popularity and shows, using UCB cat as a primary example, how UNIX has grown fat. cat isn't for printing files with line numbers, it isn't for compressing multiple blank lines, it's not for looking at non-printing ASCII characters, it's for concatenating files.

We are reminded that ls isn't the place for code to break a single column into multiple ones, and that mailnews shouldn't have its own more processing or joke encryption code.

Rob carried the standard well for the «spirit of UNIX,» and you can look forward to a deeper look at the philosophy of UNIX in his forthcoming book.

ps. Япония и СССР - лидеры были по внедрению станков с ЧПУ

pps СЛАВА РОБОТАМ (Ящерам Карла Чапека, гастарбайтерам, остарбайтер, безправ нелегалам)

pps. ed и её команда !bash - учебная ide облегчающая использование регулярок.

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

Джуниору дали первый проект.

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

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

1. Дай определение «минималистичный и единобразный синтаксис».

2. Примеры разного синтаксиса для map и array.

3. Нельзя реализовать Map и Array в самом языке? А не упоролся ли ты.

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

:( ?! ;)

$echo ,p |ed \!pwd
15
/home/qulinxao

если записать этот пример в формальном синтаксисе org-mode babel, то получим:

#+NAME: камлание-духу-емаксову
#+begin_src emacs-lisp :exports none :results silent
(org-babel-do-load-languages
  'org-babel-load-languages
  '((sh         . t)
    (emacs-lisp . t)
))
(setq org-confirm-babel-evaluate nil)
    
;; finally we'll customize the default behavior of Org-mode code blocks
;; so that they can be used to display examples of Org-mode syntax
(setf org-babel-default-header-args:org '((:exports . "code")))
#+end_src

#+NAME: qulinxao-pwd
#+BEGIN_SRC sh :code exports :tangle example-pwd.rc :noweb yes :results drawer
echo ,p |ed \!pwd
#+END_SRC

#+RESULTS: qulinxao-pwd
:RESULTS:
15
/home/qulinxao
:END:

поскольку указан «ящик» :results drawer — это фактически alist, список свойств.

здесь по идее должен быть не #+BEGIN_SRC sh, а #+BEGIN_SRC rc либо #+BEGIN_SRC sam, для интерпретатора этого языка.

а сам по себе org-mode babel выступает интерпретатором метаязыка org-mode babel ( #+BEGIN_SRC org )

в sam — всё то же самое, только метаязык другой.

в оберон-системах — всё то же самое, только метаязык состоит из «команд» вида ModuleName.CommandName arg1 arg2 ... arg N ~

преобразование метаязыков (метакомпилятор, или компилятор метаязыков) можно реализовать через #+BEGIN_SRC org «блоки кода» в духе META II или OMeta «компилятора компиляторов», сиречь, метакомпилятора.

оберон-система — это по сути интерпретатор такого вот метаязыка, метаязыка модулей и команд, реализующий семантику выполнения call-by-name.

с ручным выполнением через StdInterpretator.

впоследствии на этом можно изобразить и компилятор чего-то org-mode babel-подобного, то есть: метаязыка.

то есть: оберон-система это минималистичный метаинтерпретатор, на котором возможно реализовать инкрементальное, модульное, итеративное, адаптивное agile выполнение метасистемы из метаязыка+языка — то есть, «метасистемный переход» (МСП) по В. Ф. Турчину.

другой пример такой вот метасистемы — Emacs org-mode babel.

см. алсо: GNU Skribilo для трансмутаций из .org в .skrb в формат S-выражений, макросами на схеме Guile и дальнейшей трансляции в форматы «из коробки» .tex/LaTeX/ConTeX, lout, openoffice, html, xml или свой формат на основе xml или вообще свой формат перекрытием skribilo syntax reader/writer.

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

1

with tint2 panel

прикольный dashboard

по тексту блогозаписи http://codeforces.com/blog/entry/2139 :

CISC сейчас есть фильтр для селекции лучших.

define «лучшие», в каком смысле? в каких qualia?

«упрощать сложно, усложнять просто». Принцип Калашникова: «избыточная сложность есть уязвимость» (протестируй 10500 опций командной строки cat -v considered harmful, лолъ)

«минимизация движущихся частей» с ФСА и принципом стандартной мини-задачи из ТРИЗ — да и концепций «кластера метапарадигм», ога.

в данных момент RISC подход экономически не оправдан .

скорее, тут рассуждения Джоэла Сполски про толстый функционал офиса и «различные 20%» из принципа Парето «80/20».

экономически он как раз оправдан — в смысле экономии усилий. но дураку лучше продаются «bells and whisltes», а не «долой жирные программы» оберон-систем Н. Вирта или «апплитуды ZigZag» Теда Нельсона.

анекдот про блондинку и открытку с надписями с обоих сторон «хочешь узнать больше? прочитай с другой стороны».

счёт в Римской нотации (а поделика MMMCMXCIX на DLXXXIII ) прост если человек достаточно умён для самостоятельного!!! открытия оптимизирующих методов.

это состязания в специальной олимпиаде, всё-таки.

см. способы умножения :

по-русски по крестьянски ещё ещё по-китайски (здесь почему-то «китайским способом» назван древнерусский, на верёвках) на пальцах и по японски (то же самое, см. тут тут) по-египетски ещё

по японски на пальцах тоже на пальцах

китайцы зажигают

см. также по древнерусски

(мощно задвинули, внушаить: 0 1 2 воопче мы тут на дрынолётах к вам... числонавты о да техномагия, куда же без неё овременённое пространство, пространство-время)

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

2

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

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

но не буду — этот путь может далеко куда завести :-)))

http://ershov.iis.nsk.su/russian/second_literacy/article.html

тут интереснее не про «программирование есть вторая грамотность», а «моделирование суть вторая грамотность». а моделирование контекстно — система мира в виде модели, картины мира имеет цель моделирования, точку зрения, используемую нотацию и способ коммуникации

см. про лексикон программирования А. П. Ершова

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

Common MetaLisp, же ну. Emacs org-mode babel => GNU Skribillo => .skrb файлы с описанием «кластера метапарадигм».

суть в том, что это не столько язык, сколько «метаязык программирования», с возможностью порождающего синтеза через modus genesis простых конкретных языков, парадигм, паттернов проектирования (хотя бы таких простых как оберон-2 из оберон-систем Вирта или более сложной «высшей эльфийской речи» из Земли Оберона):

Он нахмурился, глядя на меня с крайним неодобрением: – Что-о?! А ну-ка дай глянуть твои карты! – У меня на данный локус ничего нет… То есть я могу найти какие-нибудь, только это будет бесполезно, потому что я ничем таким никогда не пользовался. Хотя, наверное, смог бы… Тут в его пронзительных, аж светящихся светло-глубых гляделках впервые мелькнул интерес, – это-то я заметить смог, а вот на оттенок, в том интересе присутствовавший, как-то не обратил внимания. Надо думать, – на нервной почве либо же просто по глупости. – Да что такое ты несешь? Надо глянуть… Тут он отвернулся от меня и за «поводок» достал (я сам так делаю – с часто употребимыми вещами) стандартный набор, тянущий, пожалуй, на Расширенную Последовательность, и всецело погрузился в изучение. Хмыкнул, включил стоявшую у него на столе «мельницу» какой-то фирмы с Земли Оберона. Классная штука, это сколько же нужно было развивать ЭВМ, чтобы вышла такая удобная, универсальная, быстродействующая штука, да чтобы еще на стол можно было поставить! Впрочем, как и обычно в этих местах, это была одна только видимость, потому что была машинка погружена в солиднейшее Расширение, – я-то видел! А он, покрутив на экране а потом и за его пределами объемы поначалу с шестью, а под конец – аж с девятью переменными на точку (так что не сказать, чтобы уж очень сложные) изволил, наконец, сызнова обратить на меня свое высокое внимание.

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

3

На этот раз интерес в его глазах был заметно гуще, тот самый Оттенок – тоже, но я опять-таки ничего не заметил: – Такого не может быть, но я перепроверял три раза, так что придется все-таки считать за факт… – Да в чем дело-то? – Ой, прекратите вы паясничать, – в голосе его прозвучало явственное раздражение, – чего уж теперь, на самом-то деле… Явился, значит… То-то я думаю, никуда от него не денешься… – Клянусь Четой и Нечетой, Левым и Правым – НЕ ПОНИМАЮ. – До конца значит? Экзамен устроить решил? Так будь по-твоему: перво-наперво ни в каких последовательностях тебя нет, а это значит, что ваша милость не только не существует, но и не имеет ровно никакого права на существование. Это, – согласен, – пол-беды, это бывает, хотя в здешних местах об этом мало кто знает, но я лично такое уже видел, и не раз… Но вот на то, что у этой вот, – он опять показал, – последовательности радикал только кажется мнимым, а на самом деле мнимость эта кажущаяся, и радикал, таким образом может считаться случаем, описываемым Нестандартной Грамматикой номер, – черт, запамятовал, сколько их раньше-то приводилось? Короче, – связь все-таки есть, но она такова, что от всей последовательности вы и впрямь никак не зависите, но отношение к ней имеете… чуть ли не причиной являетесь… В-вот ведь ч-черт побери-то совсем!!! Но, так или иначе, – доказано и можете снимать инкогнито. Я тоже обозлился, отнял у него набор и доказал, как и каким образом могу ДЕЙСТВИТЕЛЬНО не понимать даже в том случае, если он и прав. Дошло, и он улыбнулся с необыкновенным радушием. – О-о, но это совсем меняет дело, не так ли? Парадоксальным образом может считаться прецедентом, так что почту за честь… Только вряд ли я смогу вам помочь, потому что слишком уж мы все разные, и слишком уж для нас неприменим чужой опыт. Я в плане предположения…

anonymous
()

а по теме:

Подскажите пожалуйста, какие существуют языки программирования с минималистичным и единообразным синтаксисом?

попробуй Nim: сайт языка

* минималистичный синтаксис: семантика Оберона + синтаксис от питона

* трансляция через Си: кроссплатформенность, более зрелая оптимизация и кодогенерация, простое подключение сишных библиотек, c2nim, pas2nim можно допилить до oberon2nim

* сборщик мусора более продвинутый, чем в Oberon-2 или Boehm GC (см. в сторону встраиваемости в геймдеве, и реалтаймовости сборки мусора в игрушках)

* язык чуть более продвинут, семантически богат чем в Oberon-2: шаблоны (дженерики), исключения, многопоточность (spawn,асинхронщина, генераторы), прагмы, перегрузка операций, мультиметоды и множественная диспетчеризация, макросы

* AST макросы для метапрограммирования и term rewriting оптимизаций (compiler macro в CommonLisp).

бери и пробуй — выглядит очень годно.

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

1. В языке нет параметрического полиморфизма

он есть — для интерфейсов. см. «пустой интерфейс» без методов — универсальный полиморфизм как он есть.

2. Но есть универсальные типы - map, array, channel - и реализовать их в самом языке в силу первого пункта невозможно

скорее ограничения реализации, чем концептуальная невозможность. например, каналы и горутины в Go реализованы в рантайме, а в Rust или там в Nim — через библиотеки. GoLang в его текущей реализации (тут я б добавил и про интерфейсы, и про отсутствие динамической модульности в стиле КОП из Оберон-2) — имеет реализацию в рантайме.

но теоретически можнозделать. см. например альтернативную реализацию GoLang компилятора (в районе проекта Ronin), а также проект kraw, ЕМНИП — компилятор на LLVM языка, синтаксически похожего на Go, но более низкоуровневого.

вот синтаксический сахар прикрутить сейчас да, невозможно. в отличие от того же Nim c AST макросами.

3. Но мало того - для каждого из них еще применяется свой собственный синтаксис Где же там единообразие?

может, они ценят наиболее подходящий для каждого выражения свой особенный синтаксис. единообразие там в интерфейсах.

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

anonymous
()
Ответ на: 2 от anonymous

отнимите у сумасшедших компьютер

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

У Go работа с channels, scoped guard вынесены в отдельные операторы, даже go - оператор. Где тут минимализм?..

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

Ну реализуй, раз такой гений. Без использования interface{}, типизированный HashMap, поддерживающий хранение значений любого типа и поддерживающий ключ любого типа, для которого задан алгоритм расчета хэша. Как java.util.HashMap<K,V> в Java или std::unordered_map<K,V,std::hash<K>,std::equal_to<K>> в С++. Обрати внимание - даже несмотря на всю костыльность дженериков в Java - они позволяют выразить этот тип средствами языка. В отличии от Go, если не докажешь обратное.

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

Предыдущий ответ - это к:

3. Нельзя реализовать Map и Array в самом языке? А не упоролся ли ты.

Теперь по остальным.

1. Дай определение «минималистичный и единобразный синтаксис».

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

2. Примеры разного синтаксиса для map и array.

Ну уже начнем с определения. Map - var m map[string]int. Array - var arr [10]int. Channel - var c chan int. Причем ни один из этих вариантов синтаксиса не доступен не встроенным типам.

anonymous
()
Ответ на: а по теме: от anonymous

попробуй Nim: сайт языка

* минималистичный синтаксис: семантика Оберона + синтаксис от питона

* трансляция через Си: кроссплатформенность, более зрелая >оптимизация и кодогенерация, простое подключение сишных библиотек, >c2nim, pas2nim можно допилить до oberon2nim

* сборщик мусора более продвинутый, чем в Oberon-2 или Boehm GC >(см. в сторону встраиваемости в геймдеве, и реалтаймовости сборки >мусора в игрушках)

* язык чуть более продвинут, семантически богат чем в Oberon-2: >шаблоны (дженерики), исключения, многопоточность >(spawn,асинхронщина, генераторы), прагмы, перегрузка операций, >мультиметоды и множественная диспетчеризация, макросы

* AST макросы для метапрограммирования и term rewriting >оптимизаций (compiler macro в CommonLisp).

бери и пробуй — выглядит очень годно.

Ого, вкуснотень однако! Наиболее подходят макросы расширающие язык (именно как в clojure - там ридер нельзя менять, что вводит единообразие и устраняет неразбериху), nemerle вродебы. Не знаю как с этим в Rust и D кстати - подскажите.

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

А кстати, что никто ерланг не назвал?

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

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

Не знаю как с этим в Rust и D кстати - подскажите.

С чем именно? С макросами? В расте макросы всегда с восклицательным знаком (например, println!), так что до неузнаваемости синтаксис менять нельзя.

Но вообще сомневаюсь, что синтаксис раста тянет на минималистичный.

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