WEBVTT

00:00.000 --> 00:14.560
Okay, so the charming gray buttons of the 20th century, or digital kits, and how did they

00:14.560 --> 00:17.920
vote with computer architectures?

00:17.920 --> 00:25.640
We will start from the very beginning and try to figure out it in 20 minutes, the very beginning

00:25.640 --> 00:29.960
is definitely the dimension of digital kits as they are.

00:29.960 --> 00:39.720
And I have to say that, well, widgets were not here, but toolkit itself did appear in 1982

00:39.720 --> 00:47.320
with the Android project in the Carnegie Mellon University as an distributed networking environment

00:47.320 --> 00:54.800
for students, and which was called Android user environment, by the way, both founders

00:54.880 --> 01:00.320
of the university, Carnegie Mellon, where Android, so when the university presents something

01:00.320 --> 01:05.680
big, or a good chance that it will call Android something.

01:05.680 --> 01:11.960
So this Android user environment was a work processor of centric, by the way, you see the

01:11.960 --> 01:15.680
screenshot of the work processor itself.

01:15.680 --> 01:21.560
It was open sourced, long time ago, and it's even provides some old debent packages.

01:21.560 --> 01:29.880
You see the link, and this work processor is yet included the collection of embeddable

01:29.880 --> 01:37.320
objects, which are really close to what we have in contemporary office use, like oily

01:37.320 --> 01:45.320
automation in Microsoft Office, for example, diagrams of Microsoft Excel embedded, or formulas,

01:45.320 --> 01:47.000
or anything like this.

01:47.080 --> 01:56.360
All this started in 1982, and the technology is older than buttons, and if speaking about

01:56.360 --> 02:05.000
the buttons themselves, well, they were definitely not designers, the widgets are still looking

02:05.000 --> 02:12.440
like this, and the whole suite was working on so-called 3M specification machines, which means

02:12.520 --> 02:17.720
one megapixel, one million instructions per second, and one megapide. By the way, they had less

02:17.720 --> 02:27.320
than one megapixel screen, because, well, 3M spec is something cute, nice, sounding, inspired

02:27.320 --> 02:36.840
by first Apple list, or first Zerox Auto computers, and as you may guess, you do not need

02:36.840 --> 02:48.360
big resolutions, by the way, those black ellipses are check boxes. So widgets, or at least,

02:48.360 --> 02:55.480
widgets design is not yet here, but something similar is, and if speaking about widgets in

02:55.480 --> 03:04.440
more contemporary visual style, probably we will not mention here Apple Liza, because frankly speaking,

03:04.440 --> 03:12.920
Apple Liza OS had no widget or key library, most of buttons check boxes and other things

03:12.920 --> 03:22.520
were drawn on canvas by programmer, and the one which actually had something was Windows 1.0,

03:23.560 --> 03:31.720
with Win API. You see some familiar looking scroll bars, barons, menus, but what's interesting

03:31.720 --> 03:40.200
here, that the Hello World in 1.0 SDK of Win API was the most condolous Hello World of its

03:40.200 --> 03:46.600
times. There were five files, the largest file of Hello World was 150 lines of code.

03:48.440 --> 03:55.720
The problem was that Win API itself was a very flexible API, which allowed developers to

03:55.720 --> 04:01.400
tweak everything, but unfortunately the implementation was not allowing but forcing the

04:01.400 --> 04:08.040
Developer to tweak everything, and that's by the way, that's the only proprietary thing here

04:08.040 --> 04:18.920
in the slides. We will not discuss the Hello World at all, you think it's all? No. By the way,

04:18.920 --> 04:27.080
it's really low spec, that's an advantage. You know, 256 kilobytes of RAM for this version of Windows

04:27.080 --> 04:33.480
was absolutely enough, and you see the screen resolution. By the way, that's still Hello World,

04:35.080 --> 04:42.760
and that's still Hello World. Frankly speaking, they tried to make Hello World as good as it

04:42.840 --> 04:50.120
possible. It had a bow dial, like I can menu on top of the window, but still, it doesn't

04:50.120 --> 05:01.880
explain 150 lines. So the next step in our talk is the next step, which appeared in 1987 when Steve

05:01.880 --> 05:13.880
Jobs left Apple and had to supervise something related to computers following his passion,

