Instead of deciding between Python or Lisp for a programming intro course...What about an intro course that uses *BOTH*? Good idea?

zipher dreamingforward at gmail.com
Tue May 12 18:00:05 EDT 2015


On Tuesday, May 12, 2015 at 12:57:48 PM UTC-5, Rustom Mody wrote:
> On Tuesday, May 12, 2015 at 10:45:39 PM UTC+5:30, Stefan Ram wrote:
> > Rob Gaddi writes:
> > >Is that a true array or a linked list?  "It's a high level language, 
> > >that's just an implementation detail." Yes, but it's an implementation 
> > >detail that determines whether even the simple act of looking up element 
> > >n is O(1) or O(n).
> > 
> >   The complexity is given in the documentation of high-level languages.
> > 
> >   For example, from the documentation of the Java standard library:
> > 
> >       »This implementation provides constant-time performance
> >       for the basic operations (get and put),« (java.util.HashMap)
> > 
> >   C++:
> > 
> >       Section 23.2.1 specifies the complexity, such as »compile time«,
> >       »constant«, »linear« for container operations.
> > 
> >   But the abstraction mechanisms (templates, polymorphism)
> >   often allow one to change the implementation quite easily.
> 
> This is regarded in some circles as one of the big open problems in CS
> https://existentialtype.wordpress.com/2014/09/28/structure-and-efficiency-of-computer-programs/
> [and the position paper therein]
> viz how to integrate the elegance of high-level languages
> with the precision of complexity analysis of machine language

The answer is you don't.  You *don't* because you can't.  And you *can't* because you don't know what you want to do yet.  

That is why you have very high-level languages that allow you to rapidly prototype ideas, test them, and then, depending all the other constraints, move them to lower-level language implementations.

So don't try it.  Everyone gets it wrong and now we have a plethora of languages which all do the same thing, without really knowing what they want as an overarching design or purpose.

Mark



More information about the Python-list mailing list