5 ms·
I enjoyed using it in college during my programming language theory course. However, I thought it was meant to be more of an academic/teaching language. Why sho
by hayden592 8y ago
I enjoyed using it in college during my programming language theory course. However, I thought it was meant to be more of an academic/teaching language. Why should a company use it over Haskell or Clojure?
- dorfsmay 8y ago> Why should a company use it over Clojure? Not wanting to support the JVM ecosystem.
- nickpsecurity 8y agoI'll add wanting to avoid any legal risk from its owner, who is very sue happy. They also got that copywritable, API ruling in one battle. I just stay away from anything Oracle owns. Using open standards future-proofs against this a lot.
- mruts 8y agoI think racket would be a good choice for internal company tools. It’s batteries included philosophy allows you to create very complex apps with minimal effort. Racket is significantly more expressive than clojure in many different ways (nice gui tools, very sophisticated macro system, good IDE) I wouldn’t want to use racket for applications that would have thousands or millions of concurrent users. For programming in the large, clojure wins by a long shot.
- dorfsmay 8y ago> I wouldn’t want to use racket for applications that would have thousands or millions of concurrent users. For programming in the large, clojure wins by a long shot. Can you explain why? Because it's been used more in big prod envs? Or for reason intrinsic to the languages themselves? If the latter, which ones?
- xfer 8y agosimply because of battle-tested jvm.
- dorfsmay 8y agoThe JVM? What about the battle-tested Linux kernel? If you compile your racket apps to a native binary, you can run it directly on the Linux kernel, and benefit from 25 years of use in production! People deploy Golang and Rustlang apps everyday in prod using that approach it seems to work well for them. Note, both languages are younger than Racket.
- mruts 8y agoCompiled Racket programs are nowhere near the speed of Rust or Go. Racket's GC is objectively much much worse than the JVM. Of course you can serve millions of users with Racket, like HN. But the JVM today is much better choice. The JVM's GC is world-class and the number of man-hours put in it is probably many orders of magnitudes more than that of Racket's. https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/racket-java.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- dorfsmay 8y agoSo execution speed, fair enough. FWIW, I've been staying away from Clojure because of the JVM. A lot of us are wearing the scars of the JVM battles!
- fiddlerwoaroof 8y agoIf you need performance and want to avoid the jvm, there are also lisps like Chez Scheme and various Common Lisp implementations (sbcl, in particular, can produce really well-tuned numerical code).
- hjek 8y ago
- hjek 8y agoYou can write Haskell in the Racket environment[0]. Racket has a lot of well-designed and well-documented libraries that are a joy to work with. In his Racket manifesto Mathias Felleisen (author of The Little Schemer) describes how Racket is supposed to be useful for programmers at any level. I'm currently working on a web app using the Datalog[1] back end. I guess that's very similar to Clojure's Datomic or core.logic, and I'm not sure which is "best", but Racket is certainly good. [0]: https://lexi-lambda.github.io/blog/2017/05/27/realizing-hackett-a-metaprogrammable-haskell/ https://lexi-lambda.github.io/blog/2017/05/27/realizing-hack... [1]: https://docs.racket-lang.org/datalog/interop.html https://docs.racket-lang.org/datalog/interop.html