Это кривая отношения Ruby-разработчиков компании ThoughtWorks к метапрограммированию в Ruby. Она взята из рассказа Мартина Фаулера об опыте использования Ruby в проектах ThoughtWorks.
Хорошо видно, как резко происходит переход от непонимания и неумения использовать метапрограммирование к его чрезмерному использованию. А затем, так же резко отношение меняется к нормальному, прагматичному – все хорошо в малых дозах.
Имхо, это объясняет главную причину, по которой Lisp так никогда и не завоевал весь мир – в нем нельзя пользоваться метапрограммированием в малых дозах, а только в лошадиных :)
4 комментария:
Вообще то даже на схеме можно писать совсем не пользуясь макросами (кроме стандартных и библиотечных конечно), и будет вполне нормальный высокоуровневый язык, на лиспе по моему будет еще проще у него и стандартная бибилотека побольше, и управляющие конструкции побогаче.
Еще он упускает такую вещь что большая часть, думаю намного больше 50 процентов программистов вообще не используют и даже не догадываются о том что в языке (тут я сужу по питонистам) есть возможности метапрограммирования :)
Примерил график на C++, и кажется правая часть графика очень сильно ниже будет, а кое у кого и в минус уйдет :)
Но поводу Схемы и Лиспа. Вообще-то даже на C++ можно писать просто и довольно безопасно. Но людей хлебом не корми, дай что-нибудь типа Loki или Boost-а изобрести :) Так же и с Лиспом -- можно и без макросов, но почему-то макросы широко используются.
Что до программистов, так Фаулер вроде как специально оговаривает, что у них очень продвинутые программисты работают. Так что есть шансы, что они в курсе. Тем более, что судя по всему у них не более пары десятков Ruby-программистов.
Да, C++ -- это вообще отдельная песня :)
Отправить комментарий