
Rails Has Turned Me Into a Cannibalizing Idiot - hkarthik
http://wekeroad.com/2012/01/03/rails-has-turned-me-into-a-cannibalizing-idiot/
======
navyrain
In programming, pragmatism always beats dogma. The blog post to which this
link responds was particularly venomous and unsubstantive, and is easily
dismissed when you apply a modicum of reason.

I'm a little surprised that rant even earned a response. Are current web
frameworks perfect? No. Are we all in complete agreement about how to improve
them? No. Ok, with that out of the way, lets keep this in mind during our
collective disagreements:
[http://scienceblogs.com/startswithabang/upload/2009/08/weeke...](http://scienceblogs.com/startswithabang/upload/2009/08/weekend_diversion_how_to_argue/disagreement-
hierarchy.jpg)

~~~
dextorious
"""In programming, pragmatism always beats dogma."""

Yes, but also computer science theory --which is mostly _infallible_ domain
specific mathematics--, always beats idiotic industry practices and ignorant
dismissal of theory.

Pragmatism is: "2 + 2.0000000000001 = 4, for my purposes".

It's not: "2 + 2 = 5, theoretical dogma be damned"

~~~
navyrain
Of course, there are do exist hard laws in computer science; this is not in
dispute. However, web programming is inherently not a ivory-tower mathematic
art, as the objectives of the web programmer are different than those of
computer science researcher. The researcher will prioritize scientific rigor,
and the web programmer will prioritize practical use of resources during their
implementation.

~~~
dextorious
"""The researcher will prioritize scientific rigor, and the web programmer
will prioritize practical use of resources during their implementation."""

Yes, but in the end, you can't escape theory, you have to know it, even if
less rigorously and systematically.

Consider the example of the web programmer that stores monetary transactions
as floats in some db, blissfully unaware of the issues. Hilarity (or huge
lawsuits) ensues...

------
dlikhten
"I have a module called “Authenticatable” that handles membership for me. I
can attach it to whatever model object I please (Customer, Account, User,
whatever) and guess what it can do! Ruby is really a fascinating language when
you take the time to understand it beyond a demo that makes you hate it. Did
you know Ruby is older than C#? It is."

I been doing this exact thing in my project. Core behaviors are now modules
included in my AR classes. I can make anything authenticatable, or locatable,
etc etc etc. One of my classes "extends" many modules, each one independently
tested and gives some specific behavior to any object it takes.

Granted, rails is not good as a long-term framework for long-lived projects.
It's a great starting point. Eventually you will use less rails and more
custom services. I think of rails like facebook thinks of PHP -- front end
code.

------
jim_kaiser
Nice. An interesting read. I haven't used FubuMVC before but as for rails and
other similar web frameworks, the principle is "Convention over
Configuration", so you would have certain limits on the way you think.

But the bright side is that this "Convention" has arose from identifying the
common problems with web development and coming up with a standard solution
which adheres to DRY principle which is another one of the Rails founding
principles. The Convention also makes it easier for users to share code
helping DRY again. So, if you prefer "Configuration over Convention", you are
better off using something else.

------
ewalk153
I especially enjoy the fact that Chad's preferred MVC framework, FubuMVC
requires Ruby and Python to be installed to setup the development environment.

> Where is CommonAssemblyInfo.cs?

>

> CommonAssemblyInfo.cs is generated by the build. The build

> script requires Ruby with rake installed.

>

> Run InstallGems.bat to get the ruby dependencies (only

> needs to be run once per computer)

> open a command prompt to the root folder and type rake to

> execute rakefile.rb

------
human_error
A friend of mine said similar thing about Django, mainly because of its ORM.
He said I can't think out of the Django ORM's box.

------
fadzlan
What is model based programming?

------
dextorious
From the article: """That a person can unequivocally declare every other web
framework in the world as failures – is just precious.""""

That a person cannot fathom that it's entirely possible that "we're (all)
doing it wrong" is just priceless.

How about the CGI era? Should we have all stuck with that, still using CGI
interfaces in whatever language? Yeah, all or almost all solutions at the time
were DOING IT WRONG.

It's not even that uncommon. Take Java EE for another example. Almost all
frameworks circa 2003-2006 were this bloated mess. Not only the official Sun
EE frameworks but tons of libraries and additional third-party stuff was using
the same bloated, messy, XML-laden, inefficient style. And they found out they
were all DOING IT WRONG, and changed course.

In general, the response article is mostly smart-assy ill attempts at humor.

