Why would someone develop his own language to use it only inside that firm when you have XY other languages that can help you with their libraries, logic etc.? Isn't it way much simpler to go with the flow with anything else rather than developing your own language?
closed as unclear what you're asking by gnat, Robert Harvey♦, Thomas Junk, Greg Burghardt, JeffO May 5 '17 at 16:57
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
It is much easier to understand when you realize that it is often product of long process and not someone just saying "we want to make new language".
It usually starts with the idea that some problem can be solved using a simple domain-specific language. The intention is often to have non-experts use this language, so it is simple and often lacks features like strong typing and modules.
So far so good. But then, people start hitting problems that cannot be solved by the language. So new "features" are slowly added to solve those problems. And as the process is slow and features infrequent, there is no motivation to design those new features properly, as long as the problems are solved.
Over time, the new language gains features that turn it from a simple domain-specific language to a complex "general" purpose language, often with conflicting, confusing semantics and hard-to-follow syntax rules.
And by the time people realize they created such massive beast, it is already too late to kill it and replace it with a properly designed language.
Isn't it way much simpler to go with the flow with anything else rather than developing your own language?
Sure, but to follow that to an absurd end, we'd all be writing everything in assembly if nobody developed new languages.
Sometimes there is no flow. New languages come to exist because someone has an itch to scratch, whether it's a language hobbyist who just wants to invent something new or a company with a need unmet by what already exists.
This is exactly what happened when John Backus proposed The IBM Mathematical Formula Translating System in 1953. He wanted an easier way for scientific users to specify mathematical formulas than by writing them in assembly. That proprietary product became the first programming language that wasn't assembly, and you know it as Fortran.
Where Fortran was the first to have gone that route, Erlang is pretty much the poster child for it. Ericsson wanted to improve the way software for its telephone switches was developed and invented a language for prototyping with features specific to what they needed. When I first explored it, my takeaway was that it was developed by people with a real problem to solve that would not have been well-serviced by any of the other languages available in 1986. Erlang remained a proprietary, in-house product like your colleague encountered until it was open-sourced more than a decade later, and now it's a mainstream language.
Both Go and Scala are relatively young languages in the grand scheme of things, and it's entirely possible that the language in use at your colleague's company predates both. What he needs to do is ask about its history, why it came to exist and why it continues to be used.
I spent the decade between 2003 and 2013 working for a company that made extensive use of an industry-specific environment that included its own language that has its roots in the late 1970s. While some newer languages might have been more suitable replacements (and hooks for them were grafted in over time), that industry had a large enough investment in it and a huge body of well-proven code that there simply wasn't a good business case for switching to something else.
I've seen this before. It never works well. Some people have a "not invented here" complex. It usually causes a company to run around reinventing the wheel.
Think about it. This new language probably breaks all the time. Between a parser, compiler, VM, linker, whatever... There are now thousands of bugs that people will waste hours debugging random issues with. All for what they think they need that other languages don't have.
C/C++ is used to write operating systems like, you know, all of them. And yet someone thought they needed something different.