3 ms·
nickp mentioned some alternatives, basically verified C or model-driven development for cases where it really matters. Anyway, if we stick to standard commerci
by blub 8y ago
nickp mentioned some alternatives, basically verified C or model-driven development for cases where it really matters.
Anyway, if we stick to standard commercial projects, I'd say the languages I enumerated are solid C++ (and Rust) competitors, because C++ at least isn't used to develop only super-performant or low-level bit twiddling SW, and I don't see why Rust would be either.
Obj-C was a solid C++ competitor on anything Apple and now Swift maybe even more so. It's a great language that can get you 95% there and I can almost guarantee that the remaining 5% won't be Rust, but rather C or C++.
Same goes more or less for Android with Java or Kotlin. Having a GC didn't stop them from becoming the platform standard, despite the embarassing growing pains they had.
It's really a game of platforms. Almost no one would pick a language because it's memory-safe, it's just a standard feature for most kinds of software developed nowadays.
For the SW where Rust and C++ would both be good fit (gaming?, audio, video, etc), C++ is entrenched and it's very unlikely that companies will have to justify using it instead of Rust in 2019 or 2020, erc when it's already the default in the first place.
- pjmlp 8y agoA hard lesson I took from my experience with Turbo Pascal, Oberon and others, is that platform languages always win in the end. Better syntax, improved semantics are nice, but if the debugging experience, IDE tooling and integration with platform libraries take a hit, then in the long run, the improvements aren't really worthwile. However, given that Google (Fuchsia), Microsoft (IoT Core, Azure), Oracle (railcar), Amazon (Firecracker) are testing waters with Rust, I guess it might eventually become a blessed language in some of their systems. But it will take time for sure, specially regarding tooling parity.
- acdha 8y agoI’ve been trying to correct my instincts from that era for the success of open source. It’s a lot easier now to collaborate, especially without things licensing, and the tools built around things like LLVM seem like a significant shift for the costs of a non-default language.
- pjmlp 8y agoNot really, you just need to have a look at Android, as open source platform. Java is the platform language, followed by Kotlin, which even with all Google love of latest, there are still a few corner cases where it isn't 1:1 with Java on the platform. Finally there is C++, which comes on 3rd, with lots of caveats given the NDK evolution and integration into Studio. Anything else brings their own set of problems, the headache of having the NDK as entry point into Android and JNI as FFI for Android APIs.
- acdha 8y agoI’m not saying it’s easy now, just easier. Thinking back to the TurboPascal/Delphi era you had to convince people to make a large purchase, and your team had to spend a non-trivial amount of time dealing with compiler code generation, debuggers, and a wide range of less compatible operating systems (when I worked for a compiler vendor, our QA test matrix was ~600 different OS & CPU combinations). That’s a lot to fund out of a smaller revenue stream.