Skip to content

Instantly share code, notes, and snippets.

@ChrisRackauckas
Last active November 16, 2016 01:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ChrisRackauckas/a1ec528f2213d77ac642ad0b0f6c90de to your computer and use it in GitHub Desktop.
Save ChrisRackauckas/a1ec528f2213d77ac642ad0b0f6c90de to your computer and use it in GitHub Desktop.

This is a response to @akis on the Julia Discourse forum. I don't want to clutter the forum, there there are some things you have said in the last few days which are objectively false and so I feel like I have a duty to the community to make sure they are corrected. Please do not take this as an attack on you or your character, I only want to ensure people can read correct information.

Let me start with the one I find most amusing. I am sorry for writing this in a sarcastic manner, but I felt like it was too good of an opportunity to pass up. Yesterday, I stated here that:

I am pretty sure that a pinned post and mod intervention can easily make a big community switch to a new active forum in 14 days. Just a gut feeling.

You responded with:

Thanks for clearing up that your objection is based either on "gut feeling" or rumors or lack of much care for anything beyond personal convenience. My own experience and research on the matter is way different (internet is a big place, so maybe we experienced very different parts of it).

Obviously, that wasn't a gut feeling, but maybe I should have made it more explicit. The Discourse community essentially started on November 1st given by this statement of intent which was posted on the large julia-users community board. However, our discussion was on November 14th, where we already were having an active discussion on the Discourse boards. Therefore my statement "I am pretty sure that a pinned post and mod intervention can easily make a big community switch to a new active forum in 14 days" is as true as it can get, at least referring to the Julia community (which is the only one of relevance for our discussions). I am not sure of what research you have to suggest that this thing which just happened didn't happen.

Next, I responded to the fact that you stated,

low traffic forums cannot trick anyone into believing that the overall community is inactive

I had stated:

I have had people tell me that, by looking at the inactive Julia-jobs, there must be no opportunities in Julia right now (which is completely false, just develop in Julia for a bit and the emails will start rolling in). So... it can?

