Programming
===========
.. include:: batbelt_menu.rst
.. raw:: html
*When I start a program I want to be finished in the shortest time
possible. For that reason I have fallen in love with Python. It able
me to have something working in a very short period of time...*
Languages on the Shelves
------------------------
* **Python** - If possible I will always program in Python. It's fast to
develop in, it's clean, easy, powerful, highly extendable, it
produces very maintainable code, and is perfectly portable..hell I
can even make Java-applets with Jython to be run inside a browser if
I want too..
* **C** - If ypu need speed and efficiency C is always a good choice,
right? Wrong, I find 90% of the time Python does the trick. I use C
mostly to extend and interact with my Python and Simula programs and
only spareingly to remove bottlenecks. Often I find myself coding C
just for fun..
* **sh/csh** - Shell programming is what I did most of my sysadmin
scripting with.. Now Python has taken over most of the work, but
shell programming is great fun and I still use it for smaller tasks.
* **S-Lang** - I use JED as an editor for most of my programming. It has
S-Lang as an embedded language. It is useful to get JED to do what
you want.
* **Simula** - I have rediscovered Simula recently. It's a fantastic
language. I've done initial work on GraphApp bindings - a GUI
library, and a Simula-to-Python compiler that is half finished. I
later plan to implement a Simula front-end to GCC. Simula hasn't
been developed since 1985, and it's starting to show. I plan to make
my own 'improved' Simula, so it once again can be useful for 'real'
projects.
Languages in the Dust Bin
-------------------------
* **C++** - Without C++ the world would be a better place.. I think that
making a OO language with C syntax is pure madness.
* **Java** - Java is OO gone bananas! Everything and the kitchen sink is
an object - which makes it really annoying to program in.
* **Visual Basic** - There are no words to describe this
stupidity. Please, do the world a favour and don't use it.
* **Perl** - It's makes your code ugly, hard to debug, and a pain to
maintain. Using Perl is just bad business!
* **Ruby** - Ruby may seem like a good choice at first, but it suffers
from much of the same ugliness as Perl. Ruby offers nothing new, and
is a boring and obsolete language.
* **Haskell** - I got physically sick after ten lines of Haskell, and I
even stopped using the functional parts in Python because of it.
Python Documentation
--------------------
* Official Python Web Site
* Python Library Reference
* Python Reference Manual
* FAQTS - Knowledge Base
* The Vaults of Parnassus: Python Resources
* Python Extension writing
* comp.lang.python - The Python News Group
Python Oddities
---------------
* Perl vs. Python by Tom Christiansen
* Python2C
* The Daily Python-URL!
* Python Humour
* The Tim Peters Shrine
* The Pythonlabs Team (Python's Core Developers)
The Zen of Python (by Tim Peters)
---------------------------------
* Beautiful is better than ugly.
* Explicit is better than implicit.
* Simple is better than complex.
* Complex is better than complicated.
* Flat is better than nested.
* Sparse is better than dense.
* Readability counts.
* Special cases aren't special enough to break the rules.
* Although practicality beats purity.
* Errors should never pass silently.
* Unless explicitly silenced.
* In the face of ambiguity, refuse the temptation to guess.
* There should be one-- and preferably only one --obvious way to do it.
* Although that way may not be obvious at first unless you're Dutch.
* Now is better than never.
* Although never is often better than *right* now.
* If the implementation is hard to explain, it's a bad idea.
* If the implementation is easy to explain, it may be a good idea.
* Namespaces are one honking great idea -- let's do more of those!
.. raw:: html