Hacker News new | ask | show | jobs
by trurl 2541 days ago
While I prefer my languages statically typed, if you're going to use a dynamically typed language, Racket is far superior to Python.
3 comments

Racket also has contracts that can enforce conditions in an alternative way to types: https://docs.racket-lang.org/reference/contracts.html

EDIT: I mean in addition to Typed Racket

I think the contracts provide runtime enforcement. Typed Racket provided compile-time enforcement. I don’t know if any other languages have both.
Racket also supports several statically typed languages... look up Turnstile, Typed Racket, and Hackett
I've found that Typed Racket is still fairly hard to use. For example, type classes aren't there, and type polymorphism interacts poorly with general-purpose functions like "equal?". I would guess that ML or Haskell code translates fairly naturally, but there aren't the guide-rails those languages have to keep you in the subset of the language that type-checks well.
Uhh, sorry, I meant type classes in the Haskell sense (similar to interfaces), not typed classes (like in Java).
when i went through the coursera course "programming languages", i did part a in standard ml (what the course uses) but also in f# and in typed racket (using racket's pattern matching). the code was practically identical across all three languages. now, that's for someone simple programs, but i was surprised that the translation from two MLs was basically trivial to typed racket.
Hackett really isn't yet usable for real programming. IDK about Turnstile, but I think Typed Racket is usable.
Hackett could really use some people who are excited about the intersection of lisp and haskell and want to build languages to join in on hacking on it :)

I think there are quite a few of those people... maybe that gives some hope for contributions

Personally I would like to work on it, though I know that I am missing some requisite skills.
You are probably underestimating yourself. Imposter syndrome again? Building a language is a major undertaking and I’m sure the help would be appreciated.
I dunno, given https://github.com/lexi-lambda/hackett/issues/98#issuecommen... (saw this when it was sent initially because watching the repo). Knowing one's limits is not necessarily imposter syndrome. If I were to acquire the knowledge (say by reading my recently acquired copy of TAPL), I'll revisit this.

Hackett pushes the boundaries of the Racket macro system, and IIRC through its development has found a number of deficiencies/bugs (I may be misremembering this, however, so don't take it as absolutely true). Besides that, Haskell is a rather complex language, so undertaking the creation of such a thing is no small task. And then we have the issue of what my own personal knowledge is.

I really hope development once again takes off! Its such a cool project. But I know I wouldn't have the first clue of the right way to do certain things that I know are outstanding.

I thank you for your kind sentiments though!

Bold statement
Bold, but true.
Care to elaborate? Neither you or OP have backed up this rather large claim.