Slashdot Mirror


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.

11 of 171 comments (clear)

  1. Slew of missing business applications by jbolden · · Score: 5, Interesting

    There is a slew of missing applications for industry verticals where there is no race to the bottom. I don't see any evidence that the mobile world is even close to saturated. It may be that general audience horizontal applications aren't the best place for small teams but that isn't the end of the world. How many general purpose task managers and tower defense games do we need?

    1. Re:Slew of missing business applications by Anonymous Coward · · Score: 5, Interesting

      The industry does not want independent software developers. The industry wants teams of full-time employees.

      Software suffers from the smartest cow problem (it only takes one cow to figure out how to open the gate in order for all the other cows to pass through). For example, once one company creates a really good word processor, we don't need ten more to compete with them. The result is total market dominance for the one who does it first (or markets it the best), and a tremendous incentive to lock their program up with patents to ensure that other companies can't just duplicate their work and compete with them.

      All of this drives the industry to take the form of a few enormous major players with teams of (cheap) developers working for them, and a shared interest in keeping all independent developers (who could upset their market dominance) out of the industry.

    2. Re:Slew of missing business applications by Anonymous Coward · · Score: 5, Interesting

      No. The software industry wants offshore dev houses or bottom-of-the barrel H-1Bs that are bottom of the barrel cheap, and can crank out code at a level where constant patching of their early beta quality app can keep the griping and one star reviews to a dull roar.

      Want to know what sells... fix bugs or add features to already present stuff. For example, if some college student found and checked in a patch to OpenSSL, they likely would be hired somewhere.

      The problem is the illusion of wealth. Instead of trying to work on infrastructure which will get props on the CV, people want that instant gratification of purchases and IAP content from writing yet another fleshlight app.

      Another cow analogy, If you are on the beaten path, and there are cows around you, don't expect any fresh/sweet plants to nibble on. Jump the electric fence and find new territory. Yes, it might not be comfortable, but that is where the money is.

      I can name 10 apps that may not be profitable, but extremely useful:

      1: A GOOD pgp/gpg app. There are a lot of crappy ones, but none that have a consistant UI and take advantages of the phone itself to store secure data. iOS has protected files, and Android can use loopback mounts to secure data. No PGP/gpg app on either platform takes advantage of this for keyring security.

      2: A program like USB Disk Pro on iOS which allows one to move files between cloud servers, work as a USB drive when connected, use WebDAV if you are using the same wireless segment as another computer, and offer FTP, samba, and NFS access. Pretty much a Rosetta Stone of file transfer protocols that would allow one to move data to the phone, then off to some cloud provider, optionally encrypting it with sturdy encryption (ideally OpenPGP packets.)

      3: An office suite that can keep all files in an encrypted container regardless of what OS it is sitting on. That way, confidential data that this app holds can't spill out, even if the device has no PIN/password.

      4: A client that can work with Splunk so one can write and push dashboard data which are securely (securely as in SSH-like application level encryption ontop of SSL) pushed to the device, so an admin can keep an eye on his machines when not in the office.

      5: An open alternative to Citrix Xen Desktop and Citrix Receiver.

      6: An Amazon Glacier client for archiving documents for the long haul. Not a proof of concept, but something full featured with encryption, and the ability to interrupt and resume uploads/downloads.

      7: For Android, a way to sync music between a PC and the device. iTunes sucks, but it does a good job at keeping track of songs, and if I erase my phone, good at throwing back all music, perhaps even transcoding it (the noise floor of my vehicle is so high, 192k AAC files sound OK.)

      8: A decent e-Book app that is completely vendor-neutral. Think Calibre, but for mobile devices. Bonus points for the ability to back up, sync, and restore the collection somewhere.

      9: For Android, an app that uses device admin privs to auto-erase the device if it has not successfully gotten onto any network for a period of time. Blackberries have this, and what this does is prevent a thief from accessing data by just yanking the SIM card, as well as ensuring the device only has "x" amount of time while it is offline before it kills itself.

      10: A studio quality mixer app and a hardware interface. That way, the phone or tablet can be used as a 4-track with good sound quality.

    3. Re:Slew of missing business applications by Bite+The+Pillow · · Score: 5, Insightful

      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.

  2. Walled garden? by MikeMo · · Score: 5, Insightful

    Could someone explain to me how a "walled garden App Store" is crushing small developers? Exactly what about a walled garden does this?

    1. Re:Walled garden? by Anonymous Coward · · Score: 5, Insightful

      The walled garden may look like it makes it easier for users to get your app, but if it's the only way most people use to get apps, then there is no diversity in ranking. With only a single option for getting users to notice you, you end up with what I call the rock star economy: Few make it big, the rest need a real job to support their art. The walled garden is a hit parade and it has the same effect on product diversity as the equivalent in music.

    2. Re:Walled garden? by Anonymous Coward · · Score: 5, Interesting

      False. What's wrong here is that there is a slew of young developers out there who don't want a job they need to wear a tie to so they go out and try to catch the latest "wave" of the app world. What we end up with is a thousand versions of Tower Defense and only 3 make any real money. That's reasonable to me as 95% of most apps out there come off like the degree capper project that they are. This isn't mature software, this is slackers who want that lottery ticket but haven't considered making something original and worthwhile. We see this with every software wave and mobile apps is just the most recent version of this.

  3. Isn't this a good thing? by JustNiz · · Score: 5, Insightful

    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.

  4. The appcrap boom is over by Animats · · Score: 5, Insightful

    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.

  5. The only thing constant is change by adosch · · Score: 5, Interesting

    I read Matt's blog posting and I do have to say it sounds like his underlying issue is less of a quandary with a code renaissance being over and more of the drowning complexy and exhaustion involved with today's changing technology world from a code slingers perspective. Reading his blurb touching on a few profound things I find myself doing more and more as I get older in the tech industry: enjoying the simplicity of hacking shell or automative code in a text editor without launching an IDE, still having algorithmic thought processes and approaches, documenting less and thinking more. It sounds like his interests have just shifted and probably for the better. There's tons of shit that I look at on my shelves: projects started, topics heavily bookmarked in myriad of O'reilly books, half-finished circuit design on breadboards, code lying around here or there. It's just that: what was important now isn't and you're trying to just simplify the black hole of tech that was once an intriguing and mind-blowing ordeal.

  6. These aren't even real developers by Anonymous Coward · · Score: 5, Insightful

    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