Is there an open source version of the language? ...bc I'm not touching a programming language with a ten foot pole if it hasn't got at least two implementations, and at least one open source :|
Sure, keep the IDEs and deployless infrastructure and all proprietary, but a core programming language in 2019 can only be open-source. Heck, even Microsoft gets it now.
Hijacking the joke comment to plug Dark a little bit. Data migrations and schema changes are hard (especially when you want to test on a subset of users), and Parse only avoided a lot of this pain because it was typically used for relatively simple-schema'd projects. Dark seems to have done the hard work of making an entire language and environment to avoid footguns and provide more-or-less seamless data migrations, schema versioning, and gradual feature-flagged rollout. I haven't been able to try it yet but desperately want to!
Sigh. Not an investor, just a developer who's read their stuff and knows the pain points, and generally a fan of people doing things out of the box w/r/t software tooling. It is possible to be excited about a design pattern without knowing how a specific implementation pans out - and I probably should have said "plug what Dark is trying to do" rather than "plug Dark." But I'm chill with people disagreeing with that.
Huh? In another comment someone from Dark admitted they had barely fleshed out the database, they don't even know how joins will work yet! How have they “done the work”?
Schema migrations are easy if there's no complexity to the schema.
Parse was a startup also offering an easier way to build a backend as SaaS. But then Facebook bought them and shut down the product, and all that remains is the open-source clone of the server that they were kind enough to make.
Go - OK, it has one implementation (open-source), but it's backed by one big player (Google) and used by many others... also the simplicity at core design decisions sound like the kind of choices that would make an alternative compiler easier to implement than for other languages
Rust - pretty fast growing open-source community despite only one implementation... but yeah I'm sort of worried that Rust is a "hard to implement" kind of language with maybe a not high enough bus factor... similar worries for Julia too
But tbh I'm not drawn much to either Go and Rust for other reasons - Go is too verbose for my taste, no way to write denser code that highlights the logic instead of the plumbing, and it has a "dumb" type system, Rust seems a really bad choice for rapid prototyping and iteration which is what I care about now.
EDIT+: glad to know that Go has multiple implementations in fact, pardon my ignorance!
I'm assuming you don't mean the traditional bus factor, but one of alternative implementations? Rust (and from what I can tell after short research Julia at least partially too) has quite a big development team that is supported by many different companies with no benevolent dictator, so I don't see a big bus factor risk.
Julia actually has a pretty high bus factor in comparison to most other Github projects. This was demonstrated during Heather Miller's (of Scala Fame) talk at JuliaCon 2019
I generally read bus factor as having few who fully understand a codebase written in said language so if they were to be hit by a bus you'd lose ability not easy to hire.
rust is a fantastic language that helps me avoid a lot of problems in runtime but I will concur that its a terrible language for prototyping and its not trying to be. Its a language for building systems that need to be fast and reliable for years.
"... but yeah I'm sort of worried that Rust is a "hard to implement" kind of language with maybe a not high enough bus factor... similar worries for Julia too"
Which is fair, but they seem like the kind of language where the compiler or run time is the really important part of the language, so it might make sense to have multiple implementations. Rust without the lifetimes implementation, and Julia without the highly dynamic but high performance run time, aren't worth much.
I'm genuinely curious (not disparaging) who is using any of these (except for tinygo and gopherjs, for which the use case is apparent and niche)? Does anyone use gccgo or llvm-go? And why?
I like the flow of your question: “who is using any of these”… “except
for the ones people actually use” :-P
On a more serious note, in my personal experience, the GCC and the LLVM
back-ends are generally much better at math- and computation-heavy
workloads and worse at… everything else, basically. But that was a long
time ago, when gccgo still used to spawn a thread for every goroutine,
so my experiences are probably outdated. Also, back in the day the LLVM
back-ends used to be the only way to get link-time optimisation with Go.
The GCC back-end probably can do it by now.
To answer your question directly, I don't know any large projects that
use them, but they exist. Which means that there is an alternative.
Unless Google goes full Oracle, that is.
> I like the flow of your question: “who is using any of these”… “except for the ones people actually use” :-P
Yeah, it was kind of clumsily worded. I get why people use the ones that are the only options for their respective target platforms (browsers, microcomputers, etc). I don't understand the advantage to using compilers besides gc, although your comment provides some clarification.
> To answer your question directly, I don't know any large projects that use them, but they exist. Which means that there is an alternative. Unless Google goes full Oracle, that is.
My question wasn't whether or not there is an alternative, it was simply "who uses the alternatives and why?".
Honestly, I would expect compilers to lag behind the official Go compiler, unless the Go core maintainers were to release specs before they implement new features. It wouldn't do those projects good to just implement upcoming features that might not make it though.
Sure, keep the IDEs and deployless infrastructure and all proprietary, but a core programming language in 2019 can only be open-source. Heck, even Microsoft gets it now.