20 ms·
This is awesome. It also makes me really excited that finally there's a language that's catching on (I consider Haskell, OCaml and the like to be niche) where t
by mlazos 8y ago
This is awesome. It also makes me really excited that finally there's a language that's catching on (I consider Haskell, OCaml and the like to be niche) where the subset of the language that is used for a formal semantics is very similar to the language being modeled. I feel like with Javascript, C and other similar languages the core language that is used in a formal semantics has to "patch up" all of the unsafe holes in their respective type systems, and as a result the core language ends up looking a lot different from the language it is intended to model.
- platinumrad 8y agoI wouldn't be surprised if the total number of Rust programmers is smaller than the total number of Haskell or OCaml programmers. The latter two are frequently taught in school, unlike Rust.
- woah 8y agoRust brings some very practical advantages to the table such as portability, performance, safety, and determinism. I wouldn’t be surprised if it’s adoption continues at a much greater rate than Haskell and OCaml which mostly just bring syntax and semantics that many people prefer.
- platinumrad 8y agoIf Rust doesn't find its "killer app" I don't see it rapidly growing like Go (network services, containers) or Swift (everything Apple). Widely displacing C is a pipe dream. A more realistic hope is that it will become the wasm language. But if it misses that boat I fear it will remain relatively niche.
- vvanders 8y agoHeh, someone better tell Mozilla that it's time to pack up Firefox and go home then.
- platinumrad 8y agoServo is just one project. How does its existence, or the existence of whatever other components of Firefox that use some amount of Rust, encourage the adoption of Rust by the general programming population? If having a high profile industrial backer makes a language not niche then OCaml is not a niche language. (I wish this were the case.)
- vvanders 8y agoWhat makes you think that the languages which Rust displaces aren't also niche? I used to write a lot of C++, every team I worked on always had a problem finding people who could write native code well, I'm pretty sure that hasn't changed in ~3 years or so. Why does something have to be wildly popular to be considered successful? I've found most of this industry is more about using the right tool for the job then trying to fit one language into every domain space. That said I think there are a few places where you'll see Rust really succeed in the next 3-8 years: 1. Domains that have hard memory or performance constraints. Rust matches C/C++ for performance(and I say this as a hardcore C++ perf nut) but without the segfaults/corruption(unless you step into unsafe land). 2. Products that need to go to multiple platforms but can't afford a GC. Rust has by far the best cross-platform development story I've seen in a natively compiled language. I've personally build things that run on WASM/Win32/OSX/Android/Linux across a wide range of hardware and embedded in C#/Java/C++/C. 3. Places where safety/memory corruption is unacceptable. You just get less of these from Rust, full stop. Yes you can do it in C/C++ but you better be willing to have a QA org larger than your dev team. Firefox is a perfect example of how these various concerns intersect. I used to be a serious C++ developer working on high performance, memory constrained platforms. In the past two years anything green field for me has been Rust based and I've been 100% satisfied. In both personal projects and some professional work Rust has never come up short. Is it hard to write? Sure. Do I spend less time debugging/tracking down mem corruption/dealing with poor ownership? Hell yeah.
- platinumrad 8y agoI think Rust does need to aim for strong mainstream acceptance. As I'm sure you've experienced, lower level programming, in contrast to web development, is a (justifiably) conservative field with regard to choice of tools. For example, "I write ANSI C because ANSI C is the standard" is an attitude I frequently encounter. ("I write ANSI C because everything has a compiler for ANSI C and it never changes" is probably what a lot of them are getting at.) Things like breaking changes, however minor, and "just use nightly" are anathema to this crowd. Yet this is the domain that could arguably benefit from Rust the most. I think Rust needs a strong foothold somewhere to prove its maturity before it can attack the C/C++ "heartland". >What makes you think that the languages which Rust displaces aren't also niche? Any definition of "niche" that includes C or C++ is meaningless.
- staticassertion 8y agoThink of all of the applications built in C++. There are many. I expect rust to encroach on those quite a lot, as well as less system-y C code (such as utils). It's still early days. Rust is showing a lot of promise, for me personally, when writing high performance web services.
- maccam94 8y agoThere's nothing about Go that makes it particularly good for containers. It actually requires some ugly hacks in C to make it handle namespaces correctly (because namespaces are configured per-thread, and Go decides to spawn new threads somewhat arbitrarily which is not visible to the program). https://github.com/docker/libnetwork/issues/1113 https://github.com/docker/libnetwork/issues/1113 https://github.com/docker/libcontainer/tree/master/nsenter https://github.com/docker/libcontainer/tree/master/nsenter https://www.weave.works/blog/linux-namespaces-and-go-don-t-mix https://www.weave.works/blog/linux-namespaces-and-go-don-t-m... EDIT: TIL this is fixed in Go 1.10 which came out in February: https://golang.org/doc/go1.10#runtime https://golang.org/doc/go1.10#runtime If rust continues to improve ergonomics and library support, I don't see anything stopping it from replacing C except in niche embedded systems that don't get LLVM support.
- pjmlp 8y agoWell, the existence of Docker and K8s do. It is a network effect, regardless of how one might think about Go.
- coldtea 8y ago>Well, the existence of Docker and K8s do. The fact that Docker and K8s are written in Go, doesn't provide anything for anyone considering to writing new container projects...
- pjmlp 8y agoCorrect, but it does mean that those of us not so found of Go, have to actually use it when dealing with Docker and K8s deployment scenarios, where devops are keen in using it as their tool of choice. Trying to avoid Go in such scenarios is a futility.
- coldtea 8y agoSo, do devops care for using Go (for their own tools) if there are mere users of Docker, K8s? E.g. maybe they want to use some e.g. Docker provider libs that are mainly/only available as go packages? Else, why would a Docker/K8s deployment impose Go usage for anything else regarding dev-ops? In other words what I'm asking is: isn't their use of Go just an implementation detail of Docker/K8s, as far as dev-ops are concerned?
- geezerjay 8y ago> If Rust doesn't find its "killer app" I don't see it rapidly growing like Go (network services, containers) or Swift (everything Apple). I don't believe that Go or Swift are growing because of their technical merits. Swift is essentially forced by Apple upon any developer who needs to develop applications that run on Apple products, and Go, in spite of its pedigree, can't be sold to newcomers without waving the Google brand. > Widely displacing C is a pipe dream. For old projects, sure. Yet, for greenfield projects then, given the choice, Rust does offer quite a lot of sought-after features that C is sorely lacking.
- coldtea 8y ago>I don't believe that Go or Swift are growing because of their technical merits. Swift is essentially forced by Apple upon any developer who needs to develop applications that run on Apple products It's also a very good language, in par with Rust, and with the creator of LLVM behind it, and the creator of Rust (and many other Rust people) working at Apple in Swift. >Go, in spite of its pedigree, can't be sold to newcomers without waving the Google brand. And yet, Dart never got anywhere, despite the "Google brand" (and far more support initially, including official branding, an IDE, and having their #1 compiler guy working on it).
- coldtea 8y ago>Widely displacing C is a pipe dream. Displacing C for new projects though, it's not. And it has increasingly done it for major projects from major companies (not just Mozilla). This is already great for such a new language.
- lambda 8y agoRust is increasingly frequently taught in schools; and when Haskell or OCaml are taught in schools, it's usually as part of a "programming languages" survey course where you learn a little bit of a few languages of different paradigms, and I expect that most students won't really retain much from the class a year or two later unless it helped them develop an independent interest in functional programming.
- jononor 8y agoCan you link to one or two classes taught in Rust? It is surprising to me, since academia often trails by many years.
- iuppiter 8y agohttp://cis198-2016s.github.io/ http://cis198-2016s.github.io/
- jononor 8y agoNot taught since fall 2016. Was taught by some passionate students it looks like. Only current one I could find is https://www.mccormick.northwestern.edu/eecs/courses/descriptions/396-496-9.html https://www.mccormick.northwestern.edu/eecs/courses/descript...
- steveklabnik 8y agoThere’s been a few over the years, one of the first was an OS class before Rust 1.0. As you’ve mentioned downthread, sometimes they stick with it, sometimes they don’t. Often classes that are run by grad students or adjuncts change when the teachers change. Two classes off the top of my head from this spring: https://www.cs.umd.edu/class/spring2018/cmsc330/ https://www.cs.umd.edu/class/spring2018/cmsc330/ https://web.stanford.edu/class/cs140e/assignments/0-blinky/ https://web.stanford.edu/class/cs140e/assignments/0-blinky/ Hearing rumbles of some more in the future...
- samth 8y agoThis is accurate about the US -- in Europe things are quite different. Haskell is regularly taught in first programming courses in the UK, for example, and OCaml is very widely taught in France.
- staticassertion 8y agoAlmost certainly, yes. And lots of big companies use Haskell, just like Rust - Facebook has used it for a while now. It's important to remember that while rust may dominate the HN headlines, it's still a very niche language. That said, it's also showing a lot of promise in a world that largely dismisses programming languages as being irrelevant.
- pornel 8y agoIn Open Source (at least in the sample measured by that site) number of people writing Rust has outgrown Haskell and OCaml, and is approaching popularity of Scala: https://www.openhub.net/languages/compare?utf8=%E2%9C%93&measure=contributors&language_name%5B%5D=haskell&language_name%5B%5D=ocaml&language_name%5B%5D=rust&language_name%5B%5D=scala&language_name%5B%5D=-1 https://www.openhub.net/languages/compare?utf8=%E2%9C%93&mea...
- adamnemecek 8y agoThe two are ~20 years older than Rust. However Rust is super mature for it's age.
- coldtea 8y agoRust has more momentum and visibility -- and seems poised to have more uptake in startups and industry. Already several major companies use it -- https://www.rust-lang.org/en-US/friends.html https://www.rust-lang.org/en-US/friends.html For Haskell, the best I've heard is Facebook for some custom dev tools and Standard Chartered. I'm sure there's more, but...