Re[9]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 30.01.07 11:04
Оценка:
Здравствуйте, AndreiF, Вы писали:

AF>Здравствуйте, Cyberax, Вы писали:


C>>Написать Q4. В теории это возможно хоть на Brainf**k, но на

C>>практике
только С++.

AF>шейдеры тоже на С++ написаны?


Мимо кассы, на питоне шейдеры тоже ни пишутся. Есть специальный язык для написания шейдеров с С подобным синтаксисом, его года 2 назад кажись стандартизировали.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[6]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 30.01.07 11:07
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

АХ>Здравствуйте, jazzer, Вы писали:


J>>А метапрограммирование — штука сравнительно новая.


АХ>Да, всего лет 50 существует .


Ага, а высшая математика существует со времен парадоксов Зенона.
Давайте не заниматься демагогией.

Когда метапрограммирование начало использоваться промышленно? Как методология, типа структурного, или ООП? Когда метапрограммированию стало уделяться в университетах столько же времени, как структурному или ООП? Когда оно стало магистральным направлением, каким последний лет 20 является ООП?

Имхо, до последнего времени (до 90-х) оно было больше игрушкой, чем реально и осознанно применявшимся методом программирования, со своими идиомами, методологиями.

Шаблоны в С++ тоже вон были давно, но применяться для метапрограммирования и программирования в функциональном стиле они стали совсем недавно, а до этого они использовались где-то на уровне eval в скриптах. Согласись же, eval никогда не был основным инструментом в скриптах, там всегда рулил стандартный процедурный подход, хотя все знали, что eval под боком.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[11]: Сложный язык для сложных срограмм.
От: Plague Россия 177230800
Дата: 30.01.07 11:08
Оценка: +2
AF>Но на С++ нельзя, верно?

Что-то Вы, уважаемый, преувеличиваете. Не надо думать, что все считают, что С++ можно запихнуть везде. Инструкции шейдеров довольно сложны, а учитывая, что требуется оптимизировать с учетом ТИПОВ и КОНВЕЙЕРОВ. Шейдеры пишутся на DSL языках, т.к. их нельзя использовать для разработки других программ и в них встроены особенности работы с видеокартой.

Скриптовые языки введены в разработку игр по одной причине — распределение разработки, т.е. те кто будет писать скрипты, т.е. это могут быть даже не высококвалифицированные программисты, т.е. язык должен быть проще и в нем должен быть доступ только к игровым объектам. При этом разработка может проходить параллельно и изменения не будут влиять на основной модуль.
Re[11]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 30.01.07 11:08
Оценка: +1
Здравствуйте, AndreiF, Вы писали:

AF>Здравствуйте, CreatorCray, Вы писали:


CC>>Хе хе. Шейдеры можно успешно на NVAsm писать. Или на CG


AF>Но на С++ нельзя, верно?


А ты знаешь что такое шейдеры? И почему для них используют специальные языки?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[4]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 30.01.07 11:13
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Здравствуйте, eao197, Вы писали:


E>>Здравствуйте, iZEN, Вы писали:


ZEN>>>И то, что сложный язык не нашёл горячей поддержки о "тупых" менеджеров, а остался в той нише, где он, скорее всего, останется навсегда, говорит о многом: за двадцать три года язык C++ не стал доминирующим языком высокого уровня, поскольку универсальность ведёт к сложности, а людям нужно решать конкретные узкоспециализированные задачи с быстрым обучением и быстрой отдачей. И они решают их не на C++.


E>>А не напомните, какой язык был доминирующим языком высокого уровня десять лет назад? Хотя бы на x86 платформе?


Ш>С ?


Высокого уровня?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[2]: Ада: Сложный язык для сложных программ.
От: Plague Россия 177230800
Дата: 30.01.07 11:14
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Вообще-то аналогичная фраза (что-то вроде: "сложные задачи требуют сложных решений") была сказана задолго до Страуструпа одним из создателей языка Ада в ответ на вопрос Никлауса Вирта зачем же его понадобилось делать таким сложным.


Хех, как Вы хитро сюда к разговору Вирта прикрутили, это намек на Оберон? Его простота в отсутствии "Синтаксического оверхеда"?
Re[10]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 30.01.07 11:24
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, jazzer, Вы писали:


J>>>>Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?


E>>>Думаю, что где-то в района рождения Lisp-а, а может и раньше


J>>Ага, для программирования искуственного интеллекта в университетах


