Due to both my interests, as well as projects at work, I go thru phases of using various languages. Lately, it's been a C, PHP and Java cycle. It's amazing that of the 3, Java is the only one that most people consider "enterprise worthy". For PHP, I think it's mostly due to its association of being "just" a server-side language. People forget that you can write standalone PHP applications, which is a darn shame. I'm not saying that PHP is better suited for such tasks than Python or Ruby, but it is pretty rare to see PHP apps that aren't assumed to be running in a web environment. Be that as it may, as anyone even remotely familiar with various social networking sites (and others) know, PHP is certainly more than capable of being a cornerstone of an enterprise worthy implementation. Now C is very different. Most people don't write applications (web applications, that is) in C, and yet most of the entire service infrastructure (OS, various protocol daemons, utilities, etc...) is programmed in C. So how can C not be enterprise worthy, if it provides the underlying foundation for enterprise apps? And yet people deride C, as if it is somehow quaint and yet also stupid to "dirty your hands" with C, simply because C requires the programmer to have a better understanding of how hardware is actually implemented and how software and hardware interacts. I've met many "professional" programmers who have no idea what "native word size" or "indirect addressing" means, and yet optimal and efficient programming depends on these, and other, constructs so much. Instead, the glory is saved for precious "programming patterns", which have their place, to be sure, but are not the be-all and end-all. And so we come to Java. IMO, there is nothing within the actual language itself which makes Java enterprise worthy. Instead, it is the vast supporting infrastructure which does so, as well as the results of years and years of external forces "convincing" people that Java is the (only) way to go. Unless you think otherwise, consider how crucial RoR was to bringing Ruby to the forefront. Now imagine if Ruby (or Python or whatever) had the same sort of supporting infrastructure that Java enjoys, and Java had none; in that case, Java would be considered the "toy", the "fringe player" as far as enterprise apps. IMO, enterprise worthiness is more a measure of the talent of the programmers, developers and architects, and not the language itself.