New website

Should we change the Download v0.6 button to green? Red color usually means stop…

6 Likes

I noticed in the GitHub repo description that the introduction of Julia has switched from scientific computing to technical computing. Does it have any implication?

Looks great! Thanks to everyone who worked on this!

Things I am particularly excited about:

  • I love that the huge “Documentation” button is one of the first things you see. Julia’s documentation really is top notch and because Julia is so generic, one tends to use functions already available in the base language much more frequently than in other languages.
  • In general this website does a much better job of showing that Julia is an active community with lots of people using it for real work than the previous website did.
  • I love the JuliaOberver link! Thanks to @djsegal for maintaining it in relative obscurity for so long. Now finally it will be something everyone sees.

Suggestions:

  • Is there any openness to changing the “Julia IDE’s” section to “Julia Editors” and including julia-vim and julia-emacs in that section? To be completely honest, seeing only a couple of slick IDE packages and jupyter notebooks would probably be a bit of a turn-off for me if I were encountering Julia for the first time, in that it might make me think it is somehow difficult to work with (i.e. confined to a special box like MATLAB).
  • This is not meant as a slight to the Julia plotting community who’ve done a lot of really fantastic work, but I would be nervous to put “Visualization” as the very first item under “Ecosystem”, as I find visualization to be the most unsatisfactory area of the language right now due to the compile time issues. While here we all know that this is something that will be resolved with compile caching and new packages like Makie, new users coming to this website will not, and they may very quickly get frustrated with trying to make some simple plots. If it were up to me I’d probably put “Scientific Domains” first as most of those are incredibly impressive packages that could not have been written in any other language.
  • Related to the last point, Revise.jl really should be prominently featured somewhere, at least until we have compile caching. (It is perhaps especially relevant for visualizations.)
8 Likes

More precision. Scientific computing, also known as Computational science, is a very well-defined field which is essentially numerical linear algebra, optimization, and differential equations.

While this is a big part of Julia, I think we would be remiss not to include things like data science and machine learning in the scope of what Julia was built for. I think this was an early lack of precision in the terms.

Technical computing on the other hand is much more broad:

And that is a more fitting of the language itself.

2 Likes

Yes, we should add vi and emacs. Can you file an issue?

The plotting was just made default originally because that was the first one we had a good picture for and is something that people universally want, independent of their domain. We have no choice but to improve its usability soon after 1.0. I think almost any of those tabs could be front and center. They need a lot of editing and further thought. I am happy to reconsider having a different default tab.

I think Revise.jl is not right for the front page. The main website is geared towards the new user, and convincing them that Julia has what they need. Revise.jl needs to be discoverable, but I am not sure the landing page is the right place. It probably should be in the documentation or some other page for intermediate/advanced usage.

3 Likes

Fair enough, but I do think it is an incredibly important sanity saver for plotting considering the current state of those packages. Honestly right now if it weren’t for Revise I’d make my plots in Python. Perhaps consider listing it in the “Visualization” tab.

This got fixed in this PR.

1 Like

Great work. Information is very discoverable. I really like that some of it is repeated in different places. I know you have to appeal to a broad audience. But, for me, how easy important stuff is to find is worth 80% of the grade.

1 Like

I think it looks great on my mobile now.

2 Likes

The new website looks great! To my eyes it’s a major improvement over the old one, but there are a few minor details I miss from the old site:

  • A small code sample, to give a taste of what the language looks like and to highlight that Julia can be as easy as pseudocode. The old site used a couple of microbenchmarks, which proves that simple code can also be performant. Just a link is fine if you want to keep the main page short.
  • I read the main page twice and found no link to benchmarks anywhere. I needed to do a Ctrl-F to find the tiny link that’s right under the download button. Somehow the layout made it invisible to me, even when I was looking for it. Maybe benchmarks should be linked elsewhere as well, for example…
  • … the Julia in a Nutshell section could use a few links to explain and support the claims made there. E.g. a link to benchmarks under “Julia is fast” and a link to a brief explanation of multiple dispatch and why it’s so useful.
  • The thing I miss most of all is a small statement that immediately hooked me on Julia: that most of Julia’s standard library is written in Julia itself, even primitive operations like integer addition. Julia confidently eats its own dog food. This convinced me on the spot that the core language is brutally fast, even without seeing benchmarks.
