Online Ide Promo Getty 1194430784 5ee14782705bc

Discovering Online IDEs During the Pandemic

June 10, 2020
Online IDEs and collaboration tools are one way to address the stay-at-home COVID-19 orders.

Most developers are already using collaborative tools and shared repositories like GitHub, but these often require a significant amount of effort to set up and manage—especially for more complex environments. This makes working at home a bit easier as we contend with the effects of COVID-19. Many also have more time and are looking for training and learning opportunities.

For an introduction on a programming language like Ada/SPARK, you can check out the interactive learn.adacore.com site. Unfortunately, setting up your own development environment is much more challenging. This is true for any programming language or environment that includes things like AI or IoT frameworks. 

Luckily, a plethora of online services provide web-based integrated development environments (IDEs) that can be used almost immediately (see table). The list is by no means exhaustive, even though it’s long. And many similar offerings are tailored to more specific environments, programming systems, etc. Likewise, these platforms aren’t necessarily interchangeable, as they often include support for other services and environments. Rarely are they simply online versions of a single-user IDE. Collaboration is a key component that can be exploited with these platforms. 

A Collection of Various Online IDEs

IDE Open Source Commercial Languages
Arduino Yes Pro version C, C++
Browxy Yes Java, C, C#, C++, PHP, Python
Cloud9

V2 – GPL, V3 – non-commercial license

Amazon Web Services Over 40
Codeanywhere Eclipse Che Yes Over 70
Codenvy Eclipse Che Red Hat/IBM
Over 80
Codesandbox Frontend-only
Yes Web development
CodeTasty Yes Over 40
Eclipse Che Yes See Codenvy and Codeanywhere Over 80
Eclipse Orion Yes Over 80
Gitpod Yes Over 20
Koding Yes Yes Over 20
MBED Some Arm C, C++
Repl.it Yes Over 50
ShiftEdit Yes Over 20
SourceLair Yes Javascript, Python
Visual Studio Codespaces No Microsoft Over 40
To get started with any of these, you simply needYe an internet connection and a web browser. Many of the services offer a free or trial account, so you can start playing with almost any programming language in minutes. Many times, these environments include more than just a program development environment, complementing the IDE aspect with collaboration tools and often services like container support, IoT frameworks, databases, and so on. Some focus on developing web-based applications while others encompass the entire development arena.  

For example, Cloud9 is used on the BeagleBone AI board. This allowed the designers to eliminate the graphical interface that was normally part of the BeagleBone platform while providing a more powerful cloud-based development that worked right out of the box.

Getting Hands-On

Exploring the world of online IDEs has been interesting. I had a chance to dust off APL, which I hadn’t used in about 30 years. I used Scheme and list much more recently, but it’s also less common than Python or C++. I got to try out TypeScript, the relatively new type-based JavaScript, as well.  

Probably more interesting was the ability to utilize collaboration tools and services like source-code version control systems as well as bug-tracking systems that are either built-in or integrated. These are often the more difficult to set up and maintain for developers that would rather just use these tools instead of having to manage them.  

There are tradeoffs. Getting started quickly is a definite plus, and having access to integrated services can be a boon that should not be underestimated. Many services are built on or linked to cloud solutions that can include file management, database support, and even device-management systems. In fact, most of the major suppliers of cloud services have their own online IDE as part of their solution. They typically support a wide range of third-party online IDE solutions, too.  

Other advantages include automatic update of the tools, although this can be a disadvantage as is noted later. Backup support and cloud storage are typically part of the package. Project management tends to be more robust with the ability to link websites, source-code management, etc., in a more cohesive work environment. These solutions typically highlight open-source group collaboration as well.  

Be Wary of These Issues

Some of the key disadvantages include internet access as a requirement in addition to cost. Costs can rise significantly as the number of services used and number of users grows, but all of these issues are true for any cloud-based solution—and online IDEs represent just one of these solutions.  

Tool version management can be problematic. This can be critical for embedded development where maintaining a consistent toolset is key to delivering verified products. Security can become an issue as well as responsibility for the code and other IP that’s involved in development.  

Also consider the location of your backups. If everything is in the cloud, is it all in a place that you feel is safe? Personally, I would not want the cloud vendor being the sole manager of my source code. If I can’t easily maintain my own copy on my own hardware, then I would skip using that platform for serious development. On the other hand, utilizing it as a learning tool or part of an open-source team could be much different.  

Most cloud-development solutions are designed to operate under the auspices of the cloud vendor. However, some platforms, especially open-source varieties, can be set up and hosted by any company. Likewise, commercial cloud-development providers typically offer different tiers that have similar partitioning of costs, with a higher-end version that provides more isolation, security, etc.  

Cloud-based development can simplify development for a group or company but always consider the tradeoffs. Carefully examine the tools and features as well as the long-term development plans for cloud-based solutions. Migration off a platform can be very painful if you take advantage of all the integrated tools and services, because replicating these on another service will be next-to-impossible due to the nuances involved.  

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!