05:13.880 --> 05:21.640
and the tool kit in next step was the open step tool kit. Fortunately, reproduce nowadays in

05:21.640 --> 05:30.520
the step, so we can touch it, rewritten from scratch. You see, the computers were rather powerful,

05:31.160 --> 05:39.000
there were computers on which worldwide web was born in science, so 10 MIPS at least and more

05:39.000 --> 05:44.840
RAM. But from the video to the point of view, the most important part was that it was a video to

05:44.920 --> 05:52.200
kit based on messaging, because it was written in ObjectiveC, and ObjectiveC implements

05:52.200 --> 05:58.760
invoking methods of objects by sending them messages, and it was a really convenient for UI programming,

05:58.760 --> 06:03.240
so it implemented the first rapid application development system, something like PTT Creator,

06:03.240 --> 06:10.280
or Lazarus, in open source words world nowadays, when you actually do mouse driving development

06:10.360 --> 06:17.160
of the user interface, and only write some samples of code to an processing. By the way,

06:17.160 --> 06:26.040
the code is not very nice. I will not speak much about it to save time and move to the last

06:26.040 --> 06:33.960
introductory slide. The Athena widgets, one more project was created as a distributed network

06:34.040 --> 06:41.240
environment for campus, and actually it gave birth to a lot of useful things, including

06:41.240 --> 06:48.280
X-Window system. But the first widget to the kit for this X-Window system, the X-AW

06:48.280 --> 06:55.560
is still here with the X-Orc distribution. You have additional package with X-AW based ups,

06:55.560 --> 07:02.520
like X-I's, and few you can see here. By the way, those guys invented the word widget.

07:04.840 --> 07:11.720
The widget toolkit is rather elaborated, by the way. You see even some uses widgets as binary

07:11.720 --> 07:21.320
trees, and it's also known for the ugliest scroll bars in the world. They are even called

07:21.320 --> 07:30.440
sinister scroll bars, but that's a separate topic. A topic source code, example, is much smaller,

07:30.440 --> 07:39.000
and I'd say it's rather plain, you initialize things, then you add callback, and arrange widgets

07:39.000 --> 07:48.440
on the screen, then you allow window to be drawn, and then everything finished because you call

07:48.440 --> 07:56.840
the event processing loop. But on Unix, it wasn't the winner, by the way. The first attempt to

07:56.840 --> 08:03.800
create some enterprise-looking designer-looking widget toolkit was open-look from some

08:03.800 --> 08:09.640
macresystems, 80-10, zerox, they implemented three incompatible implementations, and the project

08:10.520 --> 08:18.520
was that, after that, by the way, one more reason they tried to avoid legislation from Apple,

08:18.520 --> 08:24.520
avoiding familiar things like normal scroll bars and normal menus, those combo boxes on top of

08:25.240 --> 08:32.520
a used instead of menus, and they even behave differently depending on which button you click

08:32.520 --> 08:43.160
them on. And by the way, this X-view implementation is still present in the Ben7, and you can

08:43.160 --> 08:52.680
see it in some vintage distribution, but motif at the winner of the competition was another implementation

08:54.600 --> 09:07.400
the ugliest one among all three. It was also blamed for too big source code, and too demanding from

09:07.400 --> 09:18.920
the programmer, but they didn't see VNAPI, by the way. They were spoiled by Unix, and starting from

09:19.000 --> 09:29.320
this, Win API Disaster, Rappertal Kits start to appear, which provide human friendly API on top of

09:30.200 --> 09:37.480
something non-human friendly, or another reason, which tried to provide cross-platform toolkit,

09:37.480 --> 09:44.120
which works on all platforms. And to approach, do exist here if they're using Rappertal Kits,

09:44.120 --> 09:51.640
which uses native widgets, or use alternative toolkit, which draws everything on canvas.

09:54.280 --> 10:02.360
The first Rappertal Kits was done by Microsoft by itself. They had a real task to run a 16-bit

10:02.360 --> 10:09.240
applications in Windows 95 without recompiling them, and they did a 16-bit Rappertal Win 32 API

10:10.200 --> 10:16.680
rather successfully. By the way, this one is still usable in one. You can even run

10:16.680 --> 10:24.760
Win 16-bit applications there, and the second Rappertal Kits from Microsoft is Microsoft Foundation

