This is funny, and I do think it's fair to take little jabs at vibe coders, but just be careful. When I was learning to play a game in the past I asked a question. People thought the answer was obvious because the rules were on the thing I was asking about, but I was so new to the game I didn't even know what those words meant. If this was any other context, I'd be hesitant to give someone flak for not knowing a technical term like that. (The context being that somebody vibe coded something.)
On the contrary, the borrow checker is basically the first thing you learn about when writing in Rust as it's the primary "gimmick" of the language. Anyone writing a non-trivial program should have at least heard the term before, even if they don't fully understand how it works.
but I was so new to the game I didn't even know what those words meant
There's nothing wrong with being new to something. But you shouldn't be new to rust and releasing an app. Normally by the time you've written such an app you would be familiar with rust, but vibe coding allows you to bypass that wall
Eh, I don't really see a problem with releasing an app before you "should" release one. I don't think the world improves by discouraging amateurs from sharing their work. Now whether they actually try to learn and grow or just keep vibe coding, who knows.
I can see that actually. I guess the post points out two things:
- the dev being a a bit deceitful, downplaying their use of AI when clearly the project is like 90% AI
- the community being frustrated by the lack of quality signals in the new world. Previously programming took a lot more effort, so just the existance of an app already meant that the dev was mildly competent. And at the very least it meant that the dev could fix and maintain the app when something broke. Now those trust signals are gone.
I wouldn't say it was borrowed
Reminds me of a disclaimer in a public domain software package: "No warranty expressed or implied. If it breaks, you get to keep both pieces."
Behold, the future of programming.
I really need to keep my (actual) programming skills up to date, because they might be worth a ton of money in some years when everyone will need to unfuck their vibe coded bs.
Bold of you to assume anyone is going to care enough to hire professionals to fix old software. They're just going to vibe code a new program with the new whizbang-5000 LLM.
Even if the pay is good - unfucking vibed code is going to be very grueling. Like fixing legacy code but so much worse - because legacy code at least used to make sense at some point in the past.
TBH I only occasionally do some C# and C++ for about 20 years in my spare time, but even if I were hypothetically qualified to fix the world i'm kind of just planning to sit back and watch all of the sloppers go bankrupt for ruining their companies.
'Language restriction'. More like ability and/or willingness to learn restriction.
And of course a vibe coder can't write proper sentences with punctuation. If this is what their AI coding chatbot sees, I almost pity it.
We need a programmer_tragedy community for this stuff instead. 💀🤡
"Borrow checker?"
"Thanks bro but don't need your checker got my own"
I do not get it. Aside from the fact that the supposed "creator" writes a bit like he processes every sentence through AI-translation software... which might as well be reddit feature.
The borrow checker is a feature of Rust's compiler which places strict constraints on ownership of data to guarantee memory safety. It adds a lot of friction to writing Rust code if you're not experienced with the language (or sometimes even if you are). OP refers to the "language restriction of Rust", seemingly talking about the borrow checker, but has never even heard of it. It's kind of like someone claiming they didn't vibecoded their C++ project but having no idea what the STL is.
Sounds like java garbage collector but backwards... perhaps I will understand it better if I ever try Rust.
Thank you for explanation, YaBoyMax
Yes, the end goal is very similar to a garbage collector. Both are advanced systems of memory management.
The most important difference being that a garbage collector runs at runtime, while the borrow checker at compile time. Which means that the borrow checker has 0 impact on the program's performance. It just takes longer to compile the program.
Which also means that, while the garbage collector says "you can do whatever you want with memory, don't worry about it, I'll handle it for you". The borrow checker says "you fucking donkey. Why did you do that? I won't compile this if you don't fix it".
So you trade programmer comfort for performance (end user comfort).
the language restriction of rust
Rust has no restriction. The restriction is in his brain high on AI.
make sure to star the github repo so that I can create more projects like these.
That's not how any of this works, he's crazy.
The language restriction of not knowing the language.
That's not how any of this works, he's crazy.
MF thinks GitHub has “like and subscribe”.
Fork me on GitHub!
Sorry, called finger instead.
I know nothing about rust but I assume borrow checker is some integral part of it that this guy somehow has never heard of?
Yeah, I think the flow was this,
- Is this vibe coded?
- Partially, because of some of the features of Rust.
- Borrow checker?
- (Humourous misunderstanding ensues.)
Basically asking if the thing that gave them trouble was the borrow checker.
Yes. Someone that knows just a little more of rust than you do would know what the borrow checker is.
It's the core feature of rust.
Like talking about java and not knowing what "inheritance" is.
EDIT: just so you understand how vibecoded that project is.
The dude says he vibecoded "some of it" because some rust features make it a hard language for him. The one feature he's talking about is the borrow checker.
It's like saying "man, sure is hot today". Someone says "yeah, this summer sure is hot" and the dude replied "yeah, summerians lived in a hot place too".
Very integral. When someone says they're "struggling with Rust", it's thanks to the borrow checker.
Rust's whole shtick is the way it manages memory, which is the rules enforced by the borrow checker.
Basically:
When you want to store values in variables in any programming language, the memory should be allocated when you need it and freed as soon as you don't anymore.
Traditionally there are two ways this is done:
-
You manage it completely yourself, which is "unsafe" as you can forget to free memory you no longer need. This is called leaking memory. Or "reference" the location of something you freed previously, thereby attempting to read data you may not have permission to read (the OS will usually prevent that and kill the program), or reading and using a value you didn't expect, causing undefined behavior and fun to deal with bugs.
-
The language, sometimes using a process which runs alongside your main program, manages memory. Which adds lots of overhead.
Rust has it's own way of doing this: It adds some rules on how you can pass around references and ownership and these rules are affected by whether you can or can't edit the referenced data. All just so the compiler knows the lifetime of the vars that hold that data and when it can free it (before the program is even compiled, so no overhead when the program is running). Not following the strict rules prevents your program from being compiled into an executable.
The compiler gives very helpful info, tips, and pointers™ though, Rust is also know for this.
You know, this shit makes me wanna learn Rust, it has been long since I really programmed anything.
(Lack of any idea to program more than anything tbh)
I recommend you and everyone start here: https://doc.rust-lang.org/book/
(there's even an interactive version with quizzes, etc)
Ohhhh thank you
If you want an idea: just yesterday libre office writer crashed on me like 7 times. Losing all unsaved progress each time.
If someone competent wrote a good OSS alternative I would download it in a heartbeat.
I will consider that lol
(Lack of any idea to program more than anything tbh)
Make a launcher. Apparently they are all the rage nowadays.
Will consider that too lol
Those are such weird responses, is that user an agent?
Instead of "yes I vibecoded X because of Y" we get the classic respond like you're trying to hit the word limit on your essay.
Uses rust because it's memory safe but it is vibe coded and the developer doesn't know what a borrow checker is.
Just use a high level language at this point
Is rust low level? Genuine question, not trying to start an argument. I guess I sort of view it as low level but with a high level compiler lmao.
Is rust low level?
Yes, more or less. It's generally considered a "systems" programming language. But you can really use it for anything you want
Rust is very popular because is as low level as C but has memory safety features builtin, so it is considered the best of both worlds. So basically what you said is correct.
(Disclaimer: I am not a Rust programmer, I prefer C/C++)
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics