Hacker Newsnew | past | comments | ask | show | jobs | submit | more jnxx's commentslogin

We already treat spam and unsolicited commercial email that way.


Trust is also essential for any form of symbolic information exchange.

Humans communicate using symbols. That could be patterns of sound waves, gestures, or written characters.

If we can't trust that the communicated symbols match their agreed meaning, what is the use of them? Communication breaks down quickly, and being social individuals which inter-depend on others, we can't live without communication. Nobody likes a liar, and the reason is, the words they give us do not match what they mean. (Perhaps not only humans. I read that dolphins readily come and rescue individuals which are drowning - including humans - but they punish individuals which fake drowning.)

And that goes from every stratum of social interaction, from big treaties to selling a bagel. Would you sell a bagel for a fake dollar bill? The number on it is a symbol as well, it has a meaning.

So it is right down one of the very bases of human cooperation.


What are the main differences between OcamML and a statically typed Lisp?


Type inference is probably the biggest thing. You would need explicit "phases" to expand macros, disallow macro expansion at runtime, and implement bi-directional type inference HM-style to get even close to what OCaml has.

To be honest, I'd kill for a Lisp that had the same type system as OCaml, but I suspect the closes we'll get is basically Rust (whose macro system is quite good).


Racket has Typed Racket, which while not Hindley-Miller can do some type inference.

There's also the plait language which says its type system is similar to ML: https://docs.racket-lang.org/plait/index.html

And Hackett, inspired by Haskell: https://lexi-lambda.github.io/hackett/

And Common Lisp has coalton: https://coalton-lang.github.io/


Most of those aren't really ready for production use except maybe Typed Racket, which I consider to be too "weak" and took a route with annotations that I'm not a fan of. Coalton is very interesting, I've been following it for a bit. Carp [0] is another one that I've been following.

[0]: https://github.com/carp-lang/Carp


Coalton is used in production for quantum computing systems and soft real-time control system automation. There are also (a small number of) Coalton jobs.


Quantum computing control systems is exactly the domain I've spent about half a decade doing, it's really not the production-like environment you think it is. Speed of iteration and flexibility to allow for changes to hardware is tantamount to success. It's also a lot easier to accept risk to breakages in the language when the author works at your company too.


> I suspect the closes we'll get is basically Rust

Rust is categorically different from all of these other things. Lisps (and OCaml) all have interactivity as a core language feature - Rust is as non-interactive as it gets.

> whose macro system is quite good

Compared to C, perhaps.


There is a simpler solution than type inference to removing type annotations while retaining types: remove the distinction between variable and type names. The way that you handle multiple instances of a type is to define an alias for the type. In pseudocode it might look like:

  type Divisor Number
  def divide(Number, Divisor) = Number / Divisor
As compared to:

  def divide(number: Number, divisor: Number) = number / Divisor
I have implemented a compiler for a language that does this with different (less familiar) syntax. It's a bit more complicated than described above to handle local variables but it works very well for me.


> There is a simpler solution than type inference to removing type annotations while retaining types

This doesn't remove them, it just moves them.


Is that language a Forth dialect by any chance?


I'm not super familiar with the details but I've heard that Shen has a really good type system. Aditya Siram addresses types at 12:00 in this video: https://youtu.be/lMcRBdSdO_U

Shen homepage: https://shenlanguage.org/


It's also pretty straightforward to use multiple coding styles in the lisps in question, regardless of the typing being static or not.


https://github.com/LuxLang/lux

    The language is mostly inspired by the following 3 languages:

    Clojure (syntax)
    Haskell (functional programming)
    Standard ML (polymorphism)


The module and functor system. Also macros are much more a Lisp family thing.


what do you think about pre-scheme?


I haven't tried it, but I'm curious and interested!


I am aware that reports on the topic have been submitted before.

This is a fantastic, well-written article by world-class climate scientist Stefan Rahmstorf.


Being fully in the know of the consequences makes a very big difference - both ethically, and legally.


In the realm of electricity production, things are now changing very quickly, though not yet as fast as needed.

Where a huge amount of works needs to be done is carbon-economic transport, housing and construction, and agriculture. And, yes, we will need to say farewell to a few things. That's OK, we are also not using steam engines any more.


> Politics is just a proxy for people’s desires and motivations and willingness to make trade offs.

It is not people as in "a democratic majority" which want to destroy the habitable state of the Earths atmosphere, ecosystems and our own food chain for very little short-term gain. People have children and younger relatives, and we do care about them.

It is a very small minority of very greedy individuals, and there are also massive amounts of disinformation going on so that the democratic majority confounds the interests of these with their own.


> It is a very small minority of very greedy individuals, and there are also massive amounts of disinformation going on so that the democratic majority confounds the interests of these with their own.

No, it’s my mom, my siblings, probably your mom, the guy who does my tile work, etc. You’re framing this in your head as a “good versus evil” problem, which forces you to then assign blame to a “small minority of very greedy individuals.” But instead it’s a problem of humans putting short term individual comfort ahead of long term collective interests.

My brother and my sister in law have STEM degrees from Yale and MIT. They’re well-meaning democrats. But they take several international trips every year, each of which emits about as much CO2 as driving an SUV around all year. Most people I know don’t do that—but only because they don’t have the money.

Heck, I have progressive activists friends who don’t really care about climate change because their particular focus is racial issues or abortion. They obviously don’t want to affirmatively destroy anything, they’re just the same people who wouldn’t pay more than $10/month to address it. They assume there will be some deus ex machina that resolves the problem. (Get to work CO2 capture nerds!)

Look—people eat like crap and don’t exercise, taking years off their own lives. They take drugs that could kill them. People still smoke. They know better but they do it anyway. You think those same people are going to make non-trivial sacrifices for environmental problems that might affect their kids or grandkids?


I would love to learn more what can be done! (And especially for projects in Southern Germany where I am based).

Apparently, a huge part of the opportunities are in embedded computing. One observation I have that there is an AI hype now, but very few people in that area realize how much can be achieved with "conventional" methods like classical signal processing strategies, for example predictive filtering. A huge part of embedded computing is just concerned with getting a board running, at which point you are not farther than when you have powered on a PC and finished to log in.


In respect to Common Lisp, you could look into "Common Lisp Recipes" by Weitz[2], and "Practical Common Lisp" by Seibel[1]. These are industrial-strength systems which were used to built large airline reservation systems.

Scheme is in a way more minimalist and Schemes are not as large, but this might also be give an erroneous impression because they build on the enormous experience with Common Lisp and have boiled down to the most essential parts - it is not the kind of minimalism "the simplest things that could work" but "what turned out to be indispensable in practice", which is a very different thing.

[1] https://gigamonkeys.com/book/

[2] https://weitz.de/cl-recipes/ or https://www.amazon.com/Common-Lisp-Recipes-Problem-Solution-...


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: