Paul Chiusano, creator of the Unison language, writes about functional programming, type systems, and the future of software.
HN points to his essay on why Haskell hasn't taken over and to his posts tracing how Unison grew from a language into a platform.
You missed the "logical leap" part. It was a big logical leap—bordering on nonsensical which you pretty much acknowledged in your first response. If, when reading someone's comment, your first instinct is to say to yourself, "How could someone think that's a good idea?" then your second thought should be, "Yeah, how could someone think that? I'll bet they don't." This isn't Twitter; replying to a comment as if, out of the range of possible interpretations, what the author intended was the dumbest one—just because you can plausibly argue that's what their words really meant—is pretty much against the rules.
> I would assume it's the reading everyone made
Even after what just happened, you're still making assumptions?
> We all read in good faith
That's disputable. Actual observed behavior on HN lately seems to trend towards the easiest/shortest path to dismissal, or: How can I reaffirm that someone I want to disagree with is dumber than I am?, again à la Twitter.
> phrase it in a way that's less ambiguous
Okay, I'll bite. How should it have been phrased? By the time you had written the comment prior to your most recent one, I had already posted two other comments that were pretty damn specific, one of them excruciatingly so:
<https://news.ycombinator.com/item?id=28524423>
<https://news.ycombinator.com/item?id=28518839>
What you're demanding is to spend an inordinate amount of effort seemingly to optimize for folks who are some combination of (a) subject to…
The odd thing is unison started purely as a language. Now there's a platform.
I often find the best way to understand complex things is to dig all the way back to when they were being thought up. In this case there's a blog post from 2017 that I still find useful when thinking about Unison:
https://pchiusano.github.io/2017-01-20/why-not-haskell.html
Key quote:
Composability is destroyed at program boundaries, therefore extend these boundaries outward, until all the computational resources of civilization are joined in a single planetary-scale computer
(With the open sourcing of the language I doubt it will be one computer anymore, but it's an interesting window into the original idea)
Personally I find there's a lot to this. It's interesting that we're really, really good at composing code within a program. I can map, filter, loop and do whatever I want to nested data structures with complete type safety to my heart's content. My editor's autocompleting, docs are showing up on hover, it's easy to test, all's well.
But as soon as I want cron involved, and maybe a little state-- this is all wrecked. Also deployment gets more annoying as they talk about a lot.
So I think Unison always had to have a platform to support bringing this stuff into the language, even though they built the language first.
I'd love to hear some opinions from outside Unison about how they like using this language, tooling and hosting.
I'd like to hear this too.
Also, it would be great if…
Facebook, Twitter, reddit, the Internet itself, the iPhone, and on and on and on—most people dismissed these things as incremental or trivial when they first came out.
I would say Twitter and Facebook in particular are still are incremental and trivial as billion dollar companies and always will be. The web is a dumbed down version of older hypertext systems and hasn't shaken that legacy in 25 years.
The real problem with the pace of innovation is these things weren't trivial to build, that's why the best we can do is incrementalism. And that comes from the foundation systems we use. When something near the bottom of a technology stack/pyramid offloads complexity to the top, it becomes a nightmare to get anything done.
For example, we don't have a natural language command line for regular/stupid users. Instead we have point and grunt GUIs. That means apps have to be monolithic. Apps can't work seamlessly with one another even if the underlying tech allows it.
And from that small bit of complexity we get billion dollar walled gardens.
More detailed read http://pchiusano.github.io/2013-05-22/future-of-software.html
Instead of a simple standard interface for users to access various services we have http://static3.businessinsider.com/image/4dd4d1cf4bd7c8c90f000000-1200-924/craigslist%20andrew%20parker.png which kills discoverability and creates a constant drag on people to learn a million UIs. And then we hope to fix all that with another layer of AI…
You might be interest to read this article: "The Internet has made defensive writers of us all". https://pchiusano.github.io/2014-10-11/defensive-writing.html
>> Writers use hedges in the vain hope that it will get them off the hook, or at least allow them to plead guilty to a lesser charge, should a critic ever try to prove them wrong. A classic writer, in contrast, counts on the common sense and ordinary charity of his readers, just as in everyday conversation we know when a speaker means in general or all else being equal. If someone tells you that Liz wants to move out of Seattle because it’s a rainy city, you don’t interpret him as claiming that it rains there 24 hours a day, seven days a week, just because he didn’t qualify his statement with relatively rainy or somewhat rainy. Any adversary who is intellectually unscrupulous enough to give the least charitable reading to an unhedged statement will find an opening to attack the writer in a thicket of hedged ones anyway.
> I love this notion of relying on “the common sense and ordinary charity of readers”. What a wonderful, inspiring idea. I realize I’ve begun writing defensively on the web, putting in hedges and clarifications that really aren’t necessary for a charitable reader. I’ve also taken to toning down any rhetorical flourishes that could be interpreted uncharitably in a way that annoys some people. The result: boring writing stripped of a lot of my own personal style.
Cool. :) Not sure how well this came across in the post but I was trying to be careful to say that even though there is a tendency for intelligence to arise (it is really more that evolution tends to accelerate its own rate of adaptation over time, for the reasons I gave in the post, and intelligence is the eventual result), whether that tendency plays out for a particular run of the tape may depend on many things. As an analogy, think of the long term trends of evolution like the force of a river, and the biosphere’s evolution like a pebble in that river. Maybe the pebble will be carried a great distance in the direction of flow, or maybe it will get stuck someplace at the bottom of the river for a million years. In that sense, pointing to the historical record of evolution is misleading and too much detail — IMO you have to distill evolution to some computational essence in order to reason about whether it has any long term trends.
Something that I don’t think is well known is how likely it is that evolution will get stuck or reach equilibrium (how often will the pebble get stuck), but I think it’s wrong to say there is no long term tendency.
Also see this other post which talks more about this, see the Getting Stuck section - https://pchiusano.github.io/2018-04-14/intelligence.html
Yeah I like the idea of visual programming but it's not gonna replace everyday dev work in my opinion.
I would like to see more apps for tablets that introduce visual programming into everyday workflows. If you haven't seen the work of Ink & Switch check out these essays on end user programming [0] and an app for basically working on ideas [1], combine these and you get a fluid interface with an easy way of doing some computation (the visual programming bit) which is something I would love to use.
But visual programming gets messy if you attempt to do something complex and I don't know if there is any way around this. This then is where there needs to be programs with strong types that can compose with each other, like the example explained in this post [2].
These concepts are all things which anyone using a computer could use, not something just resticted to people who are already "developers", and I think we have to get into that mindset for this type of software to become more successful.
[0] https://www.inkandswitch.com/end-user-programming.html
[1] https://www.inkandswitch.com/muse-studio-for-ideas.html
[2] https://pchiusano.github.io/2013-09-10/type-systems-and-ux-example.html