Friday, April 8, 2016

General Purpose IDEs

Update: Recently, I got to notice that Microsoft has recently released their own light weight IDE called Visual Studio Code(VSCode). After a couple of hours research and testing, I found this IDE really fast, light and with great intelliscent support. I was really impressed by Visual Studio IDE which is really good IDE when I was using Windows. The installer is less than 50 MB and can be installed in Linux/ Windows/ OSX. So, we should not use Windows or specific operating system to use it. Its really great feature. The code auto-complete is really really cool and great, which out-wins Atom, and we can install hundreds of extensions according to our requirements. I already tested python, html, javascript, css and VSCode works exceptionally. 

The only downside, not really downside, is the compilation and execution. Although we can define it in tasks, but somehow not-used-to for normal users. But if just look at the file tasks.json, you will understand everything and you can make your own compiler and runner, really great if you need your own compiler or executer or any custom task.

IDE stands for Integrated Development Environment which supports development of software application. IDE actually makes the task of software development faster and easier for a programmer. Thats why IDEs are so popular. There are several IDEs available, and depending upon our needs , we choose one which is better for specific requirement.

In this article, I present some overview on the currently popular IDEs and will provide my experience on there IDES. First I will talk about my requirement, and then discuss about my research work carried out to get the better one for my requirement. May be you guys also have the similar problem, then this article will help you to some extent.

First, lets talk about my background. I basically develop software using java programming language. Previously, I used Netbeans, but later, because of serveral plugins available in eclipse, I chose Eclipse as my primary IDE. However, both the IDEs are very very popular, and ranked on the top. Eclipse is, with no doubt, the best IDE we can get which is open source. I have heard of IntellisJ IDE for Java, I guess, the current Android IDE(i.e. Android Studio) is using this IDE. But I am not so interested on this, firstly because it is not free, secondly, I found it a bit odd for Eclipse users. Netbeans is good , but there are not a lot of plugins available. 

By the way, this article is not talking about Eclipse, this is very good IDE and very popular. No need to write more about this because everybody know about it. My concern is if I wanted to write short programs/scripts or small website, then opening eclipse(everybody know that eclipse is bloated IDE) which needs a lot of resources to load, make the development task slower.Creating a project, creating files, and many more eclipse generated files make it confusing and somehow complicated. For example, I want to write a python program, which is no more than 100 lines, or if I want to create a website with a couple of pages, then opening eclipse , installing plugins, installing java(Eclipse requires that), is a very lengthy process. For Python project, I installed a Python Eclipse plugin (PyDev) where I could devlep python projects, but I could not feel comfortable with it. I wanted better support (like auto code complete, documentation). Since eclipse makes confusing by creating many other supplementry files, which makes the deployment processes complicated. However, Eclipse is best IDE for Java and Java related frameworks. 

So, I started doing some research work regarding which IDE best meets my requirement: fast, easy, light IDE, which helps to create normal everyday task (like creating small scripts(PHP or Python) , creating a couple of web pages in html, Javascript, css or any other programming languages. I have installed several IDEs and tested if it fits for my requirements. 

My another requirement is support of Linux and Windows operating systems. I basically use bothe operating systems, and IDE should work both systems, you know what I mean, IDE should be platform independent. 

My third requirement is it should be opensource, you know why opensource, we do not need to pay any bucks for these IDEs. And we can have chance to support the product if we have interest, but that is not my concern.  Here I have listed a bunch of IDEs I have been familiar with and I will tell you why I did not choose that IDE. 

1) Notepad ++

It is very nice IDE, but not full support for specific programming language, For example, if you develope a python script, it would not support code auto-completion. But Notepad++ is a general purpose text editor, which has capability of sytay highlighting for several progrmaming languages. There are plugins alos, but I found it not so interesting. Another disadvantage is we can not directly install Notepad++ in linux systems.

2) Vim

Vim is also good, support syntax highlighing for several programing languages, but not enough to do some advanced tasks.

3) Blue Fish

This is good IDE, I basically did not like the menu structure. They are not properly managed. And code highlighting was not good(for me).

4) Bracket

This is very nice IDE, I have tested it and worked like a charm. Support almost everything, and simple concise IDE and everything properly positioned. We could see live pages so that we do not need to run same page again and again. This is a nice feature. Many programmers recommended this for website development, and it is really good.

5) Sublime Text

I have tested this also, but it has the same impression like Blue Fish, menus are not proper, or unwanted, or not normally needed(sometimes confusing also) . I can not tell more about this, because I have not fully tested it.

6) Atom

Finally, I have stucked with this IDE. This IDE is really nice where we can install packages with our requirements. For this IDE, everything is package, that is good for me, because I can removed unwanted packages to make the IDE faster. Some users say this IDE is slow, but I have not noticed it. Actually, it is not noticed for small applications which this article is talking about. Code completion is perfect, syntax highlighting super, and files management is so simple, we do not need any extra files, just a folder is enough. And menus are so proper and concise, I really liked this IDE. The best part is there are thousands of packages available which we can install for our specific requirements.

Here is my scenerio:

1) I want to develop a simple website: For this requirement, I need HTML, Javascript, CSS. And there should be some mechanism to view the output(better if it is live like Brackets). Yes it has everyting. To view live, we instll a package called browser-plus which previews a page, the page could be made live. And if we need, we can debug also. It has CSS and Javascript auto-completion and code highlighting.  So, for web pages, it is not the problem, everything is fine.

package: autoclose-html

2)  I want to write a script(Python) and run it: This is challenging, but it is not that difficult. We just need to install atom-runner which runs  the script.

Package for python: language-python

Python should be installed before you install the packages.

And there are several packages which you can search and install according to your requirement.

You can see how many times the packages are already downloaded which can give you a hint how popular (stable) is the package.

There are some interesting packages which help program development:

>> minimap
>> pigments
>> autocomplete-plus
>> autocomplete-xml
>> autocomplete-paths
>> terminal-plus
>> autosave
>> highlight-selected

No comments:

Post a Comment