4 ms·
We used Racket in the early 2000's at university, in the first year of CS. Everyone (including me) was appalled by it (we already knew C, Pascal, Java, etc.) A
by dark-star 4y ago
We used Racket in the early 2000's at university, in the first year of CS. Everyone (including me) was appalled by it (we already knew C, Pascal, Java, etc.)
After a few weeks it "clicked", and since then I've been a huge fan of Scheme. When other students went out of their way to write C-to-Scheme converters to keep coding their homework in C, if you fully embraced the language it felt something close to enlightenment ;-)
I used Scheme later to teach programming to absolute non-science people and they all simply "got" how it worked, even though they had previously struggled doing even very basic things in Excel Macros and the like.
Scheme is a perfect tool for learning how to program, and it is even useful later to write complex programs in production. Yes, C might be faster, and Python might have more hits on StackOverflow, but to really understand the concepts behind polymorphism, recursion, lazy evaluation, oop, etc. Scheme helps a lot with it's simple syntax.
- agumonkey 4y agoThe surface reduction really helps grasping ideas on many dimensions [0]. Also some scheme impl are probably running circles around python perf. [0] see python talks about not using classes for single method cases which are just fat closures. Yet it's still often used.
- rytill 4y agoCan you share an example of such a talk?
- agumonkey 4y agoiirc that's this talk https://www.youtube.com/watch?v=o9pEzgHorH0 https://www.youtube.com/watch?v=o9pEzgHorH0
- ModernMech 4y ago> Also some scheme impl are probably running circles around python perf. I have an abacus that has better perf than Python, so I’d say this is a safe bet :P
- mbrodersen 4y agoNot much of a challenge. Python is super slow when not simply calling C code.
- giraffe_lady 4y agoRacket was also my first exposure to lisp and I recoiled from it as well. Shortly after I ended up working in clojure for a while, which I felt "fixed" a lot of the things I thought I didn't like about racket. I still think the clojure syntax and immutability semantics are prettier than racket's but that's just my own vanity. I'm back on racket for the reasons mentioned in the article pretty much: good fundamental language, big and practical standard library, plus every freak academic CS thing you could ever want to play with available as well. The tooling and community also encourage you to think of problems in terms of DSLs, something it partially shares with ruby as well. That approach isn't always a good fit, or one you can get buy-in for, but when it works it works well for me.