
In August of this year, Facebook released a new version of its application for iOS. It has become
completely native . This event led to a new round of debates about the advantages of native applications over HTML5 applications. I also want to comment on this.
Public opinion in this case is very polarized. I recently participated in one discussion. It began with the concern of one person that his company would now have to develop a client for Microsoft Surface in addition to Android and iPad. And the discussion ended with the statement of another: “And you can use HTML5 and get a client on all three platforms at once.”
Marc Andreessen, an influential person on the network,
said : “The applications of the future are web applications. Everything will live online. Native mobile apps on platforms like iOS and Android are an intermediate step towards a fully mobile network. This temporary stage can last for a very long time because the networks are still limited. But if you allow me to make the bold assumption that one day we will have a high-speed wireless connection to the network everywhere available, it is obvious that in the end everything will come to web applications. Because technology wants everything to be that way. ”
')
It seems that most people, looking at this situation, see only black and white. I tend to see shades of gray.
Question
The main question is: how thick should clients be?
Let me give the definitions of terms:
- I call the Client something that is used only by one person, interacts directly with this person and, probably, is physically close to him.
- I call the Server something that is shared by several users, interacts directly with the Client and can be physically located anywhere.
- I call the Channel what connects the Client and the Server.
- I define the concept of a fat client as comparative. In thicker clients, there is more application-specific code, and they are less dependent on the Server. Thinner clients require more application-specific code to run on the Server.
There are two main parameters that determine the thickness of clients:
- Channel Quality. This includes channel width, latency, availability, reliability, and price.
- The price of the client side. This includes the price of hardware, the cost of developing the client, its deployment, upgrades and maintenance.
There are also two laws:
- As the quality of the channel improves, the client may become thinner.
- As the cost of the client part decreases, the client may become thicker.
Two poles
If the quality of the Channel was perfect, then the client could be super-thin.
The Channel with perfect quality would have infinite width and it would work without delays. He would be available everywhere. He would be 100% reliable. And it would not cost anything.
In the case of an ideal Channel, the client would be almost not needed. It would only provide a kind of physical access to the server.
On the other hand, if the cost of the client part were zero, then the Client could be arbitrarily thick.
Such a client would consist of physical components that cost nothing. It would contain software developed at no cost. This software would be installed, updated and maintained free of charge, without problems and without effort.
If the cost of the client part were zero, then the Server would be needed only to provide communication between the Clients.
So why is the thickness of clients different?
Because the different thickness of the client gives different opportunities in the conditions of market competition.
You can stand out from the competition by making the Client thicker (which is more expensive) and advertising the speed of work, user convenience, and so on.
Or you can make the Client thinner (it is less expensive) and advertise the fact that you will need to spend less on maintenance, installing such a Client is simpler and the like.
This problem is not new.
In the 1960s and 1970s, when we only had mainframes and minicomputers, there was a separation between smart terminals (fat clients) and simple / dumb terminals (thin clients).
In the 1980s, we had workstations (very expensive fat clients who were bought by those who thought they were cheap compared to mainframes and minicomputers) and microcomputers (much less expensive fat clients who were bought by those who had not previously there was a computer).
In the early 1990s, the high cost of workstations contributed to the proliferation of X-terminals, thin clients, which could essentially only display a graphical user interface. My manager then bought a new-fashioned modem at 19.2 Kbps and really tried to develop widgets for Motif from home.
In the mid-1990s, web browsers appeared. Only a very short time, this technology was considered as a way to work together with hypertext documents. This stage lasted almost until dinner. At the same time, the city of
Champaign , Illinois, the
Unsung Hero, and
His Eminence, developed a browser with many features. What features? Well, these features that have turned the browser into a platform for delivering applications. And the development of the network since then is mainly moving in this direction.
- Java applets (developed to a fatal disease called Swing)
- ActiveX (declared dead seven years after missing)
- Flash (killed by Steve Jobs)
- Silverlight (killed by HTML5 hands)
In the late 1990s, someone (like Oracle?) Tried to sell something called
Network Computer . It was a small PC with a video card, some memory, a network card, a web browser and no hard disk. Thin.
Microsoft tried to kill the network in infancy. Then they tried to be Mommy for the network. Then Bill Gates retired, and since then I still can not understand the strategy of Microsoft in relation to the network.
While Microsoft tried to remain faithful to Windows, as a solution based on a fat client, Citrix tried to make this client thinner. Citrix developed a solution that allowed multiple users to use Windows as mainframes.
One polyclinic in Champaign installed Citrix on its network, which explains why I started to sit in the doctor’s line longer, but it didn’t explain why the service charge did not drop.
Appeared HTML5. In fact, the specification is far from complete, but no one knows about it. People needed a name and they began to say "HTML5". The common use of the term "HTML5" is actually quite accurate. At least when compared with how telecommunications companies use the term "4G".
And so, in the customer war, mobile devices became the battlefield. Smartphones and tablets.
Black and white
As I already said, people see in this question only black or white.
This is partly due to the fact that people who give polarizing predictions usually sound like visionaries. In some situations, inspiring is much more important than giving correct information. Venture capitalists are simply obliged to look like visionaries when inflating a bubble. So they attract people to the gambling companies that need
to be
quickly sold .
Another reason is that people like to hear unambiguous predictions. It makes people feel better. Uncertainty strains.
Generally speaking, no one likes articles like this. Essays that claim that the world is colored in shades of gray. That is why you stopped reading two screens back.
But in this case, black and white perception is simply wrong.
Perhaps I do not inspire, but I am right.
Channel quality will continue to improve. In 1992, I used a 14.4 Kbps modem. In 2012, the slowest connection in my life is hundreds of times faster and much more reliable.
Costs for the client part will continue to decline. In 1992, I used an
HP Snake 730 workstation. In 2012, the iron in my iPad is hundreds of times better and it costs 97% cheaper.
None of these technologies are comparable to batteries, which by and large have not improved since Kennedy was president. Both sides continue to get better, steadily, year after year and there’s no end in sight. Single battles are won by one side or the other, but the intensity of the struggle is not reduced. Neither side gained a decisive advantage over the other. And if you think that something will change over the course of your life, then I think you are mistaken.
It is possible to think so pleasantly, but incorrectly.
Rates
Be that as it may, we are forced to put on one side. You can earn a lot of money if you are on the side of the winners in these small battles.
And yes, using the metaphor of war, I do not add loyalty issues to a flag or country here. Those who put on fat clients last time can now freely put on thin ones.
In my experience, people tend to think that I should always be loyal to the web application camp. In the early days of browser development, I was at that camp. I was not even close to the success that Mr. Andreessen achieved. Mark's name was first. My was closer to the end, on the third page of the list of participants. And only from the third time I was able to say my few words. But web technologies are a big part of my professional experience. I am a supporter and grateful user of many web applications that have changed the world.
However, this time I put on native applications for three reasons:
- Reducing the cost of the client side recently. For example, the App Store greatly affects how programs are installed and updated.
- Current quality issues with the Channel. Users of smartphones and tablets expect high quality programs at any time.
- I have personal preferences. I'd rather spend my time creating programs that delight users. Wal-Mart may be successful, but having a life goal just to do something cheaper doesn't seem so much fun.
That is why I pushed SourceGear to release a
native iPad application for our service
onVeracity.com .
When I first started thinking about such an application, someone from the team asked me: “Why can't the owners of the iPad just use the web application?”
And I said then that web and native applications can and will coexist.
But native applications are simply better. They were always better. Therefore, they are more expensive.