On Tue, 12 May 2015 08:11:25 -0700, zipher wrote: > On Monday, May 11, 2015 at 9:04:24 PM UTC-5, Steven D'Aprano wrote: >> On Tue, 12 May 2015 05:01 am, beliav...@aol.com wrote: >> >> > Yale has taken the unusual step of outsourcing its introductory CS >> > class to Harvard, which uses C as the main language in its CS50 >> > class. >> >> And another generation of new programmers will be irreversibly damaged >> by exposure to C... > > Come on, C is perfect for computer engineering students. For CS > students, it's of mixed value.
And that's how you train CS students to write inefficient code that takes orders of magnitude longer to run than it should. 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). C teaches you the language of the computer. Understanding it allows you to grasp what your high-level code is actually doing, and why and when a list (array) is more efficient than a dict (hashtable). Because you've written a dynamically resizing list, and learned the perils of having to realloc() as the size grows. And you've written a hashtable, and understand the expense of the hashing function, and the tradeoffs between wasted memory and having to wade at O(n) pace through a linked list of collision candidates. A firm grasp of C will make you a better programmer in any language, even if you haven't written a line of it in 20 years. It's the ability to read a map. A lack of C is the person blindly following their GPS and hoping for the best. -- Rob Gaddi, Highland Technology -- www.highlandtechnology.com Email address domain is currently out of order. See above to fix. -- https://mail.python.org/mailman/listinfo/python-list