4 ms·
I actually have had the pleasure of porting a program from a defunct 16-bit language called Actor to C++. It wasn't a huge deal even at around 800 kLOC. All mai
by safety-third 7y ago
I actually have had the pleasure of porting a program from a defunct 16-bit language called Actor to C++. It wasn't a huge deal even at around 800 kLOC. All mainstream languages in the future are going to have some combination of structured, functional, and object-oriented programming. Converting is mostly going to be about syntax and libraries.
As someone who has worked with C and C++ for living for over 20 years, I wouldn't think twice about picking either Go or Rust if I were to start again. Go gives you the fast edit/compile/test loop of an interpreted language with the runtime speed of a compiled language. Rust is the language that the C++ Committee would make if they could start over.
That being said, Go will never take over the C, C++, and Rust niche. Going to and from Go-land and C-land is too expensive. Google has no interest in stepping behind libraries that aren't internet servers. Go will live a long life as a great environment to port your Python, Ruby, and other bloated server languages. It just will never be the next language to write a web browser.
Rust is amazing though. I see this as the programming language of the future until the U.S. Government slams down the hammer and forces everyone to use DOD-approved Ada.
- pjmlp 7y agoI don't share the same negativity towards Go, in spite of disliking some of its design decisions. TinyGO, TamaGO, Android's GAPID, Fuchsia's TCP/IP stack, gVisor, are all good examples that Go has a place on C's domain, when one is willing to invest the resources (time and money) into making it happen. Using Ada wouldn't be that bad actually. :) As for Rust, now with Google using it on Fuchsia and Microsoft doing internal Rust summits, lets see how it evolves. Both companies are quite big into ISO C++.
- littlestymaar 7y ago> Fuchsia's TCP/IP stack Isn't it the part they decided to rewrite in Rust two years ago ? Or am I confusing with something else ?
- pjmlp 7y agoNetstack appears to still being used, looking at the code repository. And even if not, gVisor keeps using it, and gVisor is used in production on Crostini and Google Cloud.
- carlmr 7y ago>Rust is amazing though. I see this as the programming language of the future until the U.S. Government slams down the hammer and forces everyone to use DOD-approved Ada. I'd be happy if we used ADA or Rust for embedded systems. They're both amazing in their own right.
- celticmusic 7y ago> Rust is the language that the C++ Committee would make if they could start over. Bjarne has explicitly refuted this opinion.
- ptx 7y agoDid he go into more detail?
- downerending 7y agoRust is interesting and clever, but it will not see widespread use, for pretty much the same reason that Haskell won't: It's simply too complex for Joe Coder to deal with. C++ is likewise quite complex, but it has the huge advantage that a team of mediocre programmers can largely just keep to a simple subset of the language and bumble along. With Rust, you must learn and deal with the memory model, and it's not an easy thing.
- wolf550e 7y agoI think the conclusion is that C++ is too dangerous in the hands of non-experts.
- downerending 7y agoAs far as it goes, I agree, and I rarely recommend C++ as the right language for a project. Nonetheless, on real-world projects, a team of average programmers can make reasonable headway in C++. They'll probably write a lot of dubious and buggy code and eventually slam into the complexity wall. In Rust, they'd slam into a wall almost immediately and very noticeably. Managers won't put up with that.
- pasabagi 7y agoI've never really dug into C++, but I've written a little bit of C, and I feel it's generally easier to write a given program in Rust than it is in C. I can see why Rust has its reputation for difficulty - the burrow checker is a new idea, and the unfamiliar is inherently dificult. However, I think once you've spend a modicum of time, it's a fairly straightforward language, simply because the compiler almost always tells you exactly what you're doing wrong. I don't feel like it's a particularly ergonomic language, and it's certainly hard to read (very symbol dense), but I think it's easier to learn to appease the burrow checker than it is to debug your average C program, especially if you're the sort of person (I certainly am) that produces dubious and buggy code more days than not.
- 7y ago