News for hackers. Stuff that matters.
Re:Hecto: Build your own text editor in Rust by mhh__ on Monday January 18, 2021 @09:03PM (#25829119)
D came before Rust and was and is pretty "modern".

Ultimately this depends on what modern means to you, but I'm guessing you can't write the "Tiny RPN Calculator" from the D homepage as concisely[1] - i.e. My point is that Rust isn't the only language that isn't C++

[1]: dlang.org - you can play with the exact code here https://run.dlang.io/is/FiWrHF

I wrote it a few years ago (not long after I learnt the language, actually), I wasn't even trying to golf, it came almost straight away just from reading the docs. Note the use of static foreach to generate the switch cases for fun and profit.

Re:Hecto: Build your own text editor in Rust by nicoburns on Monday January 18, 2021 @11:26PM (#25829985)
No memory safety in D though. That's a pretty big deal for those of us coming from high-level languages who are not used to dealing with such issues.

I can deal with a fussy compiler that makes me write code in a certain way. But a langauge that compiles fine then segfaults or worse at runtime is far more trouble than it's worth (and requires me to make a big upfront time investment before I can start writing production ready code)

Re:Hecto: Build your own text editor in Rust by mhh__ on Monday January 18, 2021 @11:42PM (#25830072)
> No memory safety in D though.

Not true. Even ignoring the GC we have compiler checked semantics for an increasingly large subset of features, and the language has had ways of managing code that is safe, unsafe, or trusted for years and years now.

As a newly minted employee of the D foundation, I am aiming to work to expand the memory safety features D has.

Re:Hecto: Build your own text editor in Rust by nicoburns on Tuesday January 19, 2021 @12:14AM (#25830237)
Is there a way to make it safe-by-default, such that I can't accidentally stray beyond what the compiler can prove safe?
Re:Hecto: Build your own text editor in Rust by mhh__ on Tuesday January 19, 2021 @01:01AM (#25830501)
There was a proposal to do just that in our DIP (D improvement proposal) pipeline that nearly made it but it (probably correctly) received enormous backlash.

However, if you use @safe (that's the attribute) the compiler will hard-error if you call any code that you use that isn't explicitly also either @safe or @trusted.

There is also DIP1000 and DIP1021 which both loosen @safe semantics to perform semantic analysis to allow safe memory behaviour (A small borrow checker in effect, this will hopefully be bigger soon).

Re:Hecto: Build your own text editor in Rust by cle on Tuesday January 19, 2021 @12:48AM (#25830424)
Try accessing a struct property that isn't in the declaration, or accessing a value after it has been freed (out of scope). You'll get a compile error.

D has lots of memory safety features. It is not the same set of features as Rust. It's wildly incorrect to suggest that Rust has a monopoly on memory safety.

Re:Hecto: Build your own text editor in Rust by shrimp_emoji on Monday January 18, 2021 @09:45PM (#25829409)
Haha. True! I knew about D, but I forgot about it[0]. (I also know extremely little about it.) ;w; I feel bad.

That code is as beautiful as it is incomprehensible.

0: https://youtu.be/_P5BOietpDY

Re:Hecto: Build your own text editor in Rust by ibraheemdev on Monday January 18, 2021 @10:43PM (#25829759)
I agree. The D program is cool, but pretty cryptic. A simple Rust version [0] is only 21 lines yet much more readable in my opinion. I'd take readability over a couple less loc anyday.

[0]: https://play.rust-lang.org/?version=stable&mode=debug&editio...

Re:Hecto: Build your own text editor in Rust by littlestymaar on Tuesday January 19, 2021 @02:15AM (#25830816)
The `op.parse()` at line 7 was a little hard to understand for me at the beginning. Only a few seconds after, I understood it was `op.parse::<f64>()` with the type parameter inferred from the type of `stack`, but I think it's easier to understand with the explicit type annotation (the turbofish) than without it.
Re:Hecto: Build your own text editor in Rust by mhh__ on Monday January 18, 2021 @11:01PM (#25829858)
You miss the point of the original one. When I wrote it the idea was that it is functionally pure and guaranteed to be such by the compiler (the annotation was removed because readln is not pure for obvious reasons).

Most uses of loops break down to map, fold, or similar being able to use them cleanly can avoid a lot of bugs and API plasticity.

Re:Hecto: Build your own text editor in Rust by Measter on Tuesday January 19, 2021 @12:18PM (#25835788)
There's nothing stopping you from doing a functional style in Rust, neither: https://play.rust-lang.org/?version=stable&mode=debug&editio...

There is a function on nightly that would make line 16 a little nicer, but oh well.