LINUX.ORG.RU

Кто сказал что оборачивание в скобочки это фи?

 , , , ,


0

4

Нука объясните ка мне, с чего вдруг массами стало считаться, что такой код

if (expr) {
  expr
} else {
  expr
}
это круто стильно молодёжно,
а вот такой код:
(if expr ;then
   expr ; else
  expr)
это — «фууу скобочки»?

Не является ли это просто следствием промывки мозгов основной массы кодеров авторитарными лидерами-программистами, такими как Страуструп? (Не знаю что там на счёт Ритчи, но сдаётся мне он не был на столько упорот и не заводил толпы программистов своими проповедями(но может просто у него не было возможности).)

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

И так, какие же плюсы несёт оборачивания в скобочки:
1) Унификация. Все выражения начинаются и заканчиваются скобочками.
2) Легко парсить.
3) Видно где начало/конец.
4) Легко рефакторить — надо перенести блок кода? Встал на открывающую/закрывающую скобку(на самом деле для умного редактора даже это не надо можно прямо изнутри выражения), нажал на кнопку — выделилось всё выражение, вырезал, перенёс куда надо.
5) Для автоматических манипуляций ака макросов это тоже удобно.
6) В будущем возможно создание умных инструментов, например умный структурный дифф, который не линии будет диффить, а понимать структуру, а потом умный просмотрщик таких дифоф сможет показать как от куда и куда перенесли это выражение и что там конкретно поменяли.
И т.д.

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

★★★★

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

Сколько лет нужно привыкать

нисколько, у меня моментально привыклось

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

Нужно формальный эксперимент на не знающих программирование школьниках провести

Я случайно провел на себе. Ну и выше уже сказали о знаках препинания.

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

Перед кем и зачем ты оправдываешься? Пиши на лиспе в своё удовольствие.

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

Зачем мне оправдываться? Человек написал ложное утверждение, я его опроверг.

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

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

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

Похожесть на естественные языки тут вообще ни при чём.

Gentooshnik ★★ ()

это круто стильно молодёжно,
а вот такой код:

Не иквалент.

Когда ты мне напишешь на своей херне:

if((a = b, ++b, c = f(a)) == t, 1) a, b else c, d;//тогда приходи.

1) Унификация. Все выражения начинаются и заканчиваются скобочками.

Ну если только для альтернативно одарённых.

2) Легко парсить.

Мне это крайне важно

3) Видно где начало/конец.

а в сишном варианте не видно? Хотя вы там все альтернативно одарённые, поэтому специально для тебя:

{if() ; else ;} //просто добавь скобочек.

4) Легко рефакторить — надо перенести блок кода? Встал на открывающую/закрывающую скобку(на самом деле для умного редактора даже это не надо можно прямо изнутри выражения), нажал на кнопку — выделилось всё выражение, вырезал, перенёс куда надо.

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

5) Для автоматических манипуляций ака макросов это тоже удобно.

Каких конкретно макрос - поподробнее.

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

И т.д. Потом, возможно. У тебя иф есть? Инструменты есть? Нет.

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

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

Смешно. Нулевые еникеи рассуждают об идеальности и языках.

anonymous ()

Риал стори, бро:

«Despite my best efforts, I wrote an (web) application in Lisp recently. We had a contract for some feature and I was working in a Java „shop“. We needed a proof of concept in a few days, so I wrote it in Lisp. I even used ABCL with the idea that I could port it over to Java piece by piece when the design phase was over and we moved into maintenance mode. We have moved into maintainence mode and I just ended up tweaking it to run on SBCL so it would have a smaller memory footprint rather than fussing with Java. Number one reason to stick with Lisp was when the user didn't like something about the program, it was minutes to fix the problem rather than days (which is how it would go with this company). That was the reasoning behind it and, while the CTO initially balked at the prospect of maintaining the software in a language where you can't hire Indian developers dirt cheap, in the end he decided that this was a wise decision because we actually made the client happy (well, happy-ish, this company has other problems I'm working on).»

Oxdeadbeef ★★★ ()

Забыли

expr
  ifTrue:  block
  ifFalse: block

Йогурта на вас нет. Или где там анонимус хотя бы?

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

Анонимус прочитал тред и считает, что синтаксис пролога на две головы выше всей этой кругло- и фигурно-скобчатой помойки.

  • простота - check
  • гомоиконичность - check
  • пунктуация - check
  • кастомные ин-/пост-/пре-фиксные операторы - check

Лисп с человеческим лицом, практически.

Дискас.

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

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

щито? как от изменения порядка записи выражения изменится алгоритм, оптимизация, и целевая платформа (!)

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