On March 7 last year, the W3C, after a 10-year hiatus, resumed work on HTML.
Then I wrote a few internal corporate notes about what I think about this and about the prospects for the development of web applications.
A year later, in connection with the development of technology, my assumptions became more relevant in many respects: in many respects I was right, although I was wrong here and there.
')
I decided to put them in the form of an article, reworking and providing illustrations and notes.
Content:
- Introduction
- Death scenarios
- Mental doom, or HTML - new assembler
- Physical death, or HTML - new Turbo Pascal
- Is everything so serious?
- Mental death will not be if web-technologies are correctly understood.
- There will be no physical death if web technologies are developed.
- Conclusion
- Notes
At the moment, the world is entering the heyday of rich web applications.
Programs running via the Web are increasingly replacing traditional desktop applications. Gmail, Google Map, online office, even web-based operating systems ... You can continue the list yourself.
However, as web applications move forward, the requirements for the main client web technologies are growing more and more: xHTML, CSS, JavaScript.
And, if these technologies do not keep up with the ever-increasing demands, it will lead to their slow decline ...
Death scenarios:
Mental death,
or HTML - new assembler
At the dawn of IT, all programs were written in assembly language.
Programmers licked their assembler code, trying to make it more beautiful, clearer and more efficient.
The most advanced assemblers contained such chips as the use of macros, and the most advanced programmers knew how to use these chips.
However, the assembler was a low-level language: it lacked even such elementary commands as multiplication and division, which developers had to describe manually using low-level commands.
Therefore, the assembler was replaced by high-level languages. At the same time, the assembler has not physically gone anywhere - all programs in high-level languages ​​are compiled into the same assembly code
[1] . In ugly inefficient assembly code.

However, the assembler disappeared
[2] . Disappeared from the minds of programmers. They began to write in high-level languages, already in these languages ​​to lick the program code and bring it to perfection. And the fact that a beautiful C ++ program is compiled into ugly assembler code no longer bothers anyone.
The ability to write beautiful code in assembler is worthless. The presence of advanced assemblers that make life easier for a programmer has become unnecessary - why, if the assembler code is generated by the compiler.
Thus, without going anywhere physically, the assembler disappeared from the IT industry.
A similar fate can wait for xHTML / CSS / JS.

For all the time of the existence of the Web, the main web-technology was xHTML.
Web developers brought this technology to perfection: they learned how to separate presentation from content by means of CSS, use desktopless and semantic layout, use microformats ...
But, in xHTML there are no tags that are so necessary for modern web applications, such as tabs, menus, trees, calendars, etc.
What successfully took advantage of Microsoft. Microsoft has a
long-time tooth on web-technology, because, being open standards, they (unlike Windows API) do not obey microsoft software. It was necessary to do something with this, and since Microsoft could not physically destroy xHTML, it was necessary for it to disappear, at least in the minds of the developers.

This is how the web-interface model
ASP.NET appeared . In ASP.NET, work goes with high-level server controls (menus, tabs, trees), which are then “compiled” into HTML, CSS, and JavaScript, just like a C ++ program is compiled into an assembler.
xHTML / CSS / JS disappears from the minds of web developers; moreover, they to some extent cease to be web developers, returning to the usual Windows forms / Delphi / Visual Basic paradigm, to the good old Windows API.
ASP.NET depreciates what we have learned for so long: the ability to write clear xHTML code, tableless and semantic layout, etc. Even one of the foundations of the Web, CSS, is depreciating, because the design of a site can be set using ASP.NET
themes , the ideology of which is very different from the cascading CSS model.

In order for developers to forget about JavaScript, Microsoft plans to release
Script # , a compiler that allows you to write client scripts in C # and then compile them into JavaScript.
Many developers don't like ASP.NET
[3] . He is sharpened by a quick and convenient solution of typical problems. But making something nontrivial is much prettier on pure HTML, CSS, and JavaScript.
However, non-trivial tasks are encountered, maybe only in 1% of cases, and the remaining 99% of typical tasks are faster solved on ASP.NET. It may not be so beautiful, but business requires development speed ...

Other web technologies already find it difficult to compete with ASP.NET. The
Delphi for PHP product has recently appeared, with the help of which PHP developers are starting to think within the Delphi Windows paradigm
[4] .
If it goes further, the web-technology is waiting for the fate of a new assembler. HTML / CSS / JS, while still physically remaining the core web technologies, can become low-level languages ​​and disappear from the minds of developers.
Physical death
or HTML - new Turbo PascalYou probably remember the Turbo Pascal development environment. It was a console program with a textual pseudo graphic interface. All Turbo Pascal shell developers have had is a matrix of 80 * 25 ASCII characters, their color and background. Everything!

