Live data from Hacker News

Why MIT switched from Scheme to Python

wisdomandwonder.com

61–70 of 140 posts

Re: Why MIT switched from Scheme to Python

#61
post #33

Earlier quoted context omitted.

People often say that Java has great libraries, but is it true? AWT is crufty and ugly. Maybe there are impressive XML parsers (Xerxes is 188,000 lines of Java!), but I don't want those. Numerical libraries seem bad. So what is the library that might convince me to use Java for something?

I don't know why people even bother with XML when it is so much easier to write S-Expression generators and parsers.

I beleive actually that s-expression are going to come back. Clojure, Arc, R6RS - these are harbingers of the return, I think.

Re: Why MIT switched from Scheme to Python

#62
post #33

I wonder, if the switch had been made now, it they would have switched to Clojure instead of Python. It's a lot closer to Scheme, and its connection to the JVM gives it a lot of practical power. Does anyone have any thoughts on this?

People often say that Java has great libraries, but is it true? AWT is crufty and ugly. Maybe there are impressive XML parsers (Xerxes is 188,000 lines of Java!), but I don't want those. Numerical libraries seem bad. So what is the library that might convince me to use Java for something?

Java's JIT - this part is really interesting.

Re: Why MIT switched from Scheme to Python

#63
It it just me who is seeing a cowardly surrender to cultural decay here? From the renowned Sussman, no less.

The glorious MIT of the 1980s and prior appears to be dead. Erased, in fact, without a trace. Consider the following:

http://mitpress.mit.edu/catalog/browse/browse.asp?btype=2

These are the latest releases from MIT press. Among them you will find nothing remotely like SICP, but plenty of postmodernist/related pablum.

"You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts." Is this not an atrocity, to be fought to the last bullet? Is this not an argument for declaring all existing software obsolete and starting from scratch? Why are we - even luminaries like Sussman - so willing to give up on the future without a fight?

As argued in some of PG's essays, in order for creativity to bear fruit it is not enough for a given individual to possess a creative mind. The culture has to be hospitable to creativity. And there are processes which come close to stamping out creativity without any overt or deliberate suppression involved. Specifically, a transition to a medium where one cannot get reliable, understandable "small parts" having predictable behavior.

Take note: http://xkcd.com/298/

Programmers have indeed created a universe where "science doesn't work." Learning where the permanent bugs and workarounds are inside a phonebook-length API teaches you nothing. It is anti-knowledge. Where your mind could have instead held something lastingly useful or truly beautiful, there is now garbage.

There is no longer a "what you see is all there is" Commodore 64 for kids to play with:

http://www.loper-os.org/?p=16

No one is working on, or sees the need for a replacement. This is just as well, considering as one would have to start from bare silicon - and avoid the use of design tools built on the decaying crud of the past. Only a raving lunatic would dare contemplate it...

Outside of programming: Linus Pauling developed an interest in chemistry by experimenting incessantly throughout his childhood. Today, he would have been imprisoned:

http://memepunks.blogspot.com/2006/06/americas-war-on-scienc...

The new generation will have no Linus Pauling, unless the Third World - where one might still purchase a beaker without a license - supplies us with one. Likewise, we will see very few truly creative programmers. What creativity can there be when your medium is shit mixed with sawdust?

Re: Why MIT switched from Scheme to Python

#64
post #22

Earlier quoted context omitted.

My concern is that "practicality" is often just a code word for "resembles Java or whatever else I was comfortable with so I can continue on doing what I've always done before." (With the result that the student learns less than if they were required to do something truly different.) Reminds me of this post that came up on HN not too long ago: http://funcall.blogspot.com/2009/03/not-lisp-again.html

When it's not a code word for that it's often a code word for something bad. Not always, but often. People defending what's right can say one should do it because it's right. But people defending something they know is basically wrong can't say one should do it because it's wrong. So they look around for another word, and "practical" is usually the first they find.

We're talking about the user interface to computational machines. There is no abstract "right" or "wrong" and no context-insensitive "practical" or "impractical."

He wanted to do a course about robots, and according to him, the interface to the robots was Python, which was otherwise an adequate language.

If you want to make a case to the contrary, it should be rooted in the specifics of the situation.

Re: Why MIT switched from Scheme to Python

#65
post #19

Earlier quoted context omitted.

