Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
tatterdemalion
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
16 ms
·
91.
▲
by
tatterdemalion
10y ago
I am a member of the Rust language design team, I am very aware that language design is about trade offs. I find the ownership model has non-performance advantages in that I find it provides strong design pressure to factor my system well
92.
▲
by
tatterdemalion
10y ago
> It's a pain to get working, it sucks to program in, it requires so much thought, it's just a bloody fucking fuck. I could not disagree more! Rust is a great joy to program in. I would rather program in Rust than any other lan
93.
▲
by
tatterdemalion
10y ago
Quick iteration on concepts is actually helped by not having to do extensive testing & maintenance work to keep your system from 500ing, which a static type system can help you do. The fact that dynamic languages don't care about y
94.
▲
by
tatterdemalion
10y ago
Do you have any specific examples of 'core, language-level things Rust needs to improve'? One of the most important goals of the 2017 roadmap is making the language more accessible, any actionable feedback is welcome.
95.
▲
by
tatterdemalion
10y ago
> I got this a little but not a lot wrong. return 42 is supported but then it isn't clear at all why 42 is necessary. The reason this is very good is closures, which have the same return semantics as functions, are often a single ex
96.
▲
by
tatterdemalion
10y ago
You seem to be saying that because Rust is able to provide stronger guarantees, it should make weaker claims on its main page. But just because some of Rust's benefits are verifiable, unlike those of some other languages, doesn't
97.
▲
by
tatterdemalion
10y ago
The guarantees Rust makes are always only outside of unsafe blocks. After all, you can call C code in unsafe blocks. :) The page clarifies later on that the definition of thread safety in question is "threads without data races."
98.
▲
by
tatterdemalion
10y ago
This wasn't a feature of the original VTE videoterminals these apps are emulating though. I'm pretty pro-scrollback, but I have to say the way its been implemented so far has frankly not been very principled.
99.
▲
by
tatterdemalion
10y ago
notty author here. notty is basically way down a yakstack for me - I wanted better CLI/TUI tools, so I wanted to write a framework for writing CLI/TUI tools, but some of the features I wanted aren't supported by terminals, so
100.
▲
by
tatterdemalion
10y ago
I (withoutboats) agree. The real problem in terminals is that this goes both ways - if you let tmux or just vim/emacs split the window, you get no GUI integration - but you use the GUI to split the terminal window, you now have two dis
101.
▲
by
tatterdemalion
10y ago
What makes you and thesmallestcat even more incorrect is that this blog post is about Steve Klabnik and Yehuda Katz joining the Rust core team. This is an unpaid position with the (informally organized) Rust project, not a paid position wit
102.
▲
by
tatterdemalion
10y ago
I didn't know how much time I spent waiting for grep until I tried ripgrep!
103.
▲
by
tatterdemalion
10y ago
Steve is paid to write docs; evangelizing is just his hobby. Sibling comments to yours corrected this point prior to you making this comment, which makes it harder to assume good faith about your actions here.
104.
▲
by
tatterdemalion
10y ago
"ad-hoc polymorphism" is an informal term; traits are sort of both ad hoc and parametric. I've sometimes imagined someone writing a paper about specialization and naming it "How to make parametric polymorphism less par
105.
▲
by
tatterdemalion
10y ago
> The error in the Go snippet is that "v" is a single memory location shared throughout the loop. In Rust this is not true. However, the same concept applies - say it was a variable from outside the loop. In that case, you wou
106.
▲
by
tatterdemalion
10y ago
> The module system seems clunky. There are modules, and crates, and TOML files, and module statements, and required directory structure. Adding a module seems to require editing about three files. The management of imported names seems
107.
▲
by
tatterdemalion
10y ago
Close. :-) Closures are anonymous types which implement one of the Fn traits (which are not anonymous). Traits are usually not implemented with vtables; they are usually monomorphized and statically dispatched (this includes most higher
108.
▲
by
tatterdemalion
10y ago
I don't know Go, so I don't really understand what the issue is with the code you posted. In Rust, the closure used to spawn a new thread needs to own its environment; if it does then there's no problem. If it doesn't th
109.
▲
by
tatterdemalion
10y ago
I have upgraded Rust every six weeks. I run `rustup update stable` and wait a minute. Its not a time investment! Rust puts so much work into guaranteeing backwards compatibility so that updating every 6 weeks is an effortless process. You
110.
▲
by
tatterdemalion
10y ago
> Especially when there are some conflicting reports out there i.e. there are many super-awesome libraries that only work with nightly (I think it's called), because many of those maintainers are early adopters that love to try out
111.
▲
by
tatterdemalion
10y ago
I don't understand. Rust 1.0 code will compile on Rust 1.14, in the same way that C code from the 80s will compile on modern C compilers. That's what "backwards compatible" means! Your dependencies don't upgrade the
112.
▲
by
tatterdemalion
10y ago
Ownership helps me design code which is decoupled and easy to refactor. Rust traits are more powerful, expressive, and maintainable than other polymorphism systems like inheritance.
113.
▲
by
tatterdemalion
10y ago
Hyper is not yet async, the preliminary work in the PR you linked to is for a version which has not been pushed to crates.io and is not finished yet.
114.
▲
by
tatterdemalion
10y ago
No particular reason. `..` and `...` both exist in the language, `..` is exclusive range and `...` is inclusive range. `..` is only in expressions right now, whereas `...` is only in patterns. Eventually, both will be available everywhere,
115.
▲
by
tatterdemalion
10y ago
The semantics of ? are different from monadic bind and fit better to Rust's language context of strictness, imperativeness, and mutability than Monad (which is a problematic type class in Rust for some separate reasons).
116.
▲
by
tatterdemalion
10y ago
Languages I use most are Rust and Ruby. I find the type system not frustrating, but challenging, on occasion. But only when I'm trying to write a library with a very convenient, flexible API. Its probably easier to write the first draf
117.
▲
by
tatterdemalion
10y ago
I think this is informed by the fact that that's what it means today. If Rust didn't have any dynamic dispatch at all, and it was suggested we have this `&Foo` means `&T: Foo` sugar, I can't imagine anyone saying &quo
118.
▲
by
tatterdemalion
10y ago
There's some nuance but a lot of us regret the dynamic dispatch syntax and wish we had done something like this: fn dynamic_dispatch(x: &virtual Foo) { } fn static_dispatch(x: &Foo) { } // is just synta
119.
▲
by
tatterdemalion
10y ago
Rust's concurrency story is built on top of ownership. Its how Rust prevents data races.
120.
▲
by
tatterdemalion
10y ago
I've been kind of aggressive in response to your comments, because I've found them condescending, but I think what we're actually revealing is that the way you're using "object-oriented" is ontologically discon
More ›