HN user

nadagast

81 karma
Posts0
Comments38
View on HN
No posts found.

I think a lot of this type of problem goes away with immutable data and being more careful with side effects (for example, firing them all at once at the end rather than dispersed through the calculation)

I think there have been and will continue to be UX improvements to programmer tools. GitHub is one example.

You think tools that stagnate will continue to see the same levels of adoption in new generations of programmers? It's an empirical question, I guess I just don't see it, and I say that as someone who loves vim & emacs.

I use and love emacs, but pointing to it as an example of how to evolve UX over time is indicative of your perspective. iOS/Windows/Android are used by the majority of people on the planet, emacs is not.

Which UX do you think young people today and in the future will most understand? iOS/Android or emacs? Why is that?

In Our Time is a wonderful podcast, always interesting content! Also, as an American, the pace of the show and way of speaking is itself interesting to me.

This brings back thoughts I've had that we should be working with normalized data in code, rather than thick objects. I think the main reason we don't is because there's a lack of tooling around it in our languages. I think a system/language/library designed around this could solve some of the problems in the article as well. First class support for having only one value for a given domain specific id, relations, declaratively describing constraints, and strong querying seem like they would be very helpful to lots of programming problems in complex apps.

This is the right answer and I wish more languages would make this dramatically more ergonomic to do. Store the most basic normalized truth and query/derive what you need.

But how will you decide which is worth knowing if you never look? I get why you may want to take it in at a slower pace than a social media feed, but it seems like there's no way to tell what's worth knowing if you "stop consuming news".

I guess I overlooked it because the other way is so logically trivial, since it basically boils down

Yeah, that's (part of) Hickey's point. That the "best" type systems fail this test, and require manual programmer work to solve this problem. Again, I'm saying this as someone who really appreciates Haskell.

Yes, the default of a lot of languages, (Java, C, etc) where nil is implicitly a member of every other type is a bad default. But that's a separate question.

I agree that there are reasons for Maybe a to be a different type from (a | nil) but there are also good reasons to prefer (a | nil). Like most things, it's a set of tradeoffs. What I appreciated about this talk was that he went into the benefits of thinking about types in this way. It's (relatively) common to see the benefits of Maybe a explained, but more rare to see the benefits of full union types explained.

Why is it illogical to say that a Maybe a -> b should be callable as if it were a -> b?

His point is that Maybe a should be composed of all the values of a, plus one more value, nil. A value of type a is a member of the set (nil + a). Why should having a more specific value reduce the things you can do with it? It breaks composition, fundamentally. It's like saying (+) works on integers, but not on 3. I'm saying this someone who really enjoys type systems, including haskell.

- Two unstable people with nukes and a lot of angry rhetoric. And this today: https://www.theatlantic.com/international/archive/2017/12/li... -- not a great situation.

- Don't know enough about tax cuts.

- "Zero evidence of any of that" is a completely ridiculous thing to say. Get out of your bubble. Try to see the world from the other POV, there are many pieces of evidence that point in this direction. If you step back from moment-to-moment politics and try to look at what's already publicly known, from a historical perspective, it's already an unbelievable scandal.

- I don't think he consciously wants to be a fascist dictator, but it's again completely ridiculous for you to say there's "zero evidence of that sort of behavior". He does many things that point in that direction, if only you look. And, concretely, he's destroying norms that keep us not-fascist, barriers are being torn down right now. That degrades our system and populace and will make it easier for future people to transgress further.

- I don't know enough about what regulations he's rolled back. But dropping out of the Paris agreement and simply not taking action for the next four years have a significant impact.

I've been thinking a lot about nearly these exact same things. We desperately need better ways to deal with derived textual data. Why do we make the programmer guess which data structure will work best for a particular task, when we could easily try it each way and record the performance, and pick the best? A big part of the reason must be that we have no good strategy for storing that data and making that choice in an ongoing and living way, inside of a code repository. We suck at dealing with derived data on the meta layer above our programming languages.

Email me at glmitchell[at]gmail if you want to chat more about this.