Seemed like the definition of "programming language" was quite odd (given the title of the submission to HN is "Where are programming languages created?"), but then I noticed the actual title of the page is "Where does software innovation happen?" and is not restricted to programming languages.
As far as I can tell, Haskell was an academic collaboration mostly between Jones (UCL briefly, mostly University of Glasgow), Wadler (University of Edinburgh), and Hudak (Yale).
In this case there's another layer on top of that where # of programming languages scales faster after a certain wealth threshold.
For instance, the city of Toronto has a GDP equivalent to a couple of specific countries (and larger than most countries), but created more programming languages than the equivalent countries.
Why would it suddenly change?
(I found the visualization hard to use, at least on mobile, so I used the CSV file)
I'm not sure BETA or FCL are really in the "Best" category. :p
*Many have migrated to the US on their way, but still…
No, it doesn't. There's JetBrains, Eclipse foundation, Corel, etc.
Perl is one that comes to mind and it’s old.
The main reason it avoids showing languages created by individuals is that it can be hard to narrow down their location. Also, it would count as doxing.
This thread was about individuals making languages on their own and my point in this thread is most popular programming languages didn’t gain ground or mature until paid for and sponsored by an org or company.
DoD paid for it and can take credit for developing it.
I found this study [0] that examines the relationship between age and things like winning the Nobel prize or coming up with a "great invention".
Looks like there's a peak in the late 30s and that peak is slowly creeping up as the population ages.
But it might also be that you need a population of 20-year-olds to actually adopt the new inventions.
[0] https://www.kellogg.northwestern.edu/faculty/jones-ben/htm/a...
Notably, Roman Elizarov who was leading the Kotlin team and who is based in St. Petersburg actually left Jetbrains. It's not clear why; at the time he cited personal reasons. But reading between the lines, it could be because he was not able or willing to leave Russia.
That being said. "GP" jokingly said languages which were considered "best". I'm not sure what C# is supposed to be "best" at? It's not Java and it's certainly not LISP.
* Expression Trees and LINQ (still a pretty unique feature)
* async/await/yield syntax, adopted later by many others
* get/set property methods
* null coalescing (??) syntax
* extension methods and partial classes
Even if C# was not the originator of some of these, it definitely played a key role in popularizing them and offered a good reference syntax and semantics that others could draw inspiration from.
C# also has great synergy with the F# language which is so unique and innovative that it might seem 'alien' at times. :-) I think some of the C# features appeared in some form in F# first (citation needed :-).
- Kind of true on this one, although Active Objects, and various flavours of co-routines predate its use in Midori, which eventually lead to async/await design
- Already present in Eiffel and Delphi
- Eiffel among possible others
- Special case of languages that allow for generalised call operators, and Delphi and C++ Builder did partial before
F# currently is so relevant that apparently has zero content to show up on .NET 9 release notes.
Language-specific articles are usually posted closer to the release date. Example: https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/
I belive Linq was prototyped in Haskell or at least based on experiments in Haskell.
But best depend on the task at hand.
If you had asked me a decade ago I would've said C# in place of the JVM, C/C++ in place of Rust and Python in place of Go. I think it would be perfectly reasonable to put C#, Python or even PHP on your top 5. I don't because I think they've been "outpaced" in usefulness by the JVM and Go. I know Go is a controversial opinion as Go is in many ways inferior to both C# and Python. The reason I place it higher is because I really dig some of the philosophies it comes with. I much prefer to work on code with explicit error handling and no cyclical package imports. This along with the focus on simplicity and how much you can do with just the standard library makes it very easy to write understandable (no magic) and maintainable code. It's one of the few languages where I can open a code file and immediately know what's going on almost regardless of who wrote it.
With that said, Clojure is my personal top language and I really hope I'll get time to pick up the "JavaScript" side of it so I can do all my Typescript work within Clojure. Haskell is too rigid for me and both it and Common Lisp doesn't come with the ability to tap into the JVM (which can be both a blessing and a curse). To be fair Lisp has Clasp which is much more powerful for some uses. I don't think you can ever really avoid C/C++ (Rust for safety) or Erlang in certain parts of our industry and I'm not sure they'll get real competition. Maybe if Zig manages to pick up a cult following like Rust has? The reason the JVM and it's languages rank so highly for me is in part because of its popularity. This may not be a good metric but I personally think real world application is a key factor for general purpose languages. Coupled with it's massive leap forward with it's recent updates it is simply a great platform in 2024.
ABCL -> https://abcl.org
The Java interface for LispWorks : https://www.lispworks.com/documentation/lw80/lw/lw-java-ug.h...
Go aside, it's as if everyone hates getting things done in a delightful way, which is why I find this top 5 leaning a bit too much towards the quadrant of PL elitism and historical status quo adherence at the same time. Not to mention the drawbacks of JVM, which is by all means a stagnating ecosystem, despite the work to catch up with the rest, it might be a little too late.
https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/cs...
The efforts on F# are a tragedy, instead of providing proper content, forward to blog posts that we all know eventually disappear from Microsoft blog history.
https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fs...
Personally, I see nothing wrong with it, because what matters most is how practical the language is when applied to solving a particular task, how well it integrates with the rest of the ecosystem, etc. On this front, I think F# does better than Scala or Clojure, or even Kotlin.
What it does need, I think, is better marketing around data science and machine learning domains - F# is a language which very well fits into this use case, and already has small but nice set of libraries like Diffsharp, and is being used by research labs in pharma sector (albeit on top of Fable, which I'm not a fan of).
You also need to remember that many C# features stabilize very late into release cycle. On one hand, posting about development early and actively brings more feedback, which is good, but it also may give a wrong impression, especially if a casual reader misses "this is early/experimental" disclaimers.
In tooling, books, conferences, critical applications used in large scale across the industry.
Meanwhile Microsoft keeps behaving as if it was a management mistake to have added it to VS 2010.
I encourage you to look at the state of Clojure and its usability within larger Java ecosystem. Quantity of material, as usual, is not everything.
> Meanwhile Microsoft keeps behaving as if it was a management mistake to have added it to VS 2010.
Do you have anything to back up this assumption with?
Scala still powers a lot of big data and distributed computing frameworks in Java ecosystem. In .NET, the counterparts which only exist for Akka really, are written in C#.
.NET has hardly any big product that is relevant for big data folks, and the ones that exist are equally written in C#.
The only well known flagship product was JET.com, meanwhile acquired by Walmart, which by now was rewriten most of it.
The lack of exposure in .NET ecosystem, not keeping to the story how to sell F#, first companion class libraries, then Web development, maybe type provideders with the World Bank example demoed to exhaustion, maybe machine learning (while Microsoft actually hires Guido and alongside Facebook brings performance improvements and JIT support), only C# and VB are default for Windows desktop workloads, nowadays in what concerns .NET 9, who knows what the theme is.
In Visual Studio 2024 full installation, how many C# workloads also support F# as an option?
It is basically CLI, class libraries, and those old Web projects from the "F# is great for Web" marketing phase.
There are other companies which use F# in the area of logistics, pharma and I know of at least one company that has services in it in a bit less reputable industry.
I feel like this kind of perception is highly biased, or, at least, unhelpful.
For what it's worth, I have been a newcomer to both languages the past few years. Clojure has been way more usable than F# and it's not even close.
Clojure is firmly in the quality not quantity category. Good books, novel libraries, a very active slack. Things usually "just work."
F#? Broken type providers, scaffolding that doesn't work past .NET 6.0, a genuine lack of books. Sometimes things work great, they often don't, and the typed nature makes a lot of these things hurt more.
Swing is the box, what is the Microsoft in the box solution? MAUI still doesn't do Linux, and is focused on C#.
3rd party stepping in for Microsoft doesn't count in this discussion.
What matters is public perception, and people applying for jobs.
By now I don't expect another fate, other than joining VB and C++/CLI teams, in bug fixing, minor interop improvements to keep up with C# features, as little as possible, and that is it.
This completely misses the point of having rich ecosystem nor has any relevance whatsoever from practical standpoint for organizations that have competent leadership.
For all intents and purposes, this would completely disqualify Clojure and Scala themselves since they don’t come from Oracle, and Kotlin if Google/JetBrains don’t count either.
You can’t be serious.
The crybegginng attitude that expects everything to come from first party is extremely damaging to .NET ecosystem because it hinders evolution and innovation, and further expansion of it. Luckily it’s slowly going away but your reply is a good demonstration why it is bad.
Even the current state is too first-party leaning - too many features that have no business being in extension packages let alone CoreLib (e.g. “please fix obsolete System.Drawing on Linux because our legal is incompetent enough to not allow SkiaSharp”)
> VB and C++/CLI
C++/CLI only works on Windows. In no uncertain terms, it is deprecated and effectively dead. You must not write new code with it and existing code must be ported to C# if possible. VB.NET is supported but does not receive new features.
The only possible way for you to compare this to F# is to completely ignore all devblog posts and releases concerning its continuing development. If you did read them, you would also know about the high-effort changes it adopts to stay up to date with the rest of the ecosystem when it introduces new way of doing something. In which case, it is reasonable to ask where do you even pull these assumption from then?
Just like Common Language Runtime was announced in 2001, where all Microsoft languages used to be on equal tooling level. Unfortunately to those languages, CLR now means C# Language Runtime.
Microsoft isn't a poor startup trying to make it over the next month, as shown not only by ABK, their whole profit and market valuation.
By the way, C++/CLI was recently updated to C++20, as of last year, and is a critical component of WPF, remade official GUI framework at BUILD 2024.
No use to keep discussing this, lets see how much F# is there in .NET 9 and VS 2024 update when November comes.