The most important tool for a software developer is the programming language that is designed to allow humans to command computers. By writing code, the client’s wishes can be changed into a form understandable for machines, and by doing this technology can be made the serve the client.
Harmony between business and technology
At Anders, each project begins with a two fascinating challenges: to be able to understand the client’s wishes as clearly as possible, and to respond to those challenges in the best way possible. The first challenge requires deep understanding of the client’s business, and the latter an adequate skill to program complex solutions which contribute to that business or expand it to new areas.
In the realm of human communication, language is a constantly living entity and the meaning of words may change from one situation to another. The listener doesn't need to understand the speaker’s every word to understand the purpose of their message. Programming languages do not work that way. The computer is not able to read the developer’s intent “between the lines”, but instead it always does exactly what it’s told to do, and nothing else.
Bringing the client’s business objectives into the realm of pure logic and clearly-structured code sentences requires a tremendous amount of knowledge, experience and, above all, communication with the client. Developers need to take systematic approach, use their experience, see the big picture and work diligently day after day.
Programming language affects project work
For the last 10 months at Anders; I have been using the Python programming language, which is the most often used language in our company. After these months, I have come to the conclusion that Python makes the difficult communication between man and machine actually quite pleasant - relatively speaking. Perhaps the most important reason for this is that code written in Python is rather easy to read (at least for fellow programmers).
Python also provides a significant amount of development-enhancing features such as:
- Automatic garbage collection
- Dynamic typing
- Concise syntax (very easy to read)
- A huge number of reusable software libraries.
The code’s most important function is to deliver instructions to the computer, but almost as important is that the code is easy to understand for the people reading and writing it. This may sound like “master of the obvious” stuff for a layman, yet in programming circles expressiveness is often put ahead of comprehensibility. This results in code that is hard to maintain, difficult to read, slow to development and burdensome to explain to another developer.
From the client’s perspective, Python's powerfulness makes it also cost-effective. I do believe that by using Python in our projects we do a favor for our clients by reducing the time spent on development. Achieving the right kinds of results with the more clumsy languages will always require more time and effort from developers.