Re: RE: [Edu-sig] RE: Integration correction
On Wed, Mar 30, 2005 at 07:15:58AM -0500, Arthur wrote:
What I can't and don't understand - as a 'radial" - was why those who purport to most appreciate Python as it is would sign in mass unto an endeavor which could foreseeable alter what it is and how it is used in dramatic ways, and do so irretrievably.
I'll try and answer that one. When I learned Python version 1.5.2 back in March of 1999, six years ago, I already had a lot of experience programming in C, C++, Pascal, Perl, etc. Learning Python made me a better programmer. Object-oriented programming concepts that were obscure in C++ became so much clearer in Python, with it's "everything is an object" and "first-class functions and classes." I took that philosophy and began writing better C++ code. But it didn't stop there. After I thoroughly learned Python 1.5.2, it evolved. It got generators and iterators, and I learned those too. By this time I was programming C# and Java. The new things I learned from Python 2.2+ made me a better C# and Java programmer. In 2004 I started using list comprehensions and generator expressions and the more accessible features of new-style classes, including properties and cooperative superclasses. All of these things made my life better. In 2005 (so far) I've now understood descriptors and how they can help me. Metaclasses are next on my list. And with every mind-expanding step I've become a better Java programmer. Even though Java doesn't have Python's features, those "patterns", when learned first in Python, really help. I feel like I'm water skiing, and Python is an intellectual power-boat towing me along. Perhaps you're saying "the boat's going too fast, I want to get off". Well, you may have that luxury, but I don't. I make my *living* doing this stuff. My wife and four hungry children depend on me keeping up with the world-class state of the art. If I were to decide that I've had enough, my brain is full, then I might as well find another line of work. Certainly I have an interest in Python code remaining accessible to entry-level programmers. I am not an elitist. But advanced Python features have made advanced programming accessible to *me*, when otherwise I might not have gotten into it, due to lack of time and perceived barriers to entry. I believe Python offers a lot to programmers at every level. The good old Python 1.5.2 feature set is still great for beginners, and that's the feature set I teach to beginners. But there is no limit to how far you can go in Python. If I taught beginners using, say, Visual Basic, I'm putting a ceiling over their heads. Python scales conceptually. And that's my 2 cents. David H.
If I can toss in one (okay, two) more thought/s (and then I'll go back to llurking again), I particularly remember a java exercise in which the instructor gave us a handful of (intentionally!) black-box functions along with the arguments that they take and the outputs that they gave. We were to string these functions together into a working pong program. We were able to do this (in java! after two weeks!--could do it in Python on the second day then) fairly successfully, and so we were happy because we made a working program without knowing much. In the same way, I often use the random library, but haven't even vaguely considered looking at its inner mechanics (although my students claim, when I use a short routine to pick who goes to the board, that they feel that it favors particular spots in the list of students...I think that that's just their paranoia speaking, but I probably should examine the code at some point anyway). For me to understand each library...for that matter, have you ever made the mistake of hitting "step" from the IDLE debugger on a print line? There's already hella stuff under the hood. Finally, I'll invoke the mantra (again from math education) that all math (/coding) is either trivial or impossible. Problems (or ideas or structures) begin as impossible; then, once comprehension is attained, they are trivial. If it makes you feel better, Art, I blinked and so don't know what this decorator thing is of which you speak (maybe it was in one of those annoyingly long threads that I archived without reading). Don't worry--I'll look up decorators myself--but that you know what a decorator is puts you on a higher level of comprehension than at least one person. But again, the beauty of oop is that you don't need to look under the hood until you actually want to. But that the ability is (theoretically) there once you do have the desire. I fear that I may be contributing to one of those annoyingly long threads that I archive without reading. Oops. Sorry. /out On Wed, 30 Mar 2005 09:11:18 -0500, David Handy <david@handysoftware.com> wrote:
On Wed, Mar 30, 2005 at 07:15:58AM -0500, Arthur wrote:
What I can't and don't understand - as a 'radial" - was why those who purport to most appreciate Python as it is would sign in mass unto an endeavor which could foreseeable alter what it is and how it is used in dramatic ways, and do so irretrievably.
I'll try and answer that one.
When I learned Python version 1.5.2 back in March of 1999, six years ago, I already had a lot of experience programming in C, C++, Pascal, Perl, etc.
Learning Python made me a better programmer. Object-oriented programming concepts that were obscure in C++ became so much clearer in Python, with it's "everything is an object" and "first-class functions and classes." I took that philosophy and began writing better C++ code.
But it didn't stop there. After I thoroughly learned Python 1.5.2, it evolved. It got generators and iterators, and I learned those too. By this time I was programming C# and Java. The new things I learned from Python 2.2+ made me a better C# and Java programmer.
In 2004 I started using list comprehensions and generator expressions and the more accessible features of new-style classes, including properties and cooperative superclasses. All of these things made my life better.
In 2005 (so far) I've now understood descriptors and how they can help me. Metaclasses are next on my list. And with every mind-expanding step I've become a better Java programmer. Even though Java doesn't have Python's features, those "patterns", when learned first in Python, really help.
I feel like I'm water skiing, and Python is an intellectual power-boat towing me along.
Perhaps you're saying "the boat's going too fast, I want to get off". Well, you may have that luxury, but I don't. I make my *living* doing this stuff. My wife and four hungry children depend on me keeping up with the world-class state of the art. If I were to decide that I've had enough, my brain is full, then I might as well find another line of work.
Certainly I have an interest in Python code remaining accessible to entry-level programmers. I am not an elitist. But advanced Python features have made advanced programming accessible to *me*, when otherwise I might not have gotten into it, due to lack of time and perceived barriers to entry.
I believe Python offers a lot to programmers at every level. The good old Python 1.5.2 feature set is still great for beginners, and that's the feature set I teach to beginners. But there is no limit to how far you can go in Python. If I taught beginners using, say, Visual Basic, I'm putting a ceiling over their heads. Python scales conceptually.
And that's my 2 cents. David H. _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
participants (2)
-
David Handy
-
Lloyd Hugh Allen