Futurists, technologists and pseudo scientists alike have used the buzzword "singularity" to describe the idea that: some day technology and humans will merge, and/or that the various sciences (biology, chemistry, physics, information science, etc.) will become one single operating theory governed by the same axioms and laws.

In the context of programming and code, is it possible, or is there already an effort underway to unify the various coding languages to arrive at a similar ideological spot?

To me, it seems that plugins and libraries like jquery, or CSS exstensions, or the various ways to create interoperability between different coding languages is paving the way toward that goal.

Experiments in machine learning and AI, and recent news I read that Google translate AI developed its own language to improve its efficiency in translating human language helped spawn this question in my mind.

Update to address the down vote / off-topic claim:

I posted here after first posting on Stack Overflow. Gentlemen there suggested Philosophy. I thought the first answer I received was great and marked it as an answer. But if others here feel it is off topic, please suggest another forum!

  • "will become one single operating theory governed by the same axioms and laws." The 'axioms and laws' that govern computers and programming is the theory of computation. All forms of effective computation are equivalent and governed by the same rules. See the Church-turing thesis en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis There are many different programming languages but they all (turing complete ones, anyway) are limited in the same way and can do the same things, some of them are just faster (or slower) at specific tasks than others. – Not_Here Apr 14 '17 at 3:28
  • I think some people are. On the other hand I was learning about esoteric programming languages aka esolangs today... – takintoolong Apr 14 '17 at 21:40
  • 1
    your question deals with scientific speculation only. – Swami Vishwananda Apr 15 '17 at 4:40
  • Most people Stack Overflow don't really know what we do here, so the advise can be misleading at times. Sorry about that. While this is an interesting question, as Swami Vishwananda said, it ends up in speculation. As such, it is not really suitable for the SE network in general, since we like answers to be supported by facts. See the tour and help center for more info. If you'd be interested in e.g. writing a fiction story on this topic, you may find Worldbuilding helpful - but check out their help centre, because I'm not familiar with that community so this may be bad advise! :) – user2953 Apr 16 '17 at 20:08

I have been thinking about this for years and years :) I love the question.

In order to accomplish this in the future, there requires consensus which is one of the hardest things to do. But I dont think its languages and frameworks, I think we need higher abstractions that make your language irrelevant.

But you also need new concepts like these to accomplish it.

  • A SAL (like Hal) Software Abstraction layer which provides higher abstractions like Models, Object Graphs, Single SignOn to database schemas.

  • Source code needs to feed the compiler and produce a new concept named 'The CodeBase' which is not source but a new format of compiled form. You ask the codebase for a slice of functionality and it outputs the code in the language of your choice and after your changes, it is absorbed back into the CodeBase. This concept would be akin to msil or psuedocode, AST and debugger modules all roled into one with codegen. The main concept is to make source files irrelevant and make language editing a secondary function and the CodeBase primary.

  • Malleable Interfaces. Interface contracts are the current norm. The interface needs to change to a higher for of ducktyping. If you create IPerson with Name and I create IUser with Fullname, this layer would resolve it successfully.

  • AI for programmers would be built around the CodeBase aiding with output of files and positive absorbtion of the new code. It would deal with errors and roll back to better versions. Alternative test code can be placed near the CodeBase and after AI (really intelligent automated unit tests plus nn) would deem it safe, it would absorb it.

  • CodeBaking is another concept for taking existing stack trace and injecting improvements on behalf of the programmer. Placing error handling, refactoring large methods and then presenting it to the codebase for absorption. A coder can write log error to file and the CodeBase would bake this into the real logger and existing structure. Think macros meet cross cutting.

  • An editor mines the codebase and outputs generated code in the language of your choice from the Codebase. A coder can work in C# or Java, while some one else is pullling out JavaScript

I have come to realize that code in files in folders, linked and compiled with switches and our current methods are all looking at a dead end. CI tools, unit tests and other methodologies are all short term improvements. However the long term 300 years from now, we cannot be locked into the current file based source paradigm. Exponentially the problem will increase.

Once the languages dont matter, the SAL makes common libraries and interfaces can be ai mapped, we will begin the journey to a singularity.

  • But nothing you've suggested would add any functionality to what a Turing machine can do, even one operated by a human with a pencil and an unbounded paper tape. Surely you know that, yes? – user4894 Apr 16 '17 at 19:11
  • its more of an argument fir/against Moores law than turing. Being Turing complete is only the start of a timeline to singularity. The bullets I added were of near term pragmatic possibilities for a software path to take onward to singularity. – JonathanC Apr 16 '17 at 20:46
  • Since you have added no computational strength, I fail to see how you've made any substantive point at all. Computing faster is not the same as computing more. Or Moore, if you like puns. – user4894 Apr 16 '17 at 20:57
  • I cant provide computation. I am more of a futurist than mathematician. But I am open to learn should you wish to add some. – JonathanC Apr 16 '17 at 21:19
  • All I'm saying is that more clever programming languages can not bring the "singularity" for the simple reason that better coding techniques and faster hardware do not let us go past the limits of Turing machines. But someone else already made that point in the comments above. Turning the crank faster doesn't help. "Emergent properties" can't be computational. But heck you got your checkmark so the OP is satisfied. Not my problem and I'll soon get the "Stop conversating" warning from the forum bot. I'm sure we'll all have this convo again elsewhere. – user4894 Apr 16 '17 at 21:26

Not the answer you're looking for? Browse other questions tagged or ask your own question.