More Developers Are Using the Rust Programming Language, Survey Finds (rust-lang.org) 117
This month the official Rust blog announced:
For the 6th year in a row, the Rust Project conducted a survey on the Rust programming language, with participation from project maintainers, contributors, and those generally interested in the future of Rust. This edition of the annual State of Rust Survey opened for submissions on December 5 and ran until December 22, 2022... [W]e had 9,433 total survey completions and an increased survey completion rate of 82% vs. 76% in 2021...
- More people are using Rust than ever before! Over 90% of survey respondents identified as Rust users, and of those using Rust, 47% do so on a daily basis — an increase of 4% from the previous year.
- 30% of Rust user respondents can write simple programs in Rust, 27% can write production-ready code, and 42% consider themselves productive using Rust. Of the former Rust users who completed the survey, 30% cited difficulty as the primary reason for giving up while nearly 47% cited factors outside of their control.
- The growing maturation of Rust can be seen through the increased number of different organizations utilizing the language in 2022. In fact, 29.7% of respondents stated that they use Rust for the majority of their coding work at their workplace, which is a 51.8% increase compared to the previous year.
- There are numerous reasons why we are seeing increased use of Rust in professional environments. Top reasons cited for the use of Rust include the perceived ability to write "bug-free software" (86%), Rust's performance characteristics (84%), and Rust's security and safety guarantees (69%). We were also pleased to find that 76% of respondents continue to use Rust simply because they found it fun and enjoyable. (Respondents could select more than one option here, so the numbers don't add up to 100%.)
- Of those respondents that used Rust at work, 72% reported that it helped their team achieve its goals (a 4% increase from the previous year) and 75% have plans to continue using it on their teams in the future.
- But like any language being applied in the workplace, Rust's learning curve is an important consideration; 39% of respondents using Rust in a professional capacity reported the process as "challenging" and 9% of respondents said that adopting Rust at work has "slowed down their team". However, 60% of productive users felt Rust was worth the cost of adoption overall...
- Of those respondents who shared their main worries for the future of Rust, 26% have concerns that the developers and maintainers behind Rust are not properly supported — a decrease of more than 30% from the previous year's findings. One area of focus in the future may be to see how the Project in conjunction with the Rust Foundation can continue to push that number towards 0%.
- While 38% have concerns about Rust "becoming too complex", only a small number of respondents were concerned about documentation, corporate oversight, or speed of evolution. 34% of respondents are not worried about the future of Rust at all.
This year's survey reflects a 21% decrease in fears about Rust's usage in the industry since the last survey.
- More people are using Rust than ever before! Over 90% of survey respondents identified as Rust users, and of those using Rust, 47% do so on a daily basis — an increase of 4% from the previous year.
- 30% of Rust user respondents can write simple programs in Rust, 27% can write production-ready code, and 42% consider themselves productive using Rust. Of the former Rust users who completed the survey, 30% cited difficulty as the primary reason for giving up while nearly 47% cited factors outside of their control.
- The growing maturation of Rust can be seen through the increased number of different organizations utilizing the language in 2022. In fact, 29.7% of respondents stated that they use Rust for the majority of their coding work at their workplace, which is a 51.8% increase compared to the previous year.
- There are numerous reasons why we are seeing increased use of Rust in professional environments. Top reasons cited for the use of Rust include the perceived ability to write "bug-free software" (86%), Rust's performance characteristics (84%), and Rust's security and safety guarantees (69%). We were also pleased to find that 76% of respondents continue to use Rust simply because they found it fun and enjoyable. (Respondents could select more than one option here, so the numbers don't add up to 100%.)
- Of those respondents that used Rust at work, 72% reported that it helped their team achieve its goals (a 4% increase from the previous year) and 75% have plans to continue using it on their teams in the future.
- But like any language being applied in the workplace, Rust's learning curve is an important consideration; 39% of respondents using Rust in a professional capacity reported the process as "challenging" and 9% of respondents said that adopting Rust at work has "slowed down their team". However, 60% of productive users felt Rust was worth the cost of adoption overall...
- Of those respondents who shared their main worries for the future of Rust, 26% have concerns that the developers and maintainers behind Rust are not properly supported — a decrease of more than 30% from the previous year's findings. One area of focus in the future may be to see how the Project in conjunction with the Rust Foundation can continue to push that number towards 0%.
- While 38% have concerns about Rust "becoming too complex", only a small number of respondents were concerned about documentation, corporate oversight, or speed of evolution. 34% of respondents are not worried about the future of Rust at all.
This year's survey reflects a 21% decrease in fears about Rust's usage in the industry since the last survey.
People use Java too (Score:3, Interesting)
This is just like Java all over again and in 25 years the situation will suck just as much.
Fundamental issues can't be "fixed later."
Re: People use Java too (Score:2)
Which specific fundamental issues?
Rust is one of few languages that actually delivers everything it promised, and more. Java didn't even remotely do that. It's not a "better c" and it's certainly not "write once, run everywhere".
fuck Rust (Score:1)
Re: fuck Rust (Score:4, Funny)
Re: fuck Rust (Score:3)
maybe he's not that retarded but instead wants to run Firefox on an old cash register or 1990's phone PBX. Clearly Rust has failed humanity
Re: fuck Rust (Score:3)
"Rust" is not a good name, in my opinion. (Score:3)
Why was "Rust" chosen as the name?
Rust is corrosion of iron. [byjus.com] "Rusting causes iron to become flaky and weak, degrading its strength, appearance and permeability."
Re: (Score:2)
Re: (Score:2)
there's no Rust compiler for OS/2.
The obvious solution is to use a cross-compiler.
Re: (Score:2)
A cross-compiler won't help if there is no Rust compiler with standard library that runs on Windows and targets OS/2, runs on Linux and targets OS/2, or runs on macOS and targets OS/2.
Re: (Score:2)
Wait, people are still using OS/2? Are there still computers that can actually run that old thing?
Re: (Score:2)
And is this a fundamental issue that can't be fixed? Is there something about Rust that makes it impossible to compile to OS/2?
Re: (Score:2)
It's a front end to LLVM, no? So they'd have to port that first.
Re: fuck Rust (Score:2)
Okay, and is there a fundamental issue that makes that impossible?
Re: (Score:3)
The rust toolchain requires a ton of resources to build.
Re: fuck Rust (Score:2)
So cross compile.
Re: (Score:2)
This is why a GCC port is being worked on. To enable Rust to be supported pretty much everywhere.
Platform support is good for rust, but not perfect. It's a known issue.
Re: (Score:2)
Not supporting an obsolete platform is a "fundamental issue"?
Rust uses LLVM for a backend, i.e. as the thing that generates the binary code and interacts with linkers and whatnot. If LLVM supported OS/2 then so too would Rust. The Clang C++ compiler also uses LLVM too as do other compilers. Obviously there would need to be some work in rustc and the libs too but the main work is in LLVM. If there any interest in OS/2 as a platform then it seems like this would fixing up LLVM would be a majorly beneficial fi
Re:fuck Rust (Score:5, Funny)
There is no Rust compiler for OS/2 because OS/2 rusts natively.
Re: (Score:2)
It broke the Firefox port to OS/2 because there's no Rust compiler for OS/2.
If only it were open source. Oh, wait, it's licensed under Apache 2.0, and the source is available to anyone who wants it. Nothing's stopping OS/2 developers from porting Rust over and using it to compile Firefox.
Re: (Score:2)
That's because OS/2 is inferior to the Commodore 64:
https://www.youtube.com/watch?... [youtube.com]
Re: (Score:2)
Can you expand on why it doesn't run everywhere?
Re: People use Java too (Score:4, Informative)
Can you expand on why it doesn't run everywhere?
The claim was that you write and debug once on one platform, and then you can deploy the bytecode and it will run with the same behavior everywhere.
That is not true. There are plenty of quirks on different OSes, and the behavior in the browser is even more different.
So you end up running tests and debugging for each platform, exactly what Java promised you could avoid.
Re: (Score:3)
It has been close to 2 decades since I've run into a JVM-level issue that has caused any Java code I wrote to be non-portable. Of course to the extent that you interact with the OS and environment outside the JVM, you have to take care to do so in a portable fashion. Java can't save you from being lazy or stupid, but for headless backend server stuff, you really have to be trying to shoot yourslef in the foot (e.g., using undocumented platform packages, hard coding "\" into paths instead of using file sys
Re: (Score:2)
Re: People use Java too (Score:2)
not my employers experience at all, 22 years of codebase, millions of lines, and minor point releases of oracle java break things. we wont even talk of openjdk or IBM's websphere java
Re: (Score:2)
Never use Oracle Java unless you must.
Never use Oracle anything unless you must.
Consider that they looove suing people, even their own customers, and that unless your market cap is similar to Oracle's, that lawsuit, or even the negotiated settlement you have to pay to avoid it, will likely drive you to bankruptcy.
Re: (Score:2)
Here's one for you: Back in 2017, before I had any intention whatsoever of doing any kind of software development and my programming knowledge at the time was limited to just very basic powershell stuff, I was bitten by a java compatibility problem. But this is even worse than differences between OSes, because it was literally on the EXACT SAME OS. Basically I was admin of a pair of servers that did some network stuff. One day, one of the servers just stops talking to an upstream vendor-owned server. Well i
Re: People use Java too (Score:3)
Java breaks code with minor point releases now. IBM, Oracle or Openjdk also differ in bad ways. if you have millions of lines of java you see plenty of issues.
Re: (Score:2)
"Most likely there is something wrong with your install."
You're holding it wrong!
Re: People use Java too (Score:2)
Actually the problems I've had with java have been exclusively on the back end, mainly because the JRE is already annoying enough to help end users troubleshoot that I won't even write client code in it, or any code at all if I can help it. If I have to write client code, and it has to be in a language like this for whatever oddball reason, C# it is.
And I'm not even talking about differences between OSs, rather just just the JRE itself even on THE EXACT SAME OS. Point releases have broken my own code more t
Re: (Score:2)
My only issue with cross-platform Python has been dependency management, which is painful for me even within a single platform, but complicated by the fact that dependencies may have their own dependency and platform-specific issues.
I know that people who use Python more regularly than I do, and/or for bigger projects than mine tend to be, have found plausible solutions to these issues, or at least ways to manage them.
Re: (Score:2)
Re: (Score:2)
I'm sure I would if I did Python more than occasionally, or if I built bigger projects using it. I really mostly use Python for scripting, though I'm aware it can do much more.
But I think there is still the problem that if I depend directly or indirectly on nonportablepython-0.0.8, whose developers tested only on Windows, then when I run my otherwise portable code on Linux, I might get nasty surprises.
Going the other way is less problematic because almost anything that can run in Docker containers on Linux
Re: People use Java too (Score:4, Insightful)
Wasnâ(TM)t Java in browsers phased out years ago?
Re: People use Java too (Score:2)
I think he was just repeating the complaints from its early years, but thatâ(TM)s 20+ years ago. He probably hasnâ(TM)t touched production Java since then, if he ever did. I canâ(TM)t imagine those problems with Java persisted or are significant give how wide spread it is. And beyond server based installations, itâ(TM)s widely used on Android, albeit with differences in the class library.
Re: (Score:1)
That is not true. There are plenty of quirks on different OSes, and the behavior in the browser is even more different. ...
25 years ago perhaps. We have 2023 now
Re: (Score:2)
I've rarely run into platform-specific issues in any language I've used much (which does include Java back in the day, and more recently Python, Javascript and C# on .NET Core).
Except for self-inflicted stupidity, like hardcoding path separators or trying to write to Windows-specific folder and file names or ignoring differences in case sensitivity between filesystems.
I'm not quite sure how it's the language's fault if a developer does stoopid stuff like that, even though on occasion I've managed to do so m
Re: (Score:2)
I'm not a Java developer, but I've had to deploy Java stuff a whole lot over the decades. And none of it is ever cross platform. It's always windows specific, or some really specific version of RedHat. It's easy to say "it's the developer's fault, not the language" but at some point you have to ask yourself if the language just made cross platform harder than it had to be causing people who would otherwise have tried to be good to just say "fuck it, there's a platform native path going in here so I can go h
Re: (Score:2)
I don't see how a language can be blamed for crappy development practices. Even though (a) I do have issues with Java and (b) I know it seems easier to hardcode stuff, if you can get away with that, instead of doing it right.
I promise that although Python and C# on .NET Core are fairly competently cross-platform if done correctly, things often aren't done correctly, and the usual results would be very much like what you described.
The rules in all these cases are pretty simple, and include (though I'm sure
Re: (Score:1)
Yes, implementations of Java will differ between Oracles and OpenJDK, but that's understandable
It is the same, it is just rebranded.
Re: (Score:2)
"Can you expand on why it doesn't run everywhere?"
I'm a long way from being any kind of Java expert but what springs to my mind is the program calls system routines that won't be there on all systems. Since this will likely include I/O routines, this has the potential to be pretty wide-ranging.
Re: People use Java too (Score:4, Funny)
While I prefer Rust to C/C++ so far, I find this statement to be a bit hyperbolic. I've had a number of issues getting Rust to perform things that are trivial in many other languages.
That's certainly the case for desktop applications, but it's superior to C for server-based systems. As far as I can tell, C/C++ still don't have an answer for Java Beans almost 30 years after they were introduced. If you're developing a highly concurrent system, Beans perform a ton of heavy lifting when it comes to creating, destroying, and dispatching threads, which allows the developer to focus on the primary objectives of the system instead of writing lots of thread-management code. And I've never had a single server-based Java application present problems based on the environment in which it executes. As a matter of fact, there are many projects today where different developers of a given project run Linux, Mac, and Windows, and the project runs comparably in all of those environments without requiring even a single change in configuration.
Re: People use Java too (Score:3)
While I prefer Rust to C/C++ so far, I find this statement to be a bit hyperbolic. I've had a number of issues getting Rust to perform things that are trivial in many other languages.
First, what does this have to do with anything rust has promised? Nobody ever said you'd be able to directly port your code using the same logic. In fact it's pretty much expected that you won't be able to because of rust's rather unique semantics.
Second, this will depend heavily upon how you're used to structuring your code. C/C++ will let you do things that are fundamentally unsound, and rust won't. That means if you're used to, for example, mutating referenced memory while you have another reference to i
Re: (Score:2)
I'm not talking about porting code. I'm talking about using simple design patterns, such as a Singleton (yes, I know they're considered evil now because every project had that one person that tried to make everything a Singleton, but occasionally they're still the right tool for the job). The only way I've found to do that is
Re: (Score:2)
Nobody ever said you'd be able to directly port your code using the same logic. In fact it's pretty much expected that you won't be able to because of rust's rather unique semantics.
Don't you love it when you can implement the same idea the same way in 20 different languages, but Rust forces you to completely rethink it for just one weirdo language? I think it's awesome when you can spend double the time on design because of one language. I'm sure everyone loves the wasted time.
Re: People use Java too (Score:2)
Don't you love it when you can implement the same idea the same way in 20 different languages, but Rust forces you to completely rethink it for just one weirdo language? I think it's awesome when you can spend double the time on design because of one language. I'm sure everyone loves the wasted time.
Well let's put it this way: Just because you can implement something a particular way, doesn't mean you should do it the same way in every language.
Take for example how, because you started with microsoft basic, you don't believe in functions so you still use goto in every language. But just because you can do that in your new preferred languages doesn't mean you should. And of course, there is no such thing as goto in rust, so you're kind of dead in the water there.
Re: People use Java too (Score:2)
What happens when it is a good idea and you are wasting time fighting a shitty one trick pony language that insists upon imposing RAII on absolutely everything?
Unless you're relying on some kind of runtime garbage collection, you should already be doing that. If you aren't, especially if you aren't because you think RAII is hard or cumbersome, then that's exactly why your code is unsound.
If the borrowing rules are too restrictive for your taste, you can always use Cell, which lets you safely sidestep those rules. Safely, because it doesn't let you skip explicit RAII in situations where it should NEVER be skipped, and it ultimately compiles to the same code as if y
Re: (Score:2)
First, what does this have to do with anything rust has promised? Nobody ever said you'd be able to directly port your code using the same logic. In fact it's pretty much expected that you won't be able to because of rust's rather unique semantics.
That's a problem.
Second, this will depend heavily upon how you're used to structuring your code. C/C++ will let you do things that are fundamentally unsound, and rust won't.
Unsound according to whom?
That means if you're used to, for example, mutating referenced memory while you have another reference to it anywhere else, then you'll need to rethink your implementation,
Or rethink your selection of languages.
Man this is gold and I needed this today, thank you AC. I guess it's an age thing where people think that the "old" way of doing things (such as responsible code writing) is somehow automatically trumped by a new language that forces you to work with kid gloves. I'm a Go man myself and love the freedoms it offers -- I don't want or need the handholding because 30 years of mistakes have taught me well!
Re: People use Java too (Score:2)
Golang does a LOT of hand-holding, by far more than rust. Though the main reason I don't use it much is because it's probably one of if not THE least expressive current generation language. Though that's a feature rather than a bug, because things like enums, unions, and data types are too hard.
Re: (Score:2)
I've had a number of issues getting Rust to perform things that are trivial in many other languages.
Rust is a low level language so I can see it poses issues for people coming from high level languages. The same is true moving from Java to C++ though and you're in for a world of hurt.
But even from C/C++ it will cause some frustration because the compiler is way more strict and the language is different enough that it can be confusing. There is no NULL, there is no classes or inheritance, and the rules for borrowing & mutability are different enough to cause a lot of issues. But when you overcome the i
Re: (Score:2)
As far as I can tell, C/C++ still don't have an answer for Java Beans
Plenty of libraries to choose from. You can't solve everything in the language. That's why libraries exist.
Re: (Score:2)
I've had a number of issues getting Rust to perform things that are trivial in many other languages
From what I've been told, that's by design, and Rust requires a mindset very different than most other languages.
It forces you to think through concepts like ownership, borrowing, and lifetimes, which you should be doing in any low-level language anyway, but Rust makes this quite necessary, since if you goof any of this up in any way that it can detect, your code simply won't compile.
While I've yet to le
Re: (Score:2)
There's a big difference between java "beans", which as you said, are basically just containers for data (stucts basically) and Enterprise Java Beans, which is what I suspect the parent meant when they said "Java Beans". EJBs are more analogous to DCOM or CORBA objects in that they are basically mini server processes unto themselves.
An EJB container manages bean instancing, handles locking and threading, and provides services like scheduling and connection pool management.
Re: (Score:3)
Rust is one of few languages that actually delivers everything it promised, and more
In this evaluation, "what it promised" is doing a lot of work.
I'd say Brainf*ck [wikipedia.org] delivers everything it promised and more also, but of course what it promised is indicated in its name, so that might not be a good thing.
Re: People use Java too (Score:2)
Certainly not true. Its main feature, the borrow checker, is arguably a failure: most code simply bypasses it by using reference counting.
It managed to get somewhat popular due to completely different reasons. Cargo for example appears to be one of them.
Re: (Score:2)
From the little bit I understand, Rc is a kludgy hack that defeats much of the purpose of Rust. You may be tempted to depend on it as a beginner, but from everything I've read, you don't want to use it in production until you know the language well enough to be certain that no safer and more productive solution exists.
If you want reference-counting garbage management, probably better to use a language in which that is built in.
Use Rust when/if you decide you want to write code that's more or less provably
Re: People use Java too (Score:2)
Certainly not true. Its main feature, the borrow checker, is arguably a failure: most code simply bypasses it by using reference counting.
That's definitely not true, I've been over a lot of rust code and I've only ever seen it used where it makes sense to do so. And it's super easy to avoid using it, just think about where your data lives and the rest of the dominos will fall where they should.
On the contrary, some other languages are either in the process of implementing or considering implementing a borrow checker, among them D and swift. This wouldn't be happening if it was a failure.
Re: People use Java too (Score:4, Insightful)
Taking nine months to publish survey results is an issue, although not fundamental.
A year-over-year decrease in number of survey responses suggests deep-seated problems. That is confirmed by the 30% of former Rust users in this survey who said they gave up on the language because it is too hard.
Only 27% of survey respondents claimed to be able to write a simple program in Rust -- but 90% of them claimed to be able to write production-ready code, and 38% of survey respondents feel productive despite being unable to write simple programs. If that's representative of the overall user base, Rust is in trouble because its users have delusions of competence.
Fundamentally, this kind of survey is in the vein of "we investigated ourselves, and found we are awesome!" Contrast with Go's developer survey [go.dev], which focuses mostly on how Go developers use the language, what challenges they face, and where they want to see improvements in Go or development tools.
Re: (Score:2)
Java promised to be a high-level, relatively memory-safe, "write-once, run anywhere" (if done correctly) language.
IMO, it did that. It fell short with regard to applets (which were a poor fit, security-wise, for the rest of Java). But mostly succeeded otherwise.
But then Oracle. :(
Re:People use Java too (Score:5, Insightful)
If 90% of the respondents use Rust, the group probably isn't representative for the whole community. What a crap article.
90% of respondents??? (Score:5, Insightful)
A survey of Rust devs found most of them used Rust. Surprise!
Re:90% of respondents??? (Score:5, Funny)
The other 10% thought they were voting for Pat Buchanan.
Re: 90% of respondents??? (Score:1)
A survey of rust devs by the rust devs.
Re: (Score:2)
Yea pretty much this. I was never asked if I wrote in Rust. I'm still desperately trying to get out of Python hell, which is admittedly different than Java hell, but it really feels very much the same to me. Honestly, I'd even be happy with Go if I could make that happen. Or, fuck it, just go back to C++
I'm still in the Perl hell (Score:2)
lucky you!
Re: (Score:2)
Yep. "Lying with statistics 101".
Re: (Score:2)
Even better, "30% of Rust user respondents can write simple programs in Rust". Meaning 70% of respondents cannot write even simple programs in Rust, and yet most of them "identify as Rust users" anyway.
the perceived ability to write "bug-free software (Score:1)
The Rust apocalypse is coming ....
Re: (Score:2)
You mean the Rustocalypse?
Re: the perceived ability to write "bug-free softw (Score:4, Informative)
Nobody claims Rust programs are bug-free.
But Rust does (mostly) avoid two major categories of bugs: Memory management and thread synchronization.
Many common anti-patterns that cause these bugs won't even compile on Rust.
Use after free()? Compiler error.
Null pointer dereference? Compiler error.
Two threads accessing the same data without locks? Compiler error.
Personally, I struggle with Rust bcoz I tend to be a cowboy coder: Churn out code, get it working, and then go back and clean it up. That's difficult in Rust. I'm forced to do it right the first time, which slows me down and discourages exploratory coding. So I mostly stick to C++, but I can see the advantages of Rust for team projects.
Re: (Score:2, Informative)
Browse through the CVE databases for Rust software. I'd say it's no more secure than any other software. In fact from the issue reports it seems less secure than the notoriously insecure Java.
Re: the perceived ability to write "bug-free soft (Score:3)
That's not true at all.
First, Rust fearless concurrency is widely recognized for being a bad concurrency models with poor guarantees. It doesn't in any way remove synchronization bugs.
Second, the borrow checker, even if you consider it to be a success (which it isn't) only prevents a small subset of bugs that only amateurs struggle with. It doesn't magically remove all of the more serious bugs in your program.
Re: (Score:2)
First, Rust fearless concurrency is widely recognized for being a bad concurrency models with poor guarantees. It doesn't in any way remove synchronization bugs.
Link?
Re: the perceived ability to write "bug-free soft (Score:2)
Rust Survey Finds More People Using Rust. (Score:2)
Re: Rust Survey Finds More People Using Rust. (Score:1)
Rust survey finds existing rust developers more willing to fill out forms?
New language sees growth (Score:2)
Becoming too complex? (Score:2)
While 38% have concerns about Rust "becoming too complex"
Welcome to the history of programming languages! All languages eventually become too complex.
What are you going to do? Migrate to yet another language that is simple because it isn't used widely, or hasn't developed enough cruft because it hasn't been used long enough for backwards compatibility to matter?
Re: (Score:3)
Actually that's not quite true. There are languages which do a good job of not becoming too complex. Examples are languages like Forth or Lisp, languages that deliberately started off as simple as elegant. Both languages still see some important use.
The problem is that many people think a language should have lots of features. If you are a young programmer you think that most features are shiny and desirable. If you get out of that phase you'll notice that many if not most language features are terrible hac
Re: (Score:2)
Macros create DSLs that no one else can decipher. The different kinds of quoting and un-quoting in macros makes things hard to follow.
Re: (Score:2)
I keep trying to learn Common Lisp, but get put off by all the different kinds of "let". It makes C++ initialization look comparatively consistent.
That's quite ridiculous though. The "different kinds of LET" have very cleanly defined purposes, with them doing actually different things. C++ initializations do the same thing in eighteen slightly different ways..."for reasons". There's no reason for the latter except for historical baggage, whereas it's very clear what the LETs are for. At best you might claim that METABANG-BIND should have been the default in the language, but guess what...you can just use it in all your code and forget about the rest.
Re: (Score:2)
The "different kinds of LET" have very cleanly defined purposes
whereas it's very clear what the LETs are for.
So? I can define a class of functions for any thing that do very similar things, but with very cleanly defined purposes of each. I can define a whole series of "add 1toX", "add2toX", etc etc, and they'll all have cleanly defined purposes. But the question is: why? Why do you need so much in the first place?
Also the claim that "Lisp became too complex" is hilarious. Try doing the same amount of functionality that Lisp offers you in something like C++, for example. Multimethods?
Considering that most languages have gotten by without them means they're not necessary - hence became too complex.
However, C++ template specializations work like multimethods at compile-time. And comp
Re: (Score:2)
So? I can define a class of functions for any thing that do very similar things, but with very cleanly defined purposes of each. I can define a whole series of "add 1toX", "add2toX", etc etc, and they'll all have cleanly defined purposes. But the question is: why? Why do you need so much in the first place?
Except there's *much less* redundancy in Lisp's binding forms than there is in C++'s intializations, so one ought to raise that argument first and foremost against C++. If you don't complain even more loudly about C++'s initializations you don't have any right to complain about CL's binding forms.
Considering that most languages have gotten by without them means they're not necessary - hence became too complex.
Assembly languages have gotten by without local variables, but that doesn't make local variables undesirable or languages with local variables "too complex".
However, C++ template specializations work like multimethods at compile-time. And compile-time is where I've needed that functionality more than at runtime. I haven't needed multimethods for runtime use. Simple virtual functions handle 99% of all cases.
See, the funny thing is, the "too complex" Common Lisp al
Re: (Score:2)
All languages eventually become too complex.
Have you seen the last iteration of Oberon?
Re: (Score:2)
All languages eventually become too complex.
Have you seen the last iteration of Oberon?
How about this little language called Go. It's only used by a small company and crafted by amateurs and occasionally used for high performance computing, but it's worth checking out. The lang spec is still tiny with a stdlib that does all the things.
I've been learning it for fun (Score:2)
It's easy to focus on the memory safety features, which require care even to approximate with C++ code.
There are a lot of treats beyond the learning-curve barrier, like composable iterators. For people motivated by making mistakes impossible, something which experience has led me to want, the Result data type is a treat. It's like a std::variant which can hold either an expected result or an error code, but the brilliant part is that AFAICT there is no way to write code that compiles that retrieves the resu
Re: I've been learning it for fun (Score:4, Insightful)
You need to remember that unlike your senior dev colleague and you and I, the people commenting here are infallible and omniscient so a language that detects some mistakes at compile time is unnecessary.
Re: (Score:2)
I wouldn't say I'm omniscient. Not even particularly perceptive. Lord knows I can stare at a code block with an error and see nothing for an hour.
What I can tell you is that I have no patience, zero, none, nada, for languages where it just sticks its hands on its hips and refuses to let you pass until you tick all its boilerplate boxes. This is (one of many reasons) why I gave up on Android development. I wasn't doing it professionally, it was a thing to do for fun, and it wasn't fun. I was trying to figure
Re: (Score:2)
For people motivated by making mistakes impossible, something which experience has led me to want, the Result data type is a treat. It's like a std::variant which can hold either an expected result or an error code, but the brilliant part is that AFAICT there is no way to write code that compiles that retrieves the result without having done some implicit or explicit error check.
FWIW, C++ programmers have been building result types like that for many years (here's one example [android.com], in my code. It's from 2021, so it doesn't pre-date Rust, but if I dug a bit I could find some that do). They're not quite as good, since the failure to check has to be diagnosed with a run-time assertion, whereas Rust can do it at compile time (at least, if someone has found a metaprogramming technique that accomplishes compile-time detection in C++, I haven't seen it).
But this is the case with almost every
Obviously. (Score:1)
Rust is basically the quasi-official successor to the "C" group of system languages. Even the hardcore C-camp acknowledges the benefits of this long overdue update of a fundamental systems language. By now even Linus and the Kernel-team allow for kernel-work to be done in Rust, and Linus is a "C-Nazi"/C-fanatic if there ever was one. It's obvious that the influence of Rust will continue to grown, it's what the world has been waiting for.
I could even imagine that sometime in the (near) future, large C codeba
Re: (Score:3)
C is on the way out.
Not for firmware.
Re: (Score:2)
Why would firmware be a special case?
Firmware doesn't run C. It runs binary compiled code, and, if Rust can produce equally good binaries, then why not use Rust to produce them?
Re: Obviously. (Score:2)
zero lines of Rust are running in hundreds of Linux servers i admin, start crowing when Rust proves itself by doing a little bit of work. It's an experiment with no results yet.
Re: (Score:2)
I don't see a fully automated migration anytime soon, because frankly a lot of what people try to do in C and C++ (typically when using the C-like subset of C++) does not work on Rust by design.
I'm not convinced yet that C++, much less C, is going away anytime real soon, even for new code and even in the timeframe of the low-single-digit number of decades, but I do think it's pretty safe to say that anyone needing to write new low-level code should strongly consider learning and using Rust instead. I certa
Re: (Score:2)
For anyone wanting to do system-level coding today I would flat-out recommend starting with Rust right away and avoiding C in the future. By and large AFAICT C is on the way out. Not today, not in 10 years (potential major pushes in AI coding aside), but it's run it's course and there are very solid reasons to decomission C in favour of Rust to avoid the pitfalls of C that came about at a time when transistors and memory was very rare and highly valuable and people _had_ to cut corners to get any meaningful work done.
C isn't going anywhere anytime soon and Rust will probably have been long since replaced with something far better by the time it does. More than likely grounded AI in the next few years brings formal programming to the masses. All Rust really does is enforce rigid constraints. A model checker can do the same thing in C or any language dynamically adjusting constraints to meet specific requirements as well as continuous innovation enabling rigidity to be dynamically elided as systems improve.
Just picked
People never learn (Score:2, Insightful)
Always falling for the grossly inflated claims of the next hype.
Undefined Behavior (Score:4, Funny)
Identify as a Rust user? (Score:2)
I heard it got cancelled (Score:2)