What is different with Python ?

Roy Smith roy at panix.com
Sun Jun 12 14:11:47 CEST 2005

John Machin <sjmachin at lexicon.net> wrote:

> > I know I'm going out on a limb by asking this, but why do you think future 
> > software engineers should know about memory management?
> Perhaps we have a terminology problem here i.e. different meanings of 
> "software engineer". Philippe started talking about "CS" courses, 
> whereas you may be referring to people who have done an "IT" course or 
> achieved a certification in the use of app development tool X.

No, you've missed the point entirely.

No, the problem is that I'm out on the limb, and you're still comfortably 
standing on the ground leaning up against the trunk.  Climb up and come out 
on the limb with me.  Now, stop hugging the trunk and take a few steps out 
here with me.  Don't worry about how it's swaying, and whatever you do, 
don't look down.

The point I was trying to make was that as computer science progresses, 
stuff that was really important to know a lot about becomes more and more 
taken for granted.  This is how we make progress.

I used to worry about memory busses at the milivolt and microsecond level.  
I knew about termination impedances and wired-OR logic, and power budgets 
and all that good stuff.  Today all I know about memory is you go to 
www.crucial.com, type in your Visa card number, and the nice UPS guy shows 
up with some SIMMs in a few days.

I expect that's all most current CS students know as well.  Is that bad?  
Is their education somehow lacking because they don't understand why 
"memory bus" and "transmission line" belong in the same sentence?  Not at 
all.  All that's happened is that very important stuff has become so 
standardized that they don't have to worry about it any more and can spend 
their time and energy thinking about other problems that need to be solved 

There are lots of really important, hard, theoretical problems that today's 
CS majors need to be solving.  User interfaces for the most part still 
suck.  Self-configuring and self-healing high speed networks on a global 
scale.  AI hasn't really progressed in 30 years.  Computer vision and 
speech.  Robotics.  Cryptography and security.  And what about flying cars?

Just like you can't even begin to think about building today's GUI-driven 
desktop applications if you're still worrying about individual logic gates, 
you can't begin to think about solving some of these really hard problems 
(and others we haven't even imagined) if you're still worrying about memory 
buffer reference counting and garbage collection.  Yesterday's research 
projects are today's utilities and tomorrow's historical footnotes.

More information about the Python-list mailing list