What steps should the Julia community take to bring Julia to the next level of popularity?

It is like a script, but it indeed has extra features. It makes sense to have another file extension like jlnb.

4 Likes

Don’t Jupyter notebooks in VS Code offer a better experience for newcomers?

1 Like

Do Jupyter notebooks offer reactivity like Pluto?
The original question was using Pluto to create engineering calculators which have functionality like Excel. SO the results at the end change if you (say) change the length of a suspension spring or tyre pressure if you have a suspension model.

ps Moderator - this should now be a seperate thread

2 Likes

I understand that there a new kernel that is offering reactivity. I have not tried it yet.

ipyflow looks like a proof of concept that only works in Python. However, it seems that the ipyflow authors want to create a language kernel protocol to apply the same solution to other programming languages (slide 20).

I’ve thought that a tool like Quadratic would be amazing in Julia

Tl;Dr they are building an infinite spreadsheet in which you can use python to create calculated fields and such.

I think scaffolding users from spreadsheet style GUIs they are familiar with towards programming is a challenging but important piece of the puzzle.

4 Likes

Been programming in python for 10ish years. I’ve tried to bring Julia into a several companies i’ve worked at as data scientist and engineer in O&G/Energy. The conversations boil down to this:

“How will this make us money?”

I somehow need to explain how my joy-of-use, ease-of-development, and high performance will make my company money. How will its performance save us on computational costs? The problem is, I have no idea how to properly deploy julia code. In python there are a lot of ways. There are more tutorials than you can shake a stick at. How to do it in Azure, AWS, everything. I can slack a link to manager and say “We can do this, no problem.” How can I do this with Julia? I have never seen a tutorial on the best ways to accomplish this. How can I be sure the database connectors will work with our db and all its security protocols? You may be thinking, “Well you must be a lazy idiot, because it’s actually quite straightforward! Just google!” You’d be right, compared to most of you, I am an idiot, but you need to make tutorials for people like me, dummies. I need you to hold my hand. I don’t need you, at first, to teach me how Julia is the best language to solve differential equations, I need you to teach me what is a differential equation using Julia. Before you go off on the adjoint of this, the dual of that, teach me the basics. "Here’s your undergrad math and physics class, and look in a pluto notebook this slider makes things move! Impress your classmates in your next presentation with a dynamic 3D visualization of a simple physics simulation. " New users need onramps.

We need headlines like this that I can share with my colleagues.
“5 ways to deploy your julia code to production!”
“How Julia’s Performance advantage over python can save your company $$$$”
“How xxxxx company switched to Julia and cut their AWS $$ by x%”
“Get your tutorial blog up and running, WITH JULIA!”
“5 Reasons Why your LLM startup should be built on Julia”
“Training and deploying a LLaMA AI assistant in x lines of Julia!”
“Build your next Bayesian model in Turing, Not PYMC”
"Don’t make the mistake of building your next simulator in Python! How Julia does it better "
“Everything R can do Julia can do better”
“Installing Julia and creating your first plot, step-by-step”

Yeah they’re clickbaity, but the value of each is sound.

I would love to write some of these, but I honestly have no idea how to start a tutorial blog. You guys who have blogs written in Julia should have blog post #1, “How I created this blog in Julia”. Again, I need my hand held. So do most people. This should be a ubiquitous tutorial. Every julia user should be taught how to share their creations online, should be encouraged to share their work on linkedin, twitter, etc.

Another thought: I didn’t fall in love with Julia because I realized it was a better language, and worth my time to learn. I decided to learn Julia because years ago I stumbled upon a video with Chris Rackauckas and thought “This guy is so damn smart if he believes in it, it must be good.” I remember shortly after I went to a meetup for something Julia related, I think it was ocean modeling package. It was at this big house off-campus at Caltech in Pasadena. At the end of the meeting, people were ready to go home, and I asked if we could go around the room and people could share what kinds of projects they were using Julia. I think Logan Kilpatrick was there and shared something about helping Mars rovers plan their research paths using pomdp’s. We went around the room and I was just absolutely blown away by the genius in the room. I immediately thought to myself “If these people think this language is something special, it must be”. So many things about adoption are cult of personality, kinds of things. Who finds the thing valuable is a powerful signal of its value. So many personalities in this (AI Revolution) are creating tutorials in python. Those need to be done in fewer lines, with better performance, with more personality in Julia. I think those personalities may be here in this thread, on this discourse. They should all be encouraged not just to commit PR’s to packages, but to create content on youtube, make blogposts, boast about your love for Julia on linkedin and twitter.

Finally, start by eating R’s lunch. Those R people are so reluctant to move to python for two reasons, I believe. The first is they have more confidence in the brains that built the R packages and their statistical correctness. The second is that they don’t want to be late-comers to python. They’re in this community of holdouts that is sort of built around a snobbish academic anti-pythonism. That’s PERFECT for Julia right now, because Julia’s got a bit of that too. Focus on converting those R people with perfected statistical packages and easy/fast data manipulation and you will corner that academic statistical market. Perfect converting julia notebooks to documents and slideshows via Quarto ,or something else, build lots of tutorials around that. Then, tell those python people they do everything wrong, and their code is so slow I can’t believe they even tolerate it. Oh and btw did we mention we have the best scientific libraries? We look at books like Numerical Recipes and laugh at their incorrectness, and aged inefficiency. Did you know scikit-learn is botching your regressions with default regularization? Stuff like that, make python users question the validity of their tools (they should).

Essentially all of my suggestions are publicity based. I think Julia already has the goods with 1.9. Smaller static compilation would be a nice to have, but Julia has what it needs today to convert so many people.

