This contrasted heavily with J2EE. I used J2EE for a while, but it turns out that if you want to use J2EE you have to commit to it like it's a religion. If you don't know 20 different platform libraries, you can't even do a hello world in J2EE. When you finally get it working, you don't know what the heck is even going on. Some magic is happening somewhere, but it is beyond what is plainly visible. This, and the fact that Ruby is very metaprogramming-ish, was the reason I chose Rails.