What are Online Compilers & Online IDEs?

An online compiler allows you to access, edit, and compile your code from any web browser.

Editorial Note

This article appears in the Third Party Products and Tools section. Articles in this section are for the members only and must not be used to promote or advertise products in any way, shape or form. Please report any spam or advertising.

Introduction

It has always been difficult for programmers to organize and work on projects across a variety of locations, computers, and devices – especially when you work in teams. When you store your code on one computer at one location, you become tied down to that one computer, finding yourself running back to that machine each time a you’re hit with coding inspiration. Worse, if you’re working in a team, each member of the team has to send their code to every other member, each step of the way, creating organizational distractions and unnecessary delays. This is the problem that online compilers have solved, and the programming world will never be the same.

With an online compiler, you can store your code online, allowing you the freedom to program from any computer (or device) with a connection to the internet. With an online compiler, you and your team can work on the exact same set of files, regardless of where your team members are, allowing you to work better as a team and keep your projects organized.

Benefits of Using an Online Compiler

Code on the Road

Online IDEs have cut the number of tools you need tenfold – now, to access and edit your code, all you need is an internet connection. This allows you to access and edit your code from just about any computer worldwide, freeing you from the need to have constant access to a single computer where your files are stored.

Code in a Team

When working in a team, it’s essential to keep all team members on the same page, keep team members updated to the latest changes in code, and keep projects organized without a confusing jumble of different project versions stored on different computers. An online compiler allows a team to work on the exact same set of code, browsing files just as they would if they were stored on their local machine, marking the end of organizational hassles.

Ready to Go

Shipped with just about language/library/etc. you’ll ever need, online IDEs come ready to program out of the box. With an online IDE, you can get your projects up and running faster than ever by skipping over tedious installations, and getting right down to the programming of your project itself.

Use Any System

An online compiler stores your files in the cloud, and you access/edit these files with your browser. This means that you are now able to program for a wide selection of devices, without actually needing to go out and purchase them. You can write for Mac, Windows, and Linux or even an iPhone or iPad without spending the money on buying one of each.

Program with Any Device

Can you log into your online compiler with your Smartphone or tablet, and edit your code? Absolutely. It might seem a bit awkward to consider writing code on your iPhone or BlackBerry, but when you have a client demanding coding changes fast, you will be glad you can. With an online IDE, you can log in with your Smartphone, edit a project’s code, and have it sent off to your client in a matter of minutes.

Some Current Limitations

As an emerging technology, today's online compilers are certainly not without their limitations. Most online compilers have yet to integrate the reliable version control capabilities which many of us will find necessary on production projects, however for the time being, most online compilers have integrated auto-save functionality to temporarily make up for lost ground. Auto-save functionality will save a back-up of your code as you work in case you loose your internet connection, but this will not overwrite your project's files, which will only be done when clicking "save".

Team collaboration can also still be a bit limited, though this is there area where online compilers likely stand to make the most impact on the way we code. Again to temporarily make up for lost ground, some online compilers have implemented a "public projects" feature, which will allow your fellow team members to view your code online and copy it into their own profile. In the future, as the development of online compilers becomes more advanced, we will undoubtably see better team collaboration functionality, allowing multiple team members to work on a single set of files without overwriting the changes of their team-members.

As the primary goal of any online compiler has been to replicate the feeling of programming on your own computer, care is taken to ensure that there are no significant changes when approaching programming on an online compiler vs. programming on your own computer.

Keep in mind that online compilers are an emerging technology and under active development. Rather than taking the current limitations of online compilers as a stumbling block to getting your feet wet with the technology, you should take it as a cue to dive right in. Find the online compiler that fits you best and get involved in that compiler's forums, make suggestions on what features you feel need to be implemented first, and help develop the online compiler platform. The beauty of online compilers is that their CEOs, marketing teams, and of course developers, all programmers just like you - they're more than eager to listen to your suggestions on developing their online compiler, and most importantly, they'll understand what you're talking about when you ask for a feature. Just to drive this point home, find your favorite online compiler and get involved - not for what it is, but for what it will be.

Choosing the Right Online Compiler

When choosing the right online compiler for your project, you need to ask yourself one simple question: what language / platform do I want to use? At the time of writing, there are a handful of online compilers / online IDEs that currently exist; luckily for you your decision on which online compiler to use has been made much easier by the fact that each of these online compilers, at least at the time of writing, seems to be specialized for a certain set of languages with relatively little overlap between products. In the future, there will likely be more direct competition between online compilers, however at present, the following compilers are your best bet for their respective languages.

