3 ms·
> Is this only a problem with Java frameworks? No, but Java is notable for this problem. I think the root issue is that it is of course possible to write flex
by zeveb 10y ago
> Is this only a problem with Java frameworks?
No, but Java is notable for this problem. I think the root issue is that it is of course possible to write flexible software in Java, but in order to do so you must write all the dynamic bits in this static language, which ends up meaning that everything you write has to conform to an external statically–implemented-dynamism framework, and if you're going to have a framework then you might as well add to it, and … you end up with a standard Java app.
I haven't programmed in some of the cooler/reputed-to-be-better static languages like Haskell or the ML family (not beyond a few simple exercises, anyway), so I can't say to what extent they would suffer from this same problem if they enjoyed the same popularity.
I think that from the perspective of two decades on, Java turned out to have been a failure, not with respect to popularity but to quality. It turns out that it enabled mediocre software architects to spend great quantities of corporate money coming up with mediocre designs to be implemented by mediocre programmers, resulting in mediocre software and mediocre return on investment. That doesn't mean that it's impossible to write high-quality Java, just that that's not the norm: the entire Java ecosystem militates against quality, because quality is risk, and Java is not about risk: Java and Java-using organisations prefer predictable mediocrity to excellence. That's not even necessarily bad — sometimes predictable mediocrity is preferable to risk — but it's certainly not inspiring.
I too used to really like Django; I spent about six years using it for one project and another. Were I going to do Python web development again, I'd probably use Flask or Bottle, but Django definitely taught me a lot.
But I'd prefer not to do Python web development in the future.
- algesten 10y agoI think part problem is also that many programmers tend to gravitate towards abstraction and reusable code before there is a clear need for it. Just today I read about this project https://github.com/primus/primus https://github.com/primus/primus and it's a point in case. A "universal wrapper for real-time frameworks" with the main benefit being "Effortless switching between real-time frameworks by changing one single line of code." Because clearly, I often need to switch between WebSockets and BrowserChannel... or wait, do I?
- seibelj 10y agoThe documentation is more lines than the actual code is. Essentially it provides a uniform interface to multiple socket libraries. Why you would need this... I have no idea
- ignasl 10y ago" It turns out that it enabled mediocre software architects to spend great quantities of corporate money coming up with mediocre designs to be implemented by mediocre programmers, resulting in mediocre software and mediocre return on investment." But most people are mediocre. That's just how the world works.
- zeveb 10y ago> But most people are mediocre. That's just how the world works. Sure, but I choose to pursue excellence. And, in the marketplace, excellence wins. Maybe not technical excellence (sadly, it's often marketing excellence which wins), but mediocrity loses in the end.
- collyw 10y agoNot really. I try to produce good clean code (its a lot better than the last two projects I have inherited). No one seems bothered by that, they just want new features done as soon as possible.