4 ms·
My son was required to use Racket in his course work for Computer Engineering at CalPoly. I had never heard of it before. I recall one of the profs was involved
by cek 6y ago
My son was required to use Racket in his course work for Computer Engineering at CalPoly. I had never heard of it before. I recall one of the profs was involved. We joked that it all sounded like a racket.
He's now a rising-star (proud/biased papa here) as an SDE at Amazon. So maybe it's a good teaching language after all.
- ska 6y agoRacket is an evolution/rebranding of a scheme variant (Dr Scheme) - or rather family of them - specifically designed for pedagogy. It's got a pretty good multiple decade history in that space, fwiw.
- rscho 6y agoThe community has strong emphasis on teaching. I'm just a hobbyist, but transitioning from python allowed me to improve much faster and discover new horizons.
- linguae 6y agoI'm also a Cal Poly graduate (computer science) who learned Racket (called PLT Scheme back when I was a Cal Poly student) from Professor John Clements (https://www.brinckerhoff.org https://www.brinckerhoff.org), who was involved with PLT Scheme. We used the textbook Programming Languages: Application and Interpretation, which can be found at http://cs.brown.edu/courses/cs173/2012/book/ http://cs.brown.edu/courses/cs173/2012/book/. I'm sorry to say that at the time I took the course, I didn't appreciate it. I loved coding in C and I thought Scheme was weird. But after taking programming languages from Professor Clements, I then took his compilers course. Our first assignment was to implement a Scheme interpreter in a week. We were allowed to use any programming language we wanted. Since I was tired of Scheme, my lab partner and I decided to implement the interpreter in C++. Big mistake....we spent 40 hours on that project, building complex class inheritance hierarchies and not being able to take advantage of many of the features that made writing an interpreter in Scheme a relative breeze. I never complained about writing code in Scheme again. When I moved on to UC Santa Cruz for grad school, my experience with Professor Clements' programming languages and compilers courses made my required graduate programming language course with type theory expert Cormac Flanagan a relatively smooth experience; going from Scheme to Haskell wasn't too difficult. Sometime afterwards I got bit very hard by the programming languages bug. I'm now working on a side project in Common Lisp, and interestingly enough, I'm actually teaching a programming language paradigms course at San Jose State University this semester where I'll be teaching my students Scheme, Prolog, and Smalltalk, as well as other goodies such as the lambda calculus. All of this would have not been possible had I not been taught Scheme and functional programming by Professor John Clements. If he is reading this, I thank him immensely for the impact his courses have had on my career. I just wish I had appreciated the courses back when I took them, but over a decade later, I strongly appreciate them, and they're among the most valuable courses I had at Cal Poly.
- sthatipamala 6y agoThe first programming language I learned was Scheme, as taught in CS61A at UC Berkeley. It opened my eyes to the beauty of programming. I had classmates who blew it off as a useless course because they already knew Java and PHP. It was their loss; they don't have the same fascination with computer science and I can directly attribute it to not getting exposed to Scheme/Lisp.
- outworlder 6y agoIt is very difficult to get excited when your first exposure to a language consists in "Please ignore this public static void main() {} business, all this will become clear by the end of the course. Maybe. If we have time to cover it all. Just copy and paste for now. Don't forget the semicolons". Also all the configuring of the development environment. IDEs, runtimes and the like. Scheme runtimes tend to be both very lightweight, run anywhere, and they give you a REPL. So you can immediately start experimenting. Things like Javascript and Python you give you some of that experience out of the box too (and Python gives you more libraries) - but you'll need to learn a bunch of syntax first. And most of that syntax is arbitrary and not relevant to the problems being solved at all. Scheme and Lisp have a strong mathematical background so, just like math, they end up being elegant.
- outworlder 6y agoIt is a fantastic teaching language. So it something like Python. Except it does have very little syntax to get in the way. Close to zero syntax, in fact. You can spend 5 minutes on it, then you are off the races. Advanced concepts (like recursion) are natural. Even more advanced concepts (like macros) are easy. You get the understanding that code is data. Also due to that you also get 'configuration' for your application for free. It is also a great foundation to build on. So it doesn't have OOP by default? Build your system. It will work just the same as if it were built in the language. Racket is actually notorious for being a foundation for other languages to be built upon. This very site is (or was?) built using Arc. https://en.wikipedia.org/wiki/Arc_(programming_language) https://en.wikipedia.org/wiki/Arc_(programming_language)