Also to note, Julia has seen a rise over the last few years, but so has Python, its primary competitor in the data science field.
Also to note, Julia has seen a rise over the last few years, but so has Python, its primary competitor in the data science field.
For existing projects, fine, stick with Python. But Julia is strictly superior to Python in everyway, there is nothing that Python is better at than Julia. This is partially because Julia can call any Python library, but mostly because it's actually designed for data science and scientific computing.
That is until you use the debugger.
Anyway, half the data-scientists I know don't use the debugger, they're solidly in the print-to-debug camp, or they're using notebooks and going step-by-step.
Or stumble into the first example in JuliaPlots, which doesn't work.
Julia doesn't run everywhere that Python does. Especially if you include all of the Python implementations, including MicroPython.
Last I checked, Julia's startup cost was high, making it the wrong choice for short-lived programs. Yes, people do scientific computing in short-lived programs.
Now, I don't know where Julia stands in this, but Python is used to teach people to program, including high school students and younger. By the time Python was 8 years old (as Julia is now), Python was being used in high school courses. Python's built-in "turtle" module exists as part of that education component - at one Python conference, an educator pointed out that it can be very hard to get anything installed at primary and secondary schools, so having a maintained "turtle" in the base installation was important.
I therefore suspect Julia is a worse teaching language than Python for high school level and below.
Regarding Julia, yes the focus seems to be more on college, where the matlab-like math support makes it a lot closer to regular math. Though since it's not very different from Python someone can still pick it up easily from knowing Python in high school (or Racket).
Remember, I am presenting what I think are counter-examples to "is strictly superior to Python in everyway" (excluding "existing projects"). I still think that's true even if Python weren't popular at all.
As an example of the influence, the ":" at the end of lines which start a block in Python is not required, in the language sense. However, ABC testing showed it made the language more useful.
As an example of improving Python for learners, one of the reasons for Python's change from 1/2 == 0 -> 1/2 == 0.5 was feedback from the Alice developers, where they found that students did not understand van Rossum's decision to follow C's semantics.
Python started being used in schools when it wasn't popular. One of the presenters at the Python conference in 1998 or so was a high school AP comp sci teacher. At that time C++ and Java were the AP languages. He reported better success teaching students Python first and then teaching C++ or Java, than spending all of the time in one of the latter languages.
Which is why I attempted support my personal beliefs via examples of Python uptake. Something you interpreted as an argument by popularity.
I observe that https://julialang.org/learning/classes/ lists only a single high school, and I didn't see a single course meant as a general introductory programming course for non-programmers.
Here's the IPCC talk (from 2000) I mentioned about "Using Python in a High School Computer Science Program" https://legacy.python.org/workshops/2000-01/proceedings/pape...
It references the "Computer Programming for Everybody" essay at https://www.python.org/doc/essays/everybody/ , which I argue shows the stronger emphasis on the Python developers for beginning programs, inherited from ABC.
I also mentioned Alice. "Because Alice is targeted towards novice programmers, it is important that Python, more than languages such as Tcl or Scheme, can be mastered by new Alice programmers with little effort" (quoting the 1995 paper at http://www.cs.cmu.edu/~stage3/publications/95/journals/IEEEc... ). But that was at a university.
Python of course is much more established than Julia, which is why I linked to resources from when Python was only a year or two older than Julia is now.
That said, at https://www.python.org/community/sigs/current/edu-sig/ you can find other teaching resources for high school teaching and for "kids" and "young children". My local library here in Sweden has a book on programming for kids, which uses Python.
Is there a similar movement as CP4E within the Julia? Nothing from https://julialang.org/learning/ suggests that the needs of non-programmers, such as high school students, plays a strong role in its design.
Do you know of any such internal movement? Can you point me to any external resources which show Julia being used as a teaching language for non-programmers?
Unless you mean compling julia or something like it to WASM and running it in the browser. That could get interesting, but julia is still "a bit too chonky" for that.
And of course, you can also use a more low latency high availability oriented language handling the frontend (like Elixir, which will have trouble doing the heavy data oriented stuff Julia can), with Julia as a microservice to handle the actual backend logic and analytics, which is probably the setup I'd go for (using 2 high level lispy-languages with very different qualities, each doing what it does best).
I would do this exactly too, if I had to do number crunching.
Julia's overenthusiastic posts here in HN make me wary of the language instead of curious.