Showing posts with label Assembly Language. Show all posts
Showing posts with label Assembly Language. Show all posts

Wednesday, November 19, 2014

Satisfaction in Coding

A couple of days ago I was adding an entry to this blog when I noticed that I had "Assembly Language" as one of my labels. It briefly reminded me of some assembly language programming I had to do while in college. For those that don't know, assembly language is one step above the ones and zeros that computers understand. Nobody wants to remember that 00000001 is the command to move the contents of register A to register B and so the designers of the Intel 8088 microprocessor created the MOVAB command. MOVAB is much easier to understand for us humans. Very few people program in Assembly Language as it can be rather tedious. However those programs are small and run incredibly fast.

Thinking back to my college classes reminded me how much fun coding is. When I first started at my current job, I got to do quite a bit of SQL coding. Now I do less and less as I am managing a bunch of developers. Every once and a while, I will get to do something technical and I feel a great sense of satisfaction.

Last night I got back to my boat early and had time to play around with a bit of coding. It felt good to create few lines of Python and watch them do something interesting. Once again, I am back on the boat early and plan to continue with my sample coding. I'm not planning to write the next version of Tetris or a better game than Angry Birds, but that doesn't matter. Coding allows me to build something. It allows me to create something. Writing software allows me to turn ideas into reality with virtually no cost other than my time. That alone is its own reward.

Wednesday, October 22, 2014

Programming Languages

My oldest son is back in college and currently working on a really long programming assignment. The course requires him to use the Java programming language and he is not very happy about it. At the beginning of the project, he was told by the teaching assistants that his code would approach 5,000 lines of code and take 3 weeks to write. Part of the reason for the class is to show the flexibility of Java. My son doesn't see it that way. His preference would have been to use Erlang. He could do everything the 5,000-line Java program does with 25 to 30 lines in Erlang.

This brings up the topic of programming languages. Not all of them are created equal. If you want to write something that runs very fast and only needs to run on one platform, do it in Assembly. If you need something to run as fast as possible but it may run on a number of different operating system (i.e. Linux, Windows, or Mac), then use C. If you are working with statistics then R is your best choice. A good software developer will know the benefits of a number of different languages and apply the best one for the problem at hand.

Does that mean that every software developer should know every language out there? No, but he or she should be familiar with a number of different languages along with the strengths and weaknesses of each. Software developers should also be experimenting with new languages when time permits and not rely on one language to do everything. After all, 30 lines in one language is a whole lot less work than 5,000 even if you have to learn a new language. The 30 lines of code is also a lot easier to maintain.