Closure Compiler

Closure Compiler is an online Javascript compiler provided by Google. Although closure compiler can be downloaded to your computer, it can also be used as an online compiler by visiting this link.

Compilr.com

Compilr.com is the best tool to use if you want an online compiler for Java, C#, VB.NET, or to work on the XNA platform.

ShiftEdit.com

ShiftEdit supports a range of web development languages, including PHP, Ruby, Python, and Perl among others.

Coderun.com

Coderun is another good solution when working with PHP, AJAX applications, or working with ASP.NET.

Using Closure Compiler for your JavaScript

Closure Compiler is an open source project developed in Google Labs, and has been used by a number of high-profile google applications, including Gmail, Google Maps and Google Docs to improve the performance of their JavaScript. Though it lacks some of the online code storage and team collaboration aspects mentioned earlier in this article, the tool has been designed for optimization of JavaScript rather than for the management of an ongoing project. To use Closure Compiler in its online version, navigate to the following URL: http://closure-compiler.appspot.com/home.

Step One: Add a URL

Using the "Add a URL" feature shown at the top on the left-hand side, you can quickly load a number of the web's most popular JavaScript libraries including jQuery, MooTools, YUI, Prototype, Dojo and several others of equal importance. All libraries are loaded directly from Google's CDN.

Step Two: Choose Your Optimization

Closure allows you to choose from several optimization options before running your code through the compiler. Choosing "Whitespace only" will remove all whitespace and comments, but does not alter anything in your actual script. "Simple" will perform the same stripping, but also shorten the names of local variables to improve performance. Because it only works on local variables, the functionality of the script remains intact. "Advanced" will optimize your code better than just about anything else out there, but it can be touchy so before using it, it would be best to consider reviewing this article.

Step Three: Compile!

Hit "Compile" and watch your code shrink! If you have errors in your code, you'll be warned of them before getting an output, allowing you to ensure that your compiled code is not only small but of the highest quality possible.

Getting Started with ShiftEdit

ShiftEdit works best with web languages such as PHP, Ruby, Python, and Perl among others. To get started with ShiftEdit, head over to ShiftEdit.net.

Step One: Click Access ShiftEdit

After landing on the page, simply click "Access ShiftEdit" and log into the website; you can create a new account, or log in with your social network.

Step Two: Choose your language

Choose the language you want to code in. For this example, we've chosen PHP.

Step Three: Code!

After choosing your programming languages, you'll be greeted with a familiar code editing page, though unfortunately, the syntax highlighting of the application is still only in its early stages.

Creating Your First Project on Compilr.com

Compilr.com is an online compiler for Java, C#, and VB, with the recent addition of a online XNA capabilities as well. To get started using Compilr.com, point your browser to the following URL where you can sign up for a free account with Compilr: sign up for Compilr.com. Once you've signed up, with your free account you'll be able to create and store public projects on Compilr online IDE, accessing and editing your code from anywhere.

Step One: Select Create New Project

To begin creating your first project in Compilr, navigate to the sidebar and click "Create New Project". This will launch the new project screen where you can specify the details of your project.

Step Two: Select "Create New Project"

Once you have landed on the new project page, you'll be asked to specify the details of your project. The options on this page will depend on the programming language you have decided to use in your project, whether it be C#, C++, VB.NET, or Java. You will also be able to choose XNA, or another language platform. Once you have selected the specifics of your project, click "Create Project".

Step Three: View your Project, and Open it in the Online IDE

Once your project has been created, you will be able to view it, and if it is a public project, the Compilr community will be able to view the project and vote on its quality as well. To view your project and begin editing and compiling your code online, click the "Open in IDE" button.

Step Four: Get Programming!

You're up an running! You now have a project stored online, where you can compile your Java, C#, and VB.NET code from any web browser. To get started with the IDE and have a look at some example code, click the example file that is displayed in the file directory on the right hand side of the page.

Conclusion

Online Compilers / Online IDEs have changed the way we programmers do business – at least those who’ve had the foresight to make the switch. By storing and editing your code in the cloud, you’re able to code better, faster, and more efficiently. An online compiler is one of the most essential tools in the modern programmer’s tool belt, and if you want to stay ahead of the game; it is about time you bring your code into the 21st century. Online compilers may yet need a bit of work before they become the tools they're capable of, but the best way to get them there is to find the best compiler for you, and get involved in that online compiler's community.

