A full-stack developer is full of something, alright

Most applications we develop are stupidly simple, so almost anyone can do them. Too bad our dev tools don’t work that part of the stack well

Find someone who calls himself a “full-stack developer” and smack him right across the face for being a liar or terrible. (Umm, don’t really do this: Violence is wrong.)

I’ve not run the numbers, but I estimate that less than 1 percent of the developer population can make an adequate-looking webpage and a fully optimized data storage layer, let alone business logic. Just because you made everything JavaScript doesn’t solve that fundamental problem. Most papers on quantum physics are in English; I speak English but I’m not automatically a quantum physicist. As one developer I know put it, that’s “boss-logic.”

The truth is that most of the applications we do in business are simple. They’re basic CRUD applications: Take some form data, shove in a database, display it later or possibly do a basic kind of report thing. Maybe there is a little bit of workflow, but probably not much. They don’t even have to look that great. We’re all “full-stack developers” for that stuff.

I’m awful at creating GUIs (which we should call just “UI” because all modern UIs are graphical). I have to write text symbols that my brain needs to figure out how they will look like in CSS. Sure, I might mock it up, but I even though I can look at a picture of the Mona Lisa and even though I can use a pencil, I still can’t sketch it.

The last time I made a UI that looked exactly like I intended (and it wasn’t half bad) was in Visual Basic 6. You used to be able to use WYSIWIG controls, drag components onto the palette, and end up with UI that looked almost exactly like what you drew. Sure, the language was trash and its “apartment” threading model was nonsense. You could do really stupid things like write applications inside of a button’s event handler, but you can do stupid things anywhere. Also, installing a VB6 app used to trash your operating system with old DLLs, but that was a Windows (lack of) architecture thing.

In the web world, you mock up, try to think about div tags, reach some kind of Zen state with them, and then attach CSS to them. Worse, you use some framework that might have some controls, but they never really work with your CSS until you tweak it. Plus, CSS is a pretty sadistic thing that constantly asks you if it looks fat in this dress, and the answer is always “I can’t quite tweak you because 12 layers of inheritance and two containers up, I did something wrong.”

Add to all this the big lie that knowing web controls and JavaScript makes you capable of designing a decent schema, understanding distributed computing, doing software architecture, and now mastering data science because if you can express it in JavaScript then you must be a quantum physicist because … why not?

However, for simple CRUD apps, you don’t really need all of this.

With HTML and JavaScript, you now have all the rope to hang yourself. With VB6, you had a GUI designer and a limited language that was great at writing CRUD apps. So maybe it is time to reinvent the wheel. After all, none of Microsoft’s current tool sets are really the same as VB6. We’re not going back to DLLs or even .Net assemblies. (I’m writing this on a Mac.)

Surely we can finally make something decent that outputs to the web and enable basic CRUD apps without a web designer. (Microsoft? GitHub? Anyone? Are you listening?) If so, we would reduce the number of “full-stack developers” and their “amazing” JavaScript frameworks that try to marry event-based and functional programming purity. Imagine the reduction in having to listen to people in hoodies at the front of the room bloviating? Meetup.com could go back to its roots: dating and gardening.