Original address
For the moment, regardless of programming language, think about the language of the world's various nationalities, such as Chinese, Japanese, Korean, English and so on, the language has a great influence on the way of thinking of a nation, east and west, the way of thinking difference is very big, if you have seen "ugly Japanese" "Ugly Korean" "Ugly Chinese", Even the Asian countries of China, Japan and South Korea, the difference is very huge, and their common ground, all without exception by the Chinese Tang Dynasty influence. South Korea was once a country with many aircraft accidents, because the Korean honorific many (Japan more), the hierarchy is also very heavy (Japan more heavy), so a plane to the air traffic control staff very polite said: "I plane problem, the air traffic control may not be aware of the seriousness of the problem, and in fact already very serious, and later they switched to English There has been a great improvement in the situation.
Programming languages are similar, each programming language has its own design philosophy, to solve the problem, and design philosophy directly determines that he is more adept at solving any problem, it is like everyone has his own style and belief in the doctrine, and these directly determine how you behave
If you want to know how powerful the language is, look at Babel 17. One of the stars in the war is to let the other party learn a language, that is, let the other side steppir to. Programming languages also have a similar power, which gives software companies the ability to reinvent themselves, not only to change the way problems are resolved, but even to change what questions are raised. That may be why Google, Apple, and others are launching their own language, and the choice of programming language is critical to what startups want to achieve.
The Ruby language helped to develop Twitter, Hulu, and many modern web sites. Its inventor is the Japanese pine line Hongdae. As invented Ruby by the American writer Samuel R. Delany, a science fiction "Babel 17", published in 1966.
In this novel there is a core of thought-language can change people's thinking, affect the action of people. In the story, one side of the Star Wars invented a language called BABEL-17, and after the enemy learned the language, thoughts and feelings changed and became traitors to the party. The book illustrates some of the characteristics of language-that living conditions shape the language form and meaning, but language itself also shapes human action.
The story of the protagonist of Babel-17 is: Babel-17 is so precise an analytical language that you can almost ensure that you are technically dealing with any situation you are facing.
As also wants to do the same thing-reorganize and improve the way programmers think in a language. In fact, developers are also inclined to think that programming languages can not only change the way problems are solved, they can even change the questions they ask. So these people often ask a question when they weigh the size of a company, the quality of a product, or a colleague's strength:
What language do you use?
This helps the outside world understand why software companies have become so powerful, why they are so valuable, and help to understand the products and services that affect our daily lives. An internal decision that seems irrelevant to us, such as whether a new product is developed in Ruby, PHP or C, suddenly affects us all. So, if you want to know why Facebook is this way, why it works, and what to do next, you need to know php-Zuckerberg's language for developing Facebook.
PHP is probably the most popular language in all programming languages that programmers don't want to see. Overflow, co-founder of the Programming FAQ, Jeff Atwood, used a very vicious language to review PHP, calling PHP poorly designed, patchwork, a "stumbling monster", "plague", a haunted house, and saying that people who live in it are people who like ghosts, All those who use PHP are amateurs. "Some people mistakenly think that they are talented engineers in Facebook, but they are a bunch of guys who write PHP with Windows XP. Say they are hackers almost like swearing. ”
Most successful programming languages have a holistic philosophy or a set of guidelines for organizing vocabulary grammar, but PHP does not have-php founder Rasmus Lerdorf as early as 2003 admitted that he did not know how to write programming language, just take a step to see a step, think of what Add.
For example, the PHP function "mysql_escape_string", which prevents malicious data attacks, was found to be flawed, instead of patching the function, it re-developed a function called "mysql_real_escape_string". This is like installing two similar buttons in the cockpit, pressing one to put down the landing gear, while pressing the other will cause the plane to fall.
Although many people say that PHP sucks, it can't stop the fire. It is estimated that 39% of the world's websites are written in PHP, including Facebook, Wikipedia, and WordPress-famous websites. This is because PHP is flawed, but it's easy to do dynamic content without the need for professionals to do it.
The continued development of PHP is critical to the success of Wikimedia (Wikipedia). Due to its heavy reliance on PHP, Wikipedia experienced a large-scale design flaw and was not able to adapt to mobile devices until 2008, making it a user-friendly editing interface by 2013. But PHP allows people who are not software engineers to contribute new features, and Wikipedia is able to showcase ancient Egyptian hieroglyphics and deal with the bulk of the sheet music.
But Google can't use PHP to develop, because Google requires search to be accurate, its implementation requires a more sophisticated and powerful language, such as Java or C + +. Facebook is the equivalent of a small trial bazaar, with several buttons, feeds, or gadgets to draw your attention. PHP is created to quickly produce new features.
You can almost imagine how Zuckerberg, in his Harvard dorm, was thinking about getting Facebook online at the fastest and lowest cost on the fateful day. The rhythm of the web is too fast, the user is too fickle, to capture this moment only to become the first one. It doesn't matter how bad the program is written, the most important thing is to get things done and let others use them. At that moment, his mind was not how to write the code beautifully, but to let his friend log on "Thefacebook" to the girl to judge.
Facebook now has a market capitalisation of more than $200 billion, and the office wall is plastered with things like: "It's better than perfection," "quick action, breaking the rut." "Mr Zuckerberg wants to use these words to keep employees in line with Facebook's" hacker "culture. But these are exactly the values of PHP. Fast action breaking the stereotypes is really the pho of the word, as long as the "speak" the language of the people are inevitably to think in this way. It can be said that the language itself creates and sustains the culture of Facebook .
Secret weapon
If you're looking for an example of the exact opposite of PHP's natural experimental language, there's nowhere more appropriate than the next Manhattan District Financial-trading institution, Jane Street Capital. The 400-person company deals with about 2% per cent of U.S. equity transactions every day.
The programming language they used was ocaml,10 years ago, the company's technology leader, Yaron Minsky, persuaded the boss to rewrite the company's entire trading system in this obscure language. The language, originally developed by academics from a French research institute, aims to improve a computer system used to automatically prove mathematical theorems that few people have actually worked with in this language before. But Minsky, who had come into contact with OCaml at the time of the study, thought the language could replace those of the Jane Street trading system.
One of the major selling points of OCaml is its "type system", which is a bit like the word's grammar checker, except that the grammar checker simply labels the problematic text with a green wavy line, and the type system checks for errors that prevent the system from running. Programs that write type systems tend to be much more reliable than they are not-and this is very useful for a system with a daily trading volume of up to $30 billion.
OCaml's type system helps to intercept Bug,jane street programmers to focus on more advanced issues. Some people even speculate that as time shifts these people are not already in the system of constant entanglement, OCaml into a new language (Newspeak), no one dares to play any bad ideas.
The point is that to get the most out of the type Checker, programmers have to add complex annotations to their code. It's like word's grammar checker needs you to interpret all the sentences. It's annoying and even frustrating to write code and type constraints. To make matters worse, OCaml is much more demanding than most programming languages and requires a deep understanding of mathematical abstraction, which is beyond the scope of most developers ' abilities. But the rigor of the language for some people is the equivalent of cat mint, which gives Jane Street a different advantage in the tight recruiting market. OCaml, like Cat Mint, has been attracting a batch of high-caliber candidates to Jane Street. These people are attracted not only because of the language, but also because of the people who use the language. Flock together, the people here usually play four-person chess. It seems that the culture of competitive intelligence is closely related to the use of a peculiar language.
Similarly, Google seems intent on using the go language to promote its use for similar purposes. Go is a high-performance programming language developed by Google to make web processing more elegant and efficient. Developing such high-risk software is beneficial because the large group of servers behind large Web services require such language. Go is especially appealing for developers who like novelty and challenge.
The trouble of Growing up
Facebook suffered a crisis at the end of 2010. PHP itself is not developed for performance optimization, and the Facebook site is growing too fast, and it looks like it's going to collapse without a pretty thorough makeover.
The language of change is not within the scope of consideration at all. There are millions of PHP code written by thousands of expert engineers on the Facebook site, and more than 500 million users are using it. So Facebook sent a team of senior engineers to work on a special project to find a way to keep Facebook running without giving up its native language of hacking accent (hacky).
Part of the solution is to develop a compiler software that compiles Facebook's PHP code into faster C + + code. Another piece of the project is a feat of computer language engineering that allows Facebook programmers to write more reliable code while maintaining the culture of PHP lineage.
The rescue team invented a PHP dialect called hack. Hack is a PHP with an optional type-transfer system, which means you can continue to write your original, effortless PHP, and optionally add annotations to let the type system check the correctness of the code. Like Jane Street, this type checker is written entirely in OCaml, which is no coincidence. Facebook wants its own yards of farm-comfortable native language to continue to act fast (move fast), but at the same time don't want them to have to break something when doing so (things). (last year Zuckerberg announced a new slogan: "Stable structure, quick action")
At the same time, Twitter has undergone a similar transformation. Twitter was originally developed with the popular web framework Ruby on Rails, while the latter was inspired by PHP on the basis of Ruby. Then Twitter users started to skyrocket. Once the Big V released a new tweet, hundreds of thousands of fans of the tinemline must also be updated immediately. The situation tends to overwhelm the system, and Twitter engineers have to shut down the site temporarily to cope. Because of this kind of thing, the failed whale image on the maintenance page has become notorious. Later, Twitter used the Scala language to replace a large part of the company's service implementations. Not surprisingly, like OCaml, Scala is developed by academics, as well as having a powerful type system that ensures accuracy and performance at the expense of programmer freedom and development.
Similar to "mature" as startups eventually find their source of income, they can also use the power of programming languages to manipulate organizational psychology. Guido van Rossum, a programming language designer who has been working at Google for 7 years now, says that when software companies reach a certain size, the only way to avoid getting into chaos is through programming languages that require programmers to do more. "It's the kind of feeling that slows you down, because everything you need to say three times." "That's why many startups procrastinate to switch languages as much as possible. In a more rigorous language, it is possible to lose some of NB's pioneering veteran hackers, and the likelihood of a new feature will be reduced. But it can help the whole company to better understand the code of others and ensure the stability necessary for the daily operation of the product.
The ability of software startups to do such maneuvers may even explain why they are so powerful. This is partly because of the scale of the computer. But these companies also have a unique ability to reinvent themselves. With the change and development of the company, these companies can do more than rewrite the drawing organization chart. Because they are written in a code book, they can do something more radical-they can reorganize themselves, reinvent the corporate culture, and change the way they think.
What kind of language will have the company "reprint"