I'm not an Old-Timer, but you left this open to the rest of us, so I'll use the opportunity to tell everyone the sad story of how I wasted years not using Python.
Before I had anything resembling the chance at a formal CS education, I was writing small text-based games in QBasic and GWBasic (the second one being both older and far more advanced. What's up with that Microsoft?) before moving to C when my father's cousin, who has been in university for twenty years, give or take, gave me his copy of Borland Turbo C. My first knowledge of Python came when father gave me a computer book, as he often got from various friends who knew of my interests. It was an early Python book, but I can't remember the title anymore, only that it was from O'Reilly.
I started reading and the first thing it showed was, of course, that Python makes a great calculator (terrible example of its power, by the way!), and that it supports both int and long types: Wow! Pfft, that was enough for me. Any language that required me to type a capitol-L after any number greater than 2147483647 was obviously nothing I wanted to waste my time on. "How hard would it be for the compiler to figure out how large the number was on its own," I asked myself. I know it wasn't required, but it was a very bad introduction to the language that I misinterpretted and wasted years with C because of.
Four years ago, that egyptian-themed, non-violent, wine-making MMOG came out, and something mentioned it was written in Python, and I followed the links from Stackless and got hooked. Took me long enough!
The collective memory of comp.lang.python at Google Groups tells me that I was using Python since 1994.
The feature that bought me into Python was the interactive command line with readline. At first sight, Python was an amazing interactive calculator with command history. I needed that for my Quaderno DOS subnotebook, as well as for our NeXTstation!
Obviously, in 1996 I managed to prepare and distribute a quad-FAT version of Python 1.3 for NeXTstep (i.e. a single binary that worked on SPARC, m68k, i486 and HP-PA NeXTstep systems). No magic involved, since all it took was a single gcc/ld option.
Later on in 1997, when Python 1.5 was released, I stepped in as maintainer of the Python packages for Debian GNU/Linux. Python started as a niche language in Debian. It was interesting to see Python gain more and more interest and support inside the Debian project, as well as in GNOME and other significant projects that were packaged for Debian.
Somewhere in between, I must have realized that Python was indeed even more than a fancy calculator with history. Python is still my language of choice for all kind of programming tasks, and I'm advocating Python whereever possible.
My first experience with Python happened after a summer job in 1995 introduced me to Perl and exposed me to Java. Having signed up to do a final degree assignment on mobile software agents and restricted execution, both of these languages appeared to be candidates: Perl was more convenient than systems programming languages like C to glue processes together and, amongst other things, to process text; Java was designed to isolate programs from their surroundings; other now-forgotten languages were also contenders.
But Perl's safe execution variant supposedly required root privileges and wasn't widely supported; Java didn't have the convenient support for e-mail, news and other "agent transports". Then, I discovered a language which did have libraries dealing with safe execution, e-mail and mailbox parsing, and news protocol support: Python. Moreover, it had an interactive interface for entering statements and immediately seeing the results.
So, my first excursion into Python was to run the interactive interpreter and to import nntplib, connect to the news server, and to download the message statistics. Such effortless connectivity that would have required pages of C code written from scratch persuaded me that Python was the future of my assignment. And to this day, I wonder why it is that so much code of this nature is written in lower-level languages.
My first encounter with Python was in 1996. I didn't have internet access at the time, but I did have a CD with archives from various Usenet newsgroups. One of those groups was alt.sources, and it contained the source of Python 0.9.1, split over various shell archives. Being on MS-DOS, I couldn't do much with it, but it sure seemed interesting. :-) Not much later I had someone look for and download Python binaries for DOS for me... Python 1.3 I think it was at the time.
The rest, as they say, is history. Although I used the language clumsily at first, it soon became evident that it was much more powerful than other languages I had worked with so far (Basic, Delphi, Turbo Pascal, C, C++). Since then, I have used Python in countless projects, and since 2002 I have been using it almost exclusively for my work.
I first used Python in 1996, sometime in late summer. I was wanting to get back into programming and was looking for a good / free environment that ran on Macs. A friend and I had a web site and wanted to do some CGI programming for it.
I was also looking for something that gave me the same joy I experienced with Commodore 64 BASIC when I was younger - something that I could interact with easily and see immediate results from. In 1996, the best free Mac programming languages were Java (using the raw Java Develop Kit tools), MacPerl, and Python. Neither the JDK nor MacPerl offered anything nearly as cool and useful as the Python interpreter. So after struggling with both of those, I sat down and went through the Python tutorial and was immediately won over.
I was active on the Byte magazine forums at the time and kept promoting / mentioning Python there. There was a lot of web programming discussion going on, most of it Perl centric, but as I was having success with Python I liked to talk about it. This led to me writing a two page article for Byte which appeared in the February 1997 issue. Due to space constraints, I had to come up with a new short code example very quickly as there wasn't room for my initial submission. I've never liked the example I came up with, which also suffered from formatting (again due to space constraints) in the final article. As such, it wasn't the best example of the cleanliness of Python. I'm proud of the article though.
As part of my preparation for the article, I wrote a simple CGI script to collect and store data in a simple custom database format I had made. The data in question concerned what people were doing with Python at the time. It's been nice to look at the responses here on Artima and see some of the old names (and old company names like Magnet!) that helped provide me with some insight into the various real-world uses of Python at the time.
In 1997 I went on to use Python to search through CSPAN archives, based on text indexed off of the closed-captioning feed on television. This program started as an ILU system, then became a socket server that communicated with a Java applet, and then became a stand alone web application.
My old-timer-ness only goes back to Python 1.3. I was somewhat involved, in discussion only, with only a few new features: the pseudo-private (name mangling) attributes, and the replacement of the old regex module. Ah, regex.set_syntax(RE_SYNTAX_AWK), how I do not miss you (nor do I miss the thousand-backslashes of the default syntax. Yeesh!).
Ten years ago I did cgi-programming (games and stuff) in perl with some dislike. One day in late 1996, my friend Claus mailed me about a 'new' language called python (1.4 was just out). I took a look and it was love at first sight! Still sicking in my mind is one line from from /usr/local/lib/python1.4/profile.doc (also to find in 2.4, but not in 2.5): "The profiler was written after only programming in Python for 3 weeks." Within a short peroid of time I converted all procects to python and never wrote a line of perl since then. Thank you Guido! Some of the websites are still active and running with python1.4. Nowadays I am using python for almost every programming task.
I started using python in late '92 as part of the Alice "Easy-to-use 3D Graphics" project (at the University of Virginia at the time, since moved to CMU and no longer using python I believe: www.alice.org). The Alice team had come to python because they needed an easy to use interpreted language suitable for interactive rapid prototyping and were frustrated with the state of tcl at the time.
When Guido came over for his NIST/SPAM "python world tour" in '94 Richard Stoakley and I came up for it (where we also met Barry, Fred, Jim Fulton and a whole host of other people whose names are familiar to us all now). We also invited Guido down to Charlottesville to show him Alice and because we had some wacky metaclasses idea we wanted to propose (since lost to the ages). He spent the weekend with us and slept on my couch.
Which was a pivotal moment for me, because when I interviewed with ILM in '97 the first question they asked was: "How well do you know python?" To which I replied:
In 1996 I was searching for an object-oriented scripting language. Perl was so much faster to develop in than C++, but writing Perl was reverting back to the older procedural style I had spent several years weaning myself from. Perl was the Black Knight saying "None shall pass." Java was very much an over-hyped toy language at the time and the search seemed hopeless. Then I stumbled across Python, the heavens opened, angels sang, and the holy grail of development was there before me.
Several months later I had an opportunity to put Python to the test on a customer project doing integration work of network management applications. It worked beautifully and history was made.
Fast forward ten years through numerous projects and perils, and Python continues to rock. And the Black Knight...well a few years ago some silly people tried tacking object-oriented arms and legs to him, but...alas...all he tends to do is flop around.
The year was about 1999. I had been working on a C program for my PhD thesis that had some very complicated data structures. Due to the nature of the research, every few weeks I would discover some new special case or limitation requiring a tweak here or there. After 6 months I had a big ball of very complex mud that still didn't work correctly. I couldn't go forward. A rewrite was the only option. I'd heard good things about python, and decided the time hit of learning a new language was worth the risk. 6 weeks later, I had learned python, and finished the program. It would have taken me at least another 6 months in C. Python, on the other hand, was easy to learn, easy to read, and easy to change. I was hooked.
Back in 1995, my colleague and friend Perry Stoll (another python-er) introduced me to Python. My programing background was C/C++. At the time I liked the language but there were no easy ways to extend it. Once I discovered SWIG, in 1996-97, I immediately switched to Python (and regreted not doing before!)
I was(am) working on Computer Graphics and VR and decided to make python bindings for Sense8's WorldToolkit (www.sense8.com) a C/C++ library for 3D/VR applications. You can still find the bindings here :
Since then I've been developing with python for almost __all__ my needs.
Why did I fall in love with Python? Its clean syntax and powerful data structures (lists, dicts). There is no mental effort translating my pseudo-code (written on a napkin during dinner) and the actual python code that simply works!
Almost all the things I do (CG / VR) are a joy once you finished the project. Before python, programming(in C) was hell but the results were a joy. After starting using python, programming(in Python) and the results are __both__ a real joy!
I started using Python in 1996. I discovered Python 1.4.2 on a fresh install of RedHat 4.2 on a P-90. I've been using it for just about everything ever since, and have forgotten every other programming language I ever knew. Python has never let me down.
I used to be regularly amazed by the new arenas that Python was being used in. Now it's only surprising to find something Python can't do.
Flat View: This topic has 54 replies
on 4 pages