A comparison between Hyper IDE, Cloud9, CHE and CodeAnywhere

WIIFM?

First a disclaimer, I have never used any of the above products, so my comparison will have to be based upon what Hyper IDE does – Or more accurately what it can do. Hyper IDE’s main USPs are in fact not about what it does, which might sound weird – But rather in what it can do, as I will hopefully be able to explain to you during this article, such that it makes sense. This might sound weird for the uninitiated, but hopefully we will have a common understanding of what this implies, as I wrap up this article, and reach my conclusion at the end down here.

First of all, Hyper IDE is new. The above products have been around for years, so inevitably they will have some features that Hyper IDE does not. This also implies, that I have barely started scratching the surface of the possibilities of Hyper IDE, and Phosphorus Five too for that matter. However, the difference is in the platform that Hyper IDE is built upon.

Hyper IDE, a living system

Hyper IDE is built on Phosphorus Five and Hyperlambda. This allows me to do a lot of “out of the box things”, such as for instance create what I refer to as “living documentation”. These are code snippets and “living elements”, embedded directly into the documentation, allowing me to have the documentation interact with the system – And have buttons and UX elements, in the documentation, that evaluates some piece of Hyperlambda snippet when interacted with. This allows me (and you) to create for instance articles about “How to get started with AngularJS”, in the documentation, and embed buttons like “Click here to do the above”, which would create a new “AngularJS template application” for the developer. Since the code for creating this new app, would be directly embedded into the documentation itself, which would “reach into” the API of Hyper IDE, to create a new app – This facilitates for a more fluid experience, and results in a more tangible learning experience, by including the tactile learning parts of the brain. I refer to this as literate documentation.

The documentation is also extendible, allowing for developers to document their own modules, components, and programs the same way. I (or you) could for instance, directly from the documentation, install new modules, components, and applications – As the developer is interacting with some UI element. Or I could directly from the documentation, send a PGP encrypted email, with the code from the currently active editor, to some other developer, using Sephia Five, etc. Or a link to it, etc.

This modularised architecture also implies that Hyper IDE does not live in “isolation” from the rest of Phosphorus Five. And since P5 is a complete web operating system, with lots of other apps and components, I can do things such as integrate it with Camphora Five modules, which would facilitate for teams of developers to collaborate on projects, and declaratively create their own project management tools, such as “TODO lists”, “Assigned to”, “Chat clients”, etc – Embedded directly into the IDE itself, according to their own specifications. Below is an example of me using Speech Recognition in Google Chrome, to literally talk to my computer, and have the computer generate computer code, from natural spoken English.

The above example uses the “Magic Menu”, which is an extendible speech recognition enabled, modularised, and extendible “navbar”. You can read about the Magic Menu here. For the record, the above example is a relatively “esoteric example”, but illustrate how Hyper IDE, and all components and modules from Phosphorus Five, can become extensions of each other, resulting in that the end result, literally becomes more than the sum of its parts – Arguably proving that 2+2==5. The Magic Menu could also be used to create “Macros” for Hyper IDE, which evaluates some “action” when interacted with, such as analysing the code, and providing automated code reviews, executing pre configured shell scripts, Hyperlambda snippets, etc. Another example would be to integrate Hyper IDE with Camphora Five CRUD modules, creating project management plugins. Below I am creating a new CRUD app with Camphora Five (2 minutes out in the video), for then to edit the automatically generated CRUD app using Hyper IDE.

Since Camphora Five has support for custom views, and also at its core is an API, this allows developers to embed things such as lists, project management tools, and chat clients, by creating custom views, that can easily be “injected” into the IDE itself. Below is a curiosity; “A Babel fish telephone”, that will translate from any language, and display the results in the receivers mother tongue, reading it out loud.

