пятница, 12 июня 2009 г.

[comp.prog] Пару слов о метапрограммировании в Ruby

Это кривая отношения Ruby-разработчиков компании ThoughtWorks к метапрограммированию в Ruby. Она взята из рассказа Мартина Фаулера об опыте использования Ruby в проектах ThoughtWorks.

Хорошо видно, как резко происходит переход от непонимания и неумения использовать метапрограммирование к его чрезмерному использованию. А затем, так же резко отношение меняется к нормальному, прагматичному – все хорошо в малых дозах.

Имхо, это объясняет главную причину, по которой Lisp так никогда и не завоевал весь мир – в нем нельзя пользоваться метапрограммированием в малых дозах, а только в лошадиных :)

4 комментария:

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

    ОтветитьУдалить
  2. Еще он упускает такую вещь что большая часть, думаю намного больше 50 процентов программистов вообще не используют и даже не догадываются о том что в языке (тут я сужу по питонистам) есть возможности метапрограммирования :)

    ОтветитьУдалить
  3. Примерил график на C++, и кажется правая часть графика очень сильно ниже будет, а кое у кого и в минус уйдет :)

    ОтветитьУдалить
  4. Но поводу Схемы и Лиспа. Вообще-то даже на C++ можно писать просто и довольно безопасно. Но людей хлебом не корми, дай что-нибудь типа Loki или Boost-а изобрести :) Так же и с Лиспом -- можно и без макросов, но почему-то макросы широко используются.

    Что до программистов, так Фаулер вроде как специально оговаривает, что у них очень продвинутые программисты работают. Так что есть шансы, что они в курсе. Тем более, что судя по всему у них не более пары десятков Ruby-программистов.

    Да, C++ -- это вообще отдельная песня :)

    ОтветитьУдалить