Make a webapp framework/ecosystem as awesome as R's Shiny: a challenge to Julia's community

I quickly whip up this Shiny app and published as webapp for anyone to access within 5mins.

https://xiaodai.shinyapps.io/shiny_lang_trends/

It plots the trends of programming languages and decompose the google trends time series into trend, seasonality and noise. I think it will be awesome for Julia to have such a framework and an ecosystem where at the click of a button one can publish a Julia app.

3 Likes

What do you see missing in the current ecosys?

1 Like

There is no easy way to make a webapp. There’s escher.jl and WebIO.jl but they are quite new and some are not maintained as regularly. Also Shiny’s ecosystem has a shinyapp.io that allows me to publish an app in 5mins. That is actually quite a killer feature.

5 Likes

I see. But you need to make it clear, where you plan to work on and how you would like to connect to the package or group. f.e. if you see the need for more maintenance of WebIO, just volunteer.

1 Like

It is unclear what you are trying to achieve with this post in the context of an open source community.

Writing and maintaining such a framework is a very labor-intensive process. We all face a lot of “challenges” every hour we spend programming; some of these we are paid for (mostly indirectly, it is part of our job), some of these are hobby projects, mostly for solving problems we care about, or intellectual stimulation.

You asked about something closely related already six days ago, and started a related discussion a month ago. Asking every week will not bring it closer. If you truly care about this, you should start a project.

10 Likes

I do think this post serves as a reminder to me on what I miss in the r world. One day I might actually start making something like it.

Also I am not sure if everyone is aware of how nicely shinyapps.io is set up. Publish an app in 5mins quite impressive. Perhaps an area worthy of investment.

1 Like

This is still slowly ticking along, it feels a bit circular as an interface generator needs a decent ui itself, which it isn’t yet generating fully automatically :smile:
Some table specs

Agreed. Especially when the same people who are working on plotting (and getting complaints) and working on 0.7 (and getting complaints) and working on the data ecosystem (and getting complaints) are generally all the same people.

Although I guess I’m part of the R community, the R community and MATLAB communities trying Julia are really starting to get aggravating here with the constant complaints. Be a part of the solution.

8 Likes

I think Julia is actually in pretty good shape on the data-driven web app front despite not having something like Shiny or Plotly’s Dash. We now have several different ways (mux, JuliaWebAPI, pages.jl, http.jl / joseki.jl) you can build and deploy julia-based APIs in just a few minutes.

We don’t have a fancy interface that magically loads bootstrap, builds a dropdown, and displays static images for you, but I think that part is only useful in very nice applications. Most of the time people will want to build a real interface in React, Angular, etc. Rather than focusing on creating a Julia version of Shiny I would suggest longer-term goals like improving julia to webasm transpiling (demo that uses Tom Short’s ExportWebAssembly.jl here).

4 Likes

I guess WebbApp and any other GUI thing should not be the focus of Julia for right now. Performance is the selling point.

There was a lengthy discussion on this several months ago:

Ill make you a julia dash app for $150/hr :wink:

10 Likes

FWIW, you could build almost exactly this app in 15 minutes, though it wouldn’t look as nice. Use Jupyter notebooks (can be configured to be publicly accessible) + Plots.jl for the plots (with plotlyjs for bonus interactivity) + Interact.jl

@manipulate for language in ["Julia", "R", ...] plot(...) end

3 Likes

Nice. Is there a way to publish it as well?

binder?


example: ligo’s notebook

7 Likes

Performance certainly is a selling point, but if Julia wants to broaden its appeal beyond its core audience, web developers outnumber (data)scientists by a huge margin.

You can always have a wider appeal, but it’s better to just have good support for your target audience. Sure, scientific computing is a smaller audience (data science, still part of Julia’s core, is much larger but still no comparison to webdev), but if it can be a good tool for this domain then it will have staying power.

8 Likes

IMHO, while it’s nice to to have Julia everywhere, the web has pretty much settled in JavaScript. I think it would be more appealing to integrate than dominate.

In scientific/numerical computing or data science, dominate! :smiley:

2 Likes

Well, maybe at the moment, but I think that may be mostly because it’s the only game in town currently (nothing else just runs on any browser), but from what I understand, WebAssembly support will be in all of the major browsers, so if Julia can be made to run well in that environment, it could really open a lot of doors for Julia on the web.

4 Likes

Exactly. I hinted at this here Can the two language problem ever be solved for GUI programming - #39 by Steven_Sagaert. Julia would fit nicely in the webassembly ecosystem since wasm is based on LLVM and so is Julia. Either you wait for wasm to gain support for GC and exceptions (and threads) or the Julia implementers implement that themselves like Microsoft did by compiling the Julia runtime itself to wasm. SIMD support is also proposed so that would make it interesting for fast graphics and for running (parts of) scientific computations in the browser itself rather than on the server (e.g. face recognition, object recognition,…)

I have been digging a little deeper into wasm recently and viewed some presentations and demos and I must say the demos look really impressive. This really is a game changer and for me it’s the future of the web. Wasm really is going to blur the lines between desktop, mobile and web apps.

BTW: wasm is already supported by all the major browsers.

3 Likes