Now I am not sure about other Julia developers but given the number of emails I have gotten for job opportunities, I know that there are many that exist, at least in all parts of the US, Canada, and Sweden. Of course, it's not my right to just give out the names/emails of recruiters, but at least to me, this is not "just a rumor", even if you don't believe it (which sure, since I cannot give the concrete information you don't have a reason to) it's still true. Again, if your "own experience and research on the matter is way different ", it's because your research was on the julia-jobs forum which showed almost no job opportunities for Julia developers which only proves my point that low activity forums are misleading.


Now let's get to this post:

I stated:

almost every issue new users have is in here: http://docs.julialang.org/en/release-0.5/manual/performance-tips/

You responded with:

Do you have any statistics for that claim? Or is it just your personal experience when you were a new user yourself? Most issues are not performance related.

I am sorry for not including the statistics for this. I thought this was well known. Since it's not, let me guide you through this.

First of all, here's 169 links to topics where globals in the REPL have come up:

https://groups.google.com/forum/#!searchin/julia-users/REPL$20global%7Csort:relevance

Being probably the most common question, this question was put at the top of the performance tips. Not only that, but then the performance tips were specifically linked at the top of Julia-users to try and help users find that documentation given how many times this question is asked:

Julia-users page

(Note that also shown is the pinned "Moving to Discourse" post, which led a large portion of the community to Discourse at least 14 days later). You can then find 200 StackOverflow posts related to the issues of globals in Julia. For example, this one shows a common "what happened" "oh it's globals" question:

http://stackoverflow.com/questions/36967257/julia-significantly-slower-with-parallel/36967732#36967732

If you look up questions "why is this Julia code slower than R/Python/MATLAB?" the answer is usually due to benchmarking in the global scope. This also comes up from new users who come to IRC. There is a long-standing issue related to this problem:

JuliaLang/julia#8870

I can keep going on and on, but I am pretty sure most people who are reading this already know that this is the most discussed issue with new users given how many times you personally have had to mention it. So yes, there are more than enough statistics available openly online. This is just one performance-related new user problem (the most prevalent one) and it by itself is almost "most new user issues".

Next line. You stated:

If chatrooms were anywhere close to an unmatched solution (I won't bother listing their drawbacks here), there wouldn't be any documentation in first place and the Usage category would be a dead place.

In response to:

Also I think this kind of introduction is always much better handled using chatrooms. It's extended and tailored to the questions you have. No general written documentation will ever match someone specifically answering your questions.

I didn't say we should get rid of documentation, I said that chatrooms could be of great use to solve the problems we have here. It's pretty clear that I am pro-documentation as well, given how much I have written (to make it easier to find: blog, package docs, documentation for Juno, developer documentation for DiffEq, while having contributed to PlotDocs, etc.). That said, I still don't see any issue in recognizing that chatrooms can be good in conjunction to forums and documentation. If you actually have a rebuttal to show that chatrooms are useless, please state it instead of alluding to it. In fact, this very argument would've been perfect for a chatroom.

Let's go to the next topic.

I stated:

These things are already documented 20 times.

You stated

That's not only inaccurate and exaggerating but is actually part of the problem.

Here's 20 different places which are good introductions to multiple dispatch, in no order:

  1. Julia Manual
  2. David Sanders's Video Tutorial
  3. Josh Day's Introduction to Julia
  4. QuantEcon's Introduction to Julia
  5. A Deep Introduction to Julia for Data Science and Scientific Computing
  6. A blog post I made which explains how specialization gives Julia its performance
  7. Stack Overflow documentation
  8. Stefan talking about multiple dispatch
  9. The book "Getting Started With Julia" has a section on multiple dispatch
  10. "Julia for Data Scientists" on Lynda.com has a video on multiple dispatch
  11. Here's another blog post on multiple dispatch in Julia
  12. The book "Julia High Performance" has a section on multiple dispatch
  13. Here's another nice blog post which goes into multiple dispatch
  14. This talks about a usually difficult problem which is easily solved by multiple dispatch
  15. Here's another introduction to Julia which talks about multiple dispatch
  16. Here's a comparison of Julia's use of multiple dispatch to Lisp
  17. Here's the publication on Julia which talks about multiple dispatch
  18. Here's Jeff's PhD thesis which talks a lot about multiple dispatch
  19. There are also many good StackOverflow answers which explain multiple dispatch
  20. Julia Wikibooks on Mulitple dispatch

Multiple dispatch is the defining feature of Julia, so it's not hard to find sources. You want us to write another Wiki to eliminate all of the problems of all of the previous sources and serve as the defining guide to new users? This is relevant:

https://xkcd.com/927/

The proposed wiki nature of the posts can fix that.

All of the StackOverflow documentation are editable. They are wikis. So are the Julia Wikibooks. You can submit PRs for the Julia manual too. Sure, one more can't hurt. I don't think it'll help, but it won't hurt.

Not all users feel like going through long pages of scattered information mixed with low-level stuff, when their questions look simple in their eyes.

That's why there's so many amazing blog posts and videos to help pull in new users with simple targetted introductions.

Providing users with quality up-to-date documentation is much better than giving them multiple ways to relieve their frustration.

Again, that's what every source has tried to do. I don't think that anybody publishes something thinking that it's not quality. And this stuff is up to date by default because I don't think the syntax for dispatch has ever changed. So, users do have it: that's how we learned.

The users who initiated the threads I mentioned above (@davide and @jkroso) would have definitely read it.

They told you? We all speculate. Here's some more speculation that you've shared:

I even bet that the proposed subcategory will get tones of views and challenge the popularity of other categories views-wise.

but Discourse will gradually become the number one destination for everything Julia.

We all speculate. That's okay.

I hope that this post serves as a good source of information itself. It at least has 20 places to learn about multiple dispatch. Please just put this to rest and I'll buy you a beer at the next JuliaCon. I am sure we can get along.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment