John Machin <[EMAIL PROTECTED]> 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 today. 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. -- http://mail.python.org/mailman/listinfo/python-list