4 ms·
I recall going to a talk when I was at Northeastern, and at one point the speaker said something like, "But why would you create a new programming language just
by apeace 9y ago
I recall going to a talk when I was at Northeastern, and at one point the speaker said something like, "But why would you create a new programming language just to solve one problem?"
Matthias Felleisen (the guy in the video) interrupted him from the audience to respond, "I know several people who have done exactly that, and it worked out quite well for them!"
As he says in the video, Northeastern teaches students how to program in a systematic way, rather than by copy-paste-modify from other examples. They certainly teach a powerful way of thinking, and it has served me well over the years.
If anyone out there is reading this and is thinking about going to college for computer science, definitely check out Northeastern. I could not be more thankful that I went there.
You can read the freshman text book online: "How to Design Programs"[1].
[1] http://htdp.org/ http://htdp.org/
- relyio 9y agoI had a similar experience at Waterloo. The first semester of class we used Racket, HTDP (linked above) and even Haskell. I had already some experience with programming but it was like starting all over again to build solid foundations. If you are in the business of teaching introductory computer science material, I suggest you consider "How to design programs". Fun, good times. https://www.student.cs.uwaterloo.ca/~cs145/experienced.shtml https://www.student.cs.uwaterloo.ca/~cs145/experienced.shtml
- humanrebar 9y ago> "I know several people who have done exactly that, and it worked out quite well for them!" I've seen it done several times. It tends to work better in the short run than the long run compared to alternative approaches.
- discreteevent 9y agoThe problem is that the several people he knows are not the average architecture astronaut. It takes a lot of taste and experience to design a usable language.
- humanrebar 9y agoAnd it takes a lot of organizational dedication and work to support the language properly: training, documentation, packaging, regression testing (1), editor support, debugger support, libraries, and the list goes on. I doubt a single individual could do all that for more than a short while, so you need an organization that wants to do all that right for the sake of the language. Most companies won't really care that your language isn't in fedora upstream. (1) Lots of popular languages get the community to do their regression testing for them, but if you are the sole user of your language, you need to do all the testing yourself somehow.