Using the above ideas, I could (in theory) have multiple developers, not even able to understand each others’ language, yet still collaborate on code, and communicate with each other perfectly fine. Yet again, the above is probably a really “weird” example, but things like the above, could be embedded directly into the IDE, and become natural living extensions of the IDE itself – Implying that not two installations of the system, would ever look the same, but rather be customised according to the customer’s needs.

Hyper IDE is a “living thing”, where other IDEs are more “static in nature”

Which I can say with confidence and certainty, since many of these ideas are impossible to implement without Hyperlambda, and I created Hyperlambda, and none of the other IDEs are implemented in Hyperlambda. So even though I have barely even scratched the surface of what’s possible with Hyper IDE by combining it with Hyperlambda and other Phosphorus Five modules – I can say with 100% certainty, that it will dwarf the possibilities of other similar types of IDEs in the long run, due to this “dynamic nature”.

Hyper IDE is a complete platform

For the record, one can build any types of apps in Hyper IDE, such as I am illustrating below, where I am creating a C# console application from my iPhone.

But, the true power arises from the realisation of that Hyper IDE is a complete platform, due to being built upon Phosphorus Five. For instance, Phosphorus Five comes pre-bundled with Hyper Core, which is an HTTP REST based ORM library, allowing me to interact with MySQL, and all other database systems, and/or business logic objects, on the server side, securely from (for instance) JavaScript clients. This implies that as you install Hyper IDE, you already have a secure backend for your front end code, and you don’t need any additional installations before you can start coding. Below I am illustrating how this interacts with Hyper IDE, allowing me to create an AngularJS app in seconds, that already as I click the “Create” button, is wired up towards the server side using HTTP REST services – And having already automatically created my database schema.

This allows a developer to literally “start out running”, without having to install additional dependencies, necessary for the developer to become productive. Another example of this, is how Phosphorus Five already contains features such as URL resolvers (allowing for URL rewriting in a dynamic environment), etc, etc, etc. The above “wizard” is also extendible in nature, and would allow anyone to create his or hers own specialised type of “wizard”, to automatically create new modules, according to input supplied from the GUI of Hyper IDE.

Security

Hyper IDE comes with all the security features of Phosphorus Five. This facilitates for a lot of interesting scenarios. For instance, one could partition the developer team up into multiple different roles, and have each role only having write access (and/or read access) to only specific parts of the code. This facilitates for a lot of highly interesting “out of the box scenarios”, such as allowing you to for instance outsource the creation of some specific component, or module, to a 3rd party – Yet still deny this 3rd party to even read other parts of the code in the system – While still physically have all the code in one server, and being able to create builds, even for the company you outsourced to – Even though the builds themselves, are dependent upon access to the entire code tree.

For instance, I have setup my own server, such that everybody can edit the contents of the “/test/” folder. You can try this in the following link if you wish, by editing this file, and saving it. While if you try to change the following file, and save it, you will be denied access to saving it. If you even try to read the following file, you will be denied access. This makes it much more easy to assign read and write access, to specific parts of the system, using the integrated Peeples module. If you want to see how this access system works in practice, you can see the following video.

Conclusion

The main USP in Hyper IDE, is actually not in its features, or what it actually does today. It is rather more about what id can do, either by me creating modules and/or plugins to it – Or by its users creating their own extensions, that somehow modifies the system one way or another. Hence, Hyper IDE is arguably not an IDE per se. It is more a “platform for configuring your own personalised IDE, according to your own needs, and what features the end user and developer needs in his personalised installation”. Making the system highly “Agile in nature”. Of course explaining things like this to other developers, is often difficult, since everything mentioned in this article has arguably never been seen in these parts of the universe before (even though some developers will claim they have seen it before) – However, hopefully I was able to accurately answer the following question;

What’s in it for me?

… from your point of view. If not, feel free to ask questions.

Psst, you can modify Hyper IDE’s code, from inside of Hyper IDE, and I created Hyper IDE, using Hyper IDE in fact 😉

Still not convinced? Download it an try for yourself 🙂

References

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.