Comments (5)
If this is going to be done, shouldn't it be separate from juliaup?
Yes, at least initially I definitely think so. If something emerges that is super reliable and feature complete etc I could imagine that we bundle it down the road with the stuff here, but I'm more thinking years than months ;)
I think architecturally what we need is to expand the API that we have in Juliaup already to cover all the cases that a UI needs, and then the UI can use that under the hood to implement the actual functionality. VS Code could then also expand its integration with Juliaup via the same API (it already uses the current, pretty meager API to find Julia versions).
from juliaup.
Is there still interest in this issue? If so, I could look into using Tauri (https://tauri.app) to implement a simple GUI for managing julia versions w/ juliaup...
from juliaup.
If this is going to be done, shouldn't it be separate from juliaup
? The command line tool seems like it should be as simple and reliable as possible, which is very much at odds with having a GUI.
from juliaup.
I've already been experimenting with adding a GUI using a separate repo, as you suggest. It's still extremely experimental - I'm having some issues w/ Tauri spinning up a Rust embedded Julia runtime using Jlrs, which provides access to the Julia C API - but I'll get that figured out eventually (I need to sort that out with the Tauri dev team soon, 'cause it works fine as a plain Rust CLI).
My current line of thinking is to create a GUI that can both install a version of Julia using juliaup, as well as provide a GUI + much simplified cmd line interface sub-commands for Pkg.jl, PkgTemplates, & PkgCompiler as well (Tauri enables making GUI's, and can make a CLI for your app too). I'd like Julia users to have one simple, visual & non-repl-based cli tool to 1) install julia, 2) set up a project & add dependencies, and 3) prepare to deploy their finished project.
Features would include:
- install Julia versions & switch between them (GUI + cmd line)
- generate new packages, which could either be a new binary project (generate default files that make creating a julia binary with PkgCompiler dead simple) or a new library-style package (drawing from some pre-existing PkgTemplates)
- add, update, delete, and list packages in projects (+ other basic commands as necessary) (using commands from Pkg.jl)
- open the package / project in VSCode
- compile the user's binary or publish their package
I'm not sure if I'll be able to convince the necessary Julia package authors to cooperate to make the required changes to enable the GUI functionality, but I'd like to try!
I think that using Julia as a person's first introduction to programming would be an excellent use case for the Julia language community to serve better, but the tooling and the language docs are not really set up for the 'complete beginner' right now (if your primary goal with Julia is anything other than interactive repl data science use). If beginner-level scripting, web dev, and app dev are your main goals, then an editor like VSCode is easier to work with (imho).
I'm hoping this GUI project (which I'm tentatively calling "gaston" - as in Gaston Julia) could help new users more easily navigate Julia's tooling & allow beginners to focus on the code in the editor (and primarily use the repl for testing code and working with data in data science workflows). Basically, I'm shooting for the equivalent of Rust-lang's rustup
and cargo
, but in an all-in-one GUI + cmd-line app.
Thoughts? Suggestions? Recommendations? Should I pursue a different hobby project, or do you think there would be a desire for a tool like this?
from juliaup.
As I am exploring some issues here and there, I noticed this. I think this is a good idea for new users (or some users) that do not like to setup/manage/update a project or a julia version through the CLI. It's worth noting there are a lot of possible GUI frameworks we can use in Rust.
- gtk-rs
- iced-rs
- tauri
- slint
All of these are platform agnostic. Slint and tauri seems promising though.
from juliaup.
Related Issues (20)
- Warn user and get opt-in for +pr mode
- Scope of Rewrite: rewriting juliaup in Julia language itself HOT 2
- Juliainstaller Crash Report HOT 1
- Juliainstaller Crash Report HOT 1
- guideline to remove previous julia installations completely HOT 1
- Crash report HOT 3
- Use dmg on Mac HOT 7
- Failing installation with default configuration on SUSE Linux Enterprise Server 15.5.0 [64-bit] (Juliainstaller Crash Report) HOT 1
- JuliaUp not working on brand new MacBook Pro
- Defensively making juliaup availible on $PATH HOT 1
- Crash report
- AUR deployment is broken HOT 1
- Enhancement: better info message when existing `juliaup` install
- Enhancement: Better prompt when existing configuration HOT 1
- Feature request: Non-interactive installation of juliaup without side effects for usage in automated installation script (alternative to `--yes`) HOT 1
- Juliainstallercrashreport HOT 1
- `nightly` channel can be updated message is too verbose
- Throws "Invalid Juliaup channel `pr55132`" despite channel being valid HOT 3
- `juliaup list` does not list the architecture variants of PR channels
- Launch julia and load all stdlibs after install, to move any OS checks to install time HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from juliaup.