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..

Reply via email to