What can we do to make Julia grow fast?

Yes, but now you are putting a bunch of abstractions on top of something that initially had a very simple direct answer and could be solved in a dozen lines by only using code defined in the standard library

What is good with e.g. stackoverflow is that the information to noise ratio is (usually) very dense. You have the code, the description for the code, discussion from other users in the same place. There is no way you will get that kind of overview quickly when the docs, code, discussion is split into different places as for a package. The fact that you can vote on stackoverflow also creates a good noise filter which is not there for e.g. github issues.

1 Like

I assume it’s a combination of the fact that Windows isn’t really meant for handling files, and that optimizing the speed of the package manager has not been the highest priority for the Julia core developers?

That’s only an issue with displaying directory listings from github in a web browser. Everything works as normal through the git and Julia interfaces. Also, I assume the next iteration of the package manager will fix it.

As far as I can tell that was an npm issue that could not happen with git. If you unpublish a git repo, all cloned repos continue working as before, only they can’t pull for updates.

Actually, my original post talked about 20 lines of code. If the answer only requires 2 lines of code then it definitely belongs on stackoverflow. 12 lines is about halfway between the two, so I guess it could go either way… :wink:

(Although I still don’t like it when people ask a question on stackoverflow and they already have the answer.)

I have started a Julia user group to foster a community in my local city Sydney, Australia.

2 Likes

I think the short code snippets @Per is proposing would best live on StackOverflow. Julia actually seems to be a bit underrepresented there - at least if you look at the redmonk index: Julia gets lots more github edits than stackoverflow questions.

This may be due to the high amount of experienced computer scientists using julia at the moment, or due to this forum, where lots of questions are answered instead of on StackOverflow.

If you got an idea for something that you think will make a good package, generalize it and see if there are a whole collection of associated methods related to what you are tyring to do. Extending packages to be more flexible, generalize their behavior, and be useful in more diverse ways is always a good way to make the Julia language grow.

3 Likes

Or Julia is just easier to understand. A metric which counts how many people couldn’t find something out on their own isn’t the best metric for programming language adoption :stuck_out_tongue:.

6 Likes

This is exactly the point I am trying to make!

(Of course, before you can extend a package, there must be a package to extend.)

1 Like

IMHO, Julia needs a few such packages whose core interface or native interface is in Julia. A few such samples which are foundation technologies and not developed well enough in other languages. For example, when Tensorflow is talked about Python or C interface come to mind first. Julia comes as an afterthought. A change in such trend will make Julia more attractive. The focus should be to develop or port the core algorithms in Julia also will prove the point Julia’s performance gains are well beyond just sample benchmark examples.

Regards,

Sambit

I’ll say again that the most useful thing right now to grow Julia is to ensure that the “How do i do X in julia” questions have answers in google. This involves blogs, StackOverflow and sometimes new packages. This is often the biggest gripe we here when we go talk to people about Julia.

9 Likes

People are working on things like this, but it takes time, and in most cases simply “transcribing” a library from another language into Julia is the wrong thing to do. Tensorflow is a great example, after a little bit of time using it the limitations of Python become obvious and painful. In Julia, there is no reason why you couldn’t write deep learning networks using ordinary Julia code. Julia already has a very nice wrapper for tensorflow but the hope is that in the long run we’ll wind up with something much nicer.

1 Like

We need a cuddly animal. Seriously.
Perl has the Camel. Python has a python (which are VERY cuddly snakes). Linux has Tux the penguin.
I think the Julia triangle logo is excellent, and we have seen how it is adapted to the various packages like Julia Physics.

I took the liberty of looking for some animal pictures on the internet that might capture the essence of what julia is. I don’t know what do you think @John_Hearns ?

imageimage

Sorry, I don’t really know what kind of animals these are 'cause I don’t get out much!

7 Likes

Yep, that’s it, horse-shark. The horse-shark definitely needs to be the Julia mascot :horse: :shark: :smile:

1 Like

We need a fast animal though. How about the Cheetah? Built for speed, and has those lovely spots which could be associated with the Julia spots logo.

I will go for a Cheetah named Julia.

3 Likes

In chatrooms it seems that the answer is already “yes” in almost every case. We just need to advertise that better.

1 Like

Ok, here’s a crazy half-baked idea… Sometimes just a bit of coordination can make a huge difference. I am willing to bet that we all love julia enough to be willing to take 10-30 min out to do a homework assignment …Right?

If that is the case then here is my proposal:

  1. Compose a list of questions: This could be done by core developers along with community help. Let’s say 100-500 questions (is that a good range?). The most important questions would be things you had to learn to use julia and questions that have been asked on https://discourse.julialang.org
  2. Compose a list of volunteers: Hopefully we can get about the same number of volunteers (100-500).
  3. Choose a medium: Let’s assume stack-overflow
  4. Assign questions and answers to each volunteer. Let’s say there are 500 questions and only 250 volunteers. In that case volunteer JohnDoe would be assigned questions A and B and assigned to answer questions C and D.

I can think of quite a few benefits to this idea. I would learn a lot from being able to read the answers. Also, if I had to give an adequate answer to a couple of questions I would probably have to look and verify that I knew what I were talking about. If I answer wrong then I would surely be corrected and I would still learn. So this would likely initiate good conversation as well. All of this should be very productive in educating ourselves and the general public and in providing useful answers to important questions.

Alternatively we could go with the horse-shark thing!

2 Likes

Or better yet, this is all you need. We already have people answering SO questions within minutes. Just ask the questions you think need answers.

1 Like

If they answer as fast as you replied @ChrisRackauckas then we should be in good shape …that was fast!

I do this on SO too :stuck_out_tongue:

3 Likes

Having the answer already exist is way easier than actually asking, even with instant answers. I never want to post a question, it just feels like a big hurdle (though I often do post a question and have it instantly answered by Chris or others, thanks!). StackOverflow will naturally fill up with helpful answers over time, but I guess we could game the system by asking and answering hopefully useful questions as @TravisA9 suggested. Stackoverflow lets you sort by “frequent” and “votes” so we could poach the most popular python questions and ask/answer the julia equivalent. It would be unfortunate if we did that and the answers changed for 1.0. I guess some people know what is going to change, but I don’t.

1 Like