[HN Gopher] Racket Compiler and Runtime Status
___________________________________________________________________
 
Racket Compiler and Runtime Status
 
Author : gleb_the_human
Score  : 100 points
Date   : 2021-01-24 18:16 UTC (4 hours ago)
 
web link (blog.racket-lang.org)
w3m dump (blog.racket-lang.org)
 
| rcarmo wrote:
| This is nice to see. I've played around with Chez and Racket
| separately, and even though I'm now focusing on bare metal/JIT
| again, I look forward to using the new Racket.
 
| sitkack wrote:
| Interesting I was just looking at the Chez Scheme backends and
| didn't remember seeing aarch64, just 32 bit arm. And then I found
| this
| 
| https://github.com/cisco/ChezScheme/issues/545
| 
| Racket-Chez is different from Cisco-Chez by > 600 commits. I
| wonder what the plan is to normalize them or will be Racket-Chez
| be our new house.
| 
| https://github.com/racket/ChezScheme
 
  | samth wrote:
  | We (mostly Matthew) have opened plenty of pull requests,
  | although not for the most recent changes since they rely on
  | earlier ones that are not merged. The Chez maintainers move at
  | a deliberate pace, and don't necessarily share all the same
  | priorities as Racket. But we're very much in touch with them,
  | and they've helped develop even some of the changes that aren't
  | upstream.
  | 
  | I don't think it's likely that we'll move back to pure upstream
  | Chez in the near future, but it's not quite a fork either.
  | 
  | You can read more about some of these issues in our ICFP 2019
  | paper: https://www.cs.utah.edu/plt/rkt-on-chez/ which is co-
  | authored with the Chez maintainers.
 
| [deleted]
 
| sachanganesh wrote:
| What is Racket primarily used for? I'm not sure where it fits in
| the language landscape in terms of strengths/weaknesses.
 
  | stretchcat wrote:
  | To me, it's the language I use when I want to have fun.
 
  | desine wrote:
  | It's a Lisp, in the Scheme subset. It's original design was
  | primarily around Programming Language Theory education -
  | formerly it was PLT Scheme. Much of it was designed for
  | educational uses, but it's a really well-rounded system with
  | plenty of packages, a decent package management system, better
  | performance than most interpreted languages. It comes with an
  | IDE easier to pick up for newbies than Emacs (the usual
  | Lisp/Scheme environment), but also runs fine as a command line
  | REPL and compiler.
  | 
  | It's kind of an oddball. While the development focus is mostly
  | educational, specifically Programming Language theory, it's
  | also very usable in the real world. There's a few tutorials on
  | writing your own domain specific language in it. You can
  | specify a language other than the default Racket, so one
  | compiler/interpreter environment actually supports many Lisps
  | and DSLs.
  | 
  | I'm a long time dev who recently picked up SICP to learn why
  | everyone says learning Lisp/Scheme will make you a better
  | programmer, and Racket is by far the most interesting
  | environment I've worked in. I haven't even touched Python,
  | which was my money-maker, in months.
 
  | dTal wrote:
  | I think of it as the Python of Scheme (yes yes I know).
  | Batteries included, well documented, big focus on ease-of-use.
  | 
  | It also has a Big Idea; it aims to be the practical realization
  | of the grand idea that Lisps are the perfect platform to build
  | programming languages on, and to take this so radically far
  | that you can have entirely different programming languages that
  | nevertheless share, not just a runtime, but _all their
  | libraries_. Unfortunately, so far, nobody except Racket
  | enthusiasts appear to have much interest in building languages
  | on top of Racket - but it 's absolutely possible and practical,
  | and someone really did accomplish the astonishing feat of
  | implementing Python (Python 2, alas) in Racket, in such a way
  | that you could combine libraries from both languages.
 
| arc-in-space wrote:
| I'm glad Racket CS happened(even though I don't use Racket),
| because I was worried about the future of chezscheme's
| maintenance. It's a runtime with good portability(Guile Scheme,
| for instance, seems to pretend Windows doesn't exist), and I
| think it'd be a shame to see it fade away in the future.
 
| DC1350 wrote:
| I used Racket in an intro to CS course a few years ago and was
| told it's designed to be a teaching language. Is there any reason
| to use racket over a more popular functional language? Does
| anyone use it in production?
 
  | patrec wrote:
  | Carmack would have used it for Oculus, had management not said
  | no. https://twitter.com/id_aa_carmack/status/807797812700348416
 
  | soegaard wrote:
  | The Racket distribution comes with several languages. You were
  | probably using the socalled teaching languages, which are small
  | subsets of real Racket. Using a subset of the real language
  | allows better and more beginner friendly error messages.
  | 
  | The real Racket language is a general purpose language with all
  | the bells and whistles you could ever imagine.
 
  | fantispug wrote:
  | The killer feature of racket is it is very easy to make Domain
  | Specific Languages (including the teaching language) and
  | related tooling. However last time I looked the library
  | ecosystem didn't seem great; there were many libraries but few
  | that were actively maintained.
 
    | behnamoh wrote:
    | One could also argue that DSLs are not always good esp. in
    | large projects maintained by many devs.
 
