- WebAssembly and utter dominance of browsers and JavaScript as a development platform. I don't particularly like the latter very much, but it's hard for me to deny it is happening. People are writing desktop apps using Electron, mobile apps are being made as embedded browsers or replaced entirely by websites, and some folks are even making JavaScript (and node.js) work on microcontrollers.
- More and more languages seem to be getting REPLs, so maybe - in a few more decades - we'll see something resembling the good development environments of the Lisp Machines time.
- Who knows, maybe we will finally decentralize the cloud again? I don't fully understand the things like AWS Lambda, "compute services" and other related buzzwords, but I know the model I'd like to see - where the cloud provides only computing power, and code can be run on data as decided by users instead of users having to give away their data to the owners of the code. I'm not sure if this is how things turn out, but I feel like some components of that better future are being built now.
- We'll see an emergence of another job - of people who are something between a developer and a devops, people who "orchestrate" all that god-awful tooling mess of build systems, packaging systems, containers, balancers, fleets, forward-reverse-backward distributed scheduling proxies and whatnot. It's getting out of hand very fast.
EDIT: Cloud-to-Butt extension strikes again; I keep forgetting about it when editing posts...
For instance, we can (through mdb, the debugger, and the mdb_v8 module) inspect all of the Javascript (and native) state in a core file -- all of the Javascript objects, the current stack trace with arguments for each frame, etc. That core file can be taken at our discretion via gcore(1) without terminating the process, or in response to an abort(3C) or unhandled Javascript exception.
We also have excellent support for dynamic instrumentation, via DTrace and USDT. DTrace has essentially zero overhead for disabled probes and doesn't require rebuilding, reconfiguring, or even restarting the process in question to start collecting data. We've added DTrace probes to "bunyan", our logging framework, so that we can get TRACE level logs as probe firings without needing them to be enabled all the time. We've also added probes to "restify", the HTTP server upon which we build most of our REST services, so that we can track the invocation of particular routes and handlers.
Both of these facilities are vital for chasing down and fixing bugs in production systems, without which many issues would be much harder -- or even impossible! -- to solve. This is especially for the not insignificant class of bugs that _only_ show up in production and are _not_ reproducible. Or the class of bugs that we have hit at most once in a week, a month, a year, or (practically) ever.
I'm always on the look out for new languages and platforms that provide these features, but in the mean time we do some pretty solid systems programming work with Javascript.
But so far I have not seen enough benefits to outweigh the risks.
And to me, JavaScript has too many risks. The language has way too many gotchas and it is extremely easy to write a system utility that isn't rock solid.
And I very much dislike using system utilities if they are not rock solid.
A third party which manages Sandstorm like infrastructure for me. Consider it equivalent of hiring a lawyer to represent YOU and not to somehow facilitate a court case.
* Tim Berners-Lee Solid (store your data in “pods” (personal online data stores) that are hosted wherever you would like but only allow applications you have given permission to access)
* IPFS
* blockchain
These ideas are here http://www.digitaltrends.com/web/ways-to-decentralize-the-we...
As an aside, I remain puzzled by HN's hit-and-miss deduplication. Sometimes I submit something and it's caught immediately. Then [2] happens.
[1] https://www.developereconomics.com/reports/developer-economi...
Though in keeping with the spirit of the post, that's not 2016.
There will still be a need for technical contractors to do things like configure salesforce or help choose a set of services that integrate nicely. But these needn't be developers in the classic sense. Short contracts, and trading on BA/negotiation rather than true technical skill.
I imagine it is possible to build a startup like TaskRabbit without writing a line of code now, and you could run that company without needing to own or rent a single server (or even a laptop with BYOD?).
The million dollar question is: why should we do this? Where's the value? Are users so paranoid about centralized tech companies owning their content, that they'd be willing to do all this?