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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.