Is the Software Renaissance Ending?
An anonymous reader writes Writer and former software engineer Matt Gemmell adds his voice to the recent rumblings about writing code as a profession. Gemmell worries that the latest "software Renaissance," which was precipitated by the explosion of mobile devices, is drawing to a close. "Small shops are closing. Three-person companies are dropping back to sole proprietorships all over the place. Products are being acquired every week, usually just for their development teams, and then discarded. The implacable, crushing wheels of industry, slow to move because of their size, have at last arrived on the frontier. Our frontier, or at least yours now. I've relinquished my claim." He also pointed out the cumulative and intractable harm being done by software patents, walled-garden app stores, an increasingly crowded market, and race-to-the-bottom pricing. He says that while the available tools make it a fantastic time to develop software, actually being an independent developer may be less sustainable than ever.
Could someone explain to me how a "walled garden App Store" is crushing small developers? Exactly what about a walled garden does this?
Everyone wants to make another Candy Crush or Flappy Birds game, and they'll be lucky to make minimum wage for the time they spend doing it. When I became a Mac developer in '84, and when I switched to NeXTSTEP in '89, both were moves decidedly out of the mainstream.
There's no shortage of unmet needs that can be addressed with an iOS app, but if you don't take the time to figure out what they are, then of course you'll fail.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Yeah, but the missing applications require specific domain knowledge that is difficult for an indipendant without experience in that field to aquire.
Well.. maybe. Or Maybe not. But Definitely not sort of.
What I got from the article is that the flood of people that call themselves Software Engineers when all they actually know how to do is configure 3rd party tools and at best write a few scripts to run stuff on the internet are finally being called out.
If so I think that's actually a good thing for restoring some value to the job description and to the currently low perceived value of skilled Engineers that actually can/do develop complex software from scratch.
What "software renaissance"? The writer means the appcrap boom - millions of small bad programs, with a few good ones. Many, maybe most, "apps" could just as well be web pages.
The appcrap boom seems to be winding down. Developers realize that writing a quickie app has roughly the success percentage of starting a garage band. That's a good thing.
It's a great time to code, if you have a problem to solve. The tools are cheap if not free, the online resources are substantial, and there's vast amounts of cheap computing power available on every platform from wrist to data center. If you don't have a problem to solve, coding is sort of pointless.
Well, once the current dark age of bloated web pages with delusions of grandeur masquerading as 'apps' is over, the renaissance can start, and then we'll talk about it ending.
The real worry is that his article is astonishingly short on numbers. In fact, he 1500 words and didn't include a single piece of data to indicate an end to a 'Software Renaissance." All he did was complain that he's tired of programming. That's it. Annoying.
"First they came for the slanderers and i said nothing."
Stopped reading there. Actually, I didn't, and I weep for the fact that I could have, because all 10 apps would be great. But not one will ever be written.
1. A GOOD pgp/gpg app can't be monetized by putting your email in NSA's cloud
2. Moving files between cloud servers doesn't make money for any one cloud provider.
3. That's a great idea! If you want cross-platform encryption, let's do it as a web app implemented entirely Javashit, and dependent upon six different frameworks, and it'll only work on Mozilla Australis 29.0 to 31.0 or Chrome 42.x, because browser-based cryI'm sorry, I was going to do all ten, but I can't go on, I'm laughing too hard at the pathetic pile of shit our industry has become
The community/industry that these bloggers exist within (at least, the first of the 3, Finkler) isn't real software development anyways. When I read Finkler's blog post, the key phrases that stand out to me are these:
"I used to be really excited about JavaScript"
"I have 15 years of PHP under my belt"
"[...] Python. I don’t feel like I really grok the module system. I definitely don’t understand the class system."
"Have you ever tried setting up something on AWS? There are a billion buttons and settings and new, invented words I don’t understand. I have no clue how any of that stuff works."
"Did you know I used to be a 'designer?'" [of web apps and such]
What I read from the amalgamation of these statements is: This is one of those guys who jumped on the "I want to be a web designer" bandwagon many years ago when the field was hot and it was easy to churn out crap and make money at it. He learned (by cargo cult copypasta and/or Whatever for Dummies books?) to get by in PHP and Javascript over the years. But he never really understood what he was doing.
For one that actually studies (not in a school, I mean really in the real world) computer science and the art of programming, by the time you've learned a language or three the rest come very easily. Such a person can write useful production code in a new programming language on the first day byt the time they get to language number 4 or 5. That simple, core aspects of a sane language like Python baffle Finkler after 15 years of experience and serious use of at least two languages is very telling in this regard.
For one that works professionally in the computer/internet industry, understanding how systems and networks work is critical. Can you build a server from components (at least in theory? Done it a few times years ago with a home PC or something?)? Can you spec out a 100 (or 100,000) -system network of machines for a production cluster of some kind, and understand all the issues involved with everything from cabling to traffic loadbalancing to data migration and scaling issues and fault tolerance tradeoffs and blah blah blah? Could you, at least in theory, go build it all out yourself and be successful and having a fairly optimal and well-designed system at the end of it? Configure the routers and set up peering/transit agreements with the rest of the internet and get your traffic flowing smoothly to a global customer base?
People put *way* too much emphasis on the "Learn a Programming Language" part of being a developer. A real developer who's worth his salt must do much more than that. You must understand the whole stack you're operating on. Just to touch the highlights of that stack for a typical web app: The client's browser, the browser's OS, the machine that OS runs on, the ethernet interface on that machine, the DSL router at the user's home, the ISP network the traffic traverses and how it peers with everything else that peers with you, important side-issues in the network like low-level details of the DNS and how the ISP resolves and caches it, the routers, switches, cabling, and configuration of the network in your datacenter, that whole production cluster mentioned in the previous paragraph, Linux kernel issues on the appserver machines related to interrupt routing and TCP socket features, how your HTTP server works and how to debug deep issues in it, and how it connects to whatever engine or VM runs your application code, and how *that* is scaled locally to utilize the hardware efficiently, etc.
You want a guaranteed job as a desirable developer for decades, without being subject to industry whims and immigration politics? Learn to be someone for whom everything I've said above is trivial. Those are the badasses. If all you can say is "I can write some PHP code that seems to be functionally correct most of the time; the user inputs X and it outputs Y", you're not even 5% of the way there on actually understanding what you *need* to understand to do the job well.
On
Guy spends 20 years doing something and decides he would rather become a writer. Things he used to internally justify the decision, instead of being a sign to change jobs or move to a new city, are now reasons for EVERYONE to jump out of the game.
None of your questions seem relevant, because one ex-coder is not a rigorous study with good selection criteria and clearly reported margins of error.
In my line of work, this guy stands out as an outlier who was looking for a reason to quit. His friends are all apparently employed and doing fine, not complaining about being *this* close to losing the job, or cuts around the corner, or asking how he changed careers.
In other words, his blog sucks.