Railsters:
While I have work tirelessly on Rails for the past few months, and
boosting
it for years, I have come to an important career juncture, and have
decided
to stop using it. No single reason stands out, but this short list
should
help you all understand my disgruntlement.
-
The “dynamic typing” system should just be called “passive typing”.
Everything is just whatever type its environment wants it to be.
Types should be more assertive, to prevent bugs, and every interface
should declare what types it takes. This also helps self-document. -
Between Monkey Patching and Ruby’s absurd “Module” system,
every object essentially sprouts every method of every other object. -
The unit tests are easy to write for simple things like a database
hit, or checking that HTML contains a given field. But they are
absurdly hard to write for anything non-trivial, and this just takes
time from debugging. If the tests’ primary purpose are to provide
what normal languages do internally, with simple type checking,
then I can kill two birds with one stone by not writing unit tests
and by switching to a much stricter typing system. I will start
using Design by Contract, on websites, immediately. -
When the time comes to “pick a language”, keeping track of
which one you are in is a total pain. If you are inside Ruby, the
#{} will insert contents into a string. But in RHTML, <%= %>
inserts it. And don’t get me started on the horrors of trying to
figure out if I should write ", ", \', ', ", or ' into
some string that may or may not emerge as JavaScript… -
Because of Passive Typing, the editors can’t provide
typesafe command-completion, or even a simple Refactoring
Browser. -
To scale, you just buy more servers. Oh, I can’t wait to tell
my penny-pinching client that one! -
Ajax destabilizes both servers and browsers. 'nuff said.
-
Also, I heard a rumor that someone is going to sue 37signals
for allegedly making web development “easy”. The time is now
to get clear of that debacle!
In summary, Rails is simply a way to allow inferior programmers to get
by
with adequate website features. It is not a tool for serious or scalable
I am switching back to Tomcat immediately. I’m downloading it now, and I
expect to have it configured by May 1st.
–
Phlip
"Pigleg too?", week 1