?

Log in

No account? Create an account
"ты, Завалишин, как e в степени x - хоть кол на голове теши" - dz

> Свежие записи
> Архив
> Друзья
> Личная информация
> DZ Online

Апрель 14, 2009


Previous Entry Поделиться Next Entry
06:32 am - "ты, Завалишин, как e в степени x - хоть кол на голове теши"
Наконец, пришли математики с предъявой - чо я тут про ОО, а это частный случай, а они про общий, а я про это молчок.

Пацаны - а знаете анекдот? Как математик идёт мимо камерного театра, замечает вывеску, и заинтересованно заходит внутрь. Через минуту выходит разочарованный со словами "тривиальный случай - ка равно трём"...?

Я вот примерно в этом же ключе случай рассматриваю - частный, тривиальный, но ОЧЕНЬ практичный. А фп мне симпатично, но пока что это и всё. Вы за него сначала сами повоюйте, чтоб хотя бы я начал вас до конца понимать. А то, извините за самомнение, но пока даже я всего не понял, рассчитывать на широкие массы программеров - ну - как бы это сказать - преждевременно.

Ну и - предлагаю некоторое утверждение, которое и сам считаю спорным. Я его породил в процессе обдумывания предъяв фп-шников, вспомнив по дороге про Форт. Который жуть какой красивый, только это не вызывает никакого желания им пользоваться, а после первой попытки - даже очень успешной - когда ты тратишь полчаса на написание, а уже через час тебе надо два часа на прочтение - понимаешь, что на нём точно не надо ничего никогда писать. Если это хочешь иногда и читать тоже.

Мысль вот какая. Надо выбирать не самый широкий базис, не самую всеобъемлющую парадигму, а МИНИМАЛЬНО возможный базис. Идеален не тот ЯП, на котором можно написать ЛЮБУЮ программу, а тот, на котором можно написать ЛЮБУЮ НУЖНУЮ тебе программу. То есть - никому не нужны к-мерные театры. Для 3-мерных существ ВПОЛНЕ достаточно 3-мерных, и давать в этом месте гибкость - бессмысленно и ВРЕДНО.

Утверждение: Правильный, хороший ЯП, неполноценен и ИЗБЫТОЧЕН, а полноценный и неизбыточный (лисп, форт, ассемблер стековой машины) - вреден и чрезмерен.

Утверждение: программирование - это НЕ написание программы, а написание ТАКОЙ программы, процесс написания которой позволяет организовывать мышление программиста эффективным с точки зрения формализации предметной области способом. Запуск программы на исполнение - важный, но почти побочный эффект её написания. (это вообще кто-то древний сказал...)

PS: Я прощёлкал - а когда это в течении последних 75 лет присваивание признали функционально кошерным?

PPS: Мне тут ещё фразу подарили: "третий элемент кортежа похож на емейл". Пишу, чтобы не забыть. Очень хочу посмотреть на спеку для ФП-библиотеки функций, в которой говорится, что все функции принимают в качестве параметра кортежи с третьим элементом, похожим на емейл. Сплю и вижу. Сплю, вижу, и фигею, дорогая редакция. /* int [] myfunc( int [] ); third int in array supposed to be x coordinate in inches */

(94 комментария | Оставить комментарий)

Comments:


From:gottlob_frege
Date:Апрель 15, 2009 10:28 am

A Theory of objects

(Link)
"The object-oriented approach to programming is based on an intuitive
correspondence between a software sumulation of a physical system and the
physical system itself. An analogy is drawn between building an algorithmic
model of a physical system from software components and building a mechanical
model of a physical system from concrete objects. By analogy, the software
components are themselves called objects. In its purest form, the
object-oriented approach recomments that every system be developed according
to this analogy.

The development of a mechanical model includes analysis, design, and imlementation
aspects. Consider, for example, the task of building a mechanical model of
the solar system. The analysis aspect consists i realizing that planets move
along precise orbits, The implementation aspect consists in preparing and
assembling spheres, gears, and springs.

All three aspects of constructing a model involve entities we may call objects,
but with different connotations.
In analysis, planets are seen as objects, but orbits clearly are not. In desing,
the intangible orbits are modeled by concrete objects such as orbital tracks and
gears. Entirely new objects, such as power sources, may appear. In implementation,
a spring may be an object that realizes the power source abstraction.

Object-oriented programming similarly involves analysis, design, and
implementation aspects, with concrete objects replaced by software objects.
The term object in programming refers to a component of a software
model, not to a component of the system being modeled. The proper analogy
is between software objects and objects in a "real model" that one may
imagine building, rather than objects in the "real world". For example,
orbital tracks may be represented as software objects.

This approach to programming is originated with Simula, wich was initially
dedicated to solving simulation (model building) problems. Its main concepts
were further refined in Smalltalk, where the concreteness of objects was
originally intended as a pedagogical tool. Since then, the object oriented
methodology has been exploited in a wide range of applications, including
the construction of user interfaces, operating systems, and databases.
Althrough these applications do not concern physical systems, the object-
oriented methodology has carried over.


> Go to Top
LiveJournal.com