J>>В то время рулили всякие алголы и фортраны и прочие PL/1


E>Понятие "рулили" очень абстрактное. То, что большинство программистов в то время выполняли свою работу не на Lisp-е вовсе не означает, что на лиспе вообще не делалось важных и ответственных проектов. Думаю, что таки делались и метапрограммирование при этом использовалось на полную катушку.


У меня таких данных нет. У тебя есть? Я имею в виду, количество проектов на язык (а лучше — на методику, потому что тот же С++ можно использовать как С с классами, а можно — на полную катушку). Очень интересно посмотреть, в каком году в каком проценте проектов использовалось метапрограммирование (имхо, сейчас количество таких проектов быстро растет и почти не зависит от задачи, если только она не совсем уж тупая типа разбрасывания контролов по форме).

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

Если бы метапрограммирование действительно рулило в то время, как рулило ООП, Страуструп бы ставил целью не только поддержку ООП, но и поддержку метапрограммирования (и все другие языки в то время — тоже. А уж после — тем более). Однако ничего такого не было. И жава тоже создавалась без единой мысли о метапрограммировании, была только базовая рефлексия, а это язык гораздо более новый, чем С++.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: Сложный язык для сложных срограмм.
От: dmz Россия  
Дата: 30.01.07 11:24
Оценка:
J>Когда метапрограммирование начало использоваться промышленно?

Smalltalk-80? 80 — это год, если я правильно понимаю? Smalltalk же — промышленный язык?

J>Как методология, типа структурного, или ООП? Когда метапрограммированию стало уделяться в университетах столько же J>времени, как структурному или ООП? Когда оно стало магистральным направлением, каким последний лет 20 является J>ООП?


В принципе, кодогенерация это тоже, в некотором роде, метапрограммирование. А лет кодогенерации лет наверное немногим меньше, чем программированию.

J>Имхо, до последнего времени (до 90-х) оно было больше игрушкой, чем реально и осознанно применявшимся методом программирования, со своими идиомами, методологиями.


90ые — это не совсем последнее время, все-таки.

J>Шаблоны в С++ тоже вон были давно, но применяться для метапрограммирования и программирования в функциональном стиле они стали совсем недавно,


"Применяться для программирования в функциональном стиле" — это ты имеешь ввиду Александреску "Язык шаблонов в C++ — чисто функциональный язык, программы на котором выполняются во время компиляции.",

или реализуемые при их помощи функциональные примочки в стиле boots::lambda?

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


Думаю, это просто особенности восприятия. Судя по описаниям курса CS в MIT, метапрограммирование — это боян... то есть классика CS.

И возможности метапрограммирования в C++ шаблонах — достаточно ограничены.
Re[8]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 30.01.07 11:36
Оценка:
Здравствуйте, dmz, Вы писали:


J>>Когда метапрограммирование начало использоваться промышленно?


dmz>Smalltalk-80? 80 — это год, если я правильно понимаю? Smalltalk же — промышленный язык?


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

J>>Как методология, типа структурного, или ООП? Когда метапрограммированию стало уделяться в университетах столько же J>времени, как структурному или ООП? Когда оно стало магистральным направлением, каким последний лет 20 является J>ООП?


dmz>В принципе, кодогенерация это тоже, в некотором роде, метапрограммирование. А лет кодогенерации лет наверное немногим меньше, чем программированию.


Метапрограммирование — это руление кодом программы из самого кода на этом же языке в той же самой программе.
А кодогенерация — это кодогенерация, у нее свое место.
Как и у рефлексии.
Вот когда они объединяются и работают в рамках той же программы — это метапрограммирование.

J>>Имхо, до последнего времени (до 90-х) оно было больше игрушкой, чем реально и осознанно применявшимся методом программирования, со своими идиомами, методологиями.


dmz>90ые — это не совсем последнее время, все-таки.

Вполне последнее, для меня, по крайней мере. Скажем, в 90-е появилась джава — и где в ней поддержка метапрограммирования, раз оно так рулило до 90-х? Или хотя бы программые заявления на тему, что в след. версии все будет?

J>>Шаблоны в С++ тоже вон были давно, но применяться для метапрограммирования и программирования в функциональном стиле они стали совсем недавно,


dmz>"Применяться для программирования в функциональном стиле" — это ты имеешь ввиду Александреску "Язык шаблонов в C++ — чисто функциональный язык, программы на котором выполняются во время компиляции.",


