Re[13]: Привет от Пола Грэма ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.12.04 06:11
Оценка: +1
Здравствуйте, Дарней, Вы писали:

ГВ>>Поверь на слово: макросы Lisp не менее опасная вещь, чем шаблоны C++. Если не более.


Д>Опасности тоже разные бывают. Ассемблер очень опасен, и Лисп тоже опасен. Но опасны по разному

Д>У одного опасность происходит от слишком близкого приближения к "железу", у другого — от слишком большого удаления.

Не, не в этом дело. Вопрос в понятности кода. А завернуть непонятную программу можно на чём угодно — хоть на макросах, хоть на бейсике. А что такое "понятность"... э... это уже индивидуально.

Д>Истина должна быть где-то между ними


Я думаю, что истина где-то вне этих определений.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[14]: Привет от Пола Грэма ;)
От: Дарней Россия  
Дата: 20.12.04 06:24
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Не, не в этом дело. Вопрос в понятности кода. А завернуть непонятную программу можно на чём угодно — хоть на макросах, хоть на бейсике. А что такое "понятность"... э... это уже индивидуально.


Макросы — это конечно очень мощный инструмент. Для обфускации исходников
Но некоторые и без них прекрасно справляются...
В любом случае — по сравнению с С-макросами, метапрограммирование ничего не сможет добавить в этом отношении
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[15]: Привет от Пола Грэма ;)
От: Трурль  
Дата: 20.12.04 07:03
Оценка: +2 :)))
Здравствуйте, Дарней, Вы писали:

Д>В любом случае — по сравнению с С-макросами, метапрограммирование ничего не сможет добавить в этом отношении

Вы думаете?

Когда наш гипотетический Блаб-программист смотрит вниз на континуум мощности языков, он знает, что смотрит вниз. Менее мощные, чем Блаб, языки явно менее мощны, так как в них нет некой особенности, к которой привык программист. Но когда он смотрит в другом направлении, вверх, он не осознает, что смотрит вверх. То, что он видит, — это просто "странные" языки. Возможно, он считает их одинаковыми с Блабом по мощности, но со всяческими сложными штучками. Блаба для нашего программиста вполне достаточно, так как он думает на Блабе.

Опять deja vu
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 20.12.04 08:23
Оценка:
Здравствуйте, VladD2,

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

Что-то подобное:
VD>1. Необходимость многопроходного метапрограммирования. Оно не так и нужно, так как основная его задача преобразование простой модели в сложную.

И вот такое:
VD>2. Если надо, оно достаточно элементарно реализуется.

Нечто похожее:
VD>В любом случае, адептом Лиспа я точно не стану, так как меня блевать тянет от программирования в АСТ напичканом скобками. Так что прийдется развивать идею на базе наиболее близкого и пригодного, по моему мнению, продукта из досупных на сегодня.

Очень похожее:
VD>В любом случае на сегодня народ Лисп не очень то принял.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[15]: Привет от Пола Грэма ;)
От: Cron Tab  
Дата: 20.12.04 11:10
Оценка: +1 -1
Здравствуйте, Дарней, Вы писали:

Д>Макросы — это конечно очень мощный инструмент. Для обфускации исходников

Д>Но некоторые и без них прекрасно справляются...
Д>В любом случае — по сравнению с С-макросами, метапрограммирование ничего не сможет добавить в этом отношении

Это не касается макросов, синтаксис которых идентичен/близок синтаксису обычных конструкций в языке. Вы можете усложнять макросы в Си++ и даже довести до каких-то абсурдных высот вроде OpenC++, но все это будет походить на огромный древесный гриб, т.е. на чужеродный нарост. Именно такие макросы и наводят тумана в исходниках.

В идеале мета-язык должен быть очень близок или даже идентичен основному языку. Есть ли такие языки?
--
crontab
Re[16]: Привет от Пола Грэма ;)
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.12.04 11:35
Оценка: +1 :)
Здравствуйте, Cron Tab, Вы писали:

CT>В идеале мета-язык должен быть очень близок или даже идентичен основному языку. Есть ли такие языки?


LISP.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[17]: Привет от Пола Грэма ;)
От: Cron Tab  
Дата: 20.12.04 11:36
Оценка:
Здравствуйте, Sinclair, Вы писали:

CT>>В идеале мета-язык должен быть очень близок или даже идентичен основному языку. Есть ли такие языки?


S>LISP.


