tobychui / arozos

Web Desktop Operating System for low power platforms, Now written in Go!
https://os.aroz.org
GNU General Public License v3.0
2.01k stars 145 forks source link

[Feature Request] Integration of Web-based GO IDE #116

Open Secarian opened 1 year ago

Secarian commented 1 year ago

Problem description: The current process for writing and testing small code snippets within the ArozOS environment is not user-friendly.

Desired solution: I request the integration of a web-based IDE for GO, such as Wide, as a standard package in the ArozOS project. This integration would allow users to easily write and test GO applications within the ArozOS interface, making the development process of new apps simpler and more accessible, especially for beginners. The ability to export finished installation packages directly from the IDE would further streamline the development process.

Considered alternatives: No alternatives have been considered.

Additional context: Currently, there is no simple way to create apps and installation packages in the ArozOS environment. The integration of a standard IDE, such as Wide, would provide this functionality and result in a significant improvement in user-friendliness. Furthermore, it could allow for the integration of a custom installation package format, enabling the creation, detection, and handling of installations using a custom file extension recognized by ArozOS.

markusbkk commented 1 year ago

I was tinkering with that idea a while back. Personally, I think something like VSCode would be a good option too. Since it's already widely adopted, has a decent plugin architecture, support for many programming languages and is somewhat straightforward to embed.

Don't get me wrong. Wide looks nice, too (and some of the code might help with embedding any other editor into ArozOS. I'm thinking a generalized API) but it seems focused on Go development (not necessarily the target audience for those using ArozOS as clients) and isn't nearly as battle tested as VSCode.

yeungalan commented 1 year ago

Hi! do you guys tried code studio in arozos? This web app behaves like VSCode and probably fits your need

Here is the Code Studio IDE screenshot :) image

markusbkk commented 1 year ago

Hi! do you guys tried code studio in arozos? This web app behaves like VSCode and probably fits your need

Here is the Code Studio IDE screenshot :) image

Yea. I saw that. I had some issues opening and saving files, AFAIR. I think this is also not based on the current VSCode embedding strategy, although I might be wrong.

tobychui commented 1 year ago

Yes, this is technically only the Monaco Editor part of the VScode but not the whole eco-system that most of the VScode user used to.

And for @markusbkk 's issue, some minor functions of this editor is still work in progress and still waiting for the go compiler integration. My goal was to provide most basic Go IDE support so developers can develop and compile ArozOS inside ArozOS.

markusbkk commented 1 year ago

Yes, this is technically only the Monaco Editor part of the VScode but not the whole eco-system that most of the VScode user used to.

And for @markusbkk 's issue, some minor functions of this editor is still work in progress and still waiting for the go compiler integration. My goal was to provide most basic Go IDE support so developers can develop and compile ArozOS inside ArozOS.

Thought so. There's actually a more complete VSCode integration that also supports some of the plugins and themes.

markusbkk commented 1 year ago

@tobychui

AFAIK, this one is more "proper" now. It's similar to how Microsoft implements their own online code editor on GitHub.

https://github.com/Felx-B/vscode-web

tobychui commented 1 year ago

@markusbkk

Integrating another web-based webapps not something hard to do. The current issue is how to integrate it while keeping file system sandbox and user isolation in place, with expected supports for future cluster architecture expansion.

It is relatively easy to integrate it (vscode-web from Felx-B) into your instance of ArozOS if you are using it in a one-person per host settings. However, if you are hosting it for multiple users with different storage pool configurations (which I design this system for this particular purpose), it is really hard to perform a proper & flexible integration without an expert who is experienced with container technology contributing to this project.

Though, I personally love the idea to run 3rd party apps without any glue-code and modification to the original app, "subservice apps" are currently the closest we have.

markusbkk commented 1 year ago

@markusbkk

Integrating another web-based webapps not something hard to do. The current issue is how to integrate it while keeping file system sandbox and user isolation in place, with expected supports for future cluster architecture expansion.

It is relatively easy to integrate it (vscode-web from Felx-B) into your instance of ArozOS if you are using it in a one-person per host settings. However, if you are hosting it for multiple users with different storage pool configurations (which I design this system for this particular purpose), it is really hard to perform a proper & flexible integration without an expert who is experienced with container technology contributing to this project.

Though, I personally love the idea to run 3rd party apps without any glue-code and modification to the original app, "subservice apps" are currently the closest we have.

Oh. I absolutely understand this. I was talking solely from the JS frontend side. Obviously, things like the FS driver still need to be specialized.

Secarian commented 1 year ago

@markusbkk

Integrating another web-based webapps not something hard to do. The current issue is how to integrate it while keeping file system sandbox and user isolation in place, with expected supports for future cluster architecture expansion.

It is relatively easy to integrate it (vscode-web from Felx-B) into your instance of ArozOS if you are using it in a one-person per host settings. However, if you are hosting it for multiple users with different storage pool configurations (which I design this system for this particular purpose), it is really hard to perform a proper & flexible integration without an expert who is experienced with container technology contributing to this project.

Though, I personally love the idea to run 3rd party apps without any glue-code and modification to the original app, "subservice apps" are currently the closest we have.

I think we should have such a fallback mode that allows simple WebApps to run in a local layer. Just try to follow me on the thought journey. If we dream ArozOS to the end then at some point there is still the question of a rudimentary client OS to provide basic features like running applications on the client with a bad internet connection, listening to music, sending mails while sitting in the subway or on the plane. So we need either a specific client app layer that has the ability to migrate specific containers of apps in real time to a mobile version of ArozOS that runs on a cell phone, or some other mechanism to ensure that network instabilities don't either prevent the user from doing their job or, in the worst case, ruin the experience.