18 Likes

Excelllent feedback. 100% agree about all of these.

In the machine learning ecosystem section it might be good to mention probabilistic programming (Turing.jl).

there is also ESS and the julia-layer for spacemacs which are pretty ide-like (at least if you have emacs set up right :wink: )

Under the Machine Learning Tab:

Julia provides powerful tools for deep learning( Flux and Knet), machine learning and AI.

It should be (Add space after deep learning, remove before Flux):

Julia provides powerful tools for deep learning (Flux and Knet), machine learning and AI.

Also, I think you should find better animation (Better use APNG, it time to put GIF to sleep) to describe machine learning (Maybe iteration of K-Means which is nice, or results from the demo of Knet / Flux).

All in all looks great once all the feedback above is applied.

I think the “Download v0.6” button should be renamed just “Downloads”, it actuallay takes you to the downloads page and not just 0.6: https://julialang.org/downloads/.

Capture

9 Likes

Following up on my own feedback, hoping to crowd-source an improved version of the “Julia in a nutshell”-section of the new web page. Here’s a suggestion to get things rolling (with my changes in italic):

Julia is fast!

Julia was designed from the beginning for high performance. Julia programs compile to efficient native code for multiple platforms via LLVM. The core language is so fast that most of Julia’s standard library is written in Julia itself, even primitive operations like integer addition.

Easy as pseudocode

Julia is easy to learn, feels like a scripting language, and has good support for interactive use. Its syntax [link to code samples] is clean and intuitive, arguably even simpler than Python, but even the simplest Julia code often runs as fast as C.

Optionally Typed

Julia has a rich and highly expressive dynamic type system, which advanced programmers will find a joy to work with. Thanks to automatic type inference, type declarations are usually not needed to get maximum performance in more simple code, but can be used to clarify code and resolve ambiguities. User-defined datatypes are just as fast as built-in types.

General

Julia uses multiple dispatch [link to explanation, examples and why it’s useful] as a paradigm, making it easy to express many object-oriented and functional programming patterns. The standard library provides asynchronous I/O, process control, logging, profiling, a package manager, and more.

Technical

Julia excels at numerical computing. Its syntax is great for math, many numeric datatypes are supported, and parallelism is available out of the box. Multidimensional calculations can be written vectorized or using explicit loops with equal performance. Julia’s multiple dispatch is a natural fit for defining number and array-like datatypes.

Free, open source and composable

Julia is open source and embraces distributed package development and collaboration. User-contributed packages naturally work well together. Matrices of unit quantities, or data table columns of currencies and colors, just work — and with good performance. Julia’s macro system allows the language itself to be extended, so new features can be implemented with expressive syntax.

Thoughts? I added a sentence or so to most subsections, so the nutshell part of the page would become longer. But I think my version makes the case for Julia a bit better and may be worth the trade-off. If the reaction here is positive I’ll wrap this up in a PR. Is someone else interested in writing some text explaining multiple dispatch, with an example or two?

6 Likes

For the Download tab Download Julia,

  1. I think that blue box style for the links to Juno, Juliabox, Gallium Debugger, Pyplots, Gadfly etc, is too distracting. Simple hyperlinks would be better.
    Visually, the most important think on this page should be the links to download the Julia version, not these links.
  2. I don’t really understand the rationale for mentioning plotting packages on the download webpage.

Is technical computing a term understandable by general public? Not me at least.

Numerical computing seems more intuitive and more general. Or just say “Great for math!”

1 Like

What is the status of JuliaQuantum? Julia quantum was listed in Scientific Domains, however this org does not seem to be functional. And some of the original founders does not seems to keep working on any Julia projects.

If there is nobody working on any projects in the org. I think having it on the website is quite strange. It will lead fresh Julians to the wrong place.

2 Likes

Given that the website is available as a Github repo, it might make sense to open issues about these things.