I’ll assume you’ve got a set of strongly-held beliefs about software development. This is a safe bet; anyone who writes code has some personal mantras and peeves.
Maybe you think that PHP is a broken mess or that Perl is unmaintainable? Maybe you’re quick to respond in forums with essays about the pointlessness of the singleton pattern? You should always check the result code after calling
malloc. Or wait, no, result codes are evil and exceptions are The Way. Always write the test cases before any code. Static typing is…well, I could keep going and hit dozens of other classic points of contention and link to arguments for each side.
Now imagine there are two finished apps that solve roughly identical problems. One is enjoyable to use and popular and making a lot of money. The other just doesn’t feel right in a difficult to define way. One of these apps follows all of your development ideals, but which app is it? What if the successful product is riddled with singletons, doesn’t check result codes after allocating memory (but the sizes of these allocations are such that failures only occur in pathological cases), and the authors don’t know about test-driven development? Oh, and the website of the popular app makes extensive use of PHP.
Or even simpler: pick a single tool or game or application you admire, one you don’t have any inside information about. Now just by staring hard at the screen, determine if the author favored composition over inheritance or if he’s making rampant use of global variables. Maybe there are are five-hundred line functions and gotos all over the place, but you can’t tell. Even if you pick a program that constantly crashes, how do you know the author doesn’t have exactly the same opinions about development as you?
It’s not the behind-the-scenes, pseudo-engineering theories that matter. An app needs to work and be relatively stable and bug free, but there are many ways to reach that point. There isn’t a direct connection between some techie feel-good rule and success. For most arbitrary rules espoused in forums and blogs, you’ll find other people vehemently arguing the opposite opinion. And it might just be that too much of this kind of thinking is turning you into an obsessive architect of abstract code, not the builder of things people want.
(If you liked this, you might enjoy Don’t Fall in Love with Your Technology.)
Categories: Blogs Programming in the 21st Century
Erlang on Twitter
» jshoffstall (Justin Shoffstall): @cemerick Learning Erlang is the easy part. If you’re a good fit, you’re a good fit, and that’s it. @tsantero @cmeik
@cemerick Learning Erlang is the easy part. If you’re a good fit, you’re a good fit, and that’s it. @tsantero @cmeik
» cemerick (Chas Emerick): @tsantero @jshoffstall @cmeik my erlang, it is to laff
@tsantero @jshoffstall @cmeik my erlang, it is to laff
» __leocorrea (Leo Correa): @coreyhaines :o I’ve been wanting to find erlang meet ups in #miami
@coreyhaines :o I’ve been wanting to find erlang meet ups in #miami
» coreyhaines (Corey Haines): Fun time at erlang meetup, happy to be heading home to @fablednet !
Fun time at erlang meetup, happy to be heading home to @fablednet !
» priestjim (Panos Papadomitsos): Dumping mnesia in favor of ets for in-VM beancounting (reqs/sec etc)? Yes, please! #erlang #devops
Dumping mnesia in favor of ets for in-VM beancounting (reqs/sec etc)? Yes, please! #erlang #devops
» stephenpegoraro (Stephen Pegoraro): @fredwu enjoy! I started playing with it a few months ago. We all know how powerful the erlang vm is, having a ruby-eque syntax is a bonus!
@fredwu enjoy! I started playing with it a few months ago. We all know how powerful the erlang vm is, having a ruby-eque syntax is a bonus!
» TrainByTweet_VO (TrainByTweet_VO): VOIP: #Engineering #Network #VOIP #Erlang #Ethernet #Codec #Voice #Bandwidth #Signaling #Protocol #Firewall #Security #Encryption
VOIP: #Engineering #Network #VOIP #Erlang #Ethernet #Codec #Voice #Bandwidth #Signaling #Protocol #Firewall #Security #Encryption
Number of aggregated posts: 10650
Most recent article: May 20, 2013
» Moraru on This is Why You Spent All that Time Learning to Program: It is true that computer science was a pain in the back at time that i’ve had to learn it…
» Commercial hand dryers on Couchbase Meetup at new HQ: Buy online from here where you will get so much of variety in Commercial hand dryers for people. If you…
» Fort McMurray Homes on Motivated Reasoning and Erlang vs Python vs Node: I don’t really understand why this post is motivational? I don’t even see a post, just a title. Fort McMurray…