Remix.run Logo
nine_k 5 days ago

I'd say that Google strives to have a reasonably short list of languages approved for production-touching code. Rust can replace / complement C++, while OCaml cannot (it could replace Go instead... fat chance!). So I suspect that the team picked Rust because it was the only blessed language with ADTs, not because they won't like something with faster compile times.

No way OCaml could have stolen the Rust's thunder: we have a number of very decent and performant GC-based languages, from Go to Haskell; we only had one bare-metal-worthy expressive language in 2010, C++, and it was pretty terrible (still is, but before C++11 and C++17 it was even more terrible).

GhosT078 4 days ago | parent | next [-]

In 2010, Ada 2005 was the most bare-metal-worthy expressive language. Now that would be Ada 2022.

nine_k 4 days ago | parent [-]

While at it: what was / is holding Ada back? I haven't seen a single open-source project built in Ada, nor did I hear about any closed-source corporate project that uses Ada's superpowers. (Most likely these exist! But I did not see any available, or at least well-publicized.)

People agree to go to great lengths to use a tool that has some kind of superpower, despite syntactic weirdness or tooling deficiencies. People study and use LISP descendants like Clojure, APL descendants like K, "academic" languages like Haskell and OCaml, they write hobby projects in niche languages like Nim or Odin, they even use even C++ templates.

Why is Ada so under-represented? It must have a very mature ecosystem. I suspect that it's just closed-source mostly, and the parties involved don't see much value in opening up. If so, Ada is never going to make it big, and will slowly retreat under the pressure of better-known open alternatives, even in entrenched areas like aerospace.

pjmlp 4 days ago | parent | next [-]

There are enough closed source corporate projects to keep 7 vendors in business, selling compilers, in an age developers hardly pay for their tools.

https://www.adacore.com/

https://www.ghs.com/products/ada_optimizing_compilers.html

https://www.ptc.com/en/products/developer-tools/apexada

https://www.ddci.com/products_score/

http://www.irvine.com/tech.html

http://www.ocsystems.com/w/index.php/OCS:PowerAda

http://www.rrsoftware.com/html/prodinf/janus95/j-ada95.htm

Ada was too hardware demanding for the kind of computers people could afford at home, we could already do our Ada-like programming with Modula-2 and Object Pascal dialect hence how Ada lost home computing, and FreePascal/Delphi would be much more used today, had it not been for Borland getting too gready.

On big iron systems, espcially among UNIX vendors they always wanted extra bucks for Ada.

When Sun started the trend of UNIX vendors to charge for the developer tools as an additional SKU, Ada wasn't part of the package, rather an additional license on top, so when you already pay for C and C++ compilers, why would someone pay a few thousand (select currency) more if not required to do so, only because of feeling good writing safer software, back in the days no one cared about development cost of fixing security bugs.

GhosT078 4 days ago | parent | prev | next [-]

Ada has been held back primary by an image problem that traces back to the high cost and poor performance of a lot of early Ada 83 compilers. Ada adoption has never really recovered from that despite its many technical advantages, and despite the low cost and good performance of several current compilers.

The GNAT Ada compiler, always open source and quite good, has been freely available since the 1990's. It has been part of GCC since about 2003.

There are plenty of open source Ada projects on GitHub and other places although not nearly as many as some other languages.

