On fim 24.sep 2015 13:25, Jonathan Malmaud wrote: I agree with all that - there isn't a web framework for Julia that is at the level of something Django or RoR. It seems totally reasonable to use those mature tools for the frontend of your webapp, which could in term communicate with a Julia backend.
Sounds good. I wasn't really sure if using with Python/Django was recommended. Python is well supported with PyCall.jl but frameworks call you (the "Hollywood principle": "don't call use, we'll call you") unlike regular libraries, so I guess you have to mess with callbacks. OR you use use Python as your main language and call Julia from it with: https://github.com/JuliaLang/pyjulia [that uses PyCall indirectly, that you have to install first] I wander which is preferred (is pyjulia no longer buggy/inferior to PyCall? Much [less] used?) and if you use the second option you end up not using Julia much and might never migrate fully to Julia.. [That could be ok though.] About Ruby on Rails you can use that and call Julia, with RoR_julia_eg (haven't heard of calling in the other direction). It may not be as good as using Django, as Python will work in the same address space as Julia and allows zero-copy. It however may not be too important as: are (individual) web page that speed-critical, (and would have to share that much data between the languages)? I just meant that some of the lower levels of the stack, like implementation for the full HTTP spec, proper handling of unicode and binary data at the HTTP level, solid SSL support, etc is good now. HttpServer.jl includes examples of setting up HTTPS. On Thu, Sep 24, 2015 at 9:16 AM, Andrei Zh wrote: It's great that webstack has got many improvements recently, but as far as I can see even more job is still to be done. E.g. for me 2 kinds of web apps that I need most often are web UIs and high-performance web services. I'm not sure about performance (last time I tested HttpServer it was quite moderate, https://en.wikipedia.org/wiki/Julia_(programming_language)#For_web_use "HttpServer.jl, has low latency 0.5 ms and high throughput (latency on the same order of Python's Flask and Scala's Spray mature frameworks, and throughput also comparable[82])." I'm not sure if Julia's web page is missing something with the most important web (or other..) libraries. Possibly session management, if it exists: but maybe it has changed already), but for web UIs I miss at least following features (taking Mux as the basis): - template engine: Mustache.jl can probably be used, but so far Google knows about zero common occurrences of Mustache.jl and Mux.jl except for very general lists of frameworks - serving static files: possible to do in pure Julia, of course, but it's another several hours to implement Wouldn't that be kind of trivial, since Julia already acts as a web server, to load files from disk and forward? - sessions: middleware is exactly for this kind of things, but again, it's better to have it out of the box, than write everything yourself I thought I had seen something related to sessions, but may misremember, maybe it was to save REPL sessions.. or related to web/IJulia (only things I find now..). - authentication and security: how to set up HTTPS? how to restrict access to certain pages? mbedTLS.jl? A good replacement for GnuTLS.jl that seem on the way out. - stability: I've just knew that Morsel.jl is now deprecated, if I had applications using it, I would need to migrate them now, and I'm really not sure Mux.jl won't be deprecated during next year too I didn't check if this works the same, or just similarly? Or even not that..? Morsel was Sinatra-like and that seems to be a hot thing and often the way to go. Python and others reimplemented Ruby's Sinatra micro framework with Flask. I'm not sure Julia and Flask would make sense as by being "micro", this style of framework is already "complete" in Julia?] This means that if you want to provide users with a nice interface to your Julia application, you should either spend a couple of days adding missing stuff (and probably not in way suitable for other users) or just use, say, Python and do the job in a couple of hours. -- Palli. P.S.: I replied by e-mail.. And got "Delivery Status Notification (Failure)". "You might have spelled or formatted the group name incorrectly." Does this work for others from Thunderbird? E-mail works for GitHub, that is nice.. and I do not know about Discourse, the proposed new forum software..