Hacker News new | past | comments | ask | show | jobs | submit | bor0's comments login

> I like an environment that feels sane and logical and where I am not facing loads of incidental complexity along the way

You should try my (esoteric) programming language (theorem prover), Budge-TP :)

You might find useful my recent write-up about https://bor0.wordpress.com/2023/02/05/writing-your-third-pro...


Hey, author here! Thank you for recommending my book. I am always happy when someone else finds my work useful :)

> Anyone know if there's a decent way to get a printed copy?

I decided to re-publish the book with Apress, and it should be ready for print by March this year.

> How is it better than tdd in Idris book?

I would not say it is better, or worse. I read TDD and it's a great book, but it was mostly focused on practical stuff (i.e. programming in Idris), and I found it lacking the theoretical explanations (for example, what proofs are and how to do a mathematical proof, or what is a type-checker and how to implement one) which I hoped to cover in my book.


Adding onto the authors’s own review, I liked the second part on learning Idris but for my purposes the real gem was that it took me from zero prerequisites to a good intuition for dependent type theory in a very clear way that prepared me to go even deeper into topics like Homotopy Type Theory. The works I treasure are those that can build understandings of really complex topics without the crutch of a lot of prior assumed knowledge. It takes incredible clarity to do that well. This was one of my favorite book finds of recent years.


It's a good post, but heavily OS dependant. For example, on my Mac:

  $ ls /dev/null /dev/full
  ls: /dev/full: No such file or directory
  /dev/null
I guess in theory, you can imitate `/dev/full` by other means.


>Linux has this fun device file called "/dev/full"

Yes it is. And it specifies the OS as well.


NetBSD and FreeBSD have /dev/full as well.


And all OS can have disks that are full as well.


I can't test this and the original blog post seems to be missing, but someone has a Github gist where they create a full ramdisk on OSX:

https://gist.github.com/koral--/12a6cdda22ffbd82f28ecc93e0b5...


Yup — I found this worked well: https://www.thedroidsonroids.com/blog/dev-full-osx


Computation has been and is a huge part of my life, and thanks to it I live a decent life with my family. It also helped with self-esteem and other similar things.

But love? Love taught me things I couldn't imagine (in a positive way).


The whole article builds on the premise that the main point of every programming language is adoption and growth, while for Haskell we have

> avoid success at all costs

According to that statement, to me it seems that the current "success" (however one defines it) of Haskell is just a side-effect.

Yes, it is used in industry, but I believe the bigger impact here is how other languages "steal" features from it.


Rust would certainly not have existed in it's current form without Haskell.

There are many such “progenitor languages” that focus primarily on theoretical elegance such as Smalltalk, Scheme, and Haskell that might not see huge adoption but do inspire a rather lasting influence on many languages that grew far larger than they.


Hi! Author here. First of all thanks to whoever shared this on HN, it was amazing to see it on the front page :)

> but it's not really what it claims to be at all

I agree that the content may be interesting (only) to Coq newcomers, but I disagree with the quoted statement.

If you extract the code to Haskell e.g., and put some IO handling you basically have a line editor.

> the length of the paper almost halves and the amount of substance becomes clearer

Thank you for this. I can amend it in a future version once I get more/other comments on the paper.


My comment regarding "substance" was rather snarky, and I apologise for that.

I suppose the point I was really trying to make is that whilst this is certainly a nice demonstration of how to prove properties of data structures in Coq, actually specifying and verifying vim would be a monumentally larger task, and critically, most of the effort would be in entirely different areas.

I should have phrased this better though and my tone was way off, so I'm sorry if my first comment caused offence; anyone promoting formal methods to the SE community at large is doing a great thing!


No offence taken! Your first comment was constructive. I am looking forward to make the paper better.


I just wanted to express my appreciation of this reply. I originally wrote a simple ":)." but it's not really how it works here on HN :). Anyway, thanks for not being stubborn and pedantic, this is part what makes most of HN nice.


Hi!

I am a 100% newcomer to the world of formal proofs and certainly dont know Coq. Because your topic was down to earth and the proof you provided were simple, I was able to understand these proofs. As such your paper made me aware of how this community builds papers and proofs, and I can understand how this will grow insanely in complexity. Thank you!


This is exactly what I did with my first book. It is available for free on Leanpub, but I charge minimum for Kindle/print using Amazon KDP.

I just wanted to get my message across and learn something on the way. It also sells relatively well, but that is a side-effect of my initial intentions :)


https://bor0.wordpress.com

I blog about math and programming. It is a random collection but mostly (but not only) functional programming, formal verification.


> we wouldn't want to go full Haskell and avoid success at all costs

Can you elaborate on that statement? To me, it implies that going with Haskell avoids success, but I might be missing something. If that really is the implication, can you explain?


Oh! That's the Haskell motto: https://www.google.com/search?q=haskell+%22avoid+success+at+.... I'd never troll so hard as to make something like that up, only just enough to quote it. I love it as a perfectly-cut gem of self-deprecating humor.

It has had different interpretations over the years. Simon Peyton Jones described its origins here: https://books.google.com/books?id=2kMIqdfyT8kC&pg=PA283&lpg=.... But that interview was already several years after the fact. See also https://web.archive.org/web/20150419060144/http://www.comput...:

When you become too well known, or too widely used and too successful [...] suddenly you can’t change anything anymore.

The fact that Haskell has up to now been used for just university types has been ideal [...] Now, however, they're starting to complain if their libraries don’t work, which means that we’re beginning to get caught in the trap of being too successful.

What I’m really trying to say is that the fact Haskell hasn’t become a real mainstream programming language, used by millions of developers, has allowed us to become much more nimble, and from a research point of view, that’s great. We have lots of users so we get lots of experience from them. What you want is to have a lot of users but not too many from a research point of view – hence the avoid success at all costs.

Does anyone have the original slide where he used this line? It would be interesting to see what contextual clues were there at the time.

Later it turned out to be a syntactic pun: https://twitter.com/simonmar/status/246335257677271040. The official interpretation seems to be "Don't make success your top priority, because success may compromise things you care about more", whereas the hilarious version would be "Whatever you do, make sure you don't succeed."

Haskell connoisseurs can add info. That is literally all I know about it, or more, since I just Googled half of it. I do recall reading those interviews at the time, no doubt via HN.


TIL about most of this. Thanks for the detailed explanation.


To me it means that the Haskell project is strictly an academic experiment and seems to avoid mainstream success for itself at all costs. Not that projects using it can't achieve success, just that it'll never be popular and tries very hard not to be, though not really with that intent.


I interpreted that as "allow only very technical post in Erlang or Haskell"


I usually write a book review post on my blog that contains these highlights. Whenever I need to recall something, I am reading my own posts.

I guess this is similar to spaced repetition.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: