Programming Languages

I picked for 2017


28 Jan 2017 View Comments
#languages #programming #computer

There are so many programming languages these days. It is almost impossible to pick what languages to use these days. I personally do not give much value to learning new computer languages. It would probably be good to know at least one of the modern languages in depth like Java or C# though. However, I find it is much more important to understand the concepts and the problem-solving skills which will be the same across all programming languages.

Keep in mind. I personally think there isn’t the single best language of all. All development knowledge is a good knowledge regardless of any particular language. There cannot be the wrong programming language either. That is not to say that there cannot be the wrong programming language for a specific task. Picking Fortran to develop an iOS game may not be an ideal solution. You may be able to get it working with much time wasted for making it happen, but in the end, did you really had to choose Fortran? What I am trying to convey here is that there is certainly language to use to do the job. So picking the right language for the job is crucial.

I find hard to believe there are still people out there criticizing other programming languages. No developer has experience in every language. It is not possible to make such a comparison unless you master all languages in depth. There might be a few who knows several of the languages on the list. Even then, it still doesn’t make much sense to me to think that would give those right to criticise. Like I said, there can be a language good for handling specific tasks. However, there is no best language.

See below, I have compiled some of the languages I think you should consider gaining knowledge in 2017.

C# / Java

C# / Java
C# / Java

Although I have fairly okay knowledge in Java, I only have a proficient knowledge in coding in C#. In the past, I dealt with a bit of C# project which our team eventually converted the project into Java. Anyways, at least from my proficient experiences of C#, C# is very similar to Java. I really couldn’t see much of differences other than the code styles. Of course, there are fundamental differences between the two. Some notable things to mention for the differences are such as how Generics (erasure vs real), exceptions, enums, unsigned, static classes, etc. However, when you come across to use them both, you will find that its probably easier to find similarities between them rather than differences. Even though I am primarily a Java Developer, I like C# a lot too. However, that’s not to say that C# is a better language than Java. I think they are both great languages to learn and adapt. There will be people comparing these 2 languages and start criticizing why one is better than the other. However, I think it’s just meaningless. It makes absolutely no sense even to compare the two. Why are you wasting your valuable time doing the comparison? As I spoke earlier, my belief is that there is no best programming language and C# / Java are both amazingly flexible and great languages. I see these 2 languages will evolve more and more in the future. I strongly suggest you to at least be capable in one of these 2 Languages.

Python

Python
Python

Python was just becoming popular in year 2005-ish. When I first attempted to code in Python language, I was amazed by how easy syntax and semantics as a new developer. The language written made sense to me right away. I have not yet dealt with any enterprise size codes in Python. However, for scripting here and there, Python is such a simple and elegant language. It is really close to the pseudocode I would normally write. My love for Python has started when I was in university. It was a choice of the language for me at that time over complicated C. Even though I moved into Perl business after the graduation, I continued my work with Python outside of my work. Perl was certainly a good choice at that time given that pretty much any company was using Perl as a script. Let me talk a bit about Python the language itself. Python is an object-oriented script language. It is also a dynamic programming language like Perl which means that it is an interpreted language that has no compile process. Also just like Perl, you will be surprised how compact a statement can be. It is pretty common to write a one-liner in Python. Best of all, it is popular amongst others meaning you will have extensive libraries to choose from for your task. Python is a great language which supports concurrency as well. I would strongly recommend Python to any developers out there.

JavaScript

JavaScript
JavaScript

JavaScript is one of my favourite languages. It is fairly simple but can also be very complicated depending on how you write. JavaScript is a dynamic programming language often used to create interactive effects within web browsers. You probably heard that JavaScript is an object-oriented language. I do mostly agree since JavaScript carries a lot of object-oriented features. However, JavaScript uses prototypes rather than objects through classes for inheritance. Here is a simple example in JavaScript just to illustrate what I mean:

var func = function () {
    this.one = 'Hello';
    return {
        one: one,
        two: 'world'
    };
};
var obj1 = func();
 
var obj2 = {
    one: 'Hello',
    two: 'world'
};
 
console.dir(obj1);
console.dir(obj2);

So as you can see here, these 2 obj1 and obj2 is exactly the same. Anyways, it might be easier to understand as the function = object in JavaScript world. JavaScript used to be limited on the client side before, now it is extended its usage on PDFs, video game development, desktop and mobile applications. Especially the language now runs on server side as well such as Node.js

Go(lang)

Google Go
Google Go

Go is a programming language Google came up with in the year 2009. It is supposed to be the replacement of the C language. It is becoming more popular as a choice of programming language since I see many projects in areas like networking, cryptography etc. You will find an extensive amount of projects in Github and the number is growing. I have heard from others Go is great for Concurrency handling. Apologies, I do not have any experiences with Go yet. It might be worth my time to give it a try later. If you are a sublime editor fan, they have a good code completion tool called GoSublime which I will give it a try later when I work with Go.

Rust

Rust Programming Language
Rust Programming Language

Rust is created and sponsored by Mozilla Research in 2010. If Go is known for replacement of C, Rust is known to be the replacement of C++. It is built in mind with improvements of C++. Everyone knows that C++ do not have automatic garbage collection and it was pretty easy to get into memory leaks which lead to out of memory. It is not to say that Rust uses any automated garbage collection system like those used by Go, Java or .NET. They use what’s call RAII. I think it has similar traits to that of GC but you still have the ability to clear the memory if you wishes. Rust is picked as most wanted language in stack overflow last year. However, that still doesn’t mean that the language is popular. They actually lack a lot of programmers in Rust meaning shortage of available libraries which will eventually make your coding life more difficult. I would recommend the language if you have a good knowledge of how memory works and in hopes of learning more in the area.

Conclusion

Above list is just a few programming languages I picked out of many. There are few honorable mentions like swift, kotlin, HTML 5, SCSS etc. They are all great to gain knowledge on. I wouldn’t be stressed though too much on what languages to adapt and learn. Like I always say, what is important is the concept of how the program works such as how memory/os work? big o complexity? available data structures? general algorithms? How an object is being created and allocated. What is Concurrency? What is Serialization? and there will be skills necessary for the specific job. For example, as a web developer, it is probably important to understand what RESTful API is and how it work. Basic knowledge of HTTP that goes all the way down to TCP/UDP level, etc. However, that isn’t to say that mastering one of the programming languages isn’t good either. It is definitely necessary and good to master at least one of these languages so that you could apply any of these concepts against.

Share this post

Me

I am a passionate programmer working in 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