10:24.760 --> 10:32.360
classes, the first object that we ended think were successful among Windows programmers because

10:32.440 --> 10:40.200
the alternative, in the very beginning, well, you have seen it. And finishing Rappertal Kits

10:40.200 --> 10:45.400
probably Java first attempt to make Rappertal Kits, not what is successful one because they

10:45.400 --> 10:50.760
use only widgets which were present on all platforms, so they used less widgets than any other

10:50.760 --> 11:01.240
toolkits was Java AWT. And returning from this to Unix desktop, first we get tickled in 1991,

11:01.320 --> 11:09.480
as a competitor. Well, guys, suppose that motif is too hard to code, and that's what they

11:09.480 --> 11:18.760
suppose to be easy. You know, shibank and lines for the fellow world, but frankly speaking,

11:18.760 --> 11:26.440
it's a script, of course, and it was not Rappert, it was drawing ugly motif widgets on all platforms

11:26.520 --> 11:34.200
till 1997. After that, it started drawing native widgets, but on Unix, where it was mostly used,

11:34.200 --> 11:42.120
it still was drawing motif ugly buttons because it was supposed to be default. As speaking about

11:42.120 --> 11:52.520
two other toolkits, which were alternatives to motif on Unix, they were QT and GTK, both had no default

11:53.320 --> 12:04.520
by themselves, instead they supported visual styling, and this brings us to a third part of the talk,

12:06.040 --> 12:14.680
the competition between visual styles, the same thing. Well, in Microsoft Word, visual styling

12:15.320 --> 12:21.480
has been started by Java, providing a new widgetal Kits, alternative toolkits, drawing everything on

12:21.560 --> 12:28.600
canvas with some mechanisms, visual style, actually a borrowed from let's keep

12:28.600 --> 12:35.640
the regard of the ancestor of Masila, by the way, not reasoned by some mechanisms themselves.

12:36.520 --> 12:44.600
Suddenly, this made a revolution between Windows users. They suddenly noticed that way,

12:44.600 --> 12:51.880
they are really tired of Windows classic visual style, and well, this metal style is not something

12:52.440 --> 12:56.200
really good or ergonomic, but they liked it so much that they wanted

12:58.280 --> 13:04.280
visual timing and proprietary application do appear, which simulate looking feel of other

13:04.280 --> 13:10.920
ups. By the way, they were really buggy because it was impossible to implement without crashes

13:11.000 --> 13:18.200
from time to time due to a very small GDI pool of traditional Windows, but Windows users

13:18.200 --> 13:30.760
still continued to use them and to pay for this buggy behavior. Yes, for us nowadays, it's funny,

13:30.760 --> 13:38.920
but they paid for it, and it worked really awful. You know how strong was the demand? By the way,

13:39.000 --> 13:46.520
the last widgetal Kit to mention, here is Kakao widgets from MacOS. It's still the same

13:46.520 --> 13:55.160
next step API, but Apple licensed a robot reader source code to draw everything as tiny tiny

13:55.160 --> 14:05.160
PDFs of buttons on the screen. By the way, you can run these ups, I was surprised, but the

14:05.160 --> 14:12.120
darling project which allows to run these ups on Unix is still alive, probably not widely used,

14:12.120 --> 14:19.720
because why should you? I have such a need, it's not lying. And finishing the battle over visual

14:19.720 --> 14:28.840
styles in Unix world, the interest to visual styling decreases somewhere near to zero LN,

14:28.840 --> 14:37.080
because the default styles of both QTE on the left and GDK on the right became so polished that

14:37.080 --> 14:42.840
anything you tried to invent was highly probably worse than the default look.

14:44.600 --> 14:52.920
Now, as you know, they even stop support visual styles at all and GDK, and the last slide, by the way,

14:53.800 --> 15:03.320
I am proud of myself for, you know, feeding everything in 20 minutes. So, you see the milestones,

15:04.440 --> 15:12.360
and if I would have half with an hour, you would see much more milestones, but the K1s are here.

15:12.360 --> 15:19.800
The concept development then, inventing the Unix desktop along period, then discovering the

15:19.880 --> 15:26.440
native visual disadvantages and trying to overcome them, and playing these terms was the probably

15:26.440 --> 15:37.400
last period. Thank you.

