Reminds me of the Lindy Effect, https://en.wikipedia.org/wiki/Lindy_effect.
So, things that are old but still around are more likely to still be around: Unix, SQL, emacs / vim, fan-favorites lisp and forth ...
Web / CSS frameworks / mobile frameworks are less likely to be around.
The linux kernel for sure. Servers and smart phones. It may not conquer the business desktop soon, but the desktop is a smaller piece of the pie every year.
Relational databases will be around forever. The nature of data does not change. Relational data will always be a good fit for an RDBMS.
I think skill in low level languages like C will have less market share in the job market, but always needed. It could be a lucky financial boon for people who have these skills, as they will be a rare commodity.
Software technologies from 20 and even 40 years ago run today, and programmers continue using them. Looking at history the most likely answer to your question is βAll of them.β
Almost everything presented as something new in the software development field actually just retreads something from the past. Truly new ideas and techniques come along rarely.
Wordpress. Downvote me, but you know it will be there 20 years from now.
Most of the tools/languages which are used heavily in enterprise world will continue to exist.
e.g
Java / C#/ C++ / JavaScript / Python
Oracle / SQL Server
Unix / Linux / Windows
SAP / ERP Systems / Mainframes / Cobol
Apart from this, We will see lot of changes the way we do development. We will see lot of improvement in automation / No Code / RPA etc
Unix. Linux. Python. Emacs. Vim. Databases. SQL. Bash.
Now for the losers:
Web browsers will be gone. Windows will be gone. JavaScript will be either a painful legacy language or have been transformed into something entirely different. JS frameworks will be an anachronism that old programmers chuckle over while drinking beers.
This is the core question I'm focusing on in the learning curriculum of my screencasts https://www.semicolonandsons.com/about
I'm betting on
- unix-like systems
- SQL-like systems
- vim
- "core" aspects of programming languages (data types, algorithms, operator precedence, etc.)
- HTTP protocol
- program design
- security
All of these are just guesses.
Niche stuff:
- Lisp, in some form or another will continue to exist.
- Forth will continue to exist because it is possible for a single person to revive it.
Common stuff:
- vi/vim will live on. I will stop typing if it doesn't.
- JavaScript is probably here to stay.
- Java seems like a safe bet for longevity.
- Spreadsheets. Maybe not Excel, but spreadsheets will live on.
I think every technology that's widely used today that requires some backward compatibility is here to stay for a long time. Things like API/protocols are hard to move from.
As for new technologies I would expect them to appear and take the niches where current technologies are not good enough. Take C++ vs Rust for example: the former is quite bad in terms of security and the latter is good at that. So Rust will become more popular in writing security critical applications and web services. But C++ seems to be good enough for things like high performance/scientific computing so it will be still widely used there.
I started my career as a ColdFusion and Mainframe developer, and even those systems are still running today. Drupal was created 20 years ago, and I have worked on multiple Drupal codebases this year. I learned Django and Rails in 2005 or 2006 and both are still very relevant. So I would say there are too many to count.
Embedded systems, running either Linux or an embedded OS, programmed in C or C++ or Rust.
You can bet there will be some company or government system still running COBOL.
Java, probably, considering the billions of devices that run it.
Many of the software technologies that we have today is more than 20 years old: Java, C++, functional programming, automatic memory management etc are not going anywhere.
IBM has maintained backwards compatibility with OS/360 for like 50 years now so I think that is a pretty safe bet.
Hopefully not Facebook and Twitter
Emacs and some Vi-likes. Some people are very attached to their editors and their configs.
Python 2
Which is a shame as many would have migrated to Python 3 if it was turing complete
Python.
It will start making it's way deep into hardware
HTML, CSS, and JS
I would say, functional programming for sure.
Not being facetious here, I'm genuinely asking - does it matter at all? What difference does it make if something will be used in 20 years?
Vim.
C++
Fortran
That's easy: Python, Java, C++, HTML, JavaScript, CSS, PHP, SQL, Postgres, MySQL,...
A better question would be: what software technologies will not be around 20 years from now? My bet: Babel, npm, Vue.js, React, Angular, Zend, most of the SaaS/IaaS we know and use, Kubernetes, Visual Studio Code, ...