DEV Community

loading...
Cover image for Why online coding is the future ✅
Codesphere Inc.

Why online coding is the future ✅

christian0cfg profile image Christian Siemoneit ・1 min read

Google uses Cider internally. Cider is a custom browser code editor which mounts the enormous Piper file system and provides a super tight integration with internal review, build and testing tools.

Github recently announced Github Codespaces to jump directly into a working environment when looking at a repository. Gitlab recently announced their partnership with Gitpod, building their own opensource clone of VSCode, providing the same functionality as Codespaces since some time already.

But why all this? Simply put, desktop IDE’s do not scale up!
In times of microservices and cloud developers just have to work on more complex projects… faster 🤓

While it is clear for Google that a single desktop, no matter how powerful, can not handle the Google Dev environment alone, it becomes almost equally important for smaller companies to not spend months on setting up a development environment.

The next logical step?

Move the full development infrastructure (from dev to production) to the cloud and unlock the potential of tools that exceed the abilities of my desktop.

This is why we built Codesphere 🚀

Discussion

pic
Editor guide
Collapse
hklaiho profile image
Henri Laiho

Not every development environment consists of 200 microservices, 5 databases, a search engine and an email server. Online editors might be a future.
It should be said that stop following big companies for trends, they have their own reasons for doing things their way.

softwareengineering.stackexchange....

Collapse
eliasgroll profile image
Elias Groll

Very true.

IF you want to build for scale, desktop IDE's not the right tool and far away from what is possible :)

Collapse
eduardonwa profile image
Eduardo Cookie Lifter

Exactly what I was thinking. Well put.

Collapse
cdthomp1 profile image
Cameron Thompson

How about editors for mobile devices? I know it’s not practical to code on an iPhone, for example. However, when an idea comes to mind, it would be great to work on it “on the go”. Thoughts?

Collapse
christian0cfg profile image
Christian Siemoneit Author

I share this vision and the step from cloud to mobile devices is a very small step. With Codesphere coding on your iPad will be fantastic, iPhone at the beginning not very beautiful but at some point also a great experience. This is another advantage of a browser / cloud-based solution.

Collapse
romfrolov profile image
Roman Frolov

Oh yeah, absolutely. Leaving some notes and comments or may be even drafting some algorithms would be great on an iPhone. I think it's also great for code review and collaboration, e.g. when someone asks you to check out their uncommitted code.

Collapse
swiknaba profile image
Lud

I doubt that you will have great ideas for specific lines of code on the go. If I have a really cool idea (code related) on the go, then that is always just a concept or an idea, never specific lines of code --which I record as an audio message or I write a message to myself.
Is this an "it sounds great in my imagination" idea, or do you have actual data that shows, that people would actually use coding on a phone?

I remember having a code editor and even an SSH client on my phone years ago --I never (!) used it for real.

Collapse
eliasgroll profile image
Elias Groll

We optimize for tablet's, laptops etc. first - BUT we also love to review, double check, and minifix things on the go. Why not :)

Personally, especially with these foldable phones and 5G, I dream of this already for a long time :D

Collapse
christian0cfg profile image
Christian Siemoneit Author

I get your point and don't see real, complex coding on an iphone. I give you that. But 2 points: First it has a value for many developers to have at least access to their full code on a phone and there is room for improvement from the code editor you have had years ago. Secondly a tablet is also a mobile device and it can be very convenient for 'remote' coding. Speaking about mobile devices we should not focus on phones first, don't you think?

Thread Thread
swiknaba profile image
Lud

I admit, coding on a tablet sounds interesting. My phone would be too small for me, to even see enough though.

Collapse
aghost7 profile image
Jonathan Boudreau

This sort of thing has been around for a very long time and never really picked up momentum. The main issue in my experience is the quality level of the web IDE is much lower than what is available on the desktop (autocompletion, debugging, plugin ecosystem, etc). You loose out on some productivity when moving to a web IDE (inferior tools), and in my experience, due to the gain in productivity being too small (not having to set things up locally), results in a overall loss in productivity.

Collapse
eliasgroll profile image
Elias Groll

At Google, we had a very integrated and well working environment in the browser (lets not call Codesphere an IDE, its actually a Cloud Provider where the UI is an IDE) called CIDER.

It was very productive for tools like blaze/bazel and boq (the internal "kubernetes").

Collapse
aghost7 profile image
Jonathan Boudreau

You are missing my point. In your example, you mention bazel, but I've never seen any Java projects using it in the wild. This is very specific to Google and probably won't be selected by most companies. Maintaining an ecosystem that supports a wide variety of workflows is very hard, even more so in the cloud. This is why I am very sceptical that coding online is the future.