Угу
--
crontab
Глюк?
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.12.04 20:17
Оценка:
сбж
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Привет от Пола Грэма ;)
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.12.04 20:17
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Он говорит о нововведении, появляющемся по отношению привычному Блаб-континууму конкретного Блаб-программиста. C#, а равно и Java, никаких серьёзных нововведений по отношению к C++ не предлагают


Ага для Блаб-программиста, так тот думает на Блабе.

ГВ>Если на С++ можно программировать "как на C", то на Lisp этого не получится по определению.


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

ГВ>

ГВ>Также мы были спокойны, если требовались разработчики на C++ или Java.


ГВ>Напомню, что в 95 шаблоны только-только появлялись и представляли собой не меньшую, если не большую terra incognita, чем макросы Lisp.


Вот только и сегодня шаблоном плюсов до макросов Лиспа как до Пекина раком.

ГВ> Они и сейчас не слишком-то э... популярны.


Гы-гы.

ГВ> Достаточно вспомнить, как упорно ты и другие (не будем показывать пальцем) пару лет назад уверяли, что шаблоны — это suxx и нагромождение треугольных скобок.


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

VD>>Он говорит, о том, что считает Лисп более мощьным (или высокоуровневым языком). Причем делает он это на основании того, что в лиспе имеется мощьнейшая система метапрограммирования. Тут с ним тяжело не согласиться. Метапрограммирование действительно мощьнейший механизм. Вот только он есть не только в Лиспе. На сегодня есть так же OpenC++ и R#
Автор(ы): Чистяков Влад (VladD2)
Дата: 28.01.2004
.


ГВ>Влад, ты действительно сравнивал макросы Lisp и шаблоны С++? Напоминаю на всякий случай — с точки зрения Lisp-машины программа является и программой и данными одновременно. Поверь на слово: макросы Lisp не менее опасная вещь, чем шаблоны C++. Если не более.


Опасность тут не причем. Я вообще не считаю Лисп идеалом. Но отрицать очевидное не стоит. С точки зрения метапрограммирования Лисп очень интересен. Ты просто как всегда прочел мои слова и выделил в них свой потоенный смысл, который я в них не вкладывал.

VD>>Однако он совершенно прав, в том, что костность мышления очень сильна. И большинство людей не в силах разглядеть действительно мощьное решение потому как мыслить понятиями "Блабла".

ГВ>В точку.

Но это конечно не про тебя.
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Привет от Пола Грэма ;)
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.12.04 20:17
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, Геннадий Васильев, Вы писали:


ГВ>>Не, не в этом дело. Вопрос в понятности кода. А завернуть непонятную программу можно на чём угодно — хоть на макросах, хоть на бейсике. А что такое "понятность"... э... это уже индивидуально.


Д>Макросы — это конечно очень мощный инструмент.


Макросы Лиспа названы макросами по недоразумению. На самом деле это метапрограммы, т.е. код который модифицирует другой код или сам себя.

Д> Для обфускации исходников


Будешь смеяться, но в Лиспе "макросы" используются для компиляции лисп-кода в машинный.

Д>В любом случае — по сравнению с С-макросами, метапрограммирование ничего не сможет добавить в этом отношении


Чушь. С-макросы — это просто одна большая задница. Они очень не многое могут и при этом приносят очень много вреда.
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Привет от Пола Грэма ;)
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.12.04 20:17
Оценка:
Здравствуйте, Cron Tab, Вы писали:

CT>Это не касается макросов, синтаксис которых идентичен/близок синтаксису обычных конструкций в языке. Вы можете усложнять макросы в Си++ и даже довести до каких-то абсурдных высот вроде OpenC++, но все это будет походить на огромный древесный гриб, т.е. на чужеродный нарост. Именно такие макросы и наводят тумана в исходниках.


Ты бы разобрался сначала что такое ОпенС++, а потом про грибы рассуждал бы.

CT>В идеале мета-язык должен быть очень близок или даже идентичен основному языку. Есть ли такие языки?


Никому он ничего не должен. Решения могут быть самыми разными. И лучшее будет то кторое окажется удобнее и безопаснее других.
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Привет от Пола Грэма ;)
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.12.04 20:17
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>LISP.


К сожалению у него самого проблем выши крышы.
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Привет от Пола Грэма ;)
От: Дарней Россия  
Дата: 21.12.04 04:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Чушь. С-макросы — это просто одна большая задница. Они очень не многое могут и при этом приносят очень много вреда.


Это шутка была. Надо читать внимательнее
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[17]: Привет от Пола Грэма ;)
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.12.04 06:47
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Это шутка была. Надо читать внимательнее


Ну, ты как-то очень естественно шутишь. В купе с остальным потоком вечно доброго я принял за чистую монету.
... << RSDN@Home 1.1.4 beta 3 rev. 267>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Привет от Пола Грэма ;)
От: Трурль  
Дата: 23.12.04 15:12
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Кажись, это мы еще не обсуждали: Пол Грэм. Краткость &mdash; сила.

Все-таки ключевое слово для Лиспа не "краткость", а "расширяемость".
А вот K — язык, где краткость положена в основу всего.
Re[2]: Краткость — сила.
От: Трурль  
Дата: 24.12.04 11:11
Оценка: 9 (1)
Здравствуйте, Трурль, Вы писали:

Т>А вот K — язык, где краткость положена в основу всего.


Попробую развить эту мысль. Философия K проста: поскольку большие программы очень сложно писать и отлаживать, не надо их писать вообще. Программы должны быть маленькими. Как говорит Артур Уитни, "если это нельзя сделать на одном экране, то это нельзя сделать вообще".
В жертву принесено буквально все (удобочитаемость, инкапсуляция,...). Зато достигается поразительная краткость. Например, СУБД kdb — 50k "байт-кода" и по слухам 20-30 экранов кода на K. А может она немало, например восьмерки вокруг Oracle и MSSQL описывать, пока они соревнуются по скорости.
Re: Привет от Пола Грэма ;)
От: Трурль  
Дата: 28.12.04 07:41
Оценка: :)
Здравствуйте, Зверёк Харьковский, Вы писали:

Еще один сабж.

I think there are five reasons people like object-oriented programming, and three and a half of them are bad:
...
3. Object-oriented programming generates a lot of what looks like work. Back in the days of fanfold, there was a type of programmer who would only put five or ten lines of code on a page, preceded by twenty lines of elaborately formatted comments. Object-oriented programming is like crack for these people: it lets you incorporate all this scaffolding right into your source code. Something that a Lisp hacker might handle by pushing a symbol onto a list becomes a whole file of classes and methods. So it is a good tool if you want to convince yourself, or someone else, that you are doing a lot of work.

Re[2]: Привет от Пола Грэма ;)
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.12.04 08:15
Оценка: 1 (1)
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Зверёк Харьковский, Вы писали:


Т>Еще один сабж.


Т>

I think there are five reasons people like object-oriented programming, and three and a half of them are bad:
Т>...
Т>3. Object-oriented programming generates a lot of what looks like work. Back in the days of fanfold, there was a type of programmer who would only put five or ten lines of code on a page, preceded by twenty lines of elaborately formatted comments. Object-oriented programming is like crack for these people: it lets you incorporate all this scaffolding right into your source code. Something that a Lisp hacker might handle by pushing a symbol onto a list becomes a whole file of classes and methods. So it is a good tool if you want to convince yourself, or someone else, that you are doing a lot of work.


Совершенно верно. Действительно, ООП позволяет в некотором смысле вносить комментарии в исходники. Но то же самое можно сказать и о процедурном программировании! Там, где асм-программер обошелся бы call [eax], а то и джампом, C-программер пишет какие-то десятки строк хидеров (которые вообще никакого кода не производят!).
Все современные высокоуровневые языки можно трактовать ровно как возможность писать комментарии в исходниках. Я надеюсь, что в будущем вместо натужных описаний типа "Это класс XFactory. Реализует паттерн factory для класса X." мы сможем записывать этот факт в исходнике. И это будет намного круче, потому что этот комментарий будет читать компилятор, и он проверит его как минимум на полноту и непротиворечивость.
Фрагмент звучит так, как будто Грэм считает комментирование "лишней" работой. Если это так, то он врёт. Лисп-хакер, который одной строкой может положить символ на стек и поставить в тупик еще пятерых лисп-хакеров, потому что он не удосужился написать двадцать строк тщательно отформатированного комментария, может идти далеко.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Привет от Пола Грэма ;)
От: Трурль  
Дата: 28.12.04 08:30
Оценка: :)
Здравствуйте, Sinclair, Вы писали:


i++; // увеличиваем i на 1
Re[4]: Привет от Пола Грэма ;)
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.12.04 08:56
Оценка: +1
Здравствуйте, Трурль, Вы писали:

Ну, на самом деле имелось в виду
inc eax; // увеличиваем i на 1

И без правой части можно мозг сломать, выясняя по коду, что же мы такое инкрементируем.
В С уже можно таких комментов не писать, ибо они выражены в коде. В С++ можно писать меньше комментов, чем в С. Потому что кое-что выражается в виде кода.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.