I think here, "practicality" means "has a library for controlling robots". Also a good numeric library, a good matlab-like graphing library, good 3D graphics, good real-time performance, easy C++ embedding, etc. Rather than complaining about how everyone else is a bonehead for not using Lisp, write some libraries to make it useful for more things in the real world. Also, Python does pretty well for real-time control.…

Libraries aren't the issue. I use Chicken Scheme for a few things, which has plenty of libraries and a fantastic package system called eggs. Sure, other languages like Perl and Python have more libraries now, but that's not what made them popular. What made them popular was the design of the core languages. I started using Ruby because it was faster to type and easier to remember how to do things than Perl, not becau…

> Libraries aren't the issue

You say libraries aren't the issue, but the discussion is about a blog pst that said: "And why Python, then? Well, said Sussman, it probably just had a library already implemented for the robotics interface, that was all."

I'm sure your experience is grounded in a general reality. But the post you disagreed with was about a specific case: i.e. the one described in the blog post.

Re: Why MIT switched from Scheme to Python

#66
post #53
post #42

Earlier quoted context omitted.

"The" library is which ever squirrelly database, file format, app, etc. your next project needs to talk to which doesn't have bindings for your favorite language. You compromise on Java to avoid writing that by hand and use a JVM language to avoid the pain of actually using Java.

Such as??? Can anyone point to a format I might want to use that has a Java library but no C++ or Python library?

A few years ago, I took over maintenance of a Windows program that depended upon a Java component wrapped in COM. With Sun and Microsoft at war, that seemed a bit risky to me.

I asked: "why is this Java component in the Windows client app?" The answer was that the server was also implemented in Java and the SOAP libraries were compatible, whereas Microsoft's and Java's were not (at that time).

I nearly choked: they chose a "standard" like SOAP and then re-standardized on a particular library (client and server components of it) "for compatibility."

So to bring this digression back to relevance, I'll say this: if you already have Java code around, it will be easiest to talk to it from Java. And since Java is the new COBOL, there is a bunch of Java floating around. (but if you need a Java client to talk to a Java server using a "standard" protocol then something is seriously awry somewhere)

Re: Why MIT switched from Scheme to Python

#67
I'm a sophomore at MIT and took 6.01 last term.

I think a lot of people don't understand the goals of this course. 6.01 is not meant to be a crash-course in writing code. (6.005, know as "java deathlab" is for that.) Likewise, it's not designed to reveal the deep inner workings of computers. Instead, it's mean to be an introduction in how to /think/ with computers. It's conceptually more high-level, and often focuses on the "why" rather than the "what." We learn how to approach problems and look at the best ways to solve them using logic and code.

Python is visually clear, has great documentation, is well maintained, and has an active community of developers. I don't understand the outrage in switching. I didn't learn to drive in an obscure European sportscar; I learned in my mom's minivan. Python is like my mom's minivan, but with better documentation.

I don't think the caliber of CS grads coming out of MIT in the next few years will change because they know Python, although it'd be an interesting thing to look at.

#

Here's the course website, if you'd like to look closer: http://mit.edu/6.01/mercurial/spring09/www/index.html

Re: Why MIT switched from Scheme to Python

#68
post #61

Earlier quoted context omitted.

I don't know why people even bother with XML when it is so much easier to write S-Expression generators and parsers.

I beleive actually that s-expression are going to come back. Clojure, Arc, R6RS - these are harbingers of the return, I think.

JSON is much more popular than s-expressions, and not just accidentally. Explicit, compact syntax for both lists and key-value pairs is The Right Thing in a language like this.

   {
       "x": [
           {
               "y": "a",
               "z": 23,
               "q": [
                   54,
                   32,
                   45
                ]
            }
        ],
        "r": 43
    }

Re: Why MIT switched from Scheme to Python

#69
post #4

Blog spam. It is a huge quote from this: http://wingolog.org/archives/2009/03/24/international-lisp-c...

I'm a PhD student at MIT and arrived to my office on Monday to find the International Lisp Conference had set up shop downstairs.

Let me just tell you.. I've never seen so many bearded people in one place!

Re: Why MIT switched from Scheme to Python

#70
post #61

Earlier quoted context omitted.

I beleive actually that s-expression are going to come back. Clojure, Arc, R6RS - these are harbingers of the return, I think.

JSON is much more popular than s-expressions, and not just accidentally. Explicit, compact syntax for both lists and key-value pairs is The Right Thing in a language like this. { "x": [ { "y": "a", "z": 23, "q": [ 54, 32, 45 ] } ], "r": 43 }

Why can't we keep the indents and drop the parens?
Post reply on HN