re: Which trend or advancement is being overlooked by most developers? VIEW POST

FULL DISCUSSION
 

Crikey, this is a deep dark well of a topic!

In no particular order...

Engineering. Software engineering as a profession has a long way to go to be on par with other engineering professions. Not just standardization of the language, but standardization of the profession, in the same sense of standardized railroad tracks, or standardized nuts-and-bolts.

Paradigm. Procedural programming (e.g., C, COBOL, Pascal) have given way to object-oriented programming (e.g., C++, JavaScript, and to a lesser extent Object Pascal / Delphi / Oxygene / Freescal, Objective-C, Swift). I think the next wave of programming paradigms will be an explosion of functional programming (e.g., Elm, Clojure, OCaml, F#, Haskell) and domain specific languages (e.g., JetBrains MPS).

Environment. Cloud based development will change how we work, as developers. By that, I mean using an editor like Microsoft Visual Studio Code, for a project that lives in the cloud, like Microsoft GitHub, and is compiled by a data center, like Microsoft Visual Studio Online. Not necessarily for cloud-based projects, but for everything. Projects will probably not be files like they currently exist, with toolchains that transform code to executables -- rather I imagine projects will be things that exist in the cloud, which are accessed and possibly shared collaboratively. (Not sure if that moves society closer to Richard Stallman's vision, or away from it.)

Tooling. Bret Victor is a visionary when it comes to where we are at versus where we could be in terms of tools and presentations for developers and end-users. I can only imagine our industry will get much better at this, since there is so much potential there.

Languages. I don't expect there to ever be a "perfect language", since programming languages are tools which for a given job will be more suitable, or less, than other languages. So I expect programming languages will continue to evolve dramatically, and as they do so there will be a groundswell impact on all development.

Mitigation. Bugs have been something that has plagued our industry ever since a moth was found in a relay. Tooling around static analysis, and the intersection of several of the points above, and possibly artificial intelligence, will greatly reduce our ability to create bugs. At some point knowing how to fix "bugs" in a project will not be synonymous with "job security". (Can you remember the last time you could by 5.25" diskettes at your favorite office supply store? Likewise, the DOH! kind of bugs will be something you can't do; for one category of bugs, the language won't let you make them, for another category of bugs, the tools will detect them. Not just a daydream, Coverity is just such a tool, albeit expensive, which does wholistic static analysis. Those kinds of tools will become faster, more powerful, and cheaper.)

code of conduct - report abuse