4 ms·
> I think MIT people had their reasons for "rethinking" and trying out Java, and then Python. One of the factors I recall was a perceived changing nature of CS
by nikofeyn 7y ago
> I think MIT people had their reasons for "rethinking" and trying out Java, and then Python. One of the factors I recall was a perceived changing nature of CS practice (moving to assembling from components, rather than understanding&building from the ground up), but I can't properly represent all of the rationales here.
i really don't fully understand their rationale. as i understand it, just at the time that abelson and sussman grew tired of teaching the course, mit felt the need to restructure their curriculum to meet modern demands and changes in software engineering. of course, things have transitioned from building things up to "poking", but i feel many of the principles of sicp remain unchanged. but even ignoring that, i feel mit made a crucial mistake, in my opinion.
mit is a research and education institute. as a programming language, python is not uniquely suitable for computer science research other than its machine learning and data science library support. i feel it is also not suitable for education either, especially not in the same way a lisp or scheme is. python is what is given to you and thus makes it difficult to explore and implement other paradigms of programming and other ideas in the same language like lisp and scheme can do, and certainly not in the way racket can. now, right next door to mit is northeastern, one of the major racket hubs. racket is a re-envisioned scheme and programming language. it is very much suited to computer science research, building languages for teaching and education (for example, pyret was originally implemented as a racket language), and comes with plenty of library support for general purpose programming. so other than having a lack of libraries for machine learning, data science, and scientific computing, it beats python in every category of comparison. and mit's own language, julia, takes care of those missing components. there's no reason why mit couldn't have developed libraries and teaching packages in racket for their courses.
so imagine if mit had chosen racket as their language. that would bolster racket development and popularity. it could have created a bridge between northeastern and mit and would have taught racket to the thousands of mit students and online students. it could have been a huge leap for racket in terms of popularity and use. and mit could have grown to be an additional hub for racket research and development right next door. and also, racket is an evolution of the scheme language, which would have been a perfect segue from the old curriculum.
but no, mit chose a language that was invented over a period of a couple weeks by a stubborn guy who wanted to replace perl. i strongly suspect that there were political and monetary reasons to choose python. and mit probably has a chip on its shoulder, like it does with everything. mit has also become a university driven by the need to raise money, and i think it has gone all in on taking all the machine learning and "ai" money it can. that later point is probably the real reason.
- neilv 7y agoI agree that SICP is valuable, and years ago, I tried to help make it accessible to people on low-powered computers [1], and to help preserve software support for it [2]. I don't know all the rationale for MIT's moves to other things, but the decision we can see seems plausible to me. (Python is a lingua franca at the moment, popular in ML and data science, still somewhat popular in Web, and very easy to pick up. Even language-nerd me wrote some production Python code that moves large amounts of important data around.) I agree that modern Scheme (perhaps starting with Racket) seems like a great platform for much of CS-ish education, and for a lot of research and development. I also agree that putting substantial MIT resources behind building out Scheme/Racket seems like it would've been huge. Maybe that will happen. A lot of MIT behavior emerges from that of individual faculty members and senior research staff, who have some degrees of autonomy. MIT has also prided itself on being big on "experiments", and not having rules that might get in the way of someone exploring ideas. If you have the opportunity, you can try to use that to help make things happen. [1] https://www.neilvandyke.org/sicp-texi/ https://www.neilvandyke.org/sicp-texi/ [2] https://pkgs.racket-lang.org/package/sicp https://pkgs.racket-lang.org/package/sicp