Java, Perl, and Python

Programming languages I acquired during my career


03 Jun 2017 View Comments
#programming #computer #languages #java #perl #python

Luckily, I have come across few programming languages where I had my opportunities to use them quite extensively. The love with Perl began around 2007, it was by far the most flexible languages for me where I could manipulate data and generate report easily. After a while, the web / mobile applications became quite popular and I ended up programming in Java with Python. Honestly, before I came to use new languages extensively, I believed Perl is the best language out there because it was just so flexible I literally was able to do most of my task using Perl. I realized then that dividing the best programming language of all is quite meaningless and a waste of the time. I am just here to share my experiences with these 3 different languages I used most frequently and their pros and cons. I obviously used many other languages like JavaScript, Scala, Ruby, or C/C++ but I do not have extensive use of these languages and its probably best for me to leave them out of this post

Java

Java is famous for its verbosity which is one of the things I like about the language. This was totally lacking when I was coding in Perl. Well, at first, I hated all the verbosities, but I started to see some benefits from these long names (descriptive) and strict coding standards. They actually helped me immensely understanding the entire software better. Especially, usage of an IDE (Eclipse at first) to code in Java was like finding an oasis in a desert. I couldn’t believe how easy and intuitive it was to code. Then I got my hands on IntelliJ (from Eclipse) which I believe was the turning point for me to really dive into a deep Java. Java is obviously well defined concurrent and object-oriented language. It is statically typed with an efficient garbage collector (GC). At the end of the day, GC ensures type safety and security that you do not have to deal with pointer arithmetics which could turn into like memory leak and cause memory overflows. It essentially does an automatic memory management. The language had a bad reputation for its performance, but it had been improved significantly over the course. As matter of fact, Java is slightly better performing than those interpreted languages which do not have an effective native-code compiler. Java all in all is a good language suitable for back-end functionalities.

Perl

From my experiences, Perl is very flexible with data manipulations due to its strong string parsing and regular expression abilities. Also, I can easily interact with the system well. I really see Perl Devs in 2 categories:

  1. those who implements the functionality through CPAN modules online.
  2. those who leverages a lot of system calls.

I prefer the former when CPAN option is available. Often, I delegate those system calls to the CPAN to handle as I feel safer that way. Sometimes there aren’t any good CPAN modules available though (which is one of the downsides of Perl) then it’s inevitable to leverage system calls to handle the tasks. I adapted to code in Perl around the year 2007 which actually is quite late in the game, yet it was still quite popular at the time. I believe it slowly lost its interests to other scripting languages Python or JavaScript.

Python

Python offers intuitive coding and human-friendly scripting language. According to the Python website, Python programs are generally expected to run slower than Java or any other vendor supported languages, but they also take much less time to develop and from my experiences, I hardly noticed any performance slowness due to the language barrier. Here are the reasons why I love programming in Python:

  1. Indentation: I respect highly of the indentation requirement. Without it, Python may have turned into another Perl as the syntax could turn into unreadable and difficult to understand. When you follow this indentation, I am most certain you will get easily adapted to this indentation requirement and see how clean the codes are after.
  2. Frameworks: Python offers frameworks for multiple purposes which are well maintained. Django (web framework), PyQT (application GUI framework) are the two that I came across using these two just a bit and there are probably many other frameworks available online as the language is very well suitable and widely used in AI (machine learning, neural networks etc) or other scientific research.
  3. Libraries and Documentations: Python has extensive libraries and has one of the best documentation in the style that I like. It again contains numerous examples for the user to easily adapt with a fairly well-written explanation. When I first used Python, it was with fabrics, essentially a deploy script over ssh (portable). I started making few changes and tweaks to the functions and found myself really liking the language.
  4. Modern Methodologies: Python emphasizes support for common programming methodologies such as data structure design, object-oriented programming and supports multi-threading. This enabled me to write well decoupled and efficient program. This is something lacked a lot when I was coding in Perl.
Share this post

Me

I am a passionate software developer working in Downtown, Vancouver. I strongly believe in art of algorithms and together with it to write clean and efficient software to build awesome products. If you would like to connect with me, choose one from below options :) You can also send me an email at