Things you can only do with a Web IDE
I love the web to such an extent I'm not sure if I will ever create a "fat client". Here are some of my reasons, using a Web based IDE as my use case
Join the DZone community and get the full member experience.Join For Free
"The Web" holds a unique value proposition as far as I am concerned. A decade ago I was extremely outspoken in regards to it, warning people about technologies I referred to as "Active X 2.0". Today I am not as outspoken about it, but I still feel the same, and my feelings can be summarised with the following questions.
- Do you want one codebase, or do you want 5 codebases?
- Do you want to control your own distribution, or do you want to exist within Apple's and Google's mercy?
- Do you want to learn one or two programming languages, or do you want to end up in a position where you've got 5 different programming languages to create a simple Hello World application?
I could go on forever, but I suspect most sentient homo sapiens at this point gets the point, pun! And unless you answer all of the above questions 100% perfectly "wrong", the only real choice you've got is "the web".
However, ignoring the disadvantages with "ActiveX 2.0 technologies", let's focus on the unique advantages the web gives you, and that only the web gives you. Because, as far as I am concerned, not only does "the web" eliminate an entire axiom of problems, it also grants you access to its own unique feature set, giving you an opportunity to innovate, far beyond that which is possible using proprietary technologies, such as whatever Swift and the Android SDK gives you. Below is a screenshot from Hyper IDE, demonstrating integrated invocations of HTTP endpoints, literally from within the IDE itself.
Hyper IDE of course is an integrated component in Magic, and allows you to do things you could only dream about doing in a desktop based IDE. The reason is because the runtime and development environment is fused together as one! For instance, imagining testing your application without having to recompile anything, and without having to leave your IDE. And no, I am not talking about unit tests, I am talking about the type of testing you do manually, to make sure your code works logically, by playing around with your HTTP endpoints, passing in different payloads and query parameters, to sanity check your code. With Hyper IDE, this can be easily achieved without ever having to leave your IDE. No need to recompile, switch to your browser, open Swagger, and start parametrising your invocations. Simply click the "Execute" button, and you've got access to everything from within your IDE. Below I am demonstrating this feature in a YouTube video.
Such a development experience allows you to move faster, simply because of that from the point you modify the code, to the point where you test your code, less than 2 seconds have passed. Of course, most people will say that if it takes 2 seconds or 30 seconds is irrelevant - However, most people are wrong. Several studies have been conducted in this field, and they all show that the amount of cognitive energy required to fix a bug, increases exponentially according to how much time passes between you create the bug, and you test your code, and realise your code has a bug. This implies that you would need to spend 2 to the power of 15 as much "cognitive energy" on fixing a bug if it takes you 30 seconds to discover it, compared to if you'd find it in 2 seconds. Implying ...
It is 32,768 times more difficult to fix a bug with a desktop IDE than a Web IDE
... assuming it requires 15 times as much time to test your code with a desktop IDE, which is probably a conservative estimate may I add. These types of features literally results in a "happier life" as a developer, simply since the less energy you have to spend on fixing bugs, the more time you have to do other things, more exciting things. And as we all know ...
Happy Developers, Happy Wife. Happy Wife, Happy Life ^_^
Opinions expressed by DZone contributors are their own.