Developer inequality and the technical debt crisis
41–50 of 105 posts
Re: Developer inequality and the technical debt crisis
#42The reason COBOL and Visual Basic attracted scorn and derision is that they were awful. The problem with them is quite simple: You can use them to create something improperly in 1000 hours that you could create properly using other tools in 2000 hours. That thing will then work until you have enough concurrent users to expose the race conditions, or the Access database backing it reaches the 2GB limit, or the wind blows too hard and the hamsters powering it become frightened. At which point you'll spend 10,000 hours of overtime trying to keep it from collapsing in production while the users all burn you in effigy.
And the likes of Javascript don't suck because they aren't like COBOL and Visual Basic, they suck because they are.
Re: Developer inequality and the technical debt crisis
#43Because it's there. The only reason people use all these web tools is because they are there, documented and ready. The classic example is the Apache web server - it was there and worked. It was written when the web was small and the number of users to a site was low. Competing web servers are here now with performance way higher, so people are switching. Nobody wanted to write a better web server so nobody did for a…
Re: Developer inequality and the technical debt crisis
#44I think the reason there's so much technical debt is largely because the amount it would cost to actually build quality software... is too high. We could not afford it. Like, as a society. Our society is built on crappy software. I think it's just a utopian fantasy to think that if only the right hypercard-like tool could be created, then the cost of building quality software would go down. Or at any rate, actually:…
I think the reason there's so much technical debt is largely because the amount it would cost to actually build quality software... is too high. We could not afford it. Like, as a society. Our society is built on crappy software. I'm not sure that I agree. If by crappy you mean "not formally proven", then sure. Or if you consider floating point crappy, then we disagree on terms. I think our industry is in a state whe…
If that's the case, why does such code still exist? If it's still running, then in some sense someone is "maintaining" it, at least to the extent of keeping the server it resides in powered on. In other words, someone obviously finds it cheaper to keep such code running as-is than to rewrite it (or to do more ambitious maintenance on it).
Even crappy horrible buggy code can be useful (in a business sense, or a "makes its users happier than if it didn't exist" sense), as hard as it is for us as developers to admit it.
Re: Developer inequality and the technical debt crisis
#45I often watch other developers look to make their lives more complex by trying to solve problems which aren't there. Why? Because the obvious solution is simple and boring. In any other culture that would be crazy. In programming culture, it seems to be the norm.
You won't find someone building needless complexity into something if the fundamental goal pushes the limits of their abilities. Basically, starving men don't build Rube Goldberg Machines to crack their eggs.
In technology in general, the majority of jobs seem to be been-done implementation while the education and training continues to stress design and engineering.
Complexity is an outlet for every boilerplate operator who would rather be engineering and a differentiator to remind him/herself and signal to others a greater capability.
Re: Developer inequality and the technical debt crisis
#46I'll go ahead and say it: this is a strawman. A simple web page is as simple as it ever was: Hi Hello, world! The problem is that everybody wants something so flashy and pretty that they can't settle for the functional-but-ugly barebones interfaces app programmers used to make. The problem is that we've trained users that if a product isn't pretty it's useless, and in pursuit of that all these other things happen. Yo…
Yes. But isn't HTML itself the flashy & pretty (and often non-value-added) alternative to plaintext, the functional & ugly interface? Why not just use plaintext, wrap everything in , and call the Web a fad? I'm all for simplicity, I just wonder what's considered taking it too far.
No, HTML's improvement over plaintext isn't cosmetic, its functional. (E.g., automatically traversable hyperlinks.)
Re: Developer inequality and the technical debt crisis
#47This feels astonishingly wrongheaded to me. "Imagine an Internet HyperCard that allowed regular people to easily build web apps, as easily as using a spreadsheet." and then JUST TWO SENTENCES LATER, "There are many app-in-a-can tools that generate highly stereotypical apps but to be truly disruptive we need to match the broad generality of frameworks like Rails." In other words, we need to make it possible for people…
"In other words, we need to make it possible for people to build simple things without much coding. Oh wait, people already can build simple things, but....that's not what you mean?" I think that the problem the OP has with most current app-in-a-can tools is that they don't allow users to create arbitrary simple things, but only fairly specific types of simple things.
Compilers, IDEs, etc. are themselves generalized tools to produce more specialized tools; as a result of being generalized, they require special knowledge to use. A programming environment that allowed you to create an arbitrary specialized application using only general knowledge of computing would certainly be a great thing to have -- in fact, I'd describe it as the holy grail of computing.
People have been pursuing that goal for decades. Partial solutions have been discovered in the past (the OP mentions Hypercard, Visual Basic, etc.) but have generally been insufficiently powerful. It is also frequently difficult to keep them up to date with changes in the underlying technology.
Re: Developer inequality and the technical debt crisis
#48The issue is that the current web technology stack was never meant for building applications. HTML was designed for static documents. JavaScript's early development was mainly for making terrible mouseover-effects on links. XMLHttpRequest is a historical accident. So, yeah, it all works together, somehow, but it wasn't designed to be used as it is today, and it shows. And it's the developers who carry the burden of integrating these hacks. I, like the author of this article, wonder if it wouldn't be nice to design a system to provide the advantages of the web (distributed client-server applications with highly-customizable, visually attractive front-ends delivered on-demand) with a slightly more human development process. If we can't replace the web outright, maybe we can build better tools ontop of it.
I agree that current web technology is a horrible pile of kludges. Let's try to build something better. Some attempts are already being made. Please check out the amazing Ur/Web language [1] that lets you write front-end code, back-end code (compiled to native), and database code in a single, type-safe language that statically guards against errors that are rife in dynamically-typed web scripting languages. It abstracts the database, without wrapping your data in an annoying object layer; it lets you write front-end and back-end code in one language that communicate transparently. It is far from a finished product but it is an amazing glimpse and what could be with intelligent develop tools. There are some great examples on-line that show how easy it could be. Easy for a developer, of course, not for a layperson.
Re: Developer inequality and the technical debt crisis
#49The web won because it has the least barriers to entry for a new developer and solves a lot of difficult problems that the old-school application stack had. This is all from my history and point of view so I'm sure a lot of people will disagree. Cost: The days when big companies developed tooling and platforms cfor developers where great IF you worked at a company that could afford to pay for them. They were expensiv…
In my hindsight, the web won in the enterprise because deployment was free. When the web was developed, in the early 1990s, vendors charged per seat for PC runtimes (Powerbuilder, Unify Vision, etc.). You got zero-cost runtimes, free client distribution (IE on windows) and application version control (server-sode managed code). The low barriers to entry probably exacerbated the hodge podge, but I'm happy to bill hours cleaning up after people.
Re: Developer inequality and the technical debt crisis
#50Earlier quoted context omitted.
"In other words, we need to make it possible for people to build simple things without much coding. Oh wait, people already can build simple things, but....that's not what you mean?" I think that the problem the OP has with most current app-in-a-can tools is that they don't allow users to create arbitrary simple things, but only fairly specific types of simple things.
I think you're right. My problem with that problem is that it's some combination of naive, impractical and pie-in-the-sky. It'd be great for humanity if you didn't need any skills or training to make any kind of computing application you wanted. While we're at it, let's also have a replicator to make any kind of food we want, instantly and deliciously, without any culinary training whatsoever, beyond being able to pr…
Is it? We had simple yet general-purpose tools for end-users at various points (eg. Hypercard). Why can't we have them again?