Showing posts with label Erlang. Show all posts
Showing posts with label Erlang. Show all posts

Wednesday, December 14, 2016

Technology Innovation

This morning I met with the head of development for a large technology organization and we talked about some of the latest trends in software development. I work in a research and development group and so my team constantly looks at emerging products and how they can best be used to solve problems. The person I met with came with questions about how his organization can leverage some of these new tools to increase efficiencies and streamline software development.

I find it interesting that I found myself championing technology innovation. I am one of those people that resists change and that is one of the problems with the staff of the organization I met with. Software developers get comfortable with the tools and languages they know. The longer someone uses a technology, the more they resist moving to something else. While Java is a great software programming language, there are problems that can be solved quicker and with less effort simply by choosing Python or Erlang.

I have had to force myself to constantly ask if there is a better way of doing something. A simple example is when I had to cut up some old rags this past weekend. I had a dull pair of scissors and a large pile of rags to cut into smaller sizes. At first I tried to make a quick snip with the scissors and then rip the fabric. Things sped up when I simply just got another pair of sharp scissors. Taking 30 seconds to change my tool cut my project time in half.

Looking for a better way to do a task is not something I developed on my own. I have surrounded myself with people who are always looking for a better way of accomplishing things. I have tried to remember to ask for help but often times my coworkers volunteer better ideas for me. That takes a bit of humility but I find it also saves a lot of time. Sometimes if it wasn't for them, I would still be retyping everything instead of cutting and pasting.


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.