Moments of friends were flooded with wechat mini programs yesterday.

I quickly took out the books I had bought three years ago on the shelf and wiped them clean.

As a programmer who is not experienced. From the programmer’s point of view to analyze the micro channel small program, welcome to show.

The first speech

Micro channel small program only sent 200 invitation numbers, and I expected, Zhang Xiaolong did not turn over my card, can not even rain and dew?

First to understand what is wechat small program. Turn self-knowledge on

Wechat may have reaffirmed that “we’re a booty call app.”

Wechat also offers a bunch of interfaces and components (sorry, nonsense).

Here is Uncle Chan’s view:

The principle of applets is to use JS to call the underlying native components, similar to React Native. It just goes to show that everything that can be developed with JS will eventually be developed with JS.

Proof: Everything that can be developed with JS will eventually be developed with JS

Solution: According to my years of experience, this sentence is a true proposition.

Language designers are divided between those who believe that programmer languages should prevent programmers from doing stupid things and those who believe that programmers should be able to do anything they want with a programming language. The C/Java language represents the former camp and JS represents the latter.

Int is int, double is double, and the second camp is convenience. Int is var, double is var.

When you choose a language, you’re doing multiple choice. Convenience versus performance.

Often, new languages are very convenient because the hardware performance is improved, so you can give up performance requirements for convenience.

The main contradiction of programming language is the contradiction between the convenience of program development and the level of hardware.

If you can go back to the 1970s (first to buy a piece of land in the west of Zhongnanhai), when you sit in front of a huge computer to write code, you accidentally shake your hand, type two more Spaces, and then program OOM. Don’t be surprised, memory was low, every character was strictly defined, and no waste was allowed. It is impossible to run Java virtual machines. There is no Java language.

Thrift is a virtue and waste is not necessarily a bad thing

As hardware performance improves, more and more programming languages appear, and the new ones tend to waste performance and improve convenience. By the standards of a few decades ago, some of the most popular applications in new languages are a staggering waste of hardware resources.

It’s not just programming languages that do this; it’s actually a common historical trend, as technology advances, that each generation does what the previous generation thought was wasteful. You can imagine 30 years ago making a long-distance phone call. Now, forget long-distance phone calls, some people are getting on planes to have sex, which was hard to imagine before.

Waste can be divided into good waste and bad waste. More waste in exchange for simple design is not a bad thing.

How can you take advantage of the new hardware’s more powerful capabilities and most profitably “waste” them?

At this point the problem comes back to the beginning, proving that everything that can be developed in JS will eventually be developed in JS

JS this language expansibility is very strong, performance compared to other languages can only ha Ha. But the hardware speed will increase very quickly. Paul Graham calculated that if Moore’s Law is always true. A hundred years from now computers will run 74 times 10 to the 18th times as fast as they do today. (73, 786, 976, 294, 838, 206, 464 times, to be exact)

There will come a time when you will choose convenience over performance.

When I was in school, I often went to Internet cafes to play Odyssey and legend. Now it can be done with any page game. Ten years ago you couldn’t imagine playing this kind of game on the web.

You can imagine now, a few years from now, going to the web and playing World of Warcraft. It’s not impossible.

Can performance-focused languages survive

We all know that C/C++ is a performance-oriented language, and we need performance for games and video playback. Will they be replaced by new languages?

I can vouch for that, no.

Although the Java language I mentioned above belongs to the first camp of performance-oriented languages. But it’s definitely enhanced convenience over C/C++. Languages develop iteratively. With the improvement of hardware performance, new languages will be generated under each node, which wastes performance and enhances convenience compared with previous languages.

But it will be hard to replace the previous language, and performance-demanding programs will still emerge. Even if World of Warcraft can be played on the web in the future, there will be super World of Warcraft, World of Titan, World of Universe and a whole host of new performance-demanding games.

Will wechat applets replace other apps?

The question goes back to our topic of wechat applets. Will wechat applets replace other apps?

My point of view is very clear, now will not replace, later, but there will be later wechat can not replace; After the later will replace the later, but the later will appear after the later wechat can not replace the…..

It’s not hard to explain, 10 years ago we couldn’t play legends on the web, but now we can. But now there is World of Warcraft, maybe in 10 years it will be available on the web, but there will still be super World of Warcraft games that you can’t play on the web.

What do we need to learn as a programmer?

Some people will worry, wechat small program out, do Android, iOS development will not be unemployed ah.

In fact, you can rest assured, as long as you will learn, will never be unemployed, you do not learn, even if the micro channel small program did not launch you will be unemployed.

For now, applets are always small and have limited scenarios. It can not completely replace APP, but also guide users to download APP through small programs. Just like books, being able to browse on the web doesn’t mean you can’t develop APP software.

But recognize the big trends, and this is the time to learn.

How to learn?

First, learn the basic JS syntax, React Native principle, JS, RN, H5,CSS, operation, testing, product design specifications, graphic design, neural network, OpenGL………

In short, learn what you use, depending on the document.

** As a programmer, you can forget learning high numbers, you can forget learning English, you can forget learning linear algebra…. But don’t forget to study. **

Interested in learning wechat small program development can pay attention to the book topic wechat small program development