And from these text characters they did the impossible: they implemented a multi-window interface, with a main and context menu, pseudo-three-dimensional push buttons, window-dragging technology ... In general, almost everything that is in the modern graphical Windows program now.
However, it was impossible to jump over the table limitations of 80 * 24 characters. No matter how hard you try, you can not draw an object thinner than a single character or draw a diagonal, and especially a curved line. Interfaces like Turbo Pascal have gone down in history, giving way to Windows graphical interfaces ...
And again, the story can repeat. The ghost of Turbo Pascal hovers over xHTML ...
The basis of the Web - the HTML language was not intended even for creating websites (in their modern sense), and even more so for web applications. Tim Berners-Lee created it for the simple layout of scientific documents, like Word.

And so, on the basis of the scientific article + markup language + the script language, the Gmail developers have created a full-featured email client that is not inferior in terms of interface capabilities to classical window programs, and sometimes even surpasses them.
However, web-technology has limitations that, no matter how hard you try, you will not be able to jump. Using pure xHTML / CSS / JS you cannot create 3D graphics, vector animation, control sound, store large amounts of data on the client side ...

Change will not take long. As a basis for "rich Internet applications", Macromedia (now Adobe) has been promoting Flash /
Flex for many years. Microsoft relatively recently, but with double zeal, promotes WPF /
Silverlight [5] .
And if xHTML does not change, it can repeat the fate of the Turbo Pascal pseudo-graphic interface, disappearing forever from the IT industry.
Is everything so serious?
So, client web technologies can wait for two tragic fates:
- Mental death : will remain physically, but disappear from the minds of developers, covered with high-level abstractions, like ASP.NET, becoming low-level languages ​​- a new assembler;
- Physical death : disappear completely, giving way to Silverlight or Flex.
There will be no mental death
web-,
, xHTML/CSS/JS
- . , .
:
, ASP.NET (, , , ..), , xHTML .
, , xHTML : ,
<font>
. , .

«» xHTML . , xHTML ASP.NET , «» xHTML, C++ . xHTML
[6], ASP.NET , 99% .
:
, xHTML . , xHTML
,
, .. ,
, ,
. , , . , xHTML , . CSS «», , , ; JS .
1:
:
— , , <font>
.
— , , .
, xHTML, , — .
CSS «», , : , ..;
JavaScript — / , , ..
2:
, , — . , , .
, CSS JS, .
3:
, — . , xHTML, <div>
, <h2>
.
, JavaScript , .
CSS JS , , xHTML .
‑ , ASP.NET.
, xHTML , . , xHTML
,
, . .., , , — , — . , xHTML . , , ! ?!
«» Windows-, , . ASP.NET , xHTML. , Windows-, . web- Windows, , (themes) ASP.NET CSS.

web- — JavaScript (
— ).
JavaScript — , , , Java C#.
, JavaScript, : , --, , .. , , C++, Java, Delphi VB. - , JavaScript , «» .
, . …
— ,

,
JavaScript, ,
Prototype.js,
Microsoft Ajax Library ( Atlas), , JavaScript, .
Prototype.js , JavaScript, , JavaScript
— Richard Cornford
, «» xHTML/CSS/JS — , . , , , web- - .
,
web-« » .
web- , web-: 2D 3D , , , …
, Flash/Silverlight .
, IT- Turbo Pascal, .
, xHTML, CSS JavaScript .

, W3C,
,
web-.
, web-: , , .
Semantic Web: RDF, OWL SPARQL. Semantic Web , . , , SPARQL- « », : «
2- ?
»
, , web- 1995
[7].
, , W3C .

, , . - «» : Mozilla Foundation, Opera Software Apple,
WHATWG, web-,
web-.
, 7 , : WHATWG W3C.
HTML5 ( Web Applications 1.0)
[8], :
- -, HTML4/xHTML1.1 , web-:
<canvas>
— , <video>
— , .. - -, DOM API : offline, /, Drag&Drop - !
HTML5 — HTML, web-.
, xHTML/CSS/JS , :
- ↑ , . , , , .
- ↑ , , . , IT-.
- ↑ , ASP.NET . ASP.NET — , , , .NET Framework. , ASP.NET - .
- ↑ «Delphi for PHP», , , . , «Delphi for PHP» .
- ↑ Silverlight, . .
- ↑ , . , ASP.NET' xHTML , .
- ↑ W3C xForms . Mozilla Firefox, , xForms .
- ↑ web-, (x)HTML5 :
- HTML4/xHTML1;
- ;
- HTML — . HTML5 :
<section>
, <article>
, <header>
, <footer>
.
www.wikimedia.org, : www.codegear.com, www.microsoft.com, www.w3c.org, www.json.org, www.whatwg.org, www.gmail.com, www.dotnetheaven.com, idesisnery.blogspot.com