The question, as always, is obvious. I probably have a lot of favorite programming languages. Most of all I have been writing on Python lately - simply because it is a language that allows me to express as quickly as possible what I think. But, of course, it is not the only one, and sometimes you have to write quite a lot in JavaScript. This is not the most pleasant entertainment in my life. Probably the most code and with the greatest pleasure I wrote on Lisp.
I never managed to write something well on Erlang, because I get a little nauseous about it. I would not even say that it is a language. Erlang is such an environment that is created by one particular company, it develops within the framework of one particular company, in which there was such a kind of personality cult. Sometimes this is good, but sometimes it leads to the fact that everything is done as it is convenient for one specific person. There is a small group of people who are very similar to the creator of Erlang. For them, everything is convenient, effective, beautiful - and I even know two such people. But in real life for me it is something uncomfortable. It's like sitting in a triangular chair and trying to somehow fit. You sit down and realize that it is not mine at all. And here it hurts, and here it hurts, no matter how you lean back. And it's impossible to sleep. Here I have a feeling from Erlang. There were roughly similar feelings when I tried to work on Smalltalk, but the subtlety here was that it was a necessary necessity for me and that is why I overpowered myself a little. Apparently, Smalltalk took my form. Well, I do not believe that I took his form. And with Erlang did not grow together.
My favorite language is Erlang, which is why I am writing here. When I thought about how I want to program, I thought and thought and invented something. And when I started to tell my friends about this, they said that I invented Erlang. So I just took it and began to write on it.
With Erlang, you can easily create very competitive applications when there are many independent threads running, even if they are communicating, but in general they have very little influence on each other. Erlang allows you to avoid thinking that someone will block someone, that due to a fat task, some small one will not be completed quickly. At the same time, Erlang allows you not to think about such things as sharing data, because they are different for each process. And when exchanging data between processes, they are copied (well, or pretend to be copied). There are no variable variables. This is not always convenient, but it allows you to avoid so many mistakes that arise because you changed something in one place and did not take it into account in another.
I have no unloved languages. There are languages ​​convenient and inconvenient. I think that there are those that are inconvenient for me, but I can not call them unloved.
I am afraid that my favorite programming language has not yet been created, but I can list the unloved ones. I do not like C ++. It is one of those languages ​​that you probably need to know and in which you need to be able to write. That is, how to make money, fight - you can love, you can not love, but you need to be able to. For many projects it is useful to know Java. From the point of view of the language itself, it is rather bad and miserable. People who are seriously engaged in programming, will immediately feel its limitations. But Java is not only a language, but also a platform: a JVM virtual machine, a standard library, a large number of open source libraries. If you understand the advantages and limitations of the platform, it is quite suitable language for many large projects. It is very important to know some scripting languages ​​- Perl, Python. The first, rather, from unloved, in the second - from loved ones.
There are some number of languages ​​that have some perspectives and from which really worthy ones can grow. Now it is difficult to judge which of them will shoot, but they should be followed to understand what ideas they have. Of these languages, for example, Rust is a language that is now used for all Mozilla projects. It is quite modern and can potentially fill a niche that is now occupied by C ++ and partly Java. It has a lot of ideas from the functional world, a lot of ideas about safe programming. But for now this is exactly a research development, but Rust is one of those languages ​​that should be monitored.
I write programs in the Perl programming language, and I like it. Once upon a time, I was interviewed in C ++ and recruited. At that time, although I was a student, I had already managed to work somewhere. And in Yandex, my then boss, whom everyone calls Druha, despite the fact that he has a first and last name, asked me: “Do you want to program in C ++?” I replied: “Not really.” In response, he said, "Then learn Perl." And I learned it. Since then I have been writing on it, and this is simply wonderful. He does not try to explain to me what to do, and I write as I want myself.
An unloved programming language is one that causes pain and unhappiness. Usually people do not write in such languages. What for? There are languages ​​that cause me pain, but others do not. For example, we have people (and some of them even sit in the same room with me) who like to write large programs in the Shell language. It's horrible. Why do they do it, I do not know, but they write them. And I have to read them. It is unpleasant.
My favorite programming language is not for work, but for the soul, this is, of course, Haskell. At least when I found out about him, he made the greatest impression on me. All that was before, faded. I could not imagine that there could be programming languages ​​so mathematically mathematically. What wonderful systems of types are there, what wonderful lazy calculations are there, how you can formulate thoughts conveniently and compactly. But I understand perfectly well that it is more or less applicable for work. It is convenient to write articles on it when you want to tell about some algorithm so that everyone understands it very well, and your story was very short. Here in such cases, the code is best written in Haskell. Who needs it, they will understand.
In general, I started programming with Pascal, then there were C, C ++, some scripting languages. The language that I know best for work is Perl, but I won't say that it is my favorite. It lacks its shortcomings, so to speak.
If we talk about unloved languages, then I can probably remember XSL. He is very bulky. That is, there were absolutely wonderful ideas in it, but the way they were embodied scares me.
My favorite programming language is traditionally old Perl. I began to study them at the first courses of the institute. Contrary to the requirements of our teachers did on it all laboratory and diploma. Now, I’m not so often involved in programming directly, but Perl is still a tool that I use more often than any other.
Once it was the first dynamic, first scripting language that allowed you to very quickly implement your ideas and thoughts. After him, many followers appeared, but, I think, he remained the most boring of all scripting languages. One of its important principles is that any action can be performed in several ways. Often there are really a lot of these ways, and this allows you to choose from them sometimes the fastest, sometimes the most elegant, sometimes the shortest, and sometimes, perhaps, the most understandable to another person who is not familiar with the language. Perl allows you to write the same program in millions of different ways. This is very cool.
And I don’t remember a language that would directly cause negative emotions in me. Is that some very, very verbose languages ​​like sloppy student Java.
My favorite programming language is C ++. And my favorite programming language is C ++ too. Which is quite strange. I love him for being powerful and you don’t pay for opportunities that you don’t use. But modern programming languages ​​make writing the same things much easier.
Unfortunately, no more favorite programming language will appear. Now all new languages ​​are conditionally not for those programmers who need to write some high performance, but for the Indians, for whom they need to clean their memory, because they themselves do not know how. And I want a language so that, roughly speaking, if there is garbage collection, then optional. In some modern languages ​​it can be turned off, but if your entire standard library is written in a concept, when you have a garbage collector, then the moment you turn it off, everything will break. In fact, you need a language without a garbage collector, where you can turn it on.
C ++. This is such a Swiss knife. This is a bad hammer, bad knife, bad spoon, bad fork, bad corkscrew and so on. But when you are somewhere in the field, and you do not have a corkscrew, but there is a Swiss knife, this is wonderful.
My least favorite programming language is Haskell. It is wonderful, you can do fascinating things on it that are related to the theory of programming languages. And this is somehow surprisingly perpendicular to the production of some meaningful work.
In a fairy tale, I have to say that my favorite programming language is Java, but I love with the same power, but for different reasons, I love Java and Python. Java is a good language. I got to know him almost at the time of his birth somewhere in 1996, I began to write on it at the institute, then in all sorts of different works, then I continued in Yandex.
Java is, in fact, a serious language in which you can write quite serious code. It will work well, will be statically checked, there will be few errors. There are a lot of different frameworks written for him, good IDEs, tools that will do a lot for you: they will highlight the syntax and check it. A lot of good things have been done during the life of the platform. And Python is such a more lightweight, more frivolous language. But on it you can do such elegant things, beautiful and short programs that caress the eye when you look at them.
In Python, there is no static typing, so the program that takes two screens in Java can fit in 10 lines and enjoy it. But at the same time, it does not have such a terrible syntax as Perl and some other languages. But this, of course, a matter of taste. Some people like Python, some like only Perl, some like only Java. There are many Java developers who love such frivolous things like Python and JavaScript. And I love both.
In the part of Yandex where I work, traditionally they don’t really like Perl, because it’s scary. C ++ is a little bit frightened because it can make very serious big and scary programs that no one will understand later, in which you can search for an error for a very long time, because in C ++ you can do a lot of things that are forbidden, say in Java. This is the notorious multiple inheritance, operator overloading into pluses and minus ones. You can make such a program, which is generally incomprehensible about what will happen. But, of course, if people who love C ++ read it, they will probably start generating some kind of anger in my direction. So I won't say anything more.
There is a programming language in which I write all sorts of Olympiads - this is C ++. Historically, it just so happened that there is a lot of experience and it is more convenient to write something quickly so that it works. At work, I gradually program less and less. In fact, I have no preferences. I rather treat language as an instrument on which to express my thoughts and solve problems, so I prefer not to participate in all kinds of holivars. Everyone loves to complain about C ++ and other languages. I take it as a necessary evil.
I don’t have a favorite programming language, because a programming language is a tool that you are currently using. There are languages ​​in which I like to write more and in which I like to write less, but no favorite ones. I am quite conservative in the choice. That is, each programmer has a box with the languages ​​that he uses. I want my box to be small, and at the current time I have chosen C ++ and Python for myself. Actually these languages ​​and use. But they are not loved, but just a tool.
Starting from a certain time, a good programmer can get up to speed in a week or two and start writing in any language - that is absolutely not a question.
Favorite programming language is Java. But I didn’t do it for so long, because it’s customary to do everything in C ++, when it’s something serious, and in Python, when people have very little time and quickly want to show results. This is about people like me.
Java is simple enough to quickly create prototypes of any complexity, because it is fairly unified. All people who can write on it will be able to perceive someone else's code, quickly disassemble and reuse components. C ++, for example, does not possess this property at all. And, if you do not agree in advance that we are doing this here, and here it is, it is almost impossible to read someone else's C ++ code.
I probably have no unloved languages. Everyone is good at something. But of those with whom you encounter in Yandex, but not seriously, but as a toy, I can remember some Haskell that fascinates with its mathematical concepts and is absolutely not applicable in real work.
I believe that there are languages ​​in which programs should be written, and there are those in which they will write programs in 10 years. Today, programs should be written primarily in Java, so now I am writing on it, and it seems to be good.
Relatively speaking, there are only two types of programs. The first must work very, very quickly and squeeze the last bytes from memory and the last clock cycles from the processor. But the programs of the second type are not very demanding of the hardware, and the main requirement for them is that they need to be written quickly, and it is cheap to maintain them. Now the world is designed so that the first, very demanding on hardware, programs are written in C ++, and the second - in Java. As I said, I write at the last and I like to write more when, relatively speaking, you can write a lot of code that does not require fast work.
But in the future everyone will write on Rust. Rust is my favorite subject. I tell everyone about Rust. The C ++ problem is that although the programs are fast, it is very hard to write them on it so that they do not fall. Language provides very few security guarantees. Java gives a lot of guarantees, but does not allow to write programs so that they work quickly. Rust, on the one hand, allows you to write safe programs, on the other - very fast. So my favorite programming language is Rust. But he has not yet reached such a state that it can be used, and will be like that in five years.
I do not like all dynamic typed programming languages ​​- Python, Perl, JavaScript. I have a very bad memory, and the programs for them require that a person remembers a lot of things. You need to keep in mind some information about the types that are not in the code. Actually, relatively speaking, it’s really hard for me to do it, because I have a bad memory. People who have a good memory, just hard.
Source: https://habr.com/ru/post/230775/
All Articles