Do not get me wrong. The popularity of Python is still ensured by a community of scientists, data scientists and artificial intelligence specialists.
But if you’ve ever had lunch with these people, you also know how they like to discuss Python weaknesses. Starting from slowness and ending with the need for excessive testing, up to runtime errors, despite previous rigorous testing, this is who you want to anger.
Therefore, more and more piton programmers are also mastering other languages - the best players in this field are Julia, Go and Rust. Julia is great for math and engineering, Go for modular programs, and Rust is the best choice for system programming.
Since Python is one of the best programming languages, we at EDISON often use it in complex, interesting projects.
We have developed applications and sites of the Moscow jewelry factory.
Full testing of the new version of the site was carried out in Python and Django.
Zen Python VS Julia Greed
When a new programming language is created, this is done in order to preserve the advantages of old languages and get rid of their shortcomings.
From these considerations, Guido van Rossum created Python in the late 1980s to improve Abc. ABC was too ideal for practical programming. Although the rigidity and exactingness of the language made learning easier, it was difficult to use in real life.
Python, by contrast, is very pragmatic. You can verify this by reading Zen Zen, which reflects the intention of the creators:
|Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than intricate.
Flat is better than nested.
Sparse is better than dense.
Special cases are not so special as to break the rules.
At the same time, practicality is more important than impeccability.
Mistakes should never be hushed up.
If they are not hushed up explicitly.
When faced with ambiguity, discard the temptation to guess.
There must be one and, preferably, only one obvious way to do this.
Although at first it may not be obvious if you are not Dutch.
Better now than never.
Although never often better than right now.
If the implementation is difficult to explain, the idea is bad.
If the implementation is easy to explain, the idea is probably a good one.
Namespaces are a great thing! We will make them more!
Python still retained the benefits of ABC: such as, for example, readability, simplicity, and convenience for beginners. But Python is much more reliable and adapted to real life than ABC has ever been.
The creators of Julia are guided by the same: they want to keep the good from other languages and discard the bad. But in the case of Julia, there is a much more ambitious task: instead of replacing any one language, she wants to surpass them all.
Here is what the creators of the language say:
We are insatiable: we want more.
We need an open source language with a free license. We want C speed with Ruby dynamics. We want the language to be homoiconic, with real macros like Lisp, but with obvious, familiar mathematical entities like Matlab. We want as easy to use for general programming as Python, as simple for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, and able to combine all these features under one shell . Something easy to learn, but at the same time pleasing the most serious hackers. We want the language to be interactive, and we want it to be compiled.
Julia intends to get rid of all her shortcomings, which she still has, without exchanging them for the shortcomings of other languages. And although Julia is a young language, she has already achieved many of the goals set by the creators.
What developers love Julia for
Julia can be used for everything: from simple machine learning applications to huge simulators of supercomputers. Basically, Python can do the same thing – but it has only been adapted for this.
As for Julia, it was originally created including for these tasks. In the list from bottom to top.
The Julia developers wanted a language as fast as C – but what they created was just got faster. Despite the fact that in recent years Python has accelerated very noticeably, its performance is still far from Julia.
In 2017, Julia even entered Petaflop club – A small club of languages that can reach speeds of one petaflop per second at maximum performance. In addition to Julia, the club now has only C, C ++ and Fortran.
Python, with its 30+ years of experience, has a huge professional community. It is unlikely that there is a Python-related question that you won’t find an answer to within a quick Google search.
The Julia community, by contrast, is pretty small. You may have to dig a little longer to find the answer, connecting with the same people again and again. Getting in touch with the community will prove to be very valuable in itself.
You may not even know a single Julia command to program in this language. And not only use Python and C code. And even use Julia itself in Python!
Needless to say, this makes it extremely easy to fix weaknesses in your Python code. And stay productive until you get to know Julia.
One of Python’s most powerful features is its millions of lines in well-supported libraries. Julia does not have many libraries, and complaints are often made that they are not maintained at the proper level (for now).
But when you consider that Julia is a very young language with a limited amount of resources, the number of libraries that already exist is impressive. In addition to the growing number of libraries, the language can also interact with C and Fortran libraries, for example, for processing graphics.
Dynamic and static typing
Python is 100% dynamically typed. This means that the program decides at runtime whether the variable is, for example, a real or an integer.
Although it is very convenient for beginners, the reasons for a number of possible errors lie in this. Python code needs to be tested for all possible scenarios – an ungrateful task that takes a huge amount of time.
As the creators of Julia also strive to make the language easy to learn, dynamic typing is also fully supported here. However, unlike Python, you can enter static types, if you want, as they are presented, for example, in C or Fortran.
This can save a lot of time: instead of coming up with excuses for not testing the code, you can specify the type – where it makes sense.
Data: invest in small things with great potential
All of this is great, of course, but it’s important to remember that Julia is still tiny compared to Python.
For example, the number of requests in StackOverflow with the tag “python” is twenty times more often than with “julia”! This does not necessarily mean that Julia is unpopular – rather, programmers need some time to accept it.
Well, you don’t burn with desire here and now to write all your code in a new language? No, of course, a new language is rather preferable for future projects. This creates a time delay that every programming language encounters between its release and its adoption.
But starting now – which is easy, because Julia allows a huge number of language conversions – you invest in the future. Since in the future many will learn this language, you will already have ready answers to the questions that arise before them. In addition, your code will be more durable, as more and more Python code is replaced by Julia.
To summarize: knowing Julia can be a competitive advantage
Forty years ago, artificial intelligence was nothing more than a niche phenomenon. Industry and investors did not believe in AI, so many technologies were clumsy and difficult to use. But those who realized the prospects then are giants today – those who are in such high demand that their income is comparable to the salaries of NFL players.
Similarly, Julia is still niche. But when it grows up, the early adopters will be ahead of the rest.
I am not saying that you are guaranteed to earn a ton of money in ten years if you now take on Julia. But it will increase your chances.
Think about this: most programmers have Python in their resume. And in the next few years, we will see even more Python programmers in the labor market. Demand for Python specialists is still growing, but this growth is slowing. The prospects for Python programmers will be quite high for a long time, but they will deteriorate over time. At first, this process will go very slowly and imperceptibly, and at some point this inevitability will become apparent.
With Julia skills, you will not only show that you have interests other than job requirements. You will also demonstrate that you strive for self-improvement and that you have a very broad understanding of what it means to be a programmer. In other words, you are suitable for serious work.
You – like other Julia programmers – are future rock stars, and you understand that (at least you suspect something like that at heart). Or, as the creators of Julia said in 2012:
Recognizing our exorbitant greed, we are also eager to get everything. About two and a half years ago, we decided to create the language of our greed. It is not complete, but the time has come for version 1.0 – the language we created is called Julia. He already satisfies 90% of our ungrateful demands, and now the ungrateful demands of the rest are needed in order to develop further. So, if you are also an overly greedy and overly demanding programmer, we want you to try Julia.
Python is still insanely popular. But if you start mastering Julia now, later it may turn out to be a gold ticket. And it is in this context that the title of this article sounds: for now, Python, hello Julia!