dmz>или реализуемые при их помощи функциональные примочки в стиле boots::lambda?


А какая разница? И там, и там метапрограммирование.
И Александреску совсем не был первым извращенцем, кстати

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


dmz>Думаю, это просто особенности восприятия. Судя по описаниям курса CS в MIT, метапрограммирование — это боян... то есть классика CS.

По количеству часов, отводимых на него, и количеству программистов, выпускавшихся специалистами по метаязыкам — что ,столько же ,сколько по С/С++/VB?

dmz>И возможности метапрограммирования в C++ шаблонах — достаточно ограничены.

Никто и не говорит, что они безграничны.
Если бы это было не так, не было бы такой цитаты со странички комитета: http://www.rsdn.ru/Forum/Message.aspx?mid=2324384&only=1
Автор: jazzer
Дата: 29.01.07
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[12]: Сложный язык для сложных срограмм.
От: FR  
Дата: 30.01.07 11:39
Оценка:
Здравствуйте, SiAVoL, Вы писали:

SAV>Здравствуйте, Константин Л., Вы писали:


КЛ>>Однако корреляция м/у сложность ю мощность все же существует. Имхо.

SAV>в смысле с ростом сложности растет и мощность языка? Не уверен. Вспомним статью Путеводитель автостопщика по потаенным знаниям
Автор(ы): Зверёк Харьковский
Дата: 01.04.2005
Потаенные (англ. esoteric – они же эзотерические, тайные и понятные лишь посвященным) Языки Программирования испокон веков (1972) создавались для раздвижения границ возможного, удивления себе подобных и почесывания левой пяткой правого уха – только не для того, чтобы писать на них программы...
и языки типа BrainFuck и сотоварищи


Так BrainFuck очень простой язык.
Re[7]: Сложный язык для сложных срограмм.
От: FR  
Дата: 30.01.07 11:39
Оценка:
Здравствуйте, jazzer, Вы писали:


J>Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?


Конечно, ключевое слово макроассемблер.

J>Только не надо говорить, что метапрограммирование появилось, как только появился первый интерпретатор с командой eval (вообще говоря, тут и eval не нужен — ты можешь просто сгенерить из своего скрипта рядом файл с новым кодом и позвать его — чем не метапрограммирование).


Не только, в том же форте макро вполне в стиле немерле (вернее наооборот).
Re[12]: Сложный язык для сложных срограмм.
От: AndreiF  
Дата: 30.01.07 11:53
Оценка: -1
Здравствуйте, Plague, Вы писали:

P>Что-то Вы, уважаемый, преувеличиваете.


Что конкретно я преувеличил?

P>Не надо думать, что все считают, что С++ можно запихнуть везде.


Некоторые так считают, с ними я и беседовал.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Сложный язык для сложных срограмм.
От: AndreiF  
Дата: 30.01.07 11:53
Оценка:
Здравствуйте, dr.Chaos, Вы писали:

DC>Мимо кассы, на питоне шейдеры тоже ни пишутся.


Я и без тебя знаю. Спор вообще не об этом.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Сложный язык для сложных срограмм.
От: dmz Россия  
Дата: 30.01.07 12:09
Оценка: +1
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, dmz, Вы писали:



J>>>Когда метапрограммирование начало использоваться промышленно?



J>Ну, я не помню там особого метапрограммирования. Рефлексия — да, была.


Согласно источникам, там еще были метаклассы.

J>И потом, ну какой это промышленный язык? Когда количество проектов на нем хотя бы приближалось к количеству J>ООП-проектов на других ООП-языках?


А какие еще в 80-х были ООП языки? И каково было вообще количество проектов? Есть подозрение, что
сильно меньше, чем сейчас.

dmz>>В принципе, кодогенерация это тоже, в некотором роде, метапрограммирование. А лет кодогенерации лет наверное немногим меньше, чем программированию.


J>Метапрограммирование — это руление кодом программы из самого кода на этом же языке в той же самой программе.

J>А кодогенерация — это кодогенерация, у нее свое место.

С тобой согласны не все:

Metaprogramming is the writing of programs that write or manipulate other programs (or themselves) as their data or that do part of the work that is otherwise done at runtime during compile time. This allows programmers to produce a larger amount of code and get more done in the same amount of time as they would take to write all the code manually.


