Shorter version: pedantry sucks. There was little to no insight in the original, it's just a list of stuff that can reasonably be argued to be "good". Those rules won't a great product make, but breaking them doesn't seem like a great idea for most people either.
My own feelings are closer to this poster's than the original list of admonishments, but these aren't issues that anyone should really be getting upset over. Basically: don't refute shopping lists. It just wastes everyone's time.
Yes, on many of those points, you're doing it wrong.
Whatever, it’s okay not to use a framework. And if you don’t count Smarty as a framework, then you really don’t ever need a Framework.
No, m'dear. It's not ok to not use a framework for non-trivial web applications where so many suitable frameworks exist. If you're writing a reasonably complex application, you are always using a framework. The question is just - which framework are you using? The one you cobbled together while focusing on building actual functionality, or the one that a lot of people have poured countless hours into to make it good?
Yes, you're doing it wrong.
Wrong. You do not need to use an ORM layer. If anything, your life will be more painful later as you figure out that many of your bottlenecks are abstracted out of sight and are hard to uncover.
Not using an ORM layer as a way to resolve future, unknown performance problems is an extremely stupid example of Premature Optimisation ( http://www.inter-sections.net/2007/11/08/premature-optimisat... ). Why don't you write it in assembler while you're at it? Then your code will be even faster.
Yes, you're doing it wrong.
Chris has clearly never used a Ruby Gem or CPAN or PEAR. Much of it is slow, buggy garbage.
I use gems and rails plugins every day. Whatever Chris may have used or not used, I find them extremely suitable for many tasks. If you're writing your own code all the time, you're wasting your valuable time.
You're doing it wrong.
If you rely on unit-testing, you are setting yourself up for a rude awakening.
If you believe that, you have never been awake.
You're doing it wrong.
If you spend half your time ensuring you DRY, you are wasting your time.
Half is a bit much, but Chris never mentioned half. Classic strawman. If you don't spend any of your time refactoring your code, you're doing it wrong (I can do strawmen too)
If only because I worry that some of the smart-but-inexperienced YC folks might actually believe what he writes.
For the record, I revised the first post from "ORM" to "database abstraction layer". A number of the more intelligent counter-points to that were correct; stating that one should only use an ORM was unintentionally too domain-specific.
I think that for web applications, ORM is the right word. In fact, for almost anything that uses a database, an ORM is warranted. This is from someone who's done it both ways several times, including writing my own ORM a couple of times both as a side-project and as part of a project that "didn't need ORM".
I don't know why we use ORM in the first place. I mean, if your data isn't relational, why are you putting it in a relational database? Why not use a simpler persistence layer?
Because relational databases are an extremely stable and reliable persistence layer, that is widely understood, can usually be scaled up through various well practiced techniques from clustering to sharding, and makes it easy to optimise the handful of bottlenecks you're guaranteed to run into by bypassing the ORM system and doing some direct SQL or stored proc queries for those handful of bits that need it.
My own feelings are closer to this poster's than the original list of admonishments, but these aren't issues that anyone should really be getting upset over. Basically: don't refute shopping lists. It just wastes everyone's time.