Getting started with the Cloud9 development environment

Web Development

cloud9 logoIf you are learning web development, Cloud9 offers free and low-cost cloud based environment that provides everything you need to get started.

Every now and then, I’m impressed. I’m not sure how I’ve never heard of this before, but Cloud9 is pretty amazing. This online integrated development environment supports the following languages: C#, C/C++, Clojure, CoffeeScript, ColdFusion, CSS, Groovy, Java, JavaScript, LaTeX, Lua, Markdown, OCaml, PHP, Perl, PowerShell, Python, Ruby, Scala, SCSS, SQL, Textile, X(HTML), XML.  When creating a new project, you can import code from Git, GitHub, Bitbucket or Mercurial.  You can also deploy your projects to Heroku, Joyent, Openshift, Windows Azure, or Google App Engine.

ASS-KICKING WEB-BASED EDITOR

What amazed me right away about Cloud9 is the fact that it is 100% browser-based. There is no software to install or anything to download. You simply fire-up your browser and get to work. In your browser, you’ll find an IDE, as well as a console window. You can chose from a number of editor themes, so you can do for the “Monokai” look if that is your thing.

cloud9 IDE
Cloud9 IDE

Impressive TemPlates

Creating a new application could not be more simple; you can chose from one of about a dozen templates. These include basic HTML5, Node, Python, C++, PHP/Apache, django, Ruby, WordPress, or a blank Ubuntu Linux image. There is even a template specifically for Harvard’s infamous CS50 course.

DATABASE TOO!

Yep. You can configure a database for your application. Cloud9 supports MongoDB, MySQL, CouchDB or Cassandra.  In each case, the setup is slightly more involved than a simple click or two, but overall it’s not too complicated.

Pricing

It’s very cool that they have a free tier. Not only can you kick the tires, but for students, it’s a no-brainer.  You get one private workspace, and then the rest are public. The “Individual” plan is $19 per month. This is not a bad deal at all as you get three “Hot Workspaces” (i.e. they don’t spin-down due to inactivity), unlimited private workspaces, and increased performance. There is a “Teams” plan which is even more robust as well. If you are a full-time student or represent a school, look into their “Education” plan, which will run you a whopping $1 per month. Amazing.

Summary

While services like Heroku, Cloud Foundry, Dokku, Deis, Flynn all make it easy to spin-up various kinds of web-based stacks, Cloud9 makes it even easier. One of the really key aspects of this is the 100% online approach. You do everything in the browser; create files, edit files, deploy your code, even run terminal commands. For serious / production PAAS, I’d go with AWS, but for learning, quick testing, or prototyping, I highly recommend taking a look at Cloud9.

What is the difference between a back end and a front end web programming language?

Web Development

You may have heard the terms “back end” and “front end” with respect to web development languages. Some may find them confusing, but there is not too much mystery to it at all.

In the most basic terms, the moniker says it all: a back language runs on the server and does all its work before the page gets to you. By the time you see the web page, any back end  technology that was used to construct and then serve up the page is no longer involved. Conversely, a front end language operates on the client side. It works in your browser and does not do anything until the page and its associated assets comes over the wire.

Back End Programming Language

An example of a back end language is PHP, which is a scripting language. When a user requests a PHP page, the server parses the PHP code, which in most cases results in dynamically created HTML. A PHP page can simply contain HTML. It is not required to include any scripting code at all, but any code that is in the page will be parsed.  Consequently, the web page viewer never sees one line of PHP code. Assuming that the web server administrator has configured the server correctly, it will surely never show you the actual PHP code.  This is because the web server parses the PHP and then generates the page. This results in HTML. Although, a web developer can use PHP to serve up any other text-related asset. For example: JavaScript, JSON, CSS or XML.

Front End Programming Languages

In web-development, many people often use the terms “front-end” and “client-side” to express the same thing. Specifically, they refer to technology that the end user’s computer executes. That is to say, the browser understands these languages and is thus able to interpret the code.

Consequently, this is the exact opposite of a back-end programming language. Specifically, a web server does not understand HTML, CSS or JavaScript. It simply ensures that files that contain these languages can be downloaded . The web server cannot execute HTML, CSS or JavaScript. (There is an exception with regards to JavaScript, which will be discussed shortly.) But, browsers such as Internet Explorer, FireFox and Chrome do understand these languages, and are able to execute them on the front-end. Accordingly, this means that your computer parses HTML, CSS and JavaScript. In the case of JavaScript,  your computer executes that code.

JavaScript is probably the most commonly used front end web development programing language. Technically, it is a scripting language. Unless you explicitly disable JavaScript in your browser, you see and interact with it every day. When you request a web page, the JavaScript is either in the page, or is downloaded in a separate file. JavaScript runs in your browser, and most people only associate it with those annoying pop-up ads. This was true in the past, but today, JavaScript plays an integral part in creating rich user experiences.

Important Note: Although JavaScript has historically been a 100% front end technology, it is now a fully mature back end language as well. Thanks to the brilliant work and vision of Ryan Dahl, JavaScript can now be run server-side by using Node.js.

Helpful Links for Back End and Front End Languages

Front-End / Client-Side Languages & Technologies

JavaScript

http://en.wikipedia.org/wiki/JavaScript

http://blog.kevinchisholm.com/tag/native-javascript/

https://developer.mozilla.org/en-US/docs/Web/JavaScript

ActionScript

https://en.wikipedia.org/wiki/ActionScript

https://github.com/languages/ActionScript

http://www.adobe.com/devnet/actionscript.html

CSS

http://en.wikipedia.org/wiki/Cascading_Style_Sheets

http://www.w3.org/Style/CSS/Overview.en.html

Kevin Chisholm – Blog – Posts about: CSS

Back-End / Server-Side Languages

PHP

http://www.php.net/

http://en.wikipedia.org/wiki/PHP

http://en.wikibooks.org/wiki/PHP_Programming

http://www.codecademy.com/tracks/php

ASP.NET (C# / VB.NET)

http://www.asp.net/

http://en.wikipedia.org/wiki/ASP.NET

http://msdn.microsoft.com/en-us/library/vstudio/4w3ex9c2(v=vs.100).aspx

ASP.NET Overview

ASP.NET and Visual Studio for Web

Java

http://www.java.com/en/

https://en.wikipedia.org/wiki/Java_(programming_language)

Node.js (Server-Side JavaScript)

http://nodejs.org/

http://en.wikipedia.org/wiki/Nodejs

http://blog.kevinchisholm.com/tag/node-js-2/

http://stackoverflow.com/questions/2353818/how-do-i-get-started-with-node-js