IDE’s come from a time in which the majority of what we programmed were monolithic desktop applications.
But that’s not the reality anymore for many of us.
As web developers we now work on distributed systems consisting of many different microservices.
Let me give you an example: Not long ago we were all happy to listen to our music with Windows Media Player, a nice and simple desktop application that could probably build and run in any C-IDE without many problems.
Today many people use Spotify or similar streaming services to not only listen to music but also share and interact with the artists.
I don’t even want to imagine the hassle of setting up a development version of such a big software system.
A typical workflow of mine
Here is an example of the Codesphere co-founder Jonas. It is about setting up a new project from one of his friend. Spoiler: It’s not a great experience.
Because I recently got a new development machine I set up my keymap, installed a couple plugins, pulled out my split keyboard and I was able to do my code changes at a reasonable speed (ignoring the occasional wrong import suggestion I always seem to get).
Now the time comes to test my changes.
I begin with installing the project dependencies and at this point my hands begin to sweat as the CPU fan of my modern 2k€ laptop begins to spin at its maximum rate.
The IDE has started indexing a couple million of files and is burning away my battery at light speed. After a couple of minutes my computer becomes responsive again and I try to start the build and run script. But it’s not working!
It looks like some of the linux commands from my colleague don’t work on my windows computer. Also, I accidentally change the line endings from LF to CRLF on the files I modified, which will probably cause a headache later on when I try to deploy this to the production linux infrastructure.
Finally I get some of the microservices I want to test running. They are complaining about wrong credentials and about being blocked by the Azure firewall.
So I whitelist my daily changing IP address and gather the development secrets from the companies file share.
Even now: one of the services is still not fully healthy.
I ask my friend for help… He tells me that that particular service manages cluster resources and can only be run in a kubernetes environment and that I would have to install it if I wanted to debug that.
At this point my morning is over and I leave the desk to get a second coffee and ask myself:
‘Integration’ is a significant part of I(ntegrated) D(evelopment) E(nvironments) — so why are IDEs disconnected from our workflows today?
Let’s fix this
As web developers we always try to port as many desktop apps as possible to the browser.
After all, the browser seems to have solved the problem of software distribution allowing users to work at any place and any time.
Anywhere: Imagine being able to code anywhere, even on your Android tablet without having your lap burned from the CPU quickly burning away your battery.
Anytime: New collaborators could simply click a link and start coding right away. No individual setup process for the specific hardware.
There are more advantages to think of like real-time collaboration, having your settings synced everywhere and simplifying the integration of cloud services just to name a few.
At Codesphere we make this vision a reality.
Do you know the limitations and painpoints Jonas is describing in his article? Let us know! If you enjoyed reading this article, feel free to share it and follow us!