Worth pointing out that after the 1.0 release we've moved to a time-based release schedule, so this is mostly just accumulated niceties from the past three months. Lots of bigger things bring worked on separately .
which is fixed but at .5.0 which is not what symengine was pinned to (.4.3.0) and add symengine#master didn't work (neither the hash).
3. what is precompiling and why does it happen every single time I restart the interpreter? can I just compile once and be done with it? because it takes minutes each time.
4. getting jupyter to recongize my kernel took I don't even know what? first it wasn't there then after trying to run ijulia notebook from repl, which didn't work, it was there.
I agree it's rough, but your experience isn't completely typical either. Fallback Renderer works for me on Ubuntu 18 (and everyone on my team with various different Linux flavours).
Pre-compilation shouldn't trigger all the time, and there is an explicit workflow page about how to avoid constantly triggering the need to restart Julia and JIT everything. It reduced my amount of cursing tremendously.
The ecosystem has improved loads since 1.0 came out but is still lacking in some corners.
The pay off for us has been worth it, but with so much outdated information out there, the tooling in a rough-around-the-edges state, and the documentation of core packages sometimes lacking it's also not something you can easily dip your toes into unfortunately.
What do you mean it's broken? Is it because SymEngine couldn't install? SymEngine seems to have a lot of issues because it relies on Conda and builds its dependencies in an odd way. Python package management is notoriously rough, which is why we are excising it from DiffEq v6.0 (https://github.com/JuliaDiffEq/DifferentialEquations.jl/issu...).
the code written as is, is broken, as in yes i couldn't get DifferntialEquations to install, because somewhere in the dependency graph some package pins/pulls SymEngine v0.4.3 which has a deprecated use of is_windows, which is fixed in the PR that i linked to
the obvious fix was to update to the latest version of SymEngine using the #master modifier with Pkg.add() but it didn't work - it kept ignoring #master and adding v0.4.3 nonetheless. i then tried #5dfc78a, the hash of master, and neither did that work.
This is a known `Pkg` bug (the patch should be merged this week). In the meantime, you have to `pkg> rm SymEngine` followed by `pkg> add SymEngine#master`.
To be fair, points 1,2, and 4 are regarding the ecosystem, not the language. There are definitely rough edges, but one can not expect a fully mature ecosystem only a few months after 1.0 has been released.
For a streamlined workflow, I recommend Emacs + Revise.jl. I just edit my code in an Emacs buffer, and the Revise automatically updates the REPL to reflect the source. This makes the code feel tangible, more than any other language I have experienced.
you're being pedantic; i'm aware juliacomputing is not /the/ language. in fact it's an organization of people that maintain the language AND the juno ide.
what is the value proposition of julia? productivity of python with the speed of c (or some kind of tagline like this). a large part of the productivity of python is the fantastic set of tools around python. hence it's quite fair to judge julia proper on the polish of the tools that you need in order to be productive in julia.
Apologies, I wasn't trying to be pedantic. My point is that Juno is decoupled from the language itself. You don't have do depend on it to be productive with Julia.
I agree that tooling has a significant influence on the productivity of a language. One does not only adopt a language, but the ecosystem and community around it. I think we both agree on this. I am simply trying to point out that there is an unavoidable delay between the maturity of the language and the maturity of the ecosystem. I think its fair to take this delay into account.
Anyone looked at running Julia via webassembly? I keep thinking it'd be awesome to run Jupyter notebooks completely in the browser. Given Julia builds on LLVM, perhaps it wouldn't be that challenging technologically.