Idea Julia Lite or 'Juliette'?

Pardon me. I haven’t yet seen the graph that shows Julia growing exponentially. Can you please show it to me?

1 Like

I thought the agreement here was to have this discussion in a less-combative way.

2 Likes

Thanks. I don’t know the significance of ‘stars’ but I can see that people who are into Julia are really into it. I accept your argument/graph, provided it measures breadth of interest rather than merely intensity of interest of a limited number.

I still think he is trolling (IMO)

5 Likes

I am not trolling, merely suggesting that more could be done for a broader appeal, and providing supporting information. I am very supportive of the Julia project or I wouldn’t be on here trying to suggest ways to help make it grow.

1 Like

I don’t know about exponential growth, but I noticed this trend curve for python:

In 2004, the latest version of Python was 2.3. What it tells me is that it could be a long time before Julia makes it big. It also tells me that there is something strange about Google Trends, since there has been only a very moderate increase in interest in Python over the past 16 years. I would have expected jumps of more than an order of magnitude.

1 Like

Sorry, I didn’t mean to be rude. All i wanted to say is that Google Trends not very reliable tool. As for the exponential growth graph, I do not know whether such graph exists or not, generally because I do not care. I know that Julia is nice and convenient language with great community that is solving my problems in the way that I like them to be solved. So i am helping to spread it as much as I can by telling my colleagues about its strengths and by making PRs. For example there were two meetups in Moscow last year and there is going to be another soon, so I have a feeling that community grows.

So yes, I understand your concerns, but I think, that looking at some arbitrary charts and argue over them wouldn’t help as much as growing support by better documentation/conference and so on.

On the side note, I think, that you have the same feelings toward Julia, that it is nice and convenient, otherwise you wouldn’t participate in this long thread. May be you can tell what you really like about it? I suppose things that you found to be convenient and well thought is part of “Julia Lite” right? Sorry if there were an answer before, this thread is really long.

1 Like

Yes, I did answer above. This thread is getting rather long. I may have to go back to doing some work now, so I may not respond for a while… Anyway I think I have said my peace (and gotten quite a bit to think about!).

1 Like

To add my two cents as a recent convert, when I started using Julia about a year ago I absolutely hated it.
My programming experience was only Matlab, and some odd C/C++ projects, and it was infuriating. There were mainly two reasons:

  • Documentation: In Matlab, due to its age and popularity, you can type anything into google, add Matlab, and someone will have an answer/ built-in function. Where there was documentation, it remained far behind the Matlab way of providing a large number of examples for every given function. In addition, many things did not work as I expected, and I did not know where to look.
  • Compile-time: I was working with existing code, specifically extending an existing struct, and because I did not know what I was doing, I made many small changes and had to restart the REPL each time (because structs can’t be redefined).

However, about 3 months in I was confident enough that I started my next project in Julia too, and it worked fantastically.
Looking back, many of the problems I had were because Matlab is not helpful in learning actual good Dev practices. I had to break many bad habits, and I have become a much better coder as a result.

As such, I don’t think a “simple” version, or one that guesses what you want would be helpful because it takes away the need to learn basic principles and just allows you to constantly “wing it”.
However, and I believe everyone agrees here, the documentation needs to improve significantly, but that can only be done with many hours by many people.

8 Likes

I really think you are striking a tone which is quite unhelpful, and which does not advance your argument. (You also had one about ‘the party line’ which you removed.) Your general tone and attitude is antagonizing and make some (me at least) more likely to dismiss your points, even if you have any useful suggestions.

As for this:

The great thing is explicit broadcasting. I am very used to implicit broadcasting from Matlab, and it causes lots of annoyances when you start putting different functions together, particularly because Matlab is inconsistent with whether it prefers row- or column-vectors as default.

My Matlab codes are always full of if isvector(x), foo(x(:)'); elseif ismatrix(x) ..., and then this compounds when i have several layers of this going on, and maybe I switch between row- and column preference.

If you haven’t already, please read More Dots: Syntactic Loop Fusion in Julia (though I see it was already posted by the author.) Explicit, syntactic broadcasting is a very user-friendly feature which makes it much easier to vectorize code. It is in my opinion a dramatic improvement in user-friendliness over Matlab and Python.

Also, you cannot just ‘assume it is the norm’. You would actually have to implement broadcasting for all of the functions you wanted it in if we didn’t have the current way of doing it.

11 Likes

General principle: don’t put acronyms in global namespaces. For Julia, this means don’t use acronyms in package names. If it were up to me, I’d give exceptions for SVD, LU, and FFT, but not GR, GLM, GCM, TSne, GLMNet, NMF, ELM, MMCC, PGM, etc. But perhaps best to spell them all out.

1 Like

Fortunately, svd is in LinearAlgebra. Julia is pretty conservative with acronyms:

julia> using Unicode
julia> function test_acronym(n)
           function (symbol)
               s = string(symbol)
               all(c -> isletter(c) && isascii(c), s) && length(s) ≤ n
           end
       end
julia> filter(test_acronym(2), names(Base))
9-element Array{Symbol,1}:
 :GC
 :cd
 :cp
 :fd
 :im
 :in
 :mv
 :pi
 :rm

3-letter ones are mostly math (sin, cos, max) and pretty canonical. There are no ASCII names of a single letter, which was a wise choice (yes, c(), I am looking at you).

8 Likes

Has anyone suggested that we banish all MATLAB-isms from Julia? Because I think that’s the cause of all these issues.

This thread was quite lively but it seems to have wandered off into fairly tangential and contentious territory. There are lots of interesting offshoots, but let’s continue them in separate threads (with a reset in tone) if anyone wants to discuss specific concepts in greater depth. One nice, concrete improvement from this thread is this PR, which gives a more explicit error message when doing operations that would be elementwise in other systems but require an explicit . for broadcasting in Julia.

32 Likes