3 Jun 2012

Open Source Languages - Pros and Cons

Many developers love to use open source software for the variety of benefits that come along with it. Some of the most popular open source languages used include C, PHP, Javascript, and C++. Although many people code using these languages, are there any major reasons not to use them? Let’s take a look and find out.

Pros

Many programmers utilized open source languages for a variety of reasons that closed source just doesn’t provide. The main reason programmers love using open source is because of what can be accomplished in terms of customization. Any piece of open source software can be customized to fit your needs as the source code is readily available. Have an idea in mind of a function that you would like to implement? You can add it yourself easily and efficiently. Closed source applications, on the other hand, can only be customized within the scope that the company provides, and no further editing can be done outside of that scope.

Going along with customization, programmers love open source because bugs can be fixed just as quick and as easy as they are spotted. When a bug is discovered, a variety of users can collaborate together and change the code. This is entirely different with closed source, as only the developers of the original piece of software can actually change it.

Open source language also allows translation from one language to another to be quite seamless. Larger software projects owned by large companies, on the other hand, are normally closed source and don’t normally allow the translation of their source code into other languages.

Learning an open source language can also be quite fun and much easier than trying to work with closed source. For instance, by working with a piece of open source software, you can work together with a community that is trying to accomplish what you may be trying to as well, and you can ask them any questions that you may have. Also, if you feel as if you have written some code that is worthy enough to be added to an open source project, expert coders can look at, evaluate your code, and possibly give you some pointers on how to improve.

Cons

Although there are a significant amount of benefits to using an open source language, there are some additional negatives to consider. The one major disadvantage that many people don’t like about open source software is that it may be confusing to use. With so many people working to improve or add their own bits of code to a piece of software, you may never know what version of software that you’re working with.

Also, certain open source software is not compatible with all applications, which may cause limited access in terms of what you can do with it. This can be a serious drawback depending on what you are doing with the code.

Open source software can also be tough to take on if you are much newer to a certain programming language. If a certain individual that worked on the previous code didn’t comment it well enough or wrote a bunch of messy lines of code, it can be extremely confusing to understand.

Concluding Thoughts

Despite a few negatives associated with open source language, there really is no reason not to use it. Open source allows for complete customization in whatever task you’re trying to accomplish and the best part is that you have access to all the source code! Languages can be translated back and forth and if you ever have any questions, there are plenty of places on the internet to get answers. Open source language is the way to go.

Written by David Nance for the team at www.technology-colleges.info, who believe in selecting the right language for the job.

