
Programming
===========

.. include:: batbelt_menu.rst



.. raw:: html

  <div class="main">


*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

  </div>
