I remember being 16 and forging teacher's noted to get out of study hall to go to the library. Why? Because they had a REAL computer there! A Commodore PET! With 4K of RAM and BASIC!
I came in, sat down, and thought "what do I want this machine to do that would be cool?"
And so I wrote a game. Other kids loved the game enough to fight over who could play it. That was pretty cool.
But I look at programming now? Damn, those days are gone. You don't sit down and in a day or so create something totally from scratch that people love. Instead you get a framework, or another, or half-a-dozen frameworks bolted onto a 3-year-old programming language. You head a bit down the happy path -- until you don't. Then you spend the rest of the development effort either a) giving up on what you wanted to code and instead coding what the framework makes you, or b) struggling with the framework instead of the problem.
Worst part? I don't think it's needed. You can do a ton with just plain html, some css, and a bit of simple functional-like programming. But if you try to show that to a new programmer? It's like telling them they need to carve their computer out of bear skins and tree stumps. The culture itself rejects just freaking doing stuff people want. Instead, if it ain't new, it ain't cool. And if it's got one piece of complexity? Might as well have a thousand.
I hear you guys. Sad that it's turned out this way.
> You can do a ton with just plain html, some css, and a bit of simple functional-like programming
Or, you know, you don't need a virtualenv running inside of docker running inside heroku running whatever to make your stuff run
Or setup 20 "automation chores" before you write a line of code
Yeah, things today look like 80% is nitpicking and 'best practices' (by whom?) and 20% writing some code that will fall off because of bugs in all those abstraction layers
You don't need
Let's suppose I want to write a quick app to text people horoscopes. They enter their phone number and the horoscope is texted to them.
My first step now would be write a command-line function to send the texts. Once that's working, I'd knock out 5 lines of html and start showing it to people. I'm not even sure I'd wrap the freaking thing in <html> tags. For something nobody may ever use, it's simply not important.
The way the vast majority of programmers would begin this would be to set up a container. Then start installing a framework. Then buying a domain, downloading some tools, purchasing a gateway....
Programming is still programming, of course. But the way people think about programming today is total crap. You can ride the "It's cool! It's new!" horse around the merry-go-round a few times, but sooner or later it's gotta start getting old if you have any sense at all. Know what's a travesty? The number of working programmers in the world who have worked for years and have yet to actually make something that people use.
I've been thinking a lot about those days, and how magazines like Creative Computing and the Commodore computer manuals provided all the necessary foundation to make engrossing 1-2 day projects. It is totally possible today, but one needs to realize those magazine articles and project tutorials need to be created that guide new developers. That is us, we're the people that need to create the engaging, he's how its done in a day tutorials that do not depend upon new fangled shiny frameworks, but rather implement the new shiny idea in the minimal form that is its essence. With WebGL, creating jaw dropping tutorials is simply a matter of time and creative effort. Many new developers are fascinated with graphics and 3D - and the browser supports it much better than BASIC was supported back in the Apple II, Commodore era. Minor plug here: I've been pursuing this idea of a browser based return to the magical creativity of those early days with my www.3d-avatar-store.com - a web app and API that creates lip syncing 3D versions of real people. The combination of technologies that enable me to make this site is a gold mine of creative technology. My major issue is finding the time to create the tutorials, now that I have most of the hard stuff done.
IME the barrier is much higher now; if a kid writes a tetris or space invaders, he would be laughed at by his peers, when in fact either of those are significant accomplishments for a beginner. Expectations are so much higher now, it really changes the dynamic.
By "you", in the latter paragraphs, I mean "one" As in "one doesn't just sit down"
Apologies. Of course that's what I keep doing. Really happy about it too. That just ain't the way 99% of development happens.
ADD: The point of my OP wasn't that I hate programming, it was that programming itself has changed. It used to be a direct expression of creativity and had quite tight feedback cycles. Yes, I still code that way. But for all the other coders I see? Most of the profession is stuck inside a prison of its own making.
I came in, sat down, and thought "what do I want this machine to do that would be cool?"
And so I wrote a game. Other kids loved the game enough to fight over who could play it. That was pretty cool.
But I look at programming now? Damn, those days are gone. You don't sit down and in a day or so create something totally from scratch that people love. Instead you get a framework, or another, or half-a-dozen frameworks bolted onto a 3-year-old programming language. You head a bit down the happy path -- until you don't. Then you spend the rest of the development effort either a) giving up on what you wanted to code and instead coding what the framework makes you, or b) struggling with the framework instead of the problem.
Worst part? I don't think it's needed. You can do a ton with just plain html, some css, and a bit of simple functional-like programming. But if you try to show that to a new programmer? It's like telling them they need to carve their computer out of bear skins and tree stumps. The culture itself rejects just freaking doing stuff people want. Instead, if it ain't new, it ain't cool. And if it's got one piece of complexity? Might as well have a thousand.
I hear you guys. Sad that it's turned out this way.