I have only one question: why compiler missing options and features are (programming) language failures?
Announcement
Collapse
No announcement yet.
Google Engineers Lift The Lid On Carbon - A Hopeful Successor To C++
Collapse
X
-
Originally posted by nist View PostI have only one question: why compiler missing options and features are (programming) language failures?
On a philosophical level, it depends, sometimes it will be a language failure (C will never implement borrow checking because of how the language is (un)defined, not because GCC is not a good compiler for it), sometimes it will not be (nothing in Python itself stops you from having a sane dependency management solution, it's strictly a community problem).
- Likes 1
Comment
-
Originally posted by dekernel View Post
Regarding your statement with Rust and the Linux kernel:
1) When it does happen, it will be flagged as EXPERIMENTAL, and since Linus is quite practical, I would bet that if there is not big improvement (performance, ease of maintence and such) and he will require demonstrative proof, that it very well might just get dropped to reduce the overall complexity of the development system which is pretty keen on if I am reading between the lines of his statements.
2) Though the use of the kernel itself is big, the number of developers doing core development including drivers is quite small in the overall headcount within the industry so again the impact is not as big as you seem to think.
Comment
-
Originally posted by Raka555 View PostLet me quote someone else: "I've written C and C++ professionally, also used Go and Rust on hobby projects. Rust, by far, was the hardest to learn and get something useable out of it. Because of that, I would never recommend someone put it into production unless they have a very specific use case that Go could not handle. The onboarding costs would be just too much."
Notable quote:
"Remarkably, we had only put very basic thought into optimization as the Rust version was written. Even with just basic optimization, Rust was able to outperform the hyper hand-tuned Go version. This is a huge testament to how easy it is to write efficient programs with Rust compared to the deep dive we had to do with Go."
By the way, I don't say Rust is not harder than some other languages to learn, but it seems to be worth the investment for some use cases. As alwyas, use the right tool for the job.
- Likes 3
Comment
-
Originally posted by darkonix View Post
You mean like Discord did a few years ago? https://discord.com/blog/why-discord...rom-go-to-rust
Notable quote:
"Remarkably, we had only put very basic thought into optimization as the Rust version was written. Even with just basic optimization, Rust was able to outperform the hyper hand-tuned Go version. This is a huge testament to how easy it is to write efficient programs with Rust compared to the deep dive we had to do with Go."
By the way, I don't say Rust is not harder than some other languages to learn, but it seems to be worth the investment for some use cases. As alwyas, use the right tool for the job.
Your quote is actually a testament at how garbage collection/automatic memory management makes a language slow.
Optimising GC languages always ends in somehow circumventing/tricking/disabling the GC.Last edited by Raka555; 22 July 2022, 05:59 AM.
- Likes 3
Comment
-
Originally posted by Ironmask View PostThere kind of has been a mass exodus of C++ users to Rust.
If anything, the exodus is from C to Rust. After e.g. the Apple "goto fail" debacle, maybe people finally started to realize that a few select programming features are just too good to ignore, e.g. destructors. In GCC for example, there is __attribute__((cleanup(x))). But those people are too afraid to admit they could have had $feature with most languages other than C for years. The only credit they get is that FFI for languages outside the realm of GCC sucks most of the time.
The simple fact of the matter is that C++ can't be cleaned up,
Those who don't understand $x are quick to call for a cancellation of $x.
Comment
-
Originally posted by Raka555 View Post
Let me quote someone else: "I've written C and C++ professionally, also used Go and Rust on hobby projects. Rust, by far, was the hardest to learn and get something useable out of it. Because of that, I would never recommend someone put it into production unless they have a very specific use case that Go could not handle. The onboarding costs would be just too much."
Rust ... while i got the hang of it after spending a few months on it alone. It was simply too complex for most of my tasks. The lacking community packages ( for my needs ) also did not help. And my god, LLVM is so fying slow to quick compile and check things. Just running Go with its 0.5sec compile time on this huge project (barely hitting 15%, on a 3900x)... F5 (compile), check output, F6 stop, make a few chances, F5, plop ....
I do not understand why people can stand Rust when its compile times grows. And they grow fast!
Originally posted by darkonix View Post
You mean like Discord did a few years ago? https://discord.com/blog/why-discord...rom-go-to-rust
Notable quote:
"Remarkably, we had only put very basic thought into optimization as the Rust version was written. Even with just basic optimization, Rust was able to outperform the hyper hand-tuned Go version. This is a huge testament to how easy it is to write efficient programs with Rust compared to the deep dive we had to do with Go."
By the way, I don't say Rust is not harder than some other languages to learn, but it seems to be worth the investment for some use cases. As alwyas, use the right tool for the job.
Take Go and Rust, use both in a Web Dev job and you will notice that the cases where Rust its amazing speed, is simply not there. Because other components are stalling your project like DB rountrips, storage access, client response/response, latency, ... Its like driving a nice BMW and a Ferrari. Sure, that Ferrari goes very fast, but what is the point when your driving on a highway with constant traffic around you. Did you gain anything from driving a car that is harder to handle, has a higher maintenance cost but gain very little with that speed advance on the same road as where the other cars drive?
Rust has its uses but people need to stop looking at Rust and Go like they exist in the same space. They do NOT. Go thrives for web development, micro services, cli programs, etc. Rust has much more use in low level ( aka Kernel drivers ), and other domains that overlap with C++. You do not see people using C++ for web development, nor do you see people compare C++ To PHP for web development because only a total idiot that has no concept of time = money, will write websites in C++. Fuck ... The cost of a single dev alone is the difference between running 10 to 30 times more servers. Let alone the issue of replacement. Trust me, seen that song and dance in real life, how a company lost easily 1M in revenue because a project was in a language where we had difficulty finding people for ( at the time ), when that dev quit.
In my opinion Rust dev's need to grow up and stop comparing to projects that are not their focus. Its like a constant envy of other languages triggers them and they need to constantly validate themselves by trying to go around with their stupid "lets rewrite it in rust" < Gets tiresome VERY FAST seeing those idiots around! I am amazed how many times people keep telling how nice Rust community is but outside their own community they are like annoying mosquitos.
From my perspective ... I can easily find a well paid Go job but Rust jobs are very rare. Trust me, i looked in my local market. Its a 12 to 1 ratio. And most of those are not specific jobs but the typical "if you know C++, Rust, ..." entries, where the job is not even Rust focused.
Reality is, Rust is a nice language for a specific market. But has nothing to do with Go. Its frankly less useful to put on my CV, then several other languages. Very few companies need this specialization and require more volume of work, even if the language is not as fast, then a very fast language. Server and hardware is cheap, that is the reality. Especially compared to developer time. Being faster is only useful, if you can leverage it and really have a need for it. Else people simply use more hardware, that tends to be way cheaper then developer time. The days of focused software where you tried to save every KB and needed to invent tricks to gain a few percentage... That now only applies to very specific programs. And memory safe? GC have been doing a great job for decades now.
- Likes 2
Comment
-
Originally posted by benjiro View PostReality is, Rust is a nice language for a specific market. But has nothing to do with Go.
When Rob Pike and company created Go, they meant it as a replacement for C, that's how they marketed at the time. In reality, it ended up being a more suitable replacement for scripting languages used for web development. But because it was intended as a C replacement, Rust advocates tend to think they actually compete in the same space, when they absolutely don't.
- Likes 3
Comment
-
Originally posted by Sergey Podobry View PostI visit a job board and see the following numbers:
c++ - 138
python - 182
java - 235
c# - 199
golang - 52
rust - 5
Who in their sane mind wants to get 5 job proposals instead of hundreds? So almost none will invest time into learning Rust. The same goes from the company perspective: Do you want your product to get locked into a not widespread technology and hard-to-find developers?Last edited by andreano; 22 July 2022, 12:11 PM.
- Likes 1
Comment
Comment