| gypsyharlot wrote:
| I am interested in LISP-type languages, but I have a serious case
| of decision paralysis.
| 
| GNU Guile? Common Lisp? Clojure (JVM)? Racket? Judging by my
| understanding of the difference between Common Lisp and Scheme, I
| think I am more of a Scheme type (I prefer C over C++, I like Go
| more than Java, etc).
 
  | yw3410 wrote:
  | If you want live image reloading stick to a Lisp like SBCL
  | rather than Scheme.
  | 
  | If you care about startup times or FFI then don't pick Clojure.
  | 
  | YMMV between Racket and Guile; I would say Racket is better
  | insofar as the culture of documentation is really very good.
  | 
  | In practice, once you learn a Lisp, you can jump between them
  | without too much trouble.
 
    | mepian wrote:
    | SBCL is an implementation of Common Lisp, to be precise.
    | There is also CCL, or Clozure Common Lisp, which has the best
    | support for macOS.
 
  | potta_coffee wrote:
  | I tend to enjoy Scheme more than Common Lisp for just hacking
  | around, but I'm by no means an expert Lisp hacker. If you
  | decide to check out Scheme though, Chicken Scheme has been
  | awesome for me. It's very fast, compiles to C, had a ton of
  | great "eggs" (modules / packages), and seems to have a somewhat
  | friendly community with decent documentation.
 
  | bjoli wrote:
  | If you want batteries included and probably the nicest runtime
  | of all the lisps I would suggest racket.
  | 
  | I use guile since I think it more fun, but racket is a lot
  | easier if you want libraries around.
 
    | potta_coffee wrote:
    | Racket really is nice if you don't know what you want to do
    | and you want to be hacking on some code in less than five
    | minutes. I think I have Racket installed on every computer I
    | own.
 
  | Decabytes wrote:
  | I think the first question is scheme, or Common Lisp? The
  | answer depends on what your style is. After trying both I like
  | scheme better but I agonized over this decision for awhile,
  | though I enjoy sbcl and CLISP is dear to my heart.
  | 
  | In terms of schemes you have a wide variety to pick from.
  | Gerbil, Racket, Gambit, Chez, Chicken and many more. Racket is
  | a great all around choice. There are schemes that do various
  | things better than it, but it can do most things well. It has
  | two great edX courses to learn from (How to design simple data,
  | and how to design complex data) and is how I initially learned.
  | 
  | Chicken is one of my favorite schemes and is probably the one I
  | would use if I wasn't using Racket. It's so portable since it
  | compiles to C. I love the egg system, and I like the logo.
  | Gerbil is a performant systems level scheme. I remember there
  | being an article about someone in the Common Lisp community
  | considering jumping to Racket, but ending up on Gerbil Scheme
  | for what it's worth. I haven't used it
  | 
  | Chez is another super performant scheme, and is actually the
  | backend for the Racket programming language as seen in the
  | article above. It was only open sourced a few years ago so it
  | might be difficult to find solutions or get answers. I've used
  | Guile, I appreciate the mission, but I found it wanting. I've
  | heard people ship Gambit scheme apps onto IOS so if you are
  | looking at mobile apps that might be the way to go, I'm sure
  | Chicken could do that to. I have also heard that Gambits Cffi
  | is one of the best in the business, so if you need to interface
  | with a lot of C code that might be the way to go.
 
  | desine wrote:
  | I'm in a similar boat, and I am loving both Racket and Chicken
  | Scheme
 
  | fredrikholm wrote:
  | Racket if you're interested in a more "pure" lisp and/or
  | metaprogramming/DSLs.
  | 
  | Clojure if you're looking to use the language directly to solve
  | your problems (and my preferred Lisp).
 
| kogir wrote:
| If HN ends up moving to the CS runtime I'd love to hear a high
| level summary of what work it required and how the new runtime
| performs.
 
  | the-smug-one wrote:
  | You can run (what I suspect is an old version of) HN yourself:
  | http://arclanguage.org/install
 
| ampdepolymerase wrote:
| Congrats on the release. What Racket really needs right now is a
| proper dependency manager with support for constraint solving and
| allowing multiple conflicting transitive dependencies. Cargo and
| yarn are the gold standard for this. A lot of Lisps tend to
| overly focus on language and compiler features and neglect the
| more boring tooling and infrastructure that makes a programming
| language successful.
 
___________________________________________________________________
(page generated 2021-01-24 23:00 UTC)