Choosing a programming language to learn from scratch is a problem that worries many developers. How do you choose a language that will not only bring you money, but also enjoy your work? REG.RU developers Sergey Sedinkin, Alexander Tkach and Andrey Makarychev will answer all your questions about the three popular programming languages for web development: Perl, Python and JS.
Why python programming is perfect to your kid?
Learning python is becoming more and more popular and python is listed as the one of the top programming languages in the world. It is a programming language that provide real skills for the future. It is used to develop apps and software in a variety of settings. Tkinter is the most commonly used graphical user interface in the python programming language. It is the standard way to create an attractive GUI in python.
On the Internet, there is an opinion that Perl is outdated and it is written mainly by those who come across legacy code. Is it so?
Legacy code – code that was written by mammoths by previous or third-party programmers using outdated languages or technologies.
This is partly true. In large well-known companies, you can find projects written in Perl. They need to be developed and supported. If the code has undergone refactoring, then it will meet modern standards. It’s a pleasure to work with such code. And what difference does it make in what programming language it is written?
As for new projects in Perl. Recently Vladimir Perepelitsa from Mail.ru took part in an interview where he said that they are writing a cloud in Perl. And that’s just a new code and a new project. I cannot give more examples, because I was not interested in third-party projects.
Perl’s share of the web has certainly shrunk in favor of PHP, Node.js, and Python. Basically, Perl is in demand in companies where the codebase was originally written in Perl in the years when there was no alternative to it on the backend. The amount of legacy code written in Perl in top IT companies in the past years is large and needs support. Somewhere it is rewritten to other programming languages (PL), and somewhere it remains the main PL, including for new projects and microservices. I think that, firstly, the migration process from Perl is not fast, and secondly, refactoring and maintaining legacy code on large projects can also provide good programming experience, so it’s too early to bury Perl in the next 5 years. In addition, Perl is supported by a professional community that is friendly and expert. Often, finding the answer to a complex question there will be faster,
Why use Perl for the web when you have Python?
A large community, an extensive database of open modules on CPAN for almost all tasks. Perl is becoming less popular, which means that the number of Perl programmers will decrease. Because of this, the value of each individual programmer will increase. So, wait for honor and respect in the company.
It would be more correct to oppose Perl to PHP, whose share in the web development segment is many times greater than the share of both Perl and Python. For simple web projects like landing pages or blogs, Perl really doesn’t make sense – there are ready-made solutions in PHP (CMS – WordPress, Joomla and others), and on large and complex projects it can compete with other programming languages. Programming in Perl provides a deeper knowledge than programming in PHP, while the syntax is simpler than that of Python, and almost any problem can be solved in this language in several ways. I think that a person who has mastered Perl can then easily switch to PHP or Python – they seem easier after Perl – and write quality code at the same time.
Is Perl really complex syntax?
If desired, you can write very tricky constructs in Perl. It will be difficult for an untrained viewer to understand the code. But you can write simple code too?
In Perl, you only need to remember what special variables and operators exist to understand the syntax. Yes, Perl allows you to write code very concisely if you want, but in practice you will rarely have to deal with such a record. Perl code is as readable as PHP or Python, and unlike Python, Perl does not have a strict requirement to indent code blocks.
What can you do with Perl on the web? What are the challenges for those looking to find a job as a Perl developer?
In short, these are backend, admin scripts, reports, system daemons.
Perl has modern-level web frameworks with MVP and ORM support – Catalyst, Mojo, Dancer, which are not inferior to frameworks in Python (Django) and PHP (Laravel, Yii). The tasks are the same as in other popular programming languages for server programming – development of the backend of classic web applications, as well as microservices, payment gateways, queue managers and sometimes asynchronous solutions.
Is it a good idea to start learning programming with Python, given that it is quite high-level and there are many ready-made libraries for it? Will there be then a lack of deep knowledge and understanding of the technology that is hidden in Python behind abstractions (for example, the process of allocating memory in programs)?
In the modern world, programming is moving towards solving business problems. Modern servers are equipped with hardware that works fast enough. It is much better to write a program that solves specific problems for the user and brings benefits to him, makes life easier than to write a program that works quickly, but does not carry any benefit. If your project develops so much that you need to learn low-level things, then that’s when it is worth doing. It will be much easier to study them with a ready-made baggage of knowledge. The programmer will have an idea of where and why optimizations are needed.
There are many areas of application for Python: web, data analysis, Machine Learning, and so on. Will a beginner be able to switch to another area if one does not suit something?
It all depends on the person and the requirements of the project. There shouldn’t be any particular obstacles.
How can a beginner programmer immediately apply his knowledge of Python in practice (in relation to web development)?
I advise you to come up with a task and immediately implement it. For example, you can set yourself a goal – to create a website that will have a phone book. You can add, delete contacts to the book, change them. Storage done in the database.
What can you do with Python on the web? What tasks await those who plan to look for a job as a Python developer?
You can do the same with Python on the web as you can with other programming languages.
In general, server-side JS should not be taken lightly. Node.js is as powerful a development language as any other. And to this you can add the most active community, a huge range of open libraries for almost any need (yes, there is even Data Science and GPU work). In general, developing your backend service on it, you can get the full range of pleasure, just like any other language.
Here, however, it’s worth keeping in mind that Node.js is niche. The days of hype, when everything was written on it, have passed, and developers began to be attentive to the choice of tools for their purposes. But io-bound tasks are definitely all yours.
The threshold of entry is such a fetish for developers. Programming is not rocket technology, not relativistic physics, and here the human factor is completely excluded when communicating “man – computer”, which certainly simplifies the activity. But, as elsewhere, the spectrum of your knowledge limits your possibilities. There are no difficult languages for “hello world” applications, but for something more complex you need to have knowledge with which your area of professional interests intersects. In any situation, the basic knowledge is algorithms and data structures to understand how to work with data; and programming patterns to avoid common mistakes.
And there is. Although it may have been. The hype wave subsided long ago, showing the strengths and weaknesses of JS. It is now a great tool for its niche, although its niche still spawns a lot of holivars.
If we talk about purely client-side JS, this is the whole range of possible tasks: from the simplest form processing to the construction of the most complex interfaces; from elementary snowflakes on the screen to cool (and not very cool) game dev (do you still remember about DOOM and CS-point in the browser?).
If about server-side JS: there is even more. These are BFF, and all sorts of GraphQL, solving application problems for the frontend (assemblers, preprocessors, postprocessors, etc.), large servers on Node.js, small services on Node.js – whatever.
Also, do not forget about mobile development (all sorts of pwa and not only), development of desktop applications (Electron and all others).
It is not easy in the ocean of information to find a guide that explains the basics of programming well, avoiding you to jump from one language to another without understanding what you are doing
Taking the first steps by following the right manual, will facilitate the learning process and make you acquire a clear command of your computer in carrying out the activities