8 ms·
Racket v8.3
- astrophysics 5y agoRacket looks interesting. I am having trouble choosing between Racket and GNU Guile.
- bigdict 5y agoTry Chicken as well.
- deleted 5y ago[deleted]
- melling 5y agoRacket probably has much better performance. https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/racket-java.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- bjoli 5y agoNot much better. About 2x for many things, but generally higher memory usage. Guile has a better multi-threading story with guile-fibers. I went from racket to guile because I find guile more fun. For production things I would probably use racket (or even better Chez isbthat was an option), but guile is what I use to keep my soul.
- rookderby 5y agoRacket is awesome. If its your first lisp, then I reccomend working through a book. I had a great time with https://nostarch.com/realmofracket.htm https://nostarch.com/realmofracket.htm
- neilv 5y agoIf you want a Scheme that's embedded in another program as an extension language, or to make software that's distributed normally as part of a Linux or BSD distro... probably Guile. For most other practical purposes... probably Racket. There are a few other options I still keep in mind, including Gambit and Chicken. (Actually, lately, the "Lisp" I'm using is Python. Python is usually tolerable, and the huge ecosystem and easy employability are nice in some ways. But Lisp technical sophistication and community signal:noise ratio tend to increase with the percentage of parentheses. Not because parentheses are magical, though they are-- but because the parentheses Lisps are built on better original foundations, and then disproportionately attract people on technical merits rather than marketability.)
- vindarel 5y agoWhat's magical is the very much interactive, image-based development, type warnings at compile time (function per function with a keystroke), speed, building binaries, stability… Python doesn't have that :/ (https://github.com/bendudson/py4cl/ https://github.com/bendudson/py4cl/ to use python libs from CL!)
- boppo1 5y agoI'm a trash python programmer. I duct tape tutorials and stack exchange answers together. I started working through SICP (stuck on pascal's triangle atm; don't help tho) to address this. Do you think that's a reasonable way to become a more confident and employable programmer?
- lkrubner 5y agoLearning Lisp gave me perspective on the other computer programming languages that I worked with. Having done a few major projects with Clojure gave me some practical sense of what the advantages might be, especially when combined with Java's broad ecosystem. Above all, it gave me distance from the cult of Object Oriented Programming. It's important to have some perspective about the dominant paradigms of programming. It was only when I had that perspective that I ended up writing what became my most popular essay, "Object Oriented Programming Is An Expensive Disaster Which Must End": http://www.smashcompany.com/technology/object-oriented-programming-is-an-expensive-disaster-which-must-end http://www.smashcompany.com/technology/object-oriented-progr...
- mumblemumble 5y agoThat's an interesting position to share in the context of a discussion about Racket, since Racket embraces object-oriented programming. It's not purely OO, of course, but quite a few core libraries rely on its OOP features.
- neilv 5y agoThat might be for historical reasons. (IIRC, mostly, OO was the GUI libraries, and what's layered directly on top of those.) OO is no longer as en vogue, in either Racket or the broader field. In Racket, you'll see a lot of code using `struct`, and without traditional gratuitous use of object classes for everything. https://docs.racket-lang.org/guide/define-struct.html https://docs.racket-lang.org/guide/define-struct.html > New datatypes are normally created with the struct form, which is the topic of this chapter. The class-based object system, which we defer to Classes and Objects, offers an alternate mechanism for creating new datatypes, but even classes and objects are implemented in terms of structure types.
- all_of_them 5y agoIf you need Windows support then Racket is the best option.
- Decabytes 5y agoI’d say if you are developing on Windows to go with Racket. I’ve been unsuccessful in getting Guile running on Win10, and I don’t feel like compiling from source with minGW. Not saying it’s impossible but when you look at their download page there is no instructions for windows
- pjmlp 5y agoIf you want a Scheme with a development experience close to the Lisp Machines, pick Racket.
- alexshendi 5y agoDevelopment experience close to Lisp Machines??? Racket: From the people who brought you the quote: "the toplevel is hopeless".
- bjoli 5y agoThe racket top-level is pretty half-assed compared to something like SBCL. Compared to most schemes it is about 1/4 assed. There is good reason for it in the racket context, but if you want a lisp machine you should pick something else.
- alberth 5y agoDoesn’t HN run on Racket
- DblPlusUngood 5y agoYes.
- iamcreasy 5y agoI think it uses Arc which is written using Racket. [1] https://en.wikipedia.org/wiki/Arc_(programming_language) https://en.wikipedia.org/wiki/Arc_(programming_language)
- e12e 5y agoSee also "news" from the "anarki" fork of Arc: https://github.com/arclanguage/anarki/tree/master/apps/news https://github.com/arclanguage/anarki/tree/master/apps/news
- BoysenberryPi 5y agoI toyed with Racket a while ago and enjoyed it but is there any practical application for it or would I just be using it for fun?
- evdubs 5y agoI've been able to use Racket to build an option trading application (https://github.com/evdubs/renegade-way https://github.com/evdubs/renegade-way). The included GUI and Plot libraries have been really nice to use. With Racket, I miss having real threads and rich "batteries included" data structures as you'd find in Java and C#.
- samth 5y agoWhich data structures do you miss most?
- evdubs 5y agoSorted data structures :) [Balancing] Binary Search Trees as a standard that is available in many languages; B-Trees if memory locality is important; Skip Lists if there is data structure sharing between real threads and something like a Concurrent Balancing Binary Search Tree would have too much lock contention. I have looked over the `data-red-black` library; I wish its interface was richer with `map`, `filter`, retrieving a range of values, partitioning/sliding over key-value pairs, and all the other generic sequence operations that hopefully Rhombus can enable for different underlying data structures.
- soegaard 5y agoSkip Lists: https://docs.racket-lang.org/data/skip-list.html https://docs.racket-lang.org/data/skip-list.html These functional red/black-trees have `map` and `filter`: https://docs.racket-lang.org/functional-data-structures/Red-Black_Trees.html https://docs.racket-lang.org/functional-data-structures/Red-... AVL-trees: https://docs.racket-lang.org/avl/index.html https://docs.racket-lang.org/avl/index.html I would be surprised if someone hasn't made a B-tree implementation already. As bonus: Another red/black-tree implementation (imperative): https://github.com/soegaard/little-helper/blob/master/planet/galore.plt/2/2/private/raw-red-black-tree-set.scm https://github.com/soegaard/little-helper/blob/master/planet...
- elias94 5y agoInteresting comparison about most common Lisp dialects https://www.reddit.com/r/lisp/comments/qlcza4/comment/hj22i7n/?utm_source=share&utm_medium=web2x&context=3 https://www.reddit.com/r/lisp/comments/qlcza4/comment/hj22i7...
- bjoli 5y agoThat speed comparison is invalid. The chez scheme sieve is awful, whereas the sbcl one is fine.
- Decabytes 5y agoRacketcon 2021 [1] is going on right now as well for those interested 1. https://youtu.be/1mOhCuSJI60 https://youtu.be/1mOhCuSJI60
- pjmlp 5y agoThanks!