C
Chris
I was first exposed to Python in '94-95 by a fellow comp sci student.
After a brief "play time" I discarded it was too radical. I *hated*
the indentation == block of code theme. Besides, Forth was the One
True Language(tm).
Fast forward 6-7 years of real world programming in VB, C, NATURAL (a
COBAL derived quasi 4GL), PHP, Perl and others. Programming wan't my
main job, but I did it a bunch. Never wrote anything beyond toys in
Forth, and didn't really play with it after school...
I was working for a small ISP and needed to revise some Perl scripts I
had written about a year before. After 4 days of trying to figure out
how I wrote the things in the first place I just rewrote them from
scratch. There must be a better way!
I forget exactly how, but Python was brought back to my attention.
After having dealt with the real world of braces, I was willing to
take another look.
It didn't take long before I fell in love. Even with the previously
hated indentation as structure concept. Now I saw the beauty. Why
have one type of block structure for the computer and another for the
human?! Haven't we learned anything? We all know that if you have to
keep track or more than 1 thing for each update, sooner or later you
forget to do something!
I've been messing about with Python on and off (mostly on) for about 3
years. Mostly it's small utility scripts. I've done 1 mid-size
system (~3500 loc) although I think it would be 3-4 times bigger with
any other language. wxPython even makes GUI programming fun!
While many of the following aren't unique to Python, Python is where I
really "got" it so Python gets the credit
-Indentation is structure
-Introspection and dynamic programming made easy
-List comprehensions!
-Strong dynamic typing
-An incredible standard library. Several times I've thought I was
going to need to build a custom class only to find that using the
standard library and 2-3 lines of code did the trick! (Lately this
was working with Julian dates as the business world uses them, YYDDD
and CCYYDDD)
-Python documentation is amazingly well written, although sometimes it
is a little terse. (Note to self: write some more examples for
inclusion in the next manual!)
-DocStrings rock!
-DocStrings + PyDoc is just unreal!
-unittest: Beyond the first intro course all programming courses
should be built on the concept of test driven development. (Theory
courses aside, of course.)
-import this
-Elegant is better than inelegant
-Unless elegant isn't clear
-Python gives you enough rope to hang yourself, but you have to know
where to look.
-Python land has a dearth of trees, branches or posts to use the rope
to actually hang yourself. And the landscape is so beautiful we don't
even notice most of the time.
-The Python Cookbook.
-Python has lots of support to make writing maintainable software
easy. It doesn't force you to do anything, it just makes it easier.
-It's a language you can swear by, not at.
-Built in high level data structures.
-References, not pointers.
-pysco - when speed really, really matters on i386 (and really, what
else matters? ;->)
-Interactive interpreter - now I know exactly what this code does!
So much to love. Anyway, thanks to all the great people who have
brought us Python.
Chris
After a brief "play time" I discarded it was too radical. I *hated*
the indentation == block of code theme. Besides, Forth was the One
True Language(tm).
Fast forward 6-7 years of real world programming in VB, C, NATURAL (a
COBAL derived quasi 4GL), PHP, Perl and others. Programming wan't my
main job, but I did it a bunch. Never wrote anything beyond toys in
Forth, and didn't really play with it after school...
I was working for a small ISP and needed to revise some Perl scripts I
had written about a year before. After 4 days of trying to figure out
how I wrote the things in the first place I just rewrote them from
scratch. There must be a better way!
I forget exactly how, but Python was brought back to my attention.
After having dealt with the real world of braces, I was willing to
take another look.
It didn't take long before I fell in love. Even with the previously
hated indentation as structure concept. Now I saw the beauty. Why
have one type of block structure for the computer and another for the
human?! Haven't we learned anything? We all know that if you have to
keep track or more than 1 thing for each update, sooner or later you
forget to do something!
I've been messing about with Python on and off (mostly on) for about 3
years. Mostly it's small utility scripts. I've done 1 mid-size
system (~3500 loc) although I think it would be 3-4 times bigger with
any other language. wxPython even makes GUI programming fun!
While many of the following aren't unique to Python, Python is where I
really "got" it so Python gets the credit
-Indentation is structure
-Introspection and dynamic programming made easy
-List comprehensions!
-Strong dynamic typing
-An incredible standard library. Several times I've thought I was
going to need to build a custom class only to find that using the
standard library and 2-3 lines of code did the trick! (Lately this
was working with Julian dates as the business world uses them, YYDDD
and CCYYDDD)
-Python documentation is amazingly well written, although sometimes it
is a little terse. (Note to self: write some more examples for
inclusion in the next manual!)
-DocStrings rock!
-DocStrings + PyDoc is just unreal!
-unittest: Beyond the first intro course all programming courses
should be built on the concept of test driven development. (Theory
courses aside, of course.)
-import this
-Elegant is better than inelegant
-Unless elegant isn't clear
-Python gives you enough rope to hang yourself, but you have to know
where to look.
-Python land has a dearth of trees, branches or posts to use the rope
to actually hang yourself. And the landscape is so beautiful we don't
even notice most of the time.
-The Python Cookbook.
-Python has lots of support to make writing maintainable software
easy. It doesn't force you to do anything, it just makes it easier.
-It's a language you can swear by, not at.
-Built in high level data structures.
-References, not pointers.
-pysco - when speed really, really matters on i386 (and really, what
else matters? ;->)
-Interactive interpreter - now I know exactly what this code does!
So much to love. Anyway, thanks to all the great people who have
brought us Python.
Chris