How hard for a modern programmer to learn a language from the future?
Suppose somehow, an advanced, popular, widely used language from the future is made available to modern day programmers.
How hard would it be for a modern programmer to learn to program in a language designed and used 100 years in the future?
9 comments
[ 3.3 ms ] story [ 27.1 ms ] threadFuture programming languages may appear very from different contemporary languages for much the same reason movies made in the 1940's and 1950's look their age. Movies depend upon conventions, styles, and assumptions to provide clues to plot, characters, situational understanding, and context. Today's programming languages have one set of assumptions; future programming languages have a different set of assumptions. Not everything about a computation is expressed in the programming language.
Truish, but...
> Future languages will, I guess, look a lot like current languages but with a few extra features.
The number of useful-to-distinguish language families isn't constant; the fact that languages are usually found in families doesn't mean that new language families aren't created over time.
40 years ago, good old C was considered a "high-level" programming language. Now it's about as "close to the metal" as 99% of software developers will ever have to get (outside of toy assemblers in school).
Now the highest levels of abstraction programmers work with on a daily basis are with scripting languages like Python that completely abstract away things like pointers and memory management, and that run on virtual machines and thus across completely unrelated operating systems or even CPU architectures. Many of these languages have rich ecosystems of packages that abstract away much of the tedious complexity of everything from making an HTTP request and parsing the response to reading and writing CSV files.
But even higher levels of abstraction are available to non-programmers - consider the marketing manager who strings together functionality from multiple richly functional SAAS programs to make a completely custom workflow in a point and click manner.
In another 100 years, the barrier to entry will be even lower; and more and more of the footguns will be hidden behind layers of abstraction; and complex functionality will be something that's pieced together from existing components.
There will of course still be room for defining custom logic. And someone will need to develop and maintain and update all those abstractions and the programming languages themselves.
But I imagine that to one of us, picking up the hot new programming language of 2118 would be a bit like how it would be for a 1965 Assembly programmer to pick up Python.
That assembly programmer would probably spend the first few days trying to figure out how to allocate memory or determine the contents of a register using Python and then realize how totally unnecessary that is and how much they can do in how little time if they stop worrying about being parsimonious with hardware resources.
We'd probably spend a few days wondering how to do something that seems unimaginable not to have to do - instantiate a class or catch exceptions or something. And then realize that those things are already taken care of and we can accomplish 100 times as much in a line of code as we used to be able to.