пятница, апреля 28, 2006

1961 - I "barely saw" the idea several times ca. 1961... The first was on the Burroughs 220 in the form of a style for transporting files from one Air Training Command installation to another. There were no standard operating systems or file formats back then, so some (t this day unknown) designer decided to finesse the problem by taking each file and dividing it into three parts. The third part was all of the actual data records of arbitrary size and format. The second part contained the B220 procedures that knew how to get at records and fields to copy and update the third part. And the first part was an array or relative pointers into entry points of the procedures in the second part (the initial pointers were in a standard order representing standard meanings).

К слову сказать, файлы тогда на перфолентах были... В лучшем случае...

1966 - The title was "Sketchpad: A man-machine graphical communication system" [Sutherland, 1963]. What it could do was quite remarkable, and completely foreign to any use of a computer I had ever encountered. The three big ideas that were easiest to grapple with were: it was the invention of modern interactive computer graphics; things were described by making a "master drawing" that could produce "instance drawings"; control and dynamics were supplied by "constraints," also in graphical form, that could be applied to the masters to shape an inter-related parts. Its data structures were hard to understand--the only vaguely familiar construct was the embedding of pointers to procedures and using a process called reverse indexing to jump through them to routines, like the 22- file system [Ross, 1961]. It was the first to have clipping and zooming windows...

так, вот уже и окошки показались...

Soon Dan had bootstrapped Smalltalk across , and for many months it was the sole software sytem to run on the Interim dynabook. Appendix I has an "acknowledgements" dodcument I wrote from this time that is interesting it its allocation of credits and the various priorities associated with them. My $230K was enough to get 15 of the original projected 30 machines (over the years some 2000 Interim Dynabooks were actually built. True to Schopenhauer's observation, Executive "X" now decided that the Interim Dynabook was a good idea and he wanted all but two for his lab (I was in the other lab). I had to go to considerable lengths to get our machines back, but finally succeeded.

Создание машин специально для ОО-систем...

И просто золотые слова:

Another way to think of all this is: though the late-binding of automatic storage allocations doesn't do anything a programmer can't do, its presence leads both to simpler and more powerful code. OOP is a late binding strategy for many things and all of them together hold off fragility and size explosion much longer than the older methodologies. In other words, human programmers aren't Turing machines--and the lesss their programming systems require Turing machine techniques the better.

Взято из "Early History of SmallTalk".


четверг, апреля 06, 2006

И эти люди запрещают мне ковыряться в носу!..

Я хре фигею с того, чем занимается Microsoft Research!

Им мало F# (клона OCaml под .NET), им мало С-omega (C# с элементами SQL; он, правда, как отдельный продукт не выйдет). У них есть еще и Vault.

Вкратце - это почти С (т.е. императивный "curly brackets" язык), но:

- со строгой типизацией;

- с модульностью;

- с generic функциями (например, передача параметра по ссылке реализуется именно с их помощью);

- с многочисленными реверансами в сторону ФП, как-то произвольное место объявления функций, передача их как параметры, кложуры, currying (!) и т.п.

- с непривычными для императивных языков типами, вроде кортежей (tuple) и вариантов (замена для enum'ов и union'ов), тоже явно перекочевавшими из Haskell и ML;

- с pattern-matching'ом (правда, только для switch'ей) оттуда же;

- с дополнительными атрибутами для типов (сам плохо понял и нервно курю, но похоже, что-то вроде DesignByContract на этапе компиляции - например для контроля того, что файл был открыт перед обращением 8-/);

Ужос!!! Если бы сюда еще и ООП, я бы возлюбил это всем сердцем (может быть)... Но где стал бы на этом писать - не знаю..