Sponsored Link •
Bill Venners: You talked about Python and the tipping point.
Bruce Eckel: The "Tipping Point" is a book about a cascading phenomenon. Usually it's referred to in the context of people and fads. If enough people see a thing, or the thing itself is desirable enough, all of a sudden everyone is doing or wearing that thing. One of the examples that they gave was Hush Puppies shoes. A good example of this in the computer world is email.
I used to have a typewriter and would write letters to people, but there weren't that many people that I would write letters to. Of course it would take a few days for them to get the letter and then write a letter back to me. I might have been carrying on a conversation with a few people at any one time. If you think about it, there's only so much you can do. And the effort that you're willing to put into it is limited.
Then all of a sudden email came along. Suddenly you could be carrying on conversations with tens or maybe hundreds of people. The conversations might start and stop over long periods of time, but you are able to maintain them. That was an order of magnitude change. All of a sudden everyone was communicating to each other via email.
In programming, my experience was that I would think, "Gee, wouldn't it be great
to automate this or that," but for me to write a C++ or Java program to do it would
take way too much time. As an example, for Thinking in C++ I set up
a system that would allow me to automatically extract the code from the book
and build a hierarchy of make files. I could go in and type
make and it would
compile everything, so I could verify that all the code would compile. It took
me ten days to write that program in C++. It was a lot of effort and thinking,
and I didn't have regular expressions so I had to parse things by hand. In Python,
it took me a half a day. I did already understand the problem, but I also
added more features when I redid it in Python.
With Python, all of a sudden I can create a pretty powerful tool in half a day, and lots of other tools in even less time. Rather than a Herculean effort to create something, it comes down to something that is fairly easy. With Python and some sort of build system, such as ant or make files, I can automate everything. And I've found that to be incredibly powerful. I often use make with a lot of Python programs. For example, the CD-ROMs I sell are all generated with a single make command. And Python is doing all kinds of stuff, controlling PowerPoint and Word and other things. Once I get that system set up and get the bugs out, I don't have to think about it anymore. I know I can type make and make it happen. And I find that incredibly powerful.