I'm astonished by the immense amount of pure butthurt created by this language! The word Rust is absolutely without no...

I'm astonished by the immense amount of pure butthurt created by this language! The word Rust is absolutely without no doubt, a trigger word for _chans and reddit.

Name 3 solid technical demerits of this language without autistically sperging out about your tranny cock/feminine penis obsession. Protip, you can't.

Attached: incel repellent.jpg (1024x512, 24K)

Other urls found in this thread:

gofy.cat-v.org/
youtube.com/watch?v=LjFM8vw3pbU
twitter.com/SFWRedditVideos

>he admitted to using reddit

Attached: iei.jpg (750x719, 78K)

nice lowtier bait. I swear it's just 3 retards desperately trying to shill Rust into existence. You can le fuck off now.

Apart from the state of libs (quantity, maturity, abandonment) and having to learn how to program in a way that satisfies the borrow checker, nothing. Been around the community for a while and I don't get all the tranny hate. It's fun to write most of the time. Lang team is doing good work. People are making cool shit with it.

Attached: Screenshot_20190820-142907~2.png (1080x563, 154K)

>Name 3 solid technical demerits of this language
- The borrow checker (which supplies the primary gimmick of the language and is the most foreign thing that a programmer being introduced to Rust will interact with) is incapable of proving safety in several well-known examples of trivially safe code, causing a lot of extra cognitive load on the programmer for no reason.
- The safety meme, while perfectly valid in many situations, is taken overboard and leads to decisions that impact performance. One example of this are the hashmap data structure in the standard library, which uses a painfully slow hashing algorithm just because it protects against DoS attacks from attacker-controlled input, even though 99% of the time I want a fast hashmap for internal use. Another example is that many string operations are O(n) instead of O(1) due to unicode handling, and a whole song and dance has to be done to work around it (if you even remember that you need to do it, since it'll still work if you forget, just slowly)
- The compilations times are extremely long and consume a lot of memory, partly due to the language being huge and bloated like C++, and partly due to mandatory static lifetime tracing requiring a ton of resources.

1. It's unfinished and unstable
2. shallow and unstable ecosystem
3. it's a pain in the ass to use

It has NOTHING over C/C++.
The whole safety argument only applies to subhumans who can't program, but then such "people" will never be able to stand Rust because of how painful everything is.

What's wrong with admitting to having a higher IQ?

Attached: imageboards.png (952x717, 317K)

I would like to add another thing:
Macro syntax,that is garbage,it gives me nightmares

Not a bad language, but still needs to work on having a stronger type system than their generics. C++ blows Rust out of the water with its templates, which can save a lot of busywork in some scenarios. Hopefully Rust will improve their generics in the future.

The same as the image goes for Reddit even more so.

C++20 deprecated it and has a better community, ecosystem, and job market. Rust already degraded into "webshit"

>- The borrow checker ... is incapable of proving safety in several well-known examples of trivially safe code, causing a lot of extra cognitive load on the programmer for no reason.
The borrow checker is a compromise to make shit workable and enable faster code. The most common complaint (borrows that last as long as the lexical scope of a binding) has already been fixed. The next most common complaint is that borrowing a child element of an aggregate data structure (ie. a field of a struct, or an element of an array) also borrows the parent. This is mostly due to how closures are implemented, and won't be changed, so you just have to know and use the workarounds: Disjoint borrow methods for arrays, and destructured bindings for simultaneous struct field borrows.

The agony comes from reading the lies of its shills
Rust is not just a language, it's also an ideology.

C++20 wins on every aspect. Rust will forever be a toy language.

>C++20
>job market
Innocent wishful thinking is so beautiful.

Take your hormones

Dial 8

>being this ass-blasted by Rust

>Borrow checker is dogshit productivity killer
>Type system features suck dick: monomorphised generics so no rank Ns, """"existentials"""" and trait objects are retarded, trait system as a whole is underpowered, no HKTs
>Heinous syntax with keyword soup on every single declaration

Why yes, i program in C++ on linux how could you tell?

Attached: ryangordon.webm (854x480, 1.7M)

C++ is moving to the right path, but honestly there are many unsolvable core issues with the language that it's better to use Rust if you're going to start a new big project especially when Rust has been gaining unbelievable momentum last couple of years. The language features and current popular crates are enough to do anything you want from crypto stuff to APIs

There are no "unsolvable core issues" in C++. Any problems with existing features can be solved by not using those features.
>but the stdlib
Write your own code. Only a fucking idiot would use a library.

Rust has no support for AIX
Rust has no support for z/OS
Rust has no GPL Compiler
Rust has no standard
Rust has pretty poor support in general unless you're on Linux/Windows/Mac or if LLVM happens to support your backend 100%.

thanks user, you've saved me. i'm quitting Jow Forums.

All the core issues could be fixed by simply providing an epoch mechanism like Rust has.

It's not a compromise it's a lobotomy

C/C++ has no unicode manipulation

You're a lobotomy

>no u
This is what all rust retorts boil down to.
Sad

Exactly why it will never succeed in the workplace
It cannot be defended on technical grounds

This is like saying "Rust has ONLY unicode manipulation".
And Rust's default-to-unicode isn't particularly smart as it slows things down a fuckton.

Unicode isn't fast but for the most practical tasks you want things to work and be fast enough.

It's only slower for some kind of manipulations. Why would you not support Unicode in your program?

If you do in-place character replacement (probably the most common type of string manipulation) you want all characters to be the same size. ASCII has this, Unicode does not.

use a Vec if you want a byte string

How about I use a real language

Yeah, and ASCII has ~100 characters that are only sufficient if you pretend English is the only language.

>[annoy people a lot by turning yourself into a broken record]
>wow you guys sure are annoyed for some reason!
ebin

Like I said, a real language

>c/c++ string manipulation
what could possibly go wrong

A real language is one that has few to no UBs.

Attached: he cute mic.jpg (511x671, 41K)

One of the retards is Bryan Cantrill, inventor of DTrace. His work includes taking care of original AT&T Unix SysV code, and he wants to use Rust as much as possible (for other stuff) going forward.

Write this function in rust:

(define (query-tags . tags)
(let*-values ([(tag-lst) (map symbol->string tags)]
[(excluded-tags other-tags) (partition (curryr string-prefix? "-") tag-lst)]
[(required-tags prefered-tags) (partition (curryr string-prefix? "+") other-tags)]

[(required-tags) (map (λ (t) (get-tag-id (string->symbol (substring t 1)))) required-tags)]
[(excluded-tags) (map (λ (t) (get-tag-id (string->symbol (substring t 1)))) excluded-tags)]
[(prefered-tags) (map (λ (t) (get-tag-id (string->symbol t ))) prefered-tags)])
(map row->file-entry
(match (list required-tags prefered-tags excluded-tags)
['(() () ()) (raise 'no-input)]
[`(() () ,e) (query-only-excluded e)]
[`(() ,p ,e) (query-no-required p e)]
[`(,r ,p ,e) (query-with-required r p e)]))))


I think this is very pleasant code, so I want to see how Rust stacks up in terms of aesthetic qualities.

Attached: 1425669239489.jpg (365x385, 17K)

>borrow checker
That one deficiency and demerit of the language, and frankly it's enough.

>Bryan Cantrill posts on Jow Forums
That's hysterical, pull the other one

dammit 4chins fucked up the indentation. Here is what that should look like.

Attached: query-tags.png (772x211, 59K)

>I think this is very pleasant code
Some people enjoy eating shit. You might very well be one of them.

>spam Jow Forums with shill threads
>LMAO WHY IS EVERYONE MAD?!
kys

Let's see your version then. We'll judge them side by side.

Should I learn C before learning Rust if I come from a high level language like Python or Java?

Attached: thonk.png (600x600, 143K)

A retard shilling Rust, not posting on a taiwanese gyoza appreciation forum.

Not re-learning this academia meme language just to do your homework.

Can't read lisp, sorry. What is your function doing? This might be a good practice as a rust beginner.

Yes, absolutely, especially if you are coming from languages like python or java.
In fact I recommend having at least a couple of years of C experience before jumping to rust.

t. Durgasoft student

Let's say I don't want to learn C for years before learning Rust (I would prefer to enter into the systems programming world before I'm 30). Could I just cram it in a few months to understand the essentials of pointers, references, memory management, et cetera.

Obviously write it in the language you prefer...

it takes a list of symbols, and splits it into three lists of symbols (those with the + prefix, those with the - prefix, and all the rest).
then it looks up the tag-id for each symbol (slicing off the + and - prefixes on those lists) and dispatches the symbol lists to one of three specialized query functions (query-only-excluded, query-no-required, and query-with-required.)

In use, the function looks like this
> (query-tags +submarines -russia german)
[a list of files relating to submarines, preferring german subs but excluding russian subs, is returned]

(Any tag that is prefixed with + is required. Any tag that starts with - is forbidden, and any other tag is prefered.)

It's pretty straight forward. The key parts to know are that '() represents the empty list and match does pattern matching on data structures.

Well, considering that you already know programming, C will be easy to pick up. I recommend at least doing something in C in order to be able to grasp what Rust is trying to solve. Otherwise, you'll find Rust is unproductive (which is true). But in reality, Rust is just type-safe modern C with some additional safety measures.

>Bryan Cantrill
A raging SJW faggot who thinks he's a genius because he worked with smart guys while he was at Sun.
Rust has no future.
C++ developers have C++ and C developers have Zig.

>just type-safe modern C

Absolutely not. C is a very simple, obvious language. Rust is the opposite.

The real alternative to C is Zig, which pretty much keeps the same philosophy but fixes the major issues that appeared over 30+ more years of collective experience with C.

>Zig
never even heard of it before. How many people are actually using it, and where?

By "type safe modern C" I meant C is weakly typed. Rust is strong typed. I find Rust is very obvious and predictable but not simple.

Don't know too much about Zig, but does it have RAII?

>tag-id for each symbol
Are you talking about filesystem tags?

The system is designed for organizing files by tagging their content, and then letting you query for files using those tags.

Tags exist in a sqlite database. A tag has a name (passed around as a symbol internally, but stored as a string in sqlite) and a tag-id (which is the sqlite row id).

It might be easier to understand if you see the relevant tables:

CREATE TABLE Files(
file_id INTEGER PRIMARY KEY,
filename VARCHAR(4096) NOT NULL UNIQUE,
last_modified INTEGER,
size INTEGER,
num_tags INTEGER DEFAULT 0);

CREATE TABLE Tags(
tag_id INTEGER PRIMARY KEY,
tag_name VARCHAR[50] NOT NULL UNIQUE,
num_files INTEGER DEFAULT 0);

CREATE TABLE FileTags(
file_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
probability DOUBLE NOT NULL,
PRIMARY KEY (file_id, tag_id),
FOREIGN KEY(file_id) REFERENCES Files(file_id),
FOREIGN KEY(tag_id) REFERENCES Tags(tag_id));


(all of that type information is basically just for show/reference, sqlite is weakly typed so you can put anything in any column.)

>Rust has no future
>Zig has
Are you on drugs?

Why?
Zig is not very well known but in terms of design it hits all the right spots.

The major mistake of Rust is to confuse C and C++; they keep saying C/C++. It's true that C can be very risky due to the atrocious (lack of) string support, and a few other things. But modern C++ is the answer to that. You have a real string type, and even great formatting libraries like fmt (which is about to become standard). Things like RAII, etc. But C++ is way more complex and too different, so many C developers don't like it.

On the other hand, Zig looks like C, except it fixes the main issues. Thus it's a more compelling upgrade for C developers.

umm no sweaty, intel has endorsed rust

>. But modern C++ is the answer to that. You have a real string type
Yet it can't handle unicode
>RAII
Zig has RAII? Didn't know that.

>intel has endorsed rust
You mean some database programmer at Intel has tweeted something about it?

Rust is failing and will continue failing because like every other language it tries to do more than its mission. It's a "big language" for big things. But you already have Java and C# if you want managed/GC, and C++ if you don't or can't. Rust brings virtually nothing over modern C++. At best it's a glorified clang-tidy/cppcheck bolted into the (slow) compiler.
And it's also going to fail because it's a bondage and discipline language. Virtually every language that forces too much stuff on programmers has failed to reach popularity: Eiffel, Ada, etc.

White people don't need unicode though. Unicode is for asians.

Attached: 1471529856340.jpg (640x446, 87K)

>unicode is for higher IQ people
Ok I guess you never did any maths.

>cppcheck
Literal toy in comparison to Rusts compile time type/memory safety checks. Anyone who ACTUALLY used cppcheck can vouch to this.

>he doesn't just use tex

yeah cppcheck is dogshit.
but rust is just too ugly to take seriously.

>Obviously write it in the language you prefer...
>translating a code from a language into another only involves knowing the destination language
Holy shit FP memesters are so retarded.

I picked cppcheck because it's the only cheap toy we have (with a few other things like what LLVM has).
Serious people use commercial static analyzers that cost 10,000+ per seat that are actually more powerful than Rust.

Also, cppcheck is actually becoming nice in the past few releases

Reading a little lisp code shouldn't be difficult for you even if you can't write it yourself...

Considered harmful. I prefer stuff that sucks less. You're not a real man if you don't program in C without a debugger.

>I picked cppcheck because it's the only cheap toy we have
Your cheap toy < my cheap toy :)

>not using Go to make a kernel
gofy.cat-v.org/

When the cat -v people embraced golang for no other reason than because rob pike was involved with it, that's when they jumped the shark for me. From that point on I recognized just how ridiculous their whole psuedo-ideology really is. It's nothing more than a Bell cult.

Why is the crab a tranny? Idk about the ins and outs of the language I just want this question answered.

>Why is the crab a tranny?
The crab signifies the ultimate safety, snip snipping your dick off, to make sure your unsafe dick doesn't rape anyone.

>Serious people use commercial static analyzers that cost 10,000+ per seat that are actually more powerful than Rust.
Googer here, can confirm. We have so many analyzers for C++ that the entire notion that Rust can be as safe as what we already have is the saddest joke I've ever heard.
Rust is dog shit and so are Rust pushers.

>Googer here,
According to Rob Pike, that renders your opinion on technical matters worthless.

Attached: rob pike on golang.jpg (1024x683, 281K)

True for L3s. Not true for me, an L5.

It's slower than C/C++ due to worse compiler optimization
It's got worse IDE support
Have to use unsafe code blocks for some things

Two ranks above retard? I guess that basically makes you king of retard mountain, huh?

Attached: 1503947760084.jpg (1190x1698, 131K)

Real talk
99.9% programmers using Java,Go,C#,Python,Ruby,Swift,Javascript won't programmer in rust too hard for no gains.

Functional autism won't touch rust get in Lisp,Ocaml or Haskell.

C/C++ wont wrap massive amount libs for using rust.

Rust is too hard most programmers sorry rust fans

Don't be. I'm a Rust fan and I fully acknowledge this.

Rust and C++ has the same LLVM backend, and it has the same optimization capabilities. Like C++, Rust also has all those tricks (moves, copy elision, SIMD intrinsics etc). The performance difference is below 1% as shown in the benchmarks.

Lisp is the least autistic language. Lisp is too laid back and freeform for an autistic person. Autistics love routine and regulation. They freak out over minor deviations from the routine. Write a novel control structure macro and the autistics will curl up into a ball and weep.

Lisp is for dope smoking surfer chads who take life easy and make sure to never forget what really matters in life. Sexp.

Attached: sexp.jpg (640x476, 37K)

Currently, rustc produces a fuckhuge quantity of code that LLVM takes a long time to optimize. Like, hundreds of megabytes for something that ends up as a

>>Bryan Cantrill
>A raging SJW faggot who thinks he's a genius because he worked with smart guys while he was at Sun.
>Rust has no future.
Bryan is the Andy Dick of the IT industry, its entertaining watching is talks. youtube.com/watch?v=LjFM8vw3pbU

>f(x, y)
The pedestrian Algoler.
>(f x y)
The workaday Lisper.
>f x y
The civilized Haskeller.

haskell is another BSDM language. Not my idea of fun.

(take the forth pill)

Attached: programmers according to lisp.jpg (593x640, 100K)

what do you do with "other-tags"?
i assume this is another pool where the inputs with - prefix get sent like required-tags and prefered-tags

I first split the input into excluded-tags and other-tags, then split other-tags into required-tags and prefered-tags. The result is a three-way split. other-tags isn't used for anything else so from that point it's free to get GC'd.

None of this is optimized for speed because in practice the input list will be short 1 to 10 is typical, but it'd be fast enough even if you threw a few thousand at it. The cost of the actual SQLite queries blow away the rest of the code, they can take hundreds of milliseconds for some queries. So my primary concern when writing that code was making it look nice.

oh so u read it backwards i see it now
its kinda weird language sorry bro

it's read left to right like normal

you could think of
[(excluded-tags other-tags) (partition (curryr string-prefix? "-") tag-lst)]

as something like
excluded_tags, other_tags = partition(....)


partition is a function that returns two values, and the values it returns are being bound to the variables excluded-tags and other-tags.

The curryr part is a tad unusual I suppose, but all (curryr string-prefix? "-") does is return a function that returns true if the string you give it begins with "-".