Questions about a starting language, is Julia good (enough)

Hello,
I am a beginner who wants to choose a suitable programming language. I searched on the internet and I know that there are many programming languages. To be honest, Python was praised everywhere and I don’t like this language because almost everyone knows it. Of course, its large community helps make it popular, and that’s a plus. I have some questions:

1- I have heard that Julia wants to become a programming language like Python. Is this true?

2- Julia programming language is suitable for writing what programs?

3- Is Julia programming language suitable for artificial intelligence?

4- Is Julia programming language suitable for web and Android?

Please answer my questions by number and share with me your experience with Julia programming language.

Thank you.

I actually pasted ur post word for wordinto copilot and it gave a decent answer. Will not paste here though.

Maybe I will share some of my non ai thoughts. The future is either Julia or Mojo. But python and r will be here for a long time. Heck even Matlab stata and SAS and co will be here for a while. Definitely until I retire from work in abt 20 years time.

Might as pick something and learn it.

3 Likes

HI and welcome to the forum

1- that depends a lot on how you define “like Python”

  • untyped? No.
  • fighting dependencies and incompatible versions of packages and python itself? No
  • Being easy to use? Sure!

Of course, since Julia is newer, it took inspiration in its design from quite a few languages, but it is also different in several aspects, see Noteworthy Differences from other Languages · The Julia Language for an overview.

2- That depends maybe also a bit for everyone. For me it is the perfect language to both do teaching in Numerical Mathematics in as well as my own research in Optimisation and Numerical Analysis involving Differential Geometry.
I would claim that it is perfect for prototyping your ideas quite quickly, packages can usually be very well used together, but (compared to Python) you also write pure Julia code and it is fast.

edit: both are of course just my personal views and experiences, for a generic answer, as mentioned before me, maybe even some AI might suffice.

3 Likes

Yes, but not the best choice for all possible AI tasks. To get a more specific answer you need to explain which kind of AI tasks you want to solve.

There are many good web libraries, for example: GitHub - OxygenFramework/Oxygen.jl: 💨 A breath of fresh air for programming web apps in Julia

I do not think it is a good choice for Android programming (yet).

Also have a look at: Why am I using Julia? | Julia programming notes

2 Likes

Welcome to the community! Can you tell us a bit about your background and what are your motivations to start programming?

4 Likes

That’s not a good reason to NOT like/learn a language. Though it doesn’t mean it’s the best starting or future language either.

About the “Future of Julia”, it’s bright I think (but you may want to change that title to “Questions about a starting language, is Julia good (enough)?”, my answer yes already), especially for science/technical computing, AND you can program anything you can do (in Python) with it, and more (with few exceptions, such as Julia is not yet good for mobile/Android; neither is Python then best). Not just science related or AI, Python is still mainstream for most AI, but Julia ahead e.g. for scientific machine learning (SciML), that is also AI.

I think you can start with Julia, or at least end with Julia. If you are a beginner, you might be advised to start with Python for a while, since you DO benefit from it popular, learning materials.

The learning materials can be different for beginner.s E.g. I find Julia’s manual excellent, but it’s a reference manual, not a tutorial. They still exists, just so you know. Surprisingly I’ve seen it claimed that Julia’s manual isn’t good or lacking, but I think mainly if (incorrectly viewed, as a tutorial. There are 4 types of documentations, not just those 2.

Also you CAN (maybe even should, many Julia programmers do) use Julia and Python together, see PythonCall.jl (or even the “[non-]joke” Python.jl, see that JuliaCon video on it, if you want to use/add it).

5 Likes

This is a question that has come up repeatedly on this forum. See the previous discussions, for example:

My answer is that it doesn’t matter much — learn whatever you have easy access to, because you’re going to want to learn additional languages anyway: Can i start out with Julia as my 1st coding language - #5 by stevengj

12 Likes

A post was merged into an existing topic: Has Julia met your need for AI and ML?

A post was merged into an existing topic: Has Julia met your need for AI and ML?

Many people use Python as a “glue” language - most processing is done in libraries called from Python but not much processing is done in Python itself, which is quite slow.

That is not typical of the code I write, since no library does what my code does. This is the primary reason (although see itemized list below) Python is not a good fit for me. I would have to write some code in Python and then create libraries in more efficient languages such as Rust, Go, or C++ to get acceptable performance.

There is lot of software engineering overhead writing in two languages and keeping the two code bases in sync with each other. Julia lets me avoid this overhead.

Secondary, but still important, reasons I chose Julia:

  • it has the interactivity of Python (if you use versions 1.10 and above) but also generates fast code. This is great for exploratory programming.
  • the numerical/linear algebra packages are far more compatible one with another than in Python. The definition of arrays and number types is more consistent between packages than in Python so it is simpler to write scientific/numerical code in Julia when you need something that isn’t already available in a library.
  • it is easier to write multi-threaded code when you need high performance.
  • it is easier to create and compile code on the fly. I tend to write Domain Specific Languages (DSL’s) embedded in Julia and then program in those languages. This allows me to apply domain specific optimizations that no optimizing compiler would ever do. This can dramatically improve execution speed.
4 Likes