><i>How many people reading this are 50 years old? Lisp is 50 years old — and for the most part, the lifespan of a programming language is closer to the lifespan of a dog than to that of a person. Only one other language (Fortran) is that old and still in use. Why has Lisp survived? Not because it’s useless. People still use it because you can write working code in Lisp way faster than you can in most so-called “practical” languages.</i><p>Sorry to burst this bubble, but tons of languages created in the same period or 10-15 years later are still in use.<p>Fortran, which he already mentioned. COBOL is still in use (much much more than any Lisp, just not in shiny new startups). Forth is still used here and there. C of course which is about 12 years younger but still around 40ish. Pascal is still used (in far greater numbers than Lisp). Heck, even BASIC still has tons of fans, either in VB disuise or in the the various commercial BASIC's around.<p>With this in mind, Lisp being "50 years old and still in use" is much less impressive -- since one other 50 year old, and several 40 and 30 year old languages are still in widespread use. We use lots of 3+ decades old languages - so, it's not like we only use "new" languages and Lisp is the exception.
This course is taught in python now; this post is about 4 years old.<p>Oh look, there's even a past thread about it <a href="https://news.ycombinator.com/item?id=3491142" rel="nofollow">https://news.ycombinator.com/item?id=3491142</a>
I think what makes Python unique and successful as a programming language is a strict pragmatism (rejection of any ideology) and rather conservative choices in features to add (that is, don't add everything that someone suggest, wait until we can see it's a good idea and it cannot be readily composed from existing parts).<p>Scheme, OTOH, has some ideological choices. The whole notion of programmable programming language that comes with Lisp tradition (which includes s-expressions). The emphasis on teaching and small libraries. Attempt to somewhat model mathematics in numerical tower. These design choices, while interesting, are going against practicality.<p>I am big fan of mathematics, Common Lisp, Haskell. There is so much beauty and elegance. And yet, when I need to get something done quickly, I will just use Python because it drops the mathematical purity without prejudice, just like a physicist working on an impossible problem.
I was actually enrolled in the first python version of this course. at that time it was taught by a google employee and not Brian Harvey (author of the OP, past professor of this course).<p>For me personally, the biggest benefit of python was the large amount of accessible resources online. There were multiple ways to learn something rather than banging my head against SICP.<p>Incidentally, writing a scheme interpreter was one of the last projects of the course.<p>----------<p>EDIT:<p>More from the OP about this topic<p><a href="https://www.cs.berkeley.edu/~bh/61a.html" rel="nofollow">https://www.cs.berkeley.edu/~bh/61a.html</a>
couple of quotes from the article:<p>It's SICP that I want to preserve, not Scheme.<p>For writing real-world code, what you want is aggressive optimization, and access to libraries for up-to-the-minute solutions to real-world problems.<p>and ofcourse, this mindset is _exactly_ right in the context of a course for teaching programming. as much as we might fantasize about it, computers are made of metal, not lambda calculus :)
There appears to be a website [1] for the self-paced, Scheme version of the course referenced (61AS) although it doesn't appear to be run as a MOOC formally. There's also a well-organised site for the scheduled, Python version [2] .<p>[1]: <a href="http://www.cs61as.org/" rel="nofollow">http://www.cs61as.org/</a><p>[2]: <a href="http://cs61a.org/" rel="nofollow">http://cs61a.org/</a>
> Rossum, the inventor of Python, hates Lisp, but he was dragged kicking and screaming to lambda<p>I'm not sure that's true, anyone have more details? Most people don't like the parens everywhere with lisp, but otherwise speak of it highly.<p>Edit: thanks for the links on lambda, read all of them. However, didn't see anything obvious written about lisp itself.
At Oxford University in the UK, students are taught exclusively Haskell in their first year - a language designed by a committee of some of the worlds best computer scientists. An institution that teaches Python under the banner of computer science, certainly loses prestige in my opinion.
What students cannot understand is that after passing the classic CS61A in Scheme, languages such as Python or Julia could be picked up in a few hours with occasional consulting of reference manual for particular details. Erlang in a couple of days.<p>Well, for Java (a dogmatic religion) one have to be thoroughly brainwashed, so there is CS61B for that.
Here is a video playlist of the first<p>Here are video playlists of all the CS courses at berkeley<p><a href="http://webcast.berkeley.edu/series.html#c,d,Computer_Science" rel="nofollow">http://webcast.berkeley.edu/series.html#c,d,Computer_Science</a><p>This is the most recent version of the CS61A course (Spring 2015)<p>2015 version:<p><a href="https://www.youtube.com/view_play_list?p=-XXv-cvA_iBM29DgZsGaQihJp8lLQn3J" rel="nofollow">https://www.youtube.com/view_play_list?p=-XXv-cvA_iBM29DgZsG...</a><p>first python version available online (Fall 2012)<p><a href="https://www.youtube.com/view_play_list?p=EC87898FD0A141069E" rel="nofollow">https://www.youtube.com/view_play_list?p=EC87898FD0A141069E</a><p>This is the last version of CS61 taught by Harvey (Fall 2010)<p><a href="https://www.youtube.com/view_play_list?p=EC6D76F0C99A731667" rel="nofollow">https://www.youtube.com/view_play_list?p=EC6D76F0C99A731667</a>
It's interesting that the PG article is cited. I've always had mixed feelings about it.<p>On the one hand I agree that wanting to use Lisp for a startup is probably a good indicator of technical strength (yes I'm saying that people that pick Lisp as their first language are smarter than the average).<p>On the other hand startup financing is all about the hyper growth potential and it would seem to me that basing your technology stack on Lisp could be quite the hinderance. The job market is already tough and finding people with a deep understanding of Lisp to start working on an (assumed) nontrivial Codebase isn't easy.<p>I guess Clojure and "allowing" (or migrating to) Java could be an option?
Then again some hypergrowth startups don't need many developers (WhatsApp)
Can't believe you air heads are seriously comparing Scheme to Python. Scheme is a nightmare, it's only good for academics who have nothing better to do and the 1% of your projects where functional programming may actually be beneficial to what you're trying to do.
As a developer, I tend to be now agnostic/indifferent towards programming languages. Essentially, you can use any programming language to do the job. The difference lies in developer's comfort zone and libraries.
For example, I prefer C# over VB.Net for ASP.NET/MVC backend. However, for several practical in-house projects, I've found Excel+VBA far quicker over IIS/ASP.NET project.
So, it all depends on the context, your audience and usability of the project. We should not let technologies drive our projects, but our business users and current trend patterns. For example, I'm seeing a lot of JavaScript frameworks being used to deliver responsive and device-independent web applications, such as SPA (Single Page Application).
Granted, it takes a while to learn a language's API, but essentially all of them do similar things. The advantages lies not in them alone, but in the entire framework/suite that it comes with.
We are living in times where knowing programming languages is not as important as knowing frameworks/libraries. There are heaps of them out there that require programmer to spend more time on writing integration code to "glue them" or configuring them. We no longer need to write the low-level mundane code, but focus on delivering high-quality, rich software applications.