Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
bjz_
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
16 ms
·
121.
▲
by
bjz_
9y ago
Interesting. Yeah, from what I understand the Erlang philosophy was to just throw out the idea of a type system and deal with faults dynamically, which is understandable given the time the language was created. But given what we've lea
122.
▲
by
bjz_
9y ago
It's a bit like all the folks who recoil in horror when you say 'types' and all they can think of is Java.
123.
▲
by
bjz_
9y ago
How are you going to handle updates and migrations of types? Something I've been thinking about in terms of dependently typed APIs is versioning and migration - but more at the code ecosystem level than in terms of running systems that
124.
▲
by
bjz_
9y ago
I'm really happy more work is being done in this space! Also nice to see nods to various attempts from the past - it's important we learn from their failings, but also their successes. It's too easy to get stuck in the mindse
125.
▲
by
bjz_
9y ago
> I feel like Rust started out with solid dependency management in place, at least it's been there from the early days. Rust had actually been through three failed package manager projects before they decided to bring in the domain
126.
▲
by
bjz_
9y ago
Yeah, much work is being done! As a long time user of Rust (for many years), I'm not super confident about using futures yet without the support of `impl Trait` - I mean, I could manage it, but I definitely would not want to inflict it
127.
▲
by
bjz_
9y ago
I came across the Alfa proof language recently (precursor to Epigram and Agda). Had this neat natural deduction editor: http://www.cse.chalmers.se/~hallgren/Alfa/Tutorial/ndstyle.h...
128.
▲
by
bjz_
9y ago
Agreed, and I think it's harmful to universities to expect that. We need universities to excel at what they are good at - preparing students to push the frontier of their field. They're not job factories for industry and shouldn&#
129.
▲
by
bjz_
9y ago
Ah, that's great to hear!
130.
▲
by
bjz_
9y ago
Very bloated, lots of allocations, not compatible with other JS module systems, no uncurrying optimizations, no integer optimizations, etc. Bucklescript's output is pretty damn impressive on the other hand: https://reasonml.
131.
▲
by
bjz_
9y ago
Reason also has the benefit of Bucklescript which has very high-quality JS output - very friendly to VMs, and the rest of the JS tooling ecosystem. This is something where Elm is sadly lagging quite behind.
132.
▲
by
bjz_
9y ago
This is part of the reason why I still feel constrained when using systems where the type system is bolted on after the fact, like Typescript, Flow, or Dialyzer. You can gain so much leverage from the type system being able to generate code
133.
▲
by
bjz_
9y ago
This is one of the big things I miss from implementations of ad-hoc polymorphism in dynamically typed languages - for example protocols in Elixir or Clojure.
134.
▲
by
bjz_
9y ago
I like to look beyond to other languages, like Idris, ATS, Sixten, F*, Lean, Koka, etc. Rust has many clunky parts that become more obvious through use, even though it is still my goto language. I find often the most zealous folks are those
135.
▲
by
bjz_
9y ago
The Firefox and Servo team are currently hard at work on Pathfinder, which should solve this for both fonts and SVG. It'll run on the GPU like WebRender which is super exciting: https://github.com/pcwalton/pathfind
136.
▲
by
bjz_
9y ago
There are many degrees of freedom to work on when it comes to mathematics, many perspectives to look at the same problem. Some are elegant, some are ugly, others are painful to work with, and make future progress hard. Just as it is with so
137.
▲
by
bjz_
9y ago
> Not sure what you mean by "no forward references"? I'm guessing they are talking about having implicit mutual recursion between items in a module, like Haskell has.
138.
▲
by
bjz_
9y ago
> [1] I'd really like to see F# Computation Expressions instead of async/await. I know the language experts have said Haskell-like do notation doesn't work in Rust but I'm not sure if the F# tweaks would make it work
139.
▲
by
bjz_
9y ago
The Rust Cookbook has made a start on this too! https://rust-lang-nursery.github.io/rust-cookbook/
140.
▲
by
bjz_
9y ago
> and that all-important '&' gets lost in the verbosity Perhaps some console colouring could help as well. I'd really like some type diffs on type mismatch errors (I think Dotty has this?). That could be super handy fo
141.
▲
by
bjz_
9y ago
> Kakoune uses a clippy ASCII art for its immediate help, it's nice. Had to look this up - very cute! https://github.com/mawww/kakoune#screenshots https://raw.githubusercontent.com/mawww/ka
142.
▲
by
bjz_
9y ago
> Which, y'know, good luck with that. Most dependent type systems like Agda, Coq, Idris, Lean, and ATS have termination checking, so it is possible! They can't determine whether arbitrary programs terminate, but you can capture
143.
▲
by
bjz_
9y ago
It takes a long time to build a language. Rust was in development for many years, and it has had the benefit of backing by Mozilla.
144.
▲
by
bjz_
9y ago
> it is so easy to lose track of which "if" a nested "else" belongs to when modifying code, and, I've seen this being the source of so many bugs, that it has changed my opinion about whitespace-significant langua
145.
▲
by
bjz_
9y ago
TDDwI is much more focused on more common programming problems than SF and using it like a general purpose language. Don't get me wrong, I love SF, but it might complement it, and be worth coming back to SF after TDDwI.
146.
▲
by
bjz_
9y ago
Type-Driven Development with Idris: https://www.manning.com/books/type-driven-development-with-i...
147.
▲
by
bjz_
9y ago
/r/rust is actually one of the better ones, thankfully.
148.
▲
by
bjz_
9y ago
I wish it didn't have to be one or the other. I guess it's human nature to tend towards thinking that choices have to be binary - I've often been guilty of it myself. Whenever somebody makes a choice that is different to our
149.
▲
by
bjz_
9y ago
> The second is a good concurrency story, ideally one that is compatible with JS-style async/await keywords for easy interop Algebraic effects are also in the works which will help with stuff like async/await, but works over ar
150.
▲
by
bjz_
9y ago
Yeah, interestingly I think it's hard to understand what is going on with C because `T*` pointers can be used for many things. I found it easier to go to C after doing Rust because I had a deeper understanding of the semantics behind t
More ›