Is it okay to learn only Julia, no other language

Hi, I’m new to Julia, learning to code after banging head with pointers in “C” language. Should I bet on julia as first and only language to learn to code. And also I’m self teaching myself. As Julia is a new language there are very few resources for newbies, most of books are high-level domain specific. So my question is “Should I bet on Julia as only language I will ever know?” Because if you can do in one language you can do it in any other turing complete language as per turing.
My aim with Julia is to build a MS OneNote alternative app with ai capabilities which can also covert handwritten math notes to LaTeX. For this will try to use Rnote foss app’s core engine compiled to wasm and build upon Rnote engine. Also use WGPUNative.jl pkg

1 Like

Your ambitions for app development are rather high for someone trying to minimize the number of languages you learn. What motivates the minimization?

Julia’s a great language to learn, but so would be Python. At some point, you likely will have to learn C regardless of the language you start with.

9 Likes

Let me be master of one language at first. If I don’t have any other choice I will learn other.

Why do C developer stick with it excluding recent trends of memory safety of rust. Why most of Linux OS as just pure C with little other languages.

After some thinking I choose julia due to

  • I don’t want to manage memory, I want to spread garbage.
  • I want dynamic language.
  • I want speed of C.
  • I want wasm support.
  • I like Julia LaTeX support.

I know julia is not for app development compared to flutter. But I think of building webapps PWA. I will not be building LLMs using pre build llama3 + ai for handwriting to LaTeX

Simply I don’t have budget of openai/meta to pay for nvidia Blackwell otherwise I have crushed google way before openai :sweat_smile:. I don’t want to underestimate myself. I can not let my proud to perish though many tech giants are ahead of me.

Turing-complete systems can simulate Turing-complete systems. It does not mean it can run or be designed with the same efficiency. You already allude to this by implying some languages lack the “speed of C”; those languages are Turing-complete, too, but you ruled those out. As for design, you’ll be stuck slowly reinventing wheels if you insist on using a language that hasn’t made much headway into the domains or communities you want. For a trivial example, if someone implements a novel statistics package in R, it’s not automatically implemented in other languages; the most immediate usage is interfacing with the R package, if such a library even exists for a given language.

That’s why I’m thinking of using Rnote engine made in rust

I don’t want to make linux or any other kernel. I just want to build wasm PWA.
My question is “can Julia do this ?”

My approach and recommendation is and was: I don’t master any language, but I can use them all.

Of course, “all” is exaggerated, but to now there is quite a set of languages I can use productively, after some short time of diving in again, of course. This helps me to be quite sure about my choices for new projects.

And on the other hand, there are quite some languages I should know, but I never learned them, yet, e.g. lisp. It seems fine so far not to know lisp :wink:

Compiling Wasm from the rnote engine
Web Frontend · Issue #1082 · flxzt/rnote · GitHub
or from Julia
Introduction · WebAssemblyCompiler (tshort.github.io)
doesn’t look very promising.

Why not WGPUNative.jl, it’s drived from rust.

If you want an “everything” language – Rust is probably what you want. WASM on the front end, ORMs for your database, polars for data munging, they have desktop GUIs, game engines, microcontroller targets…

That said, learning new programming languages is not that hard once you know how to program in two.

1 Like

Programming languages are tools, not religions, and you want to use the best tool for the job.

If most of what you want is already started in rust, then it sounds like the best tool for this job would be rust.

4 Likes

The existing product Mathpix works very well, though it’s proprietary freemium software.

I know of no language that has a positive answer on this question.

Now if you would put your question like that…

Should I bet on Julia as my first language to learn to be a good programmer ?

That I can 100% guarantee is an absolute yes. Julia is high level and dynamic that makes it quite easy to get going. At the same time it is very deep and you can keep nailing it as long as you want. All that while being transparent such that you can get a glance at the inner mechanics. Furthermore the community is awesome and always tries to push the boundaries of the language. If it was up to me I’d definitely propose it as the first language to learn.

2 Likes

I would suggest to be a jack of all trades but a master of one. Or two. Of your choice and what suits your circumstances as the best and most appropriate tool. Learning from Julia made me better at other languages, and learning other languages (MATLAB hater and C++ struggler here) made me better at Julia.

Terrence Tao once noted the benefits to having both specialists and generalists in society - they rely on each other. Whether you specialise or generalise depending on your choice and circumstances, as long as your being fulfilled in your journey while also contributing to society, I think that’s a win.

Should you learn “no other language”? Most definitely not. But maybe focus on one at a time.

3 Likes

:sob: Rnote core engine have binding with gtk, why didn’t I looked for it, so even rust can’t compile it to wasm.
No choice than building own engine from scratch.
Now I have to bet on WGPUNative.jl pkg wasm support not Julia.

neither WGPUNative.jl has support for WASM.

You have confusing set of requirements and constraints for your end goal. I would suggest start with minimal requirements for your main objective and worry about bells and whistles like cross platform support or web support.

Also WGPUNative.jl is a driver to talk to your desktop GPU. You are mistaking it for something else.

Your best bet is native application with AppBundler.jl if you want to stick to Julia alone. And its a long journey.