Registered: Jan, 2005
Re: The departure of the hyper-enthusiasts
Posted: Dec 21, 2005 11:32 AM
> We can scale horizontally, when vertically is not enough.
> It means scaling ala Google, Slashdot, etc: just add more
> processes and machines when you need them; let the
> database handle the rest.
When I made my comment about scaling, I wasnt referring just to Ruby's immature thread support or its other intrinsic weaknesses, such as its poor unicode support or just the raw speed of its interpreter as compared to Python, but also that the mentality of the developer, which in this discussion and others makes a lot of references to "its not how computers think, its how people think !" is by itself enough of a factor to produce a large community of applications that simply by design will not perform well, regardless of underlying engine. You see this same thing happening in a myriad of PHP tools that, despite PHP's incredible speed, still perform like crap; its because of developers who have no interest in computer science, no interest in learning how to develop reasonable software architectures, and no interest in the underlying internals of the constructs they are using that even a fast engine like PHP can be brought to its knees. It is this mentality that I always seem to observe in the Ruby community; its a non-curious and informal mindset that is obsessed with moving new widgets and features "out the door" with blazing speed, but little attention to the architecture of those features. Rails is the leader in this category; tons of new blinky lights every day, zero large scale benchmarks, real-world stress testing, or consideration of how an enterprise might fare with this application.
If we want to say, as someone mentioned, "well Ruby/Rails is not for big enterprise apps ! its just for all the little things I do all day", that would be consistent with my impression of it....and this fact should be more openly admitted. For me, I'd much rather write my smaller apps using tools that I know can stay with me all the way out to the bigtime as well...otherwise, why should I have to master two or more ways of doing the same thing ? Why not master one way that is friendly towards both small and large environments? I think Java has come very close to this. I think Python has a great potential as well since a decently written Python application can perform extremely well alongside a corresponding Java application, if not better (witness Google), and certainly far better than a Rails app could.
One additional note, the plethora of web frameworks in Python has granted us one fantastic thing that a tool with Rails' hype-machine would utterly obliterate: room for new approaches and architectures. The Ruby community has plenty of room for tons of new eager developers looking to write blogs and other small applications with Rails; but for people looking to build communities around architectural notions divergent from Rails, pretty much none.