6 ms·
Seems like there's a new language popping up every few weeks. This seems strange when the trend in human languages seems to be towards a single common tongue, o
by new299 10y ago
Seems like there's a new language popping up every few weeks. This seems strange when the trend in human languages seems to be towards a single common tongue, or at least a common lingua franca.
The same seems true of mathematics. At least in the parts that get commonly taught, we trend toward a common representation.
In programming, it seemed like we might move toward a core "C-like" syntax with various derivatives, for a while.
But now we seem to be moving toward a world where everyone wants to create their own domain-specific language.
I can't help but long for a common tongue. One which allows developers in different domains to understand at least the functionality, if not the motivation without having to learn a new language.
- dietr1ch 10y agoWhy hasn't your toolbox evolved to a single hammer? Besides, even if one language ends up being the only one needed, I'd be pretty confident that it's way too early in the study of programming languages, compilers and runtimes too try to stop experimenting and look some language to settle down.
- devmunchies 10y ago> "Seems like there's a new language popping up every few weeks" Crystal was started like 5 years ago. > "the trend in human languages seems to be towards a single common tongue" One of the clear goals of the creator was to make it as similar to Ruby as possible; the creator was striving for some kind of "common tongue", no doubt. Its not some strange eccentric new language.
- woah 10y agoOne possible reason that this is not the case is that natural languages and math have been around for a lot longer. Another one is that programming languages have more in common with mechanisms that natural languages. You could also say that we do have a few lingua franca programming languages which are also very similar to each other, to the point that someone fluent in one can easily read another. Also, what do you think are the odds that a mathematician can understand the intricacies of a fluid engineering paper (in a natural language) and vice versa?
- thegenius2000 10y agoAnother point is that a lingua franca is a common tongue for communication between people with different mother-tongues: not a replacement for native languages. For example in East & Central Africa Swahili is used for cross-communication, but individual ethnic groups maintain their cultural identities by holding onto their own languages. In this sense, I don't think you could easily find a developer who would struggle to understand anything (simple enough) written in Python, even though they don't use it on a day-to-day basis, so I think languages like Ruby/Python are already sufficient lingua francas for today's developers. One more thing, maths notation is ridiculously diverse and overloaded and is in no way entirely uniform -- or even close. This is a problem when the disparity exists within a branch of maths, but an advantage when it's between very different areas, such as Analysis and Combinatorics.
- perfmode 10y agoThere are always trade-offs. Sometimes you care about performance (C++) and are willing to sacrifice useful features that are costly at runtime. Sometimes you care about individual developer happiness (Python) and you're willing to sacrifice performance. There's no silver bullet.
- yoz-y 10y agoThere are no silver bullets but do we need a complete arsenal of copper ones? I think many of the new languages would be better off as libraries for the ones that already exist.
- AstralStorm 10y agoThe problem is, if you need an arsenal of bullets, C++, for all its messiness, fits the bill.
- mirekrusin 10y agoHey, Crystal is the silver bullet! :) It's extremely performant (uses llvm <<and it's optimisations>> to generate binary) and makes happy dev (even better than python imho).
- knieveltech 10y agoThere is neither professional prestige nor financial benefit associated with trying to bootstrap a new spoken language.
- eequah9L 10y agoConlanging gets somewhat close in that regard.
- thegenius2000 10y agoI couldn't disagree more strongly. DSLs are at the heart of efficient programming because they encourage separation of concerns; that's why the Unix shell is so powerful, fundamentally it's a collection of different programming languages with well-defined interfaces for communication. Secondly, personally speaking I've never had much difficulty understanding programming languages I'm unfamiliar with provided their syntax is sufficiently similar to those I use. For example, I've never much worked in Ruby but glancing at Crystal there's nothing really confusing about its syntax. Yes, we see new languages popping up here almost weekly, but we don't see new paradigms: usually most of the stuff here is procedural and on occasion it's functional. Furthermore, having seen the remarkable benefits the introduction of different paradigms has had for the community at large (think about a world without LISP for a moment) I for one believe we should encourage the development of new and strange ideas; most of them will fail, but every so often we might get a new world.
- LordWinstanley 10y ago>>I've never had much difficulty understanding programming languages I'm unfamiliar with provided their syntax is sufficiently similar to those I use... Oddly enough, I've just been thinking the opposite. I've been looking for a compiled language to learn, to add to my basic tinkering knowledge of Python. From my shortlist of Crystal, Go and Nim, I opted to look at Nim first, as it has the most Python like syntax. I've actually found that to be a hindrance. Nim's close enough to Python that it fooled me into thinking it would be a doddle to learn, but just different enough that I constantly run into compilation errors from assuming [yes, I know!] that basic language constructs will be written the same in Nim as they are in Python and then falling foul of some subtle difference. I'm actually considering moving my sights to Crystal or Go now, in the belief that they'll be different enough from Python for my brain to jolt out of 'muscle memory' mode and pay more attention to taking in the 'new stuff'.
- staticassertion 10y agoJust learn C or C++. There are way more materials for learning them, and it's certainly different from python. You'll learn things that you would never learn while writing Python, which is the goal. If you know C++ and Python, you can pick up most mainstream languages. If you learn a more functional language afterwards, you'll basically be able to pick up anything.
- rattray 10y ago> I can't help but long for a common tongue. Me too. That's why I'm building – you guessed it – another language ;-)
- jankiel 10y agorevelant xkcd https://xkcd.com/927/ https://xkcd.com/927/ Seriously though - what's your take on the subject?
- hamandcheese 10y agoProgramming languages are often not standards in any official capacity. They are created by and for a cummunity who is expected to learn on a constant basis. IMO the proliferation of new programming is a good thing, potentially creating new ways of approaching problems, or at least iterating on existing proven languages.
- rattray 10y agoSometimes the 15th standard finally wins. And if not, hey, what's the harm of yet another? They're fun to make!
- kibwen 10y agoNatural languages and programming languages are not good analogues. The switching cost to learn a new programming language is trivial compared to that of learning a new spoken tongue. The proliferation of new languages is a symptom of the growth of programming as an occupation (paid or otherwise). The larger the pool of potential developers, the more it makes sense to develop languages that each excel at a specific niche. IOW, the number of active users that a language needs to create a self-sustaining community is mostly an absolute threshold. If the pool of developers is small, then a language that appeals to only 1% of developers may not become self-sustaining. If the pool is large, a language that appeals to only 1% of developers may have 100,000 users or more, which is more than enough to create a vibrant ecosystem and adequate tooling to remain relevant. That doesn't mean that a crunch won't eventually happen (possibly precipitated by a slowing growth rate) where the industry largely settles on a handful of common languages, but I bet that even then the niches will continue to be populated by special-purpose tools, even if their hype has long-since evaporated by then.
- cle 10y agoThe line between languages is very blurry. Almost all languages support meta programming techniques like macros, code generation, decorators, annotations, etc. Advanced libraries are essentially new languages themselves, built upon the shoulders of their hosting language. I think the distinction with human language is that programming languages don't just describe what is happening, they describe what they themselves are doing. The description is "complected" with the action being described, so changes in one may (and often do) affect the other. I often find this philosophically fascinating...
- unusximmortalis 10y agoDiversity has its benefits. Too much of it has its bad things too.
- Jaxan 10y agoYour thesis on maths is incorrect. Indeed, the way it is th aught uses a single language (just like introductions to compsci uses c-like languages). But professionals in different areas of maths use very different languages and tools. Results in algebraic topology may be totally incomprehensible for people in probability theory (and vice verse), not because it's too difficult, but simply because they are not familiar with the language.
- paublyrne 10y agoIt does seem like English is becoming more dominant and more dominant. There are cafes in Berlin now where staff speak no German as the city becomes more and more international, and one of the daily papers recently decided to do a regular English language version. As far as the expat community goes here, it's probably more important that you speak English than German (ideally both of course). I am curious to see how this plays out over the next 10-20 years, although I can't see English taking over fully. Of course it's much easier to learn a new programming language, than it is to learn a new natural language. You can't pick up German over the weekend, until we figure out the technology to help us do that.
- mattnewton 10y agoActually, similar to the way you can find DSL's galore at all the big tech companies, in my experience people in specialized fields or in close knit groups evolve their own jargon to speed up and increase the specificity of communication.