Programming Languages And Productivity Are Like German Highways
There are no speed limits at the German highways. In theory. In practice there are lot of road works, traffic jams and local speed limits. Those "natural" limitations are enough to keep your average speed significantly lower, than originally estimated. Regardless how fast you are driving at the unlimited sections (also > 200 km/h) at the next traffic jam, the race car will meet the trabi. And if you are really lucky, you will gain few minutes at the end of a long journey. (This fact of course doesn't prevent drivers to buy race cars :-))
Many software projects are exactly like that. Regardless how fast you are developing and which marvelous tools or languages you are using, the lack of domain knowledge and functional requirements will slow you down. In practice you will get some irrational non-functional and rational requirements on top as well. And don't forget about some annoying political and "strategic" games...
Technology used rationally never was a problem in the past. With a touch of pragmatism you can be extremely productive - regardless which platform, language or framework you are using. Just be careful with your next estimation - a new language and platform will hardly increase your productivity in order of magnitudes. Introduction of pragmatism, at the other hand, could speed you up significantly, without changing the language or platform.
[see page 253 (Pragmatic Java EE Architectures) in "Real World Java EE Patterns" book]
Yeah, thats true!
But you should consider more than the "tools". I switched from PHP to RoR. And coded in it for one year. RoR is really easy to learn and use. And you get a "speed up" of coding relative fast. But after this year. I switched back from RoR to php. Cause extending RoR and the speed are pain in the ass.
Sure you could say: Cache, cache, cache.
But I think, thats not the way how websites and programming languages should work.
Caching should not a "solution" to a problem. It should increase the speed. And not fix a fundamental problem....
Posted by Q-efx on July 25, 2009 at 12:51 PM CEST #
exactly - I forgot to mention the understanding of the essential complexity. In your case its caching, performance and scalability. You will have to deeply understand the problem, regardless which tools you are using, to build cutting-edge applications.
thanks for your comment!,
Posted by Adam Bien on July 25, 2009 at 01:00 PM CEST #