{"id":391,"date":"2004-04-01T11:03:40","date_gmt":"2004-04-01T16:03:40","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/hoanga\/2004\/04\/01\/jwz-beats-up-design-patterns\/"},"modified":"2004-04-01T11:03:40","modified_gmt":"2004-04-01T16:03:40","slug":"jwz-beats-up-design-patterns","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/hoanga\/2004\/04\/01\/jwz-beats-up-design-patterns\/","title":{"rendered":"JWZ beats up Design Patterns"},"content":{"rendered":"<p><a name='a350'><\/a><\/p>\n<p>\n This is just hilarious:\n <\/p>\n<p> <em><\/p>\n<p>\n I just read <a href=\"http:\/\/csis.pace.edu\/~bergin\/patterns\/ppoop.html\"><br \/>\n Understanding Object Oriented Programming<\/a> and it&#8217;s a hoot &#8212;\n <\/p>\n<p>\n <b><br \/>\n Every if and every switch should be viewed as a lost opportunity for<br \/>\n dynamic polymorphism.<br \/>\n <\/b>\n <\/p>\n<p> <\/em><\/p>\n<p>\n If you get the chance I suggest you read all the comments people made to JWZ on<br \/>\n this topic.  This comment is an absolute classic:\n <\/p>\n<p>\n <em><br \/>\n You know, when you have a program that does something really cool, and you wrote it from scratch, and it took a significant part of your life, you grow fond of it. When it&#8217;s finished, it feels like some kind of amorphous sculpture that you&#8217;ve created. It has an abstract shape in your head that&#8217;s completely independent of its actual purpose. Elegant, simple, beautiful.\n <\/p>\n<p>\n Then, only a year later, after making dozens of pragmatic alterations to suit the people who use it, not only has your Venus-de-Milo lost both arms, she also has a giraffe&#8217;s head sticking out of her chest and a cherubic penis that squirts colored water into a plastic bucket. The romance has become so painful that each day you struggle with an overwhelming urge to smash the fucking thing to pieces with a hammer.\n <\/p>\n<p> <\/em><\/p>\n<p>\n <a href=\"http:\/\/www.livejournal.com\/users\/jwz\/322724.html\">Go read it<\/a>\n <\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is just hilarious: I just read Understanding Object Oriented Programming and it&#8217;s a hoot &#8212; Every if and every switch should be viewed as a lost opportunity for dynamic polymorphism. If you get the chance I suggest you read all the comments people made to JWZ on this topic. This comment is an absolute [&hellip;]<\/p>\n","protected":false},"author":704,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1212],"tags":[],"class_list":["post-391","post","type-post","status-publish","format-standard","hentry","category-tagme"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts\/391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/users\/704"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/comments?post=391"}],"version-history":[{"count":0,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts\/391\/revisions"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/media?parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/categories?post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/tags?post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}