Programming Language to Use

January 20, 2008

I’ve programmed before – more than 10 years ago. I was good with BASIC, C, FoxBase / FoxPro and a lot of other language. I did program a bit with Visual Basic as well. Now, it all seems so far away… But, I believe whatever programming language, I can learn or relearn it… its just a matter of time.

I can analyze systems very well… I can design very thoroughly taking into consideration special cases and I believe my designs have always been very efficient. But when it goes to Coding and learning to code it takes time…

So,  right now, I have a few software / hardware / interfacing project in the pipeline… Some projects require quite a large database with multi-user configuration in a LAN. Some of it needs to communicate through RS-232 and USB. In the future, I want to use it for some automation work so it may also need to connect to PLC using, I want to decide on a platform to use – one that would be easy to learn and relearn, would stand the test of time and have a large pool of programmers available and would not be expensive to maintain.

There are so many choices on programming language to use and I’ve been searching for that perfect language out there… at least perfect for my need.

I’m looking at SQL or mySQL as the database to use… while for the programming language, I’m considering the open source Python… What is Python and Why Python? See this article… which describes Python as agile:

  • excellent for beginners, yet superb for experts
  • highly scalable, suitable for large projects as well as small ones
  • rapid development
  • portable, cross-platform
  • embeddable
  • easily extensible
  • object-oriented
  • you can get the job done
  • simple yet elegant
  • stable and mature
  • powerful standard libs
  • wealth of 3rd party packages
  • And don’t forget that with Python, programming is fun again!

Some questions on my mind that needs to be answered:

How to distribute without giving away the code:

- Distribute the *.pyc (precompiled) / *.pyo (python object) files
- Run the py2c program to convert python source to C
- compile

Can compile?yes in different OS example:
http://www.effbot.org/zone/python-compile.htm
http://starship.python.net/crew/atuining/cx_Freeze/
To program Python in Windows users: ActivePython (freeware) or Idle (opensource) – I am trying idle

Use this style guide for consistent result in a big project.

Can use for automation work? See this site and this one – at ILM from George Lucas

Can use with Database like SQL? yes – see this and this article shows a nice sample connecting to Oracle.

Is this the perfect programming language for me? I don’t know yet but I’m also looking into Intouch and others… which have libraries built in for hardware interfacing functions.