Catering for non-coders

web

#1

There are 3 levels of skill:

  1. everyone that doesn’t know how to download, run, and edit code
  2. scientists that write research code they want to share but don’t know how to write webapps
  3. web developers that know how to build and deploy webapps
    Sharing your code via a webapp is the best way to cater for #1 people – they just need to open a browser.

Because Julia is so popular in sciences, we have scores of scientist writing their packages in Julia. They want to share the functionality of their packages with people from group #1. But because Julia is new these people don’t know how to install Julia, clone said code, and play with it locally. That’s precisely why webapps are uniquely well-suited to solve this discrepancy.

These scientists don’t know how to build a webapp. There seems to be tons of activity in this domain by very capable people. What we need now is a clear tutorial about how to build and deploy a simple webapp in Julia – from zero to finished webpage. Although there are many many ways to build a webapp (use-case dependent), one simple way forward would be better than none.

How about such a tutorial with say Escher.jl (since that would cater for the least webapp-capable people out there)?

Thanks for listening!

Member of group #2


#2

I wonder if you could give an example of research code that ended up as a widely used webapp. In my experience, code written for research is frequently

  1. data intensive (upload that to a webapp every time? what about data cleaning etc?),
  2. not very robust outside the domain it was used for (until packaged up in a library with tests),
  3. only interesting to other researchers who want to use or replicate it, in which case they want the source instead.

#3

Check out


#4

You are right about the scarcity of widely used research-related webapps. There aren’t many (if any). But the reason to publish one’s work as a webapp is not because it’ll be super popular or even useful to tons of people. The reason is that it’s one of the (potentially) easiest ways to grant people from group #1 access to your work.

Again, the main crowd that would use the app is composed of researchers that want access to the functionality of your code. They don’t know how to code or even use a REPL. They just want to use the analysis/solver/processing you developed to solve their specific problem. They are totally fine with waiting a few seconds until the webapp is done processing their request. They are totally fine with clicking on a bunch of settings every time they want to use your app. “They” is probably less than 10 people.

But my main argument for such a webapp building tutorial is not the number of users such an app would have, it’s the number of builders. It’s quite common to have colleagues that don’t code but want to use your “program”.

So you see, the fact that the app would be data intensive, domain specific, and interesting to only a fraction of users doesn’t diminish it’s relevancy. The ability to build webapps is still enormous.


Plots.jl but for GUI
#5

Yea, what they did there is perrrrrrfect. I replied with some perspective about the gap between what most researchers know about webapps and what you’d need to know to follow their lead.


#6

I think it you rolled up your sleeves you’ll see it’s not as difficult as it sounds. The step by step directions in the README will get it up and running on your computer. Deploying to Heroku is from Heroku’s tutorial. From there, it could be “learning / programming by tweaking”. It shouldn’t take more than a few hours to get it all up and running (though maybe the deployment takes longer).

That said… you’ll be tweaking AnglerJS modules in Javascript along with Julia code, in at least two different modules, deployed to two different places (front-end server vs backend server). It definitely could be made easier, and I hope that our result is something that a web framework developer sees as a type of result they would like to support.


#7

Oops, it was you all along! Thanks again for the awesome work. See, I would love to roll up my sleeves and try it out. But even in your optimistic and encouraging message I could read between the lines that it might be a bit over my head.

I believe that you guys took the idea of a (mostly) Julia webapp and tweaked everything to the max. I would too if I could. And let’s face it, you can’t possibly build something that would be equally easy for all skill levels to follow. If building your app was easy for someone like me to follow it would probably be suboptimal.

I really appreciate the push forward, I need it, but I think you overestimate what most researchers know about web-developing: mucho nada.