Lisp developer: two sides of the same coin

Original author: Dr Mark Tarver
  • Transfer
I have been programming in Lisp for about 20 years and have read many Usenet posts and blog articles written by Lisp developers. I often asked myself the question - Is there a typical Lisp developer, how do typical representatives of nations or other groups of people exist?

After some thought, I came to the conclusion that it definitely exists, and this character influenced the history of the development of the language, its strengths and weaknesses. So this article was born, which, without a doubt, will hurt someone and push the argument.

Each more or less serious lecturer issued hundreds if not thousands of students. Most of them are forgotten, as in those paintings where the main faces are clearly drawn, and the rest is only schematic. This often leads to an awkward situation when a former student greets you by name, and you don’t even have a rough understanding of who he is.
You are flattered that you are remembered and at the same time uncomfortable that you do not know who you are talking to.

But some faces are remembered. Those who did the project under your leadership and two categories of students are very good and very bad. Talented successes and terrible defeats remain in memory. And the most unusual thing that made me write this article is that there are students who fall into both of these categories. And, you know, I always felt a strong sympathy for them.

Today mediocrity is the most common occurrence. Often I had students who were terribly not in time for just one reason: they had no abilities. This is not unusual. Unusually, in the UK today we are bringing many such students to graduation. But, stop, that's another story.

Now look at the brilliant failures. Due to the fact that both of these factors are often found together, our first reaction is - This should not be! But this happens, and often. Why?

To understand this, you need to look at pre-university time. Let's go back to school and look at the brilliant failure in the bud. Those who watched Donnie Darko will understand which students I'm talking about. But if you didn’t look, it doesn’t matter, then you will understand who we are talking about. Almost every school produces this annually.

In general, we are talking about a student with outstanding talent. He does most of the tasks at the last minute, and yet very well. He does not take school with its rules seriously, because if you look carefully at the many school rules, this is just nonsense. And if you look at the world with a fresh look, you can see a similar picture.

So, this guy has 2 features: he has a sharp mind and does not take everything seriously. Together with the second, he thinks everything is quite simple and a little boring. Because of this, he also realizes that people often do meaningless things. Having lived with such thoughts, he becomes cynical and a little sad, because it turns out that he also has to do meaningless things. he cannot leave this society. Teenagers are good at highlighting this absurdity. It becomes the seed of future melancholy and possibly further depression.

Another feature of this guy is his low threshold for boredom. He takes on the task and works furiously on it, and, having quickly solved all the most difficult and interesting moments, throws it to completion. He will lie on the bed and strum on the guitar for several days. This is bipolar: periods of high activity are replaced by periods of melancholy, stopping, inaction.

If everything is clear, let's see what happens to him when he enters the university.

We have 2 stories coming out here, one joyful and the other sad.

The happy story is that he is ignited by what he chose to study, and graduated with honors, confirming his talent.

But I would like to take a deeper look at the sad story, where talent and failure are combined.

The student begins to understand that the university is much like a school in terms of the meaninglessness of the rules, etc. Although the university compares favorably with schools in the beauty of the disciplines created by great minds. But if you look at the professors, not taking into account their obsession with their senseless mostly unread (and unread) publications, you can conclude that the university is not real either.

But let's get back to our boyfriend.

The biggest difference between a school and a university for beginners is FREEDOM. Freedom from mom and dad, freedom to do something of your own. The freedom to truly screw up. So our hero begins a new life and realizes that he can do whatever he wants. Get drunk and fall asleep at 3 in the morning. And so he goes and relies on his innate talent, which will pull him out if that, because it worked at school. And it works for a while.

But talent is not enough, perseverance is also needed, because the material is more complicated at the university. Soon he gets 5-, 4+ and finally 4ki. He experiences an unusual sense of failure for him, which lowers his self-esteem. He can still get up at 5 in the morning and complete the task until 9 in the morning, but what he is doing is not so good.

With such students I have come across and still do. They are at the bottom of the grades list. One of them had a bored> UNIX command line prompt. Encountering this, I made close contact with him. (Once I even saved one and now he is a professor and unhappy because he was surrounded by mediocrity - but what can be done here?). Usually he came to life by the graduation year, when he could do something of his own and did it very very well. Something unusual. And most professors will not give him an honest mark for this, simply because he studied poorly.

Often such a student does not finish the job. Or drop out of school. He earns money by selling soda or mows lawns, but always reads and learns something because a good mind is always hungry.

Now for Lisp, and I've often seen this before. Lisp is a magnet for such minds. As soon as you see that such a mindset has greatly influenced Lisp's culture, you will understand why Lisp, like many of its fans, is a brilliant setback. He has the same strengths and weaknesses as a talented bipolar student (hereinafter TDS).

Why is that? This is partly due to his insight. He can see far, farther than he has the strength to get. He presents ambitious projects that require large resources, he takes up them and his enthusiasm quickly runs out. This is not because he is lazy, just his strength is not enough.

And then Lisp enters the scene. Lisp for the mind, like a lever for the hand. It increases your strength and makes it possible to work on projects that are beyond the capabilities of languages ​​such as C. Writing in C is like assembling a mosaic of lentils using tweezers and glue. Lisp is how to possess a powerful and accurate pneumatic weapon. It opens up whole worlds inaccessible to other developers.

TDS loves Lisp. Its stunning features are a reflection of the creative abilities of TDS. A lot of ideas came from Lisp-ers: garbage collector, list processing, windows and other areas where Lisp was one of the first. We can conclude that Lisp is an adult and one of the best languages, because many things were born in its depths.

But this is not entirely true, and the reasons are not in the language but in the community, which possesses not only strengths of TDS but also weaknesses.

One of them is the inability to complete projects correctly. The phrase "architecture for ejection" was created specifically for the TDS and came from the Lisp community. Lisp makes it easy to get around unpleasant moments, and many believe that it should be so. I came across this 10 years ago looking for a GUI for my Lisp. No problem, I found 9 options. But none of the 9s was well documented or stable. Everyone just made his own decision that worked for him and that’s it. The usual position of the TDS: it works for me and I understand that. This is also a consequence of the uselessness or unwillingness to involve someone else in the project to help.

The C / C ++ approach is completely different. It’s so hard to do anything with tweezers and glue that any result is an achievement. You want to document this. You will have to seek help for more or less large projects. You need to be social, and work with others if you want to achieve something.

And this is more suitable for employers. 10 people who work together correctly document preferably one TDS, which can be replaced only by another TDS (if you find one), which at some point may stop working.

Another feature of the TDS that I noticed is his flair for falsehood. Most of us feel it too. But he is less than the rest ready to endure it. He often sees the absurdity of many things, and has enough intelligence to understand how it should be right. And he, unlike ordinary mortals, is not ready to compromise. This has its consequences.

Lisp machines (hardware that natively supports lisp) is a product of this kind of position. As Gabrielle once said, Right Pieces. Although, of course, she was not right. Here you can see the rejection of a compromise with the market, and the use of the platform, which in the long run led to failure.

This opened up another property of TDS for me. The reverse side of all this energy and mind: sadness, melancholy and loss of self-confidence after realizing such incorrect decisions. If you read Lisp discussion posts, including the topic “Common Lisp sucks” on comp.lang.lisp, you'll see how true this is. Veteran developers with many years of experience and no doubt talented ones lose confidence. A brilliant mind goes inwardly to gloomily observe the inadequacy of their favorite language. These problems can be solved (Qi - this was thank God), but when you are upset everything seems to be at an impasse. Lisp is doomed and we will all die.

There is an article that reflects this probably better than other Lisp: Good News, Bad News, How to Win Big. By reading this article you will feel the duality of TDS. The positive side, intellectual pride and faith in Lisp, is adjacent to “We Will All Die”.

What can be said in conclusion? That there are 2 problems. Community issue and Lisp issue. The problem with the community is the problem of the nature of the TDS.

But the problem with Lisp? And there is no problem, because Lisp, like life, will be the way you make it.

Free translation, first time.

Also popular now: