Earlier quoted context omitted.
I just think functional based program is a bit harder to reason about for newbies. Programming did not click for me until the third class in the track where we learned object oriented design. Pretty common experience in the program as well, scared away a lot of people who took fundies 1 to explore the major or to minor in CS.
I took the class as a freshman, taught by Matthias, and then was a grader/lab helper the following year. (Oh gosh, this is all 15 years ago now) In my observation, it was those with previous java/c++ experience that couldn't let that go who struggled the most. Total newbies were a blank slate and more likely to 'get it', assuming they have the abilities needed to succeed in a CS program.
RacketCon 2022
11–20 of 26 posts
Re: RacketCon 2022
#12Earlier quoted context omitted.
I took the class as a freshman, taught by Matthias, and then was a grader/lab helper the following year. (Oh gosh, this is all 15 years ago now) In my observation, it was those with previous java/c++ experience that couldn't let that go who struggled the most. Total newbies were a blank slate and more likely to 'get it', assuming they have the abilities needed to succeed in a CS program.
I would say that was my experience as well. It actually took me a while to understand why I would use classes and objects.
I would also say Matthias is a legend and my instructors were nowhere near that level.
Re: RacketCon 2022
#13What’s special about Racket? What makes it stand out compared to Lisp/SBCL/Scheme? I recall a while back John Carmack tweeted about writing some project in Racket & it’s been vaguely on my radar lately.
https://docs.racket-lang.org/guide/languages.html
https://docs.racket-lang.org/guide/more-hash-lang.html
Example of a language-in-racket: https://github.com/soegaard/minipascal/tree/master
Re: RacketCon 2022
#14Funny to see anything Racket related rocket up to the front page of HN. My alma mater (Northeastern) is heavily involved in its development and the infamous intro CS class (Fundamentals of Computer Science 1 / Fundies 1) is taught in it. I only appreciated its beauty after I learned how to code deeper into the program. Horrible experience for anyone coming into it with no CS background.
Really? I'm a self taught programmer, and one the best MOOC courses I took was How to Code taught by Gregor Kiczales.[^1] I believe it's based on HtDP. I thought it was great experience. Although, I did no know a little Python coming in. [1]: https://www.edx.org/course/how-to-code-simple-data
It gets so much hate for not being a “traditional” Intro to CS course. And yet, learning about recursion so quickly and getting such a strong foundation with it is invaluable for figuring out new ways to solve problems. It’s one of the only courses that I personally think taught me something so fundamental that I still use all the time.
Gregor is also a gem of a human. I’m incredibly grateful I’ve been able to get to know and learn from him while at UBC.
Re: RacketCon 2022
#15What’s special about Racket? What makes it stand out compared to Lisp/SBCL/Scheme? I recall a while back John Carmack tweeted about writing some project in Racket & it’s been vaguely on my radar lately.
Lisps let you define macros. Racket lets you define languages. https://docs.racket-lang.org/guide/languages.html https://docs.racket-lang.org/guide/more-hash-lang.html Example of a language-in-racket: https://github.com/soegaard/minipascal/tree/master
Re: RacketCon 2022
#16Earlier quoted context omitted.
I just think functional based program is a bit harder to reason about for newbies. Programming did not click for me until the third class in the track where we learned object oriented design. Pretty common experience in the program as well, scared away a lot of people who took fundies 1 to explore the major or to minor in CS.
I took the class as a freshman, taught by Matthias, and then was a grader/lab helper the following year. (Oh gosh, this is all 15 years ago now) In my observation, it was those with previous java/c++ experience that couldn't let that go who struggled the most. Total newbies were a blank slate and more likely to 'get it', assuming they have the abilities needed to succeed in a CS program.
We had a bypass exam, which was more or less the final for the course. If you passed it, you got the credit. I don’t think a single person passed it while I was there.
Re: RacketCon 2022
#17What’s special about Racket? What makes it stand out compared to Lisp/SBCL/Scheme? I recall a while back John Carmack tweeted about writing some project in Racket & it’s been vaguely on my radar lately.
There are like 20 of additional languages as part of the distribution. Some are variants, like "Typed Racket" that is like racket with static types. Other languages that are more/completely different and/or almost unused and keep for compatibility or as a demo of some strange feature. And also there are many user defined languages that can be downloaded as packages.
The batteries are included. I had to make a program that uses IMAP, SMTP and web scrapping. In another I used support for gzip and xml. In both cases, and all of that was installed by default. And also there are many user defined libraries that can be downloaded as packages.
Racket is more immutable than a normal Scheme. For example, lists ("cons") are immutable, and that allows the generation of faster code. Anyway, you can load a library to create mutable lists/cons if you need them.
There is more separation of the normal code from the code in macros. So normal code does not affect the code inside macros. Some people like that, and some people dislike that. It's better to reason about macro expansions, but to share a function between normal code and a macro you must define it in another file.
It's quite fast in the Scheme family https://ecraven.github.io/r7rs-benchmarks/ Still like 5x slower than C, but 5x faster than vanilla Python. https://benchmarksgame-team.pages.debian.net/benchmarksgame/... YMMV
Re: RacketCon 2022
#18What’s special about Racket? What makes it stand out compared to Lisp/SBCL/Scheme? I recall a while back John Carmack tweeted about writing some project in Racket & it’s been vaguely on my radar lately.
Lisps let you define macros. Racket lets you define languages. https://docs.racket-lang.org/guide/languages.html https://docs.racket-lang.org/guide/more-hash-lang.html Example of a language-in-racket: https://github.com/soegaard/minipascal/tree/master
Re: RacketCon 2022
#19Earlier quoted context omitted.
Lisps let you define macros. Racket lets you define languages. https://docs.racket-lang.org/guide/languages.html https://docs.racket-lang.org/guide/more-hash-lang.html Example of a language-in-racket: https://github.com/soegaard/minipascal/tree/master
The worst possible programming scenario is usually being locked in to an internal hacked together proprietary language. I don't think trying to make a new language for every program is a good idea and is almost the polar opposite of what I would consider good programming.