Today, programming or coding is not as big a deal as it used to be a few years back. Earlier, this was a method to solve critical problems residing in laboratories or research centres. With advances leading to ease of learning, even a school child can code today, and we have seen considerable enthusiasm from all age groups in learning how to program or code.
With the emergence of open source programming languages, one is not forced or bound to learn a single language but one can choose from a whole lot of options and can pick something that suits one best. Let me first clarify what the term open source actually means. As per the definition given by the Open Source Initiative Certification, Open source is a computer program or source code available to end users free of cost and they are free to change it accordingly to make it more useful and error-free. Rather than a single proprietary ownership, it will motivate more bug-free and useful code for everyone to use.
A few rules that a programming language must conform to in order to be declared as an open source programming language are listed below:
- Source code must be open and accessible
- Derived works should also remain open source
- Free redistribution
- Integrity of the authors source code should be maintained
- Licence must not restrict other software
- No discrimination against fields of endeavour
How open source works
Open source shows the source code to end users and gives them full freedom to change or modify it as per their needs. The final edited version is again available for the target audience but will invariably be more effective and error-free by now.
Here are some popular open source programming languages. Of course, these are general suggestions, but there could be some better solutions if your specific requirements are known.
Getting started with HTML and CSS
If you have no coding experience but wish to learn how to code, then you should opt for HTML and CSS. Rather than a programming language, HTML is a mark-up language. With the help of HTML you will be able to talk to the Web browsers, and you will be embedding text, images and links into your code which a browser can understand and then give you a response. HTML code contains tags which are identifiers of the various things that you have put in your code. A simple snippet of HTML code looks like what follows:
<! DOCTYPE html> My First Heading <html> <body> My first paragraph. <h1>My First Heading</h1> <p>My first paragraph. </p> </body> </html>
On the left we have sample HTML code with the proper syntax and tags, and on the right hand side we have the response returned by the Web browser.
CSS stands for Cascading Style Sheets. CSS is responsible for what the Web page will look like. It takes care of all styling and formatting. It is a separate file, which is embedded into the main HTML source code and works alongside it. With HTML, you can create your own blog or website within minutes and with minimal programming effort.
Creating Web applications with PHP
Use Ruby and Python when fast prototyping is required
Designers who want some back-end programming to test their applications can rely on Ruby and Python. Both are dynamic and object-oriented programming languages with very easy learning environments. The main reason for these two being so popular is their strong developer community. A very large user base and their collaborative efforts have made them very popular. On the Internet, you can find so many engaging Web portals and forums to guide you to learn programming from the basics to advanced levels.
Python is preferred when you have to learn machine programming or artificial intelligence. For all robotics and human interaction technology, use Python.
Build Android applications with Java
With the rise of Android, the term open source has become more universally accepted. Right now, Java is the only easy-to-learn and effective programming language for building Android applications. Whether you have a Windows or Mac machine, you can get your working app ready within minutes and it can be tested on your local mobile device. To learn Java, you do not have to be aware of programming terms. Even a beginner can, with practice, become a hard core programming enthusiast.
Build iOS applications with Objective-C
On your Mac machine you can build iOS applications compatible to run on the iPhone, iPad or iPod devices. It uses Objective-C as the programming language and this is so robust, it enables you to build full fledged applications. As compared to the Android platform, iOS devices have very limited device compatibility and screen variations, so it is easier to build an app which is compatible enough to run on several devices.
Build desktop applications with Visual Basic
For interacting with the desktop environment, Visual Basic and VBScript are what people have been using for years, but their limitation is that they lack fancy user interfaces. Recently, Python and Ruby have evolved as powerful yet compatible programming languages for desktop application development.
Learn basic coding with Scratch
If you dont want to be bothered with serious programming terms and concepts before creating something relevant, then you should start with the Scratch tool. This was first introduced in the US and, in the classroom, kids were engaged to teach code. The use of zombies, the Angry Birds and other cartoon characters has made it more entertaining and motivating to code. The tool is a simple plug-and-play utility with predefined behaviour, and you need to assemble it to get the behaviour required.
Figure 2 gives the statistics of the popularity of various programming languages among the user community (source: Linkedin.com).
Although it is said that you dont need to have any project in mind before learning programming, the truth is that if you are working on an actual project, you will be more motivated to learn programming in order to achieve the desired goal. If you have certain requirements beforehand, then you can easily correlate them with the learning environment and work towards what needs to be accomplished.
Talking about compilers
Every code is incomplete without being compiled to give you the desired output. The compiler changes the lines of code into useful and meaningful output. Different languages use different compilers to suit and support their environment. Shown in Table 2 are the popular compilers for open source programming languages.