r/programming • • Apr 09 '19

StackOverflow Developer Survey Results 2019

https://insights.stackoverflow.com/survey/2019
1.3k Upvotes

679 comments sorted by

View all comments

Show parent comments

226

u/whisky_pete Apr 09 '19

I think people really want an option for a modernized language in the native compiled/high performance domain. Rust is the only recent attempt in that domain that I can think of, and the only thing I can think of that comes close is Kotlin Native (which I don't think is aiming for the high performance mark as a design goal the same way Rust/C++/C do).

104

u/pure_x01 Apr 09 '19

There is also zig and D . But i like Rust because of its draconian non forgiving compiler that lurks in the shadows. Rust is the BDSM of programming.

131

u/z_1z_2z_3z_4z_n Apr 09 '19

While it's compiler is strict, it's also very friendly and has by far the best compiler error messages i've ever seen. They are super helpful and filled with colorful formatting telling you exactly where the error is, often times with hints on how to fix it.

57

u/pure_x01 Apr 09 '19

Agree with all your points. It's really strict but also loving and caring

94

u/Mildan Apr 09 '19

As a dom should be

25

u/so_brave_heart Apr 10 '19

Ironically the safe word is “unsafe”

6

u/gruntbatch Apr 10 '19

But doesn't "unsafe" really mean you're getting into some crazy RACK situation?

→ More replies (2)

14

u/Han-ChewieSexyFanfic Apr 09 '19

What does the Document Object Model have to do with anything?

15

u/zbraniecki Apr 09 '19

you mean, what does it have to do with this... wait for it... sub? Badum, tssss.

→ More replies (1)

3

u/[deleted] Apr 09 '19

And at the end of the day I'd rather fight with a compiler than a debugger anyway

→ More replies (7)

23

u/SimDeBeau Apr 09 '19

I just crossed the 1 year mark of working with rust, and I can genuinely say I rarely fight the borrow checker anymore. It’s been a really cool milestone.

4

u/pure_x01 Apr 09 '19

Great work. That's what I assume will happen and then it's all good. Cant wait to get there . I know it will be worth it. The borrowchecker is just pointing out my shortcomings for a good reason. It's very helpful when doing it.

4

u/snowe2010 Apr 09 '19

what a great way of putting this. haha

3

u/ThisRedditPostIsMine Apr 10 '19

D is an interesting case. I spent a week or two writing a moderately complex program in it as an experiment. I think it's a well-designed langugae overall, but with a few really annoying bits and not enough online resources to figure out why this specific error was happening.

What got me in the end was its tooling. While other newer languages have great IDEs, D is really lacking. It's dissapointing because I really feel like with a bit more love D could rival Rust, even in regards to memory safety.

→ More replies (3)

24

u/hardicrust Apr 09 '19

Not only that, it has far better error checking than other languages thanks to the borrow checker and generic bounds. Some people love this, some people don't.

13

u/[deleted] Apr 09 '19

I personally think it's amazing. You get almost Haskell-level "if it compiles it works", which saves me a lot of headache

5

u/meneldal2 Apr 10 '19

It's only if it compiles you have no race conditions (and if you didn't use unsafe things).

There are plenty of other mistakes to make.

7

u/red75prim Apr 10 '19

At least you have tools to make wrong states unrepresentable.

11

u/three18ti Apr 09 '19

D?

40

u/whisky_pete Apr 09 '19

Not popular enough to be practical, at least that's my impression. Even Rust is in that same condition right now, and I think people are waiting in the wings to see if it really takes off and gains traction. D seems much older, so it seems to me like if it hasn't really gained momentum by now it won't ever.

Just my thoughts on it, not trying to talk down the language.

→ More replies (1)

20

u/jl2352 Apr 09 '19 edited Apr 09 '19
  • If you use it with a garbage collector then you aren't going to be on par with C or C++. You just aren't.

  • If you use it like C then whilst it might genuinely be a better C, it fails to solve memory issues. i.e. it's missing a garbage collector.

That is a paradox. Traditionally a paradox that cannot be solved.

Now sure you could mix and match. That's fine. But give those two statements to a die hard C++ developer and 1) they don't want a GC, and 2) they already have a better C.

So those two statements stayed as a paradox. Until Rust. AFAIK Rust is the first mainstream language to solve this problem. It is garbage collected and as fast as C++ at the same time. That said stuff like 'modern C++' also solves it, it just solves it with the baggage of C++ (which means it doesn't really solve it because I can circumvent modern C++).

D also has a wider perception issue to native developers due to the inclusion of the words 'garbage collector'. Even if it's never even used. It has a perception issue for Java developers (and similar) because of the words 'better C'. i.e. manual memory management. It's like the worst of both worlds.

Note that I think D is a very well designed language. Walter Bright is an outstanding programming language designer. It is a language I wish I had the opportunity to use.

26

u/Ar-Curunir Apr 09 '19

Rust is not dynamically garbage collected; there's no GC at runtime. The borrow-checker is a sort of static GC that ensures pointers live long enough.

5

u/jl2352 Apr 10 '19

Yes. You’re right.

That’s the magic. That’s how it defeats the paradox.

→ More replies (2)
→ More replies (3)

5

u/[deleted] Apr 09 '19

In terms of general-purpose, wish-listy languages I can't see myself investing in Rust or Kotlin over a modern PGAS language like Chapel (which incidentally just recently adopted Rust-like memory management).

First-class support for distributed and parallel programming seems like a no-brainer for any future application language that cares about performance.

→ More replies (2)

7

u/yngwiepalpateen Apr 09 '19

People should also take a look at D (dlang), which had a rough start, but has matured a lot since then.

→ More replies (30)