12 comments:

  1. I'm curious to know if the author has any examples of closed source programming languages. My argument being that there is no such thing as an open or closed source programming language.

    Also the point regarding the "seamless translation from one language to another.." seems a bit far fetched to me.

    I'm all for open source, but for a programmer there really isn't much of a difference in working on open or closed source software. Even if you open source your software, don't expect dozens of people submitting patches all of a sudden :) And the usual myth about "everybody can read and fix open source software" is just a fuzzy story. It's not possible in larger projects to manually read and verify the integrity of the code.

    Anyways, sorry if i came across as a ranting lunatic.

    Cheerz Markus.

    ReplyDelete
    Replies
    1. Closed source languages: C#/F#/Silverlight/.NET, Borland C, etc...

      On your second part, I must agree. Linux, KDE, GNOME, and LibreOffice might as well be closed source considering how large the code base is. I doubt very much that any one individual could ever wholly understand the source for one of those projects. On the other hand, the fact that they are opensource means that at least one of the current developers understands the part of the project to which he/she contributes and as such can patch anything that is broken within his/her area.

      Complicated topic is complicated

      Delete
  2. For my main job I use .NET and I don't think many people can argue with the quality of the .NET frameworks and the Visual Studio IDE. It is all too easy to knock Microsoft for many things but when it comes to making it easy to build applications they are very good.

    Of course this is also a bad thing. In every major company (and probably most minor ones) there are spreadsheets with VBA and macros incorporated written by the accountant who thinks he is Mark Zuckerburg. For me this is a good thing because most of my projects stem from writing applications to replace dodgy spreadsheets.

    For all my other projects I use the LAMP stack of Linux, Apache, PHP and MySQL. On top of PHP I use the codeigniter framework for making it easier to build web applications and I use blueprint css for styling. (both open source).

    The biggest mistake new programmers make is to try and write everything themselves from scratch. Why try and write something that other people have already written and tested. Every web programmer needs a certain number of routines (for example form validation) and the number of people I see trying to do this from scratch. By using a framework you know that the people who wrote it have hit the pitfalls associated with writing such routines.

    I use blueprint css because I am absolutely rubbish with css and I can never work out all the hacks required to get IE working properly. Blueprint have them already worked out.

    I think programming is therefore as much to do with community and sharing as anything else. This was never so important as in the recent Google and Oracle trial.

    ReplyDelete
    Replies
    1. I have to counter your point about not writing every routine yourself: What I think is best, especially in the beginning, is to write many things yourself, so you get a good understanding of the inner workings and especially its limitations. Later on, when you're familiar with it, you shouldn't bother and just use libraries or whatever.
      Take math education as an example: Why do all elementary school children learn to do algebra "by hand", even though everyone in today's world uses calculators for everything? To get a good understanding of it, and to not have to rely on it all the time as well, although as you reach high school, you can most likely just use calculators to focus on higher math.
      I think the same principles hold true for programming.

      Delete
    2. You are absolutely right and it made me wonder how many people will understand your point.

      Delete
    3. I agree too, I start to teach my fresh students binary arithmetic, logic, the programming basics, and it is nice for them to see the basic "Hello world!" works.

      Delete
    4. Actually these are very good points. I would like to qualify that for understanding the concepts it is ok to write your own stuff but once you get the concept if there is a framework that already exists that pulls it all together there is no need to do it again yourself.

      Delete
  3. Surely a closed-source programming language is impossible? If the programmer can actually code in it, then they must have learnt it from something. Programming languages are defined on paper; the only way to make it closed would be to keep that paper a secret. It can and does happen, but if you've not got access to it, you can't choose to code in it anyway.

    Do you mean a closed-source implementation? But even that doesn't make a lot of sense. As soon as someone knows how to code in a language, if it's worth using, someone will make an open implementation of it (like the Mono implementation of .Net, for example).

    Also, there ARE closed-source implementations of languages like C - any compiler that the source isn't available for.

    ReplyDelete
    Replies
    1. You must not have been in the industry before open source became popular.

      C#/F#/Silverlight : open source -> mono; closed source -> .NET;

      In time, we will likely find certain incompatibilities between the two. As with SQL and C, dialects will develop. This happens all the time. For the most part, people will learn the ANSI version of a language, and then specialize in supporting certain dialects in addition to the language canon.

      Delete
  4. Unfortunately, the author did not define exactly what he meant by "open source languages." I'm going to assume that he meant languages that have open source compilers or interpreters for some platforms. Using that definition, I'm going to go out on a limb and claim that most current languages have open source compilers available. Certainly C, C++, Java, Python, PHP, Perl, Fortran and maybe even COBOL have open source compilers. Even the .net languages have open source compilers throught the Mono project. In fact, I'm hard-pressed to find a single major programming language that lacks an open-source compiler.

    ReplyDelete
    Replies
    1. As a matter of fact...
      http://tiny-cobol.sourceforge.net/

      Delete
  5. Even as a non-programmer, it is obvious for me to see the fallacies in at least two of the "Cons" for using Open Source programming language as stated in article..

    One speaks for itself ..."Also, certain open source software is not compatible with all applications." This logic and reality would apply "equally" for Closed Source programming languages as well and is therefore a non-issue.


    The second statement ..."If a certain individual that worked on the previous code didn’t comment it well enough or wrote a bunch of messy lines of code, it can be extremely confusing to understand." also applies to previous item one logic. If a program is poorly written and documented in Microsoft Visual Studio, then ir presents the exact same dilemma to those coming after to decipher the code, as one would experience with Open source programming languages.

    ReplyDelete