Another thing I've found annoying with web-based IDE's is that hotkeys of the browser itself can conflict with your terminal ones (ie, readline defaults). This is a fairly minor issue though.

Thread Thread
eliasgroll profile image
Elias Groll

I am not saying Google's tech was best for most companies, but it was very productive for one workflow.

We aim to do this for fullstack apps written in TypeScript.

Fully agree with the hotkeys, its annoying but yeah..minor.

Collapse
christian0cfg profile image
Christian Siemoneit Author

You are exactly right. All those mentioned features (autocompletion, etc.) must be a part of a web IDE to really boost productivity.

Collapse
romfrolov profile image
Roman Frolov

I absolutely agree.

And that's why we're here to change it. :)

Collapse
swiknaba profile image
Lud

Please no! I've worked in offices with super slow internet. As much as I like cloud-based software (I am developing cloud-based software every day!), most of the time, actually always, I will not work on gigantic code bases that do not fit on my computer anymore. In all of these cases, I prefer the speed (and reliability !!!) of files on my local SSD over the speed of files on a remote server (with a possibly flaky internet connection in between).

I could tell quite some stories of totally failed software projects that failed because some dude (that I know in person, no imaginary stories here!) copied the patterns of, e.g., Netflix and tried to write software for a start-up with 3 people the way Netflix does with about 80 developers (after many iterations and hilarious growth). Needless to say, said startup(s) failed (in multiple rewrites) to deliver working software for a couple of thousand users.

I cannot stretch this enough: AS SIMPLE AS POSSIBLE! Or as we say in Germany: Alles mit Maß und Ziel -> Do everything with measurement and objective (= the German way :D).

Unless I really MUST move my coding environment to the cloud, I will not do it. Also, I will only do so, if I could --beforehand-- measure and determine clear advantages, that outweigh all possible downturns (e.g. what do you do if your internet is out for several hours).

it becomes almost equally important for smaller companies to not spend months on setting up a development environment

-> I do not see any real proof for this in the post, sorry! Do you really spend months setting up your Dev's computers with a text editor and git? Do you have any measurements for that? Did you set up environments for different use cases and measure the time it took? I have a script that sets up a new computer for me within 1h. Again, that is 1h to set up my environment to get up and running to develop software using many tools.
I highly advise to not make such bold statements without actual data --even more important: don't waste your time developing software that solves a problem based on guesses, other people's posts and other magical information.

Collapse
eliasgroll profile image
Elias Groll

Hey Lud,

thank you for the opinion :)
Codesphere is not really a browser IDE, and not really meant to replace your local environment.

Its a cloud provider that deploys and scales your code automatically, with the UI being a browser IDE (but you CAN just mount an fs and work locally).

V1 is meant to keep the deployment & kube stuff away from your fun / test / mvp projects.
V2 keeps all automatable tasks (deployments, infra-management, privacy, security, scaling ...) away from your developers so they can focus on code.

I hope you will like it!

Collapse
christian0cfg profile image
Christian Siemoneit Author

The key assumption of a perfectly running internet connection is crucial and worth a discussion. But it might not be equally crucial for everybody and the workflows are less efficient without internet even if you don't code online. Do you need internet connection at any time?

Collapse
swiknaba profile image
Lud

Exactly. But without internet connection, the Cloud-Editor won't work, right? But my offline editor works always. Can I run tests when I'm offline?

Thread Thread
eliasgroll profile image
Elias Groll

Hi Lud, sure, you can run and have everything locally.

The editor is not meant to replace your local env (today), it is there as a more native (to developers) ui of a cloud provider (what codesphere essentially is).

The idea is to be way more informed (no need to try to be smarter than today's IDE's) about the full workflow from local to dev to prod and make you more productive with that.

Collapse
codemouse92 profile image
Jason C. McDonald

Please be advised, while talking about your projects is fine in small doses, be careful to keep it in check. This is your second post in so many days about your product, based on the same premise.

From the Terms of Use...

Users must make a good-faith effort to share content that is on-topic, of high-quality, and is not designed primarily for the purposes of promotion or creating backlinks.

DEV offers Listings for advertising.

Instead of just advertising your product, please consider telling us more about how you built Codesphere, what problems you encountered in building it, etc. Connect with the community here as fellow coders, rather than as potential clients.

Collapse
christian0cfg profile image
Christian Siemoneit Author

Thanks, Jason! I get your point. Here it was about telling the story of limitations we all currently have and the painpoints to solve. More deep tech content will also follow. This is the basis of all our coding work since months and it is very interesting to see the different opinions in the discussions under the posts.