Tuesday, December 18, 2007

Less Bickering - Ruby vs. Python

Brilliant post. Please read. Essentially it's a matter of comfort. There aren't too many glaring issues on either side, other than pure immaturity on an enterprise scale.

Having done too much of all three (I added one), I love Ruby compared to Java and I love Python compared to Ruby. I love the choices of platforms in Python and don't really like the closed feeling and cultlike approach ROR communities. Nothing is quite as bad as C++. or Perl though. I've only touched on PHP but it gives the impression of being really easy to start and really hard to finish.

Things I'd love to see to see from Ruby or Python...
1. Message Bus / MQ Type app
2. Rules Engine
3. BI mini platform
4. Data Transformation Svcs / ETL / Integration Platform

Maybe they're not needed. Maybe I should just be happy with great ORMs.

Conceptual Bickering

Rarely do I disagree so wholeheartedly. Conceptual Integrity. Great for right now. Perfect even. Maybe good later. Much later? Not so much.

My Take:
Loosely coupled systems and best-of-breed / best-for-me systems are flexible and are much more powerful in the long run. They are harder to play with out of the box (crappy tutorials are a common problem), but in the long run they provide flexibility that is unmatched. Admittedly I used to be a Conceptual Integrity advocate. 10 years of waiting for Java to incorporate JSRs into releases and obtuse Microsoft MSDN searches killed it. Almost makes me wish I spent my time coding C and Perl and contributing to lost Linux distros.

Best-of-* Pros:
Let's loot at Pylons vs. Django. Django is great - fantastic even. it's what got me into Python, but some of the components weren't right for the projects I'm developing - plus, their infinite release cycles are absurd. Pylons advantages lie in it's loosely couple structure. Don't like Mako? Try Genshi. SQLAlchemy too confusing? SQLObject or Elixir. Need a component? You don't have to work hard to figure out how to swap out the platform standards and implement something to your liking or write your own (egads!).

Best-of-* Cons:
Pylons Documentation stinks (sorry guys). SQLAlchemy is a bit of a mystery to me even after delving deep into the source. Mako - ack! The biggest problem is really being able to read different styles of docs and learning where to find info. Thank goodness for google and google-groups. Otherwise it'd be impossible.

Maybe I'm an architect first and a developer second. Conceptual Integrity is something that I'd rather create based on the needs of the app. Not look for a platform to provide.