Да и из практических соображений, велика ли разница — сам язык предоставляет средства манипулирования порождаемым кодом, или внешний тул? Вот взять С — препроцессор, там, конечно, часть языка — но больших проблемах написать препроцессоров на чем угодно и использовать их — нет. Какая разница при этом? Родной препроцессор в принципе, сильно отличается от языка в целом. То же можно и сказать о шаблонах — они, согласно стандарту, часть языка — но при этом сильно отличаются от остального языка. Это целая новая концепция, с другими выразительными средствами и даже подходом.

J>А какая разница? И там, и там метапрограммирование.

J>И Александреску совсем не был первым извращенцем, кстати

Ну разница где-то в том, что вычисление факториала числа в компайл-тайме
практически бесполезно, несмотря на то, что реализовано при помощи "метапрограммирования".

J>По количеству часов, отводимых на него, и количеству программистов, выпускавшихся специалистами по метаязыкам — J>что ,столько же ,сколько по С/С++/VB?


По количеству часов, честно говоря, не знаю. Знаю только, что в MIT CS учили с чего-то вроде схемы, по пути реализовав ее интерпретатор в рамках курса. А VB в штатах учат таксистов, на недельных курсах.
Re[10]: Сложный язык для сложных срограмм.
От: CreatorCray  
Дата: 30.01.07 12:16
Оценка:
Здравствуйте, Gajdalager, Вы писали:

G>Т.о. .Нет 1.1 все-таки кросплатформенный за небольшим исключением.

Нельзя быть немного беременной. Или кроссплатформ или нет. Иначе получается кросс только для негуевых прог.

G>Думаю, если бы МС вложила в развитие Моно (или даже своего собственного порта .Нета под Линукс) хотя бы половину денег, которые вложила в разработку платформы под винду

Ага щаззз...

G>С другой стороны, в Жавы есть реальная кросплатформенность, с этим, думаю, не поспоришь.

В те древние времена когда я работал в жабовом проекте с кроссплатформенностью там были проблемы. И это на чисто бизнес проекте где ничего HW specific не было. Правда давно это было ...

G>В плюсах же ВМ и ГЦ нет

И это является плюсом плюсов.

G>На засыпочку. Сколько времени тебе нужно убить, чтобы скомпилировать и запустить код, отлично портируемый между Win-32 и Linux, на 64-битную архитектуру?

Чью 64 битную? Win/Lin?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Сложный язык для сложных срограмм.
От: CreatorCray  
Дата: 30.01.07 12:16
Оценка:
Здравствуйте, AndreiF, Вы писали:

AF>Но на С++ нельзя, верно?

На любом другом кстати тоже...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 30.01.07 12:18
Оценка:
Здравствуйте, AndreiF, Вы писали:

AF>Здравствуйте, dr.Chaos, Вы писали:


DC>>Мимо кассы, на питоне шейдеры тоже ни пишутся.


AF>Я и без тебя знаю. Спор вообще не об этом.


А о чем?

Шейдеры тут вообще не к месту. Они пишутся на своем специализированном языке и точка, ни С++, ни пайтон тут не причем.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[12]: Сложный язык для сложных срограмм.
От: AndreiF  
Дата: 30.01.07 12:23
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>На любом другом кстати тоже...


Это уже отельный вопрос. А факт — это то, что универсальность плюсов сильно преувеличивают. И никакого Q4 "на чистом С++" никто не напишет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Сложный язык для сложных срограмм.
От: Kisloid Мухосранск  
Дата: 30.01.07 12:24
Оценка: 102 (6)
Здравствуйте, jazzer, Вы писали:

J>Ты не согласен? Старая? И когда же метапрограммирование начало рассматриваться и применяться как полноценный метод программирования наряду с другими? До рождения С++?


Впервые термин квази-цитирование был введен известным специалистом в области логики Уиллардом Куини в 1940 году. Куин использовал квази-цитирование для конструирования выражений математической логики. И первым языком, использующим, механизм квази-цитирования стал Lisp разработанный Джоном Маккарти примерно в 1960 году, но внедрен в язык и начал применяться только с середины 70-х годов.

(с) мой, отрывок из моей работы
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re[13]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 30.01.07 12:28
Оценка:
Здравствуйте, AndreiF, Вы писали:

AF>Здравствуйте, CreatorCray, Вы писали:


CC>>На любом другом кстати тоже...


AF>Это уже отельный вопрос. А факт — это то, что универсальность плюсов сильно преувеличивают. И никакого Q4 "на чистом С++" никто не напишет.


А шейдеры тут причем?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.