6 ms·
Yup this makes me wonder why do companies go for relatively newer languages compared to old ones such as Java,C++ or C as they have been matured and has been wi
by mraza007 6y ago
Yup this makes me wonder why do companies go for relatively newer languages compared to old ones such as Java,C++ or C as they have been matured and has been widely used
- wrenky 6y agoEasier to hire people working in the new hot languages, and get younger programmers out of college.
- johannes1234321 6y agoI don't think so. There is a full load of people with experience in C++ or Java, but people with experience in performance critical (whatever that means) Rust code is more limited for being a newer language. You however win on the hipness scale and attention in places like hacker news. As others have said, however, a big factor certainly is that an internal lead developer lobbied for Rust, which they experimented with.
- ModernMech 6y agoAt the same time, in college we are teaching our students Java and C++ because that's what companies expect our students to know. Half our CS curriculum is in Java. The students I teach loathe C and C++ and want to learn Rust, but we won't teach it to them except in an experimental elective that won't count toward their graduation. So it's hard to say how many young programmers out of college actually know these "new hot languages".
- mraza007 6y agoI totally agree with you on this comment since as I college graduate I learned Java , C++ ,C and python but I was exposed to Golang and Rust through online discussion forums. Plus most of the organizations still write code in matured languages such as C,C++ and Java.
- aaomidi 6y agoBecause excited developers generally means more satisfaction from work. And one way to keep developers excited is to give them new toys to play with. Also mature languages, even though they're more stable, are just more of a pain to work with since they don't have a lot of the new shortcuts. For something like Discord, Rust is perfect.
- deleted 6y ago[deleted]
- mraza007 6y agoI agree with you, developers do get excited when are using newer technologies but the question is what if a new problem arises and they might not be able to find a to it solution. Just like how they did in this case completely switching from Go to Rust
- aaomidi 6y agoThen they'll have to cross that bridge when they come to it. Nothing of this article gave me the impression that the second they saw this bug they're like WELL TIME TO SWITCH. I'm sure we're glossing over probably hundreds of hours of investigations by dozens of people.
- jhgg 6y agoWe kept dealing with GC pauses in go, and eventually after investing a bunch of time trying to fix this - we decided to research what it'd be like to rewrite it in another language. The service itself is pretty simple, so it wasn't a gargantuan task. So it was either, rewrite this again in Go (using off-heap data structures to avoid GC pauses, which makes the software both harder to maintain, and also less idiomatic) or try a new language where we won't have these issues - where we don't have to resort to clever hacks to work around the runtime system. Since then we've continued our investment in Rust, after success of this project (and many others we've yet to blog about as well.)
- collyw 6y ago
- bgorman 6y agoHave you ever considered that programming language design is an evolving field, and programming languages directly influence programmer productivity? C++, C and Java are old, so some mistakes can be forgiven. However there are problems with these languages that new languages have addressed. Do you think a car from 1985 is better than one from 2015? The same applies to programming languages. Given the explosion of programming, it is absurd that the best ideas from PLT are not in mainstream languages.
- scoutt 6y ago> programming languages directly influence programmer productivity A complete re-write (preceded by a very deep analysis) is exactly the opposite of productivity. > problems with these languages that new languages have addressed. And new problems were introduced... case in point: this very article. > Do you think a car from 1985 is better than one from 2015? Depends on the car... I think this analogy would be better: "Do you think a hammer and screwdriver from 1985 are better than the ones from 2015?"
- doodpants 6y agoThe simplest answer is that these newer languages were created specifically to address problems with existing languages. If a new language has no compelling reason for anyone to switch to it, why bother to create it in the first place?
- johannes1234321 6y agoIt's not that easy. A new language starts because a set of developers has a problem, however that doesn't mean that others share that problem or agree to the choices and solutions made. Rust seems to be in a good situation where this worked for large parts, but many languages came and got no or only short attention.
- Laremere 6y agoGo was announced in 2009, and went 1.0 in 2012. Sure, it's "newer" than languages from the 90s, but calling it "new" when it's nearly a decade old doesn't pass the smell test. Serious software has been written in both Go and Rust, and real issues with Java, C++, and C that these newer languages address are well known. Compare Go and C++, and I bet C++ has had more language changes since Go's 1.0 than Go has. That makes large portions of C++ "relatively new and immature" compared to Go.
- mraza007 6y agoI agree with you on that but this still makes me question the problem they are trying to solve can't they solve in Go instead of switching to Rust. Furthermore, A lot of companies to this date have there performance critical code written in C++ , C or Java Such as you can take HFT for example they use C++ for most of their trading applications instead of newer languages I'm definitely not saying C++,C or Java is better than Rust or Golang each language has its own pros and cons
- devmor 6y agoNot all problems are specifically technical in nature. One of the big issues with Go is that it's got a steep learning curve. (There was an article about this posted on HN yesterday, in fact) Rust, by contrast, is an extremely easy language to learn. Of all the languages I've picked up at least partially in my ~12 years of professional programming, Rust was probably second only to to PHP in "get up and start running with it". If Discord is trying to pick up new developers, or cross discipline seniors to improve their talent pool, Rust is definitely a better choice than Go.
- snth 6y agoThis is the reverse of the characterization of the two languages I usually see. I usually see "Go is easy to learn and use" and "Rust is hard to learn but has performance advantages". I often see comments about how you "really need to go read the Rust book" and not just try to pick up Rust on the fly.
- 6y ago
- chc 6y agoThere are actually very good reasons to go with Rust over those languages, which were the motivating reasons Rust was developed in the first place. Rust supports lower-level development than Java, offers much stronger safety and correctness guarantees than C or C++. This is why Google's security team also supports reimplementing C libraries in Rust (https://security.googleblog.com/2021/02/mitigating-memory-safety-issues-in-open.html https://security.googleblog.com/2021/02/mitigating-memory-sa...).
- dkarl 6y agoThere's a difference between starting new projects and rewriting old ones. I have 7+ years of professional C++ under my belt and probably wouldn't start a new project in it. Same with Java. Sometimes new things are better.
- franga2000 6y agoI definitely see the appeal of Java (used to be my main lang), but I would never in a million years base a company's flagship product on C or C++ unless it was a domain requirement (embedded, kernel, etc.). It's just not safe.