Great article! Besides the ones you already mentioned you could always try another cloud based IDE. Koding! It has a ton of features. Free VM with root access, a Terminal, 1Gb space, 2Gb Ram and a whole lot more.

Just read the page, because I am looking for an online IDE. The online IDE has some positive benefits, but also some negative effect. No arguments here.

I find the conclusion very very bad. It stated that if you are not using an online IDE, you are using yesterdays tools... Hey, wake up. The self same page also state that the online IDE is still not 100% as usefull as the offline IDE. How can the offline then be yesterdays tools, when the offline are aheart of the online IDE?

The conclusion sound like it has been copy from other places... ''use this, it is the techonology of tomorrow, it is the best...'' ect. The conclusion sound like a sales pitch.

well, looking to start a bigger project, and was hoping to find an "open source" code project for an online IDE, that I could download and install on web server.
That had the following...

--revision system built in. but instead of files, code was data based. For example in MYSQL. with option to do a data base to file conversion. and vice vs. also ability to run code and different revisions of code in a database, or code in files via check boxes, based on different URLs. So as needed, things can be debugged / double checked.

--ACL (user access levels) for different merging, and code checks when combing code.

--code crunch, entire coding, with optional select boxes to choose different files to crunch or not. When I say code crunch, I mean, removing enter keys, Tabs, Double Spaces. then having option to due further crunching for variable names. Mainly to help speed up production environment.
--listing of functions per "programming language" I choose on left or right side of a page. For those HTML, PHP, Javascript, and CSS, as bare bones min. along with ability to scan code, to pull custom functions (be nice for showing objects as well. With the custom functions. being able to add, details of what they do, via a WYSIWYG editor. and then in another box, type info in, for auto completion info for the custom function. also a great help showing library functions, YUI, google, dojo, mootools, etc...)

--I do not remember which online IDE, this article was referring to, but it has an ""advance code crunch"" and it removed functions from understanding automatically. no good at all. give me a () parentheses, beside a function list, of how many times function was used. give me option, of "find and replace" to see what could it wants to truncate and reduce, before doing so. do same thing for variables.

--overall doing would allow various hand held devices to also use the IDE. Example: just thought of way to handle something or were a bug might be. goto PDA, goto website, login, double check, and if easy enough on PDA. do changes and done. vs hoping not to make it home / work / school. and using laptop / desktop computer.

--not needed, but would be very helpful, keep track of who did work on this or that code.
--tracking system, to issue bugs, updates, wants, add-ons, etc...

=============================
While I like idea of online IDE. I do not like being tied to someone elses site for an Online IDE that I need to log into there site. and would much more prefer, a portable online IDE. That goes with the online open source software. So that, admins, and general public coders, have info at there hands. An more so not be confused, of were to go for information. The admins and like will not have to use the built in IDE, but instead of creating a large section via webpages. that are a little bit every were. it is all tied into the open source software itself.

other words. Documentation and comments were they are needed. not in 20 different websites and then 100 different web pages. but everything bundled together. and is upgradeable as needed.

Pen drive notation is a very good example. of say having WAMP installed on pen drive, and then the ONLINE IDE installed within wamp. but going further, and having the online website software, also installed onto pen drive. this would be a good portable online IDE. but for me, I want to say allow users to goto there "website hosting company" upload the files. open up an install file. fill in database info. passwords / usernames. and go. with the Online IDE, and then take an extra step or 2. to set site into developer mode or production mode ((err optional revisions of code)).

====================
But after looking at current IDE's I just do not see capabilities there. There is a chance I might have missed something, but at moment. it looks like bigger project, will result in looking at version control systems and IDE's and see what can be combined and redone.

A category is an organizational component, describing what your project does, and if it is public, will categorize it on the explore section of the website. The template is the code template to start the new project with.

Thank you for your reply. But I was expecting a web project since I select a Web and Software Dev category. Unfortunately, I've got a window form application at the end. How does this comply with category and template ?

But my advice to my team is that the use and well manage of an online version control. So we can work from anywhere at anytime. But we need an offline, locally installed, IDE for that, such as in home PC and all. So at that point online IDEs are much handy than anything else. Collaboratively online source control and online version control makes my life easy.