The Ada ecosystem is mature and complete, particularly the GNAT related tools supported by directly or indirectly AdaCore (https://github.com/AdaCore and https://alire.ada.dev/).

The language evolution has been stable and is still on-going. I have worked primarily with Ada for 30 years. I still work on new Ada projects on a mid-sized team. Most of us just don't participate in forums like this.

specialist 3 days ago | parent | next [-]

> early Ada 83 compilers

IIRC, in response, DARPA (et al) did invest in compiler research.

> adoption has never really recovered

Ya. Timing. There's a brief window of opportunity for new languages (ideas) to catch on before the horde of "worse is better" solutions overwhelm the field.

pavon 4 days ago | parent | prev [-]

For people who were actually interested in using Ada, the early poor tooling was the main impediment. However, I think the bigger issue is that it was moving directly against the cultural headwinds at the time.

The immediate response I heard anytime Ada was mentioned was that it was a designed-by-committee language[1] that couldn't even be fully implemented due to a theoretically impossible specification[2]. It was made by a bunch of bureaucratic stiffs and was all about constraining the developer with stupid rules and bogging them down with verbosity. It was contrary to the freewheeling nature of the PC developer culture that sprung up in the 70's and continued through the 80's, and then evolved into the dot-com developers of the 90's and 00's.

It took decades of wandering through the deserts of "Real Developers don't write buffer overflows" on one end, and "Performance doesn't matter, and a sufficiently smart compiler will provide it anyway" on the other to get to the point where mainstream developers wanted a language that combined the safety of high-level languages with the control of low-level languages.

[1] This is false, it was selected in a contest with each entry developed independently.

[2] True but overrated

michaelcampbell 4 days ago | parent | prev | next [-]

> While at it: what was / is holding Ada back?

I have a pet theory that it shares the same thing as any heavily typed language; it's difficult. And people aren't willing to accept that when you get it to compile at all, it'll probably work fine.

So many developers (and many more middle management) are not willing to trade the longer term stability/lack of runtime errors for the quick-to-production ability of other languages.

rz2k 4 days ago | parent | prev | next [-]

Take a look here: https://news.ycombinator.com/item?id=7824570

sitzkrieg 4 days ago | parent | prev [-]

excellent summary of the commercial side, and i personally think the open source tooling with alire got a LOT better. it's definitely worth checking out

hardwaregeek 5 days ago | parent | prev | next [-]

Wouldn’t Kotlin be a more reasonable choice in that case? It has ADTs and a lot of the same niceties of Rust.

Artamus 5 days ago | parent | next [-]

I'm inclined to think that the Python -> Rust was only for some odds and ends. I know the biggest recipient of Rust trainings was the Android platform team at first, which I think also used a lot of C++.

Kotlin is definitely available at Google, but when talking about sym types et al it's not nearly as nice to use as Rust / OCaml.

sureglymop 4 days ago | parent | prev | next [-]

Yes. It can also be compiled to native. I just think it was held back too much by the java/jvm backwards compatibility but then again that's probably also the justification for its existence.

I definitely find it (and jetpack compose) make developing android apps a much better experience than it used to be.

What I like a lot about Kotlin are its well written documentation and the trailing lambdas feature. That is definitely directly OCaml inspired (though I also recently saw it in a newer language, the "use" feature in Gleam). But in Kotlin it looks nicer imo. Allows declarative code to look pretty much like json which makes it more beginner friendly than the use syntax.

But Kotlin doesn't really significantly stand out among Java, C#, Swift, Go, etc. And so it is kind of doomed to be a somewhat domain specific language imo.

DerArzt 4 days ago | parent | next [-]

I wouldn't say it's doomed. For projects in large organizations that have a large amount of java already, it provides better ergonomics while allowing interop with the existing company ecosystem.

4 days ago | parent | prev | next [-]
[deleted]
pjmlp 4 days ago | parent | prev | next [-]

Java is castrated on purpose on Android as means to sell Kotlin.

If that wasn't the case, Google would support Java latest with all features, alongside Kotlin, and let the best win.

See how much market update Kotlin has outside Android, when it isn't being pushed and needs to compete against Java vLatest on equal terms.

StopDisinfo910 4 days ago | parent [-]

Blame Oracle. If they had been more forward looking and a bit less greedy, Java vLatest would be the default language on Android.

pjmlp 4 days ago | parent [-]

Not at all, I stand by Oracle on their lawsuit.

Android is Google's J++, which Sun sued and won.

Kotlin is Google's C#.

Plus everyone keeps forgetting Kotlin is a JVM based language, Android Studio and Gradle are implemented in JVM languages, JVM are implemented in a mix of C, C++ and Java (zero Kotlin), Android still uses Java, only that Google only takes out of OpenJDK what they feel like, and currentl that is Java 17 LTS, most of the work on OpenJDK was done by Oracle employees.

StopDisinfo910 4 days ago | parent [-]

> Not at all, I stand by Oracle on their lawsuit.

I think it will be very hard for us to find anything in common to agree on then.

Anyway, it’s pretty clear Google is pushing Kotlin because they don’t want to have anything to do with Oracle which has not been cleared by the verdict of their last trial. The situation has nothing to do with anything technical.

Blaming them for pushing Kotlin when the alternative you offer is them using a language they have already been sued for their use of seems extremely misguided to me.

pjmlp 4 days ago | parent [-]

We don't have to agree in anything, I wasn't asking for any agreement to start with.

I call them dishonest by comparing outdated Java 7 subset with Kotlin, when back in 2017 the latest version was Java 9, and in 2025 it is Java 24, and yet the documentation keeps using Java 8 for most examples on Java versus Kotlin.

How come Google doesn't want to have anything with Oracle, when it is impossible to build an Android distribution without a JVM, again people like yourself keep forgeting OpenJDK is mostly a product from Oracle employees (about 80%) with remaing efforts distributed across Red-Hat(IBM), IBM, Azul, Microsoft and JetBrains (I wonder what those do on Android), Kotlin doesn't build for Android without a JVM implementation, Gradle requires a JVM implementation, Android Studio requires a JVM implementation, Maven Central has JVM libraries,....

If Google doesn't want anything to do with Oracle why aren't they using Dart, created by themselves, instead of a language that is fully dependent on Oracle's kigdom for its own very existence?

StopDisinfo910 4 days ago | parent [-]

> How come Google doesn't want to have anything with Oracle

They clearly don’t want to add anything which couldn’t be reasonably covered by the result of the previous trial.

The list you give was all already there then. Moving to a more recent version of Java wouldn’t be.

> OpenJDK is mostly a product from Oracle employees (about 80%)

Sun employees, not Oracle employees. Using Sun technology was fine, using Oracle technology is something else entirely.

pjmlp 4 days ago | parent [-]

I advise you to educate yourself who works and owns OpenJDK copyrights.

Can start here, https://dev.java/contribute/openjdk/

"Once you have contributed several changes (usually two) you can become an Author. An author has the right to create patches but cannot push them. To push a patch, you need a Sponsor. Gaining a sponsorship is usually achieved through the discussions you had on the mailing lists.

In order to become an Author, you also need to sign the Oracle Contribution Agreement (OCA)."

The go into https://openjdk.org/bylaws

"The OpenJDK Lead is an OpenJDK Member, appointed by Oracle, who directs the major efforts of the Community, which are new implementations of the Java SE Platform known as JDK Release Projects."

And this nice contribution overview from Java 22,

https://blogs.oracle.com/java/post/the-arrival-of-java-22

"Of the 26,447 JIRA issues marked as fixed in Java 11 through Java 22 at the time of their GA, 18,842 were completed by Oracle employees while 7,605 were contributed by individual developers and developers working for other organizations. Going through the issues and collating the organization data from assignees results in the following chart of organizations sponsoring the development of contributions in Java:"

To spare you the math, 77% were done by Oracle employees.

Now please show us how Kotlin compiles for Android without using Java.

Doesn't look like Google got rid of Oracle to me, more like they didn't even considered Dart, nor Go could stand a chance against the Java ecosystem among Android developers.

StopDisinfo910 4 days ago | parent [-]

You wrote than 80% of OpenJDK was written by Oracle employees. That’s patently untrue. Most of OpenJDK was written by Sun employees before Oracle bought Sun.

Your link doesn’t change any of that nor your clearly condescending comment before. You are perfectly aware of the fact by the way and you know exactly what I meant so I don’t really understand the game you are playing.

Oracle can claim Sun contribution as their own as much as they want. It doesn’t change the fact that you would have to be insane to touch anything they do now that it’s Oracle property.

pjmlp 4 days ago | parent [-]

What is pathetic is the quality of your answers, who do you think has written the code between Java 6 and Java 24?

I wonder what magic pixie dust has been writing Java code since 2013, those Sun employees have been working really hard on their ghost offices, surrounded by Oracle daemons, down in the dungeons.

I am playing the FACTS game.

StopDisinfo910 4 days ago | parent [-]

There is no facts game. I am in full agreement with you that Oracle maintains Java nowadays and writes most of the modern code in it. It remains originally a Sun product, a Sun initiative and most of the JVM historical code has been written by Sun. I have little interest in going to actually look in how many lines are from then and how many are new. It wouldn’t substantially change the nature of my argument anyway.

You are free to pretend that Oracle is a great steward of the Java ecosystem if you want or that they had a point in the trial they so brilliantly lost.

I’m free to say I vehemently disagree and perfectly understand why Google would rather stay far away.

I would rather prefer you didn’t insult me however but you do you.

vips7L 4 days ago | parent [-]

Oracle has been a fantastic steward of Java. I don’t think Java would exist or still be popular without them. Java is in its best state it’s been in decades.

brabel 4 days ago | parent | prev [-]

> ... the trailing lambdas feature. That is definitely directly OCaml inspired...

Kotlin has a very similar syntax to Groovy, which already had that feature (it looks identical in Groovy and Kotlin)... and I believe Groovy itself took that from Ruby, I believe (Groovy tried to add most convenient features from Python and Ruby). Perhaps that is what came from OCaml?? No idea, but I'd say the chance Kotlin copied Groovy is much higher as JB was using Java and Groovy before Kotlin existed.

actionfromafar 5 days ago | parent | prev | next [-]

Garbage collector in Kotlin makes it a no go for C or C++ displacement.

pjmlp 4 days ago | parent [-]

As someone that has left pure C++ applications in 2006, and has mostly written mixed language projects since 1999, usually the displacement is more religious than anything else.

In many use cases even if the performance is within the project delivery deadlines there will worthless discussions about performance benchmarks completly irrelevant to the task at hand.

And ironically many of the same folks are using Electron based apps for their workflows.

rendaw 4 days ago | parent | prev | next [-]

I think GP means "algebraic data types" not "abstract data types", probably specifically tagged unions. Both Kotlin and Java can (now) do something similar with sealed classes but it's quite less ergonomic.

michaelcampbell 4 days ago | parent | prev | next [-]

Kotlin never had the "shiny new" aspect to it that Rust did; everyone gave it a bit of side-eye for coming from a company that wrote the IDE to support it well.

swiftcoder 4 days ago | parent | prev [-]

Potentially, but Kotlin is even more recent that Rust, and didn't get blessed internally at Google till somewhat later

4 days ago | parent | prev [-]
[deleted]