Oh if someone wants to do a video call where they hold my hand and teach me how to make a blog with Julia I will pay you money.

62 Likes

Well, I will say that
a. Analysis of scientific data is a scientific analysis
b. Excel is a better tool then specifically Julia in a vast majority of cases of analysis of scientific data

Also, I have an account on this forum.

Now there is a counterexample, thus you are wrong :stuck_out_tongue_winking_eye:

I would like to see a talk at JuliaCon on how to effectively promote Julia and its ecosystem.

1 Like

Just had one more thought. When a lot of emphasis is placed on performance, inexperienced coders get intimidated. They’re less likely to contribute to packages because they’re frankly worried they don’t have the skill to write high performance code, and perhaps they’ll be judged for it or ridiculed. That’s true for me personally. I know that’s not something this community would ever do, you’re all far too kind, but we all want our contributions to be valued and valuable. Like Adam Smith said in the Theory of Moral Sentiments, “we want not only to be loved, but to be lovely.” Because of this, I think Julia should adopt a philosophy that is more explicitly welcoming of slow code.

“Slow code > No code”
We sell Julia as though speed is the the salient feature of an otherwise slow language. Mojo, numba, all these things are trying to take a slow language and give it the option of speed. But Julia went the other direction, it took a fast language and gave it the option to go slow. I know this sounds like a distinction without a difference, but it’s an emphasis on an alternative perspective. " If you do things the right way, Julia is fast." Really though, the key feature is that this incredibly high performance language can be made to go slow, because slow code is better than no code. This is actually closer to the truth. We only think of it the other way because we see our primary competitor is Python. Were we to see our primary competitor as Fortran, it’s obvious that the key feature of Julia is that it is allowed to go slow.

We encourage you to write slow code in the worlds highest performance language. The skills of performant code will develop over time.

19 Likes

@jreileyclark Some fantastic insights there.
“Slow code > No code”

Good enough for Jazz

Seriously - a lot of tasks in the real world benefit from a “good enough for jazz” solution. Absolutely your moon flight must get into orbit round the moon. Yoru flight control system must not be unstable.
But you want to run a Formula 1 CFD simulation? It takes a week to run you say? Well tough luck - the race has already happened and we’re on the iterations for the next race.

2 Likes

I’d say Julia would be amazing in Quadratic!

Quadratic already planning support for SQL and JS (besides “Excel Formula” and Python), thus adding still another language should be technically possible. It is under MIT license. A tool like this can indeed become a game changer.

That said, Quadratic appears in the early stage of development, and it is difficult to tell whether it will take off.

P.S. “Quadratic has no environment to configure. The grid runs entirely in the browser with no backend service.” - I’m not sure that sounds good from the point of view of Julia integration therein.

I think providing easy access to specialized software (written in Julia of course :slightly_smiling_face:) to “spreadsheet users” (who are not going to program anything anyway) is an important piece of the puzzle.

1 Like

No way! You can store your scientific data in Excel, but don’t tell me you are reaching for the equation bar rather than XLSX+DataFrames+AlgebraOfGraphics for analysis of that data once you know how to use both methods.

Well, I know how to use XLSX+DataFrames+Plots, and indeed have used exactly this combination in a couple of cases. In one case I think I’d have come to the results faster by just using that boring Excel. In another case, DifferentialEquations was part of the pipeline, thus Excel was really not a choice.

So I do reach for the Excel equation bar much more often than writing Julia code, believe me or not. These are just tools to get the (scientific or engineering or presentation) job done. For me, Excel is simpler and faster to use. I also reach much more often to the folding lens than to the electron microscope - the last one has tens of thousands times better resolution, does chemical analysis etc., but I don’t need all that most of the times.

Surely I wouldn’t maintain Excel were optimal for complex analysis of complex data. But I see it as absolutely OK for not-too-complex calculations on say some tens of thousands of data points.

I admit I hate plotting in Excel, but most colleagues use it for this purpose, too.

2 Likes

I have seen an engineering company develop products using Excel… but their calculations were done using VBA ( Oh the horror! ) and used Excel just to display graphs and output from the VBA.

I wrote some python using jupyter notebooks … and they hated it. I allowed them to select .csv data files, run calculations, and generate data files to be used for calibrating their products during production. Even analyze existing calibration files and manually correct them.

Well…the moral of the story is you can’t make EVERYONE happy.

1 Like

I’d say the moral would be to try to understand what was wrong with that kind of workflow.

Is it possible to run Julia on wasm?

Jeff gave a presentation on this a while back.

1 Like

So in my subfield (cognitive neuroscience) I feel most of users would jump to Julia in a heartbeat, if they had all the tools they want to use (currently there are only few and by far not complete). Most of them struggle with coding, so it does not matter for them which language they use.
But to get there, someone has to write the tools and there are two types of developers, I feel. Either they are writing code for 10+ years and are so used to Matlab, they don’t see an advantage in switching, or they come from a different field (mostly ML background) and are bolted to Python since all the new/popular things are there.

I would love to write at least some of that tooling (actually I am doing it a bit in my free time), but since I am not a great programmer, it takes a long time to get stuff done (and academics in general have to much on their plate to invest their time).
Still, I would say there is a chance for success here :wink: .

2 Likes

This right there would be great but we barely have good binary compilation. And we also barely have a running wasm runtime with the wasmer.jl that hasnt been worked on in the last 7 months.

I think wasm as a target and at best a good way to use it would be a great. So maybe focus on making it wasmer compatible.

1 Like