raganwald
(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Monday, June 09, 2008
  Bitchiness also sucks


“This framework I never use in a programming language I also never use is designed in a way that I don’t like, so I’m going to raise a ruckus even though I’m never going to use it and there are other frameworks that meet my design standards better” just seems like a dumb thing to write a bitchy blog post about.
—Chuck Hoffman, activerecord sucks, but it doesn't matter

Chuck, thank you for saying what needs to be said. Bitchy blog posts purport to describe shortcomings, but are they anything more than thinly veiled chest thumping from an author who feels he is the smartest person in the room?

p.s. Question: Are bitchy blog posts about bitchy blog posts (like this one!) still bitchy blog posts?
 

Comments on “Bitchiness also sucks:
> Question: Are bitchy blog posts
> about bitchy blog posts (like this
> one!) still bitchy blog posts?

nope.. it is a meta-bitchy blog post :)
 
I was thinking “bitchy blog meta-post” but I can also understand teh argument for “bitchy meta-(blog post).”
 
It's a very thin line, since we could use a whole lot more objectivity in the way we approach our technologies. People pointing out real weaknesses are good. On the other hand, picking on things for non-factual reasons amounts to being irrational about defending your favorite technology. Not too useful.

So long as people are careful to stick to facts (that make sense) the discussions are constructive. Bitchy then is just an entertaining style of writing :-)


Paul.
http://theprogrammersparadox.blogspot.com
 
Paul:

Don’t drag facts into this :-)

Seriously, even when people are stating facts, the problem is that the facts arrive without any context. This is especially true when the person blogging doesn't have a useful perspective on the matter.

This is why I really prefer to read people bitching about things they actually use and love. When someone gives something a cursory once-over and then bitches about it, the usual take-away is that they tried to shoehorn it into their pre-existing model of how things should work and haven't grokked its own particular style and the trade-offs it presents.
 
My problem with activerecord is that it is halfassed. It should be an interface for an OO database (implemenation of which is abstracted away). It should not be a wrapper for a relational database.

I'm thinking of how bigtable is used with appengine. You define the object, you tell it to save, you don't care where it goes.

If activerecord worked that way, it'd be much more useful. Instead activerecord becomes a redundant interface. SQL itself is a database-agnostic generic interface language. You don't need to wrap it in another one.
 
Sean:

I think the phrase you are searching for is “not to my likeing.” half-assed suggests the authors were trying to implement the design you have in mind, but fell short. Whereas you explain that they were trying to do something else entirely.

Which is not to say Ruby’s ActiveRecord does a good or a bad job of what it does, just that by your own words it is trying to do something entirely different than what you want a database API to do.
 




<< Home
Reg Braithwaite


Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

Books
What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /