GenieFramework – Build web applications with Julia
genieframework.com
genieframework.com
[0] - In C++ you can emulate it via a mix of function overloading and template metaprogramming.
This would be an odd approach, just have the first person who hits a new combination of function and type pay a few ms of compile time. That should work fine.
julia --compile=no
If there is a solution to this, Genie would be awesome as I could directly put into production my Julia models without using a third party language.
[1]: https://github.com/timholy/Revise.jl
[2]: https://docs.julialang.org/en/v1/manual/command-line-options...
[3]: https://github.com/JuliaLang/PackageCompiler.jl
[4]: https://github.com/JuliaPackaging/RelocatableFolders.jl
I never tried the fancy to speed up compilation.
Kudos to the devs for continuing this work though. I'm sure it'll get there some day.
If you absolutely want to use Julia because you have an existing Julia code, you can use HTTP.jl instead. It's more lightweight and you can build routes using that into your application.
> startup time for the server was SO large that it just does not work on heroku
Response: The solution (which granted should be maybe better documented) is to set the `EARLYBIND` env variable to `true` - this will allow Genie to bind to the port very early so Heroku will love it.
> many features like authetication were nowhere to be found.
Response: Genie has built in support for handling (encrypted) cookies and sessions and plugins like GenieAuthentication (or GenieAuthorisation) and SearchLight provide straightforward features. Have you used these?
----
With that said, I myself do think of Genie as (currently) something to be used when (a) you already have Julia code and need a web front-end for it, or (b) you want to experiment and possibly break things for the potential of expanding horizons.
I will say that when I used EARLYBIND it still took too long for Heroku. That's not to mention that didn't solve any of the live development workflow issues.
I looked into GenieAuthetication but it doesn't support SSO and a bunch of other features that other modern authetications libraries support.
Web development benefits a lot from near-instant recompilations, which I heard aren't possible with the Julia programming language as codebases grow. Is that still the case?
People are free to use their time & energy to develop interesting things in whatever language/toolchain/techstack they like and share with the community.
That is how ecosystems evolve, expand, and new ecosystems emerge.
We don't want to be locked into incumbent solutions forever.
Not everything needs to have corporate support or large scale use from day one. It doesn't even have to be useful at all on day one, or ever for that matter.
I don't really get why Julia is pigeon-holed for numerics. I prefer its syntax to Python and would consider it for scripting applications where I use Julia now.
However, I can understand why Julia is "pigeon-holed for numerics". It started as a language for scientific computing. Today, it promotes itself as a general-purpose language suitable for any task - not just for scientific tasks. Only time will tell if perception of the language will shift. As this discussion shows though, the association with scientific computing remains strong.
Did it? The way I read the famous old “Why We Created Julia” blog post (https://julialang.org/blog/2012/02/why-we-created-julia/), it was intended as a general purpose language from the beginning. Quote:
“We want a language that's open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that's homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.”