Two Lisp programmers with a monthly salary of 100,000

Two days ago, a classmate watched Paul Graham's "The Hacker and the Painter". The Lisp promoted by Paul was so excited that he felt that this is the best language in the world!

Then I poured cold water on it: Lisp is really awesome, but there are basically not many people who use it for project development.

He was puzzled: what is going on?

I said that the quirky syntax is second. The key is that it is difficult for companies and project development methods to allow languages ​​like Lisp to exist.

To tell a story, the boss of a company also read "The Hacker and the Painter", was poisoned, and prepared to copy Paul's miracle. He hired two Lisp programmers through personal relationships.

These two Lisp programmers are superstars, the legendary 10 times faster programmers!

2 star Lisp programmers = 20 mediocre Java programmers!

The boss gave this Lisp programmer a staggering salary: a monthly salary of 100,000 !

These two Lisp programmers did not disappoint, as Paul described in The Hacker and Painter, building the system from the bottom up.

The two of them played with macros and programmed them with Lisp macros day and night.

In just one month, the two of them developed a specific language (DSL) for the boss's business domain!

After another month, the two of them used this DSL to complete the system the boss wanted, leaving their competitors dumbfounded.

The boss was so happy from ear to ear: Two talents cost me 400,000, it's so fragrant!

If you hire Java programmers, you have to hire at least 20, with a monthly salary of 20,000, and 800,000 in two months. Two months may not be possible!

Then the system entered a stable maintenance period. One of the two Lisp programmers left and ran away, and the other was no longer thinking about it, taking vacations from time to time.

When the boss thinks about this, it’s not okay. These two super programmers are too willful and the cost is too high, and ordinary people have to maintain the system! So three or four newcomers joined the project team.

The newcomer opened the macro written by the super programmer and immediately dumbfounded: I'm going! What is this? Can't understand at all!

The "comprehensive" Lisp super programmers explained to the newcomers, everyone finally got some access, but every time a new function was added, the old function was modified with fear, like walking on thin ice, like a turtle.

So this system soon fell out of date and was surpassed by competitors.

I made up this story, which is quite exaggerated, but it reflects the bottom-up, macro-development method that Paul said in The Hacker and Painter : relying on star programmers .

Using Lisp macros for development requires at least two levels of abstraction capabilities . The code in ordinary programming is to directly manipulate data, read files, databases, and network data. It is relatively intuitive, and abstract classes/interfaces.

But Lisp macros are meta-programming , which treats codes as data for manipulation/transformation. If you want to think about the behavior of the transformed new code and what will happen when you manipulate the data, the thinking dimension is much higher than that of ordinary programming. No cattle programmers.

There are few Lisp programmers and few talented programmers. It is not easy to recruit. Managers will think: "What do they do on vacation? What about leaving? In comparison, it is better to recruit a group of Java migrant workers!"

Paul said in The Hacker and Painter that he and his colleagues used Lisp to develop an online store: ViaWeb, which was very successful and defeated the competition. Later, it was sold to Yahoo for a large sum of money and renamed Yahoo Store. 

In fact, Yahoo later rewritten it in Perl and C++, the reason being that it could not find Lisp programmers.

So the question is, should I learn Lisp? 

Of course you need to, because you have to become a programmer with a monthly salary of 100,000!

More exciting technical comics, all in the programmers stand up

Guess you like

Origin blog.csdn.net/coderising/article/details/109213283