Pull to refresh
89
Руслан Хайров@khayrov

Разработчик

14
Subscribers
Send message
Как раз WinAPI — хороший пример системы, спроектированной в духе ООП, но реализованной в процедурном языке.
Инкапсуляция налицо: постоянная работа с объектами (хэндлами), о внутренней структуре которых ничего не известно, но которые обладают состоянием. Собственно, они часто так и называются, объекты ядра.
Полиморфизм: есть ряд функций, которые работают с разнообразными объектами, вызывая нужный код. Например, CloseHandle одинаково успешно закроет открытый файл, канал или дескриптор потока.
Наследование и обмен сообщениями — можно вспомнить оконную систему.

И если система в итоге получилась местами весьма сложной в использовании, то это отнюдь не обязательно потому, что она реализована на процедурном языке.

P.S. По ходу обсуждения тут больше вспоминают ООП в PHP, тут я ничего не могу сказать, некомпетентен.
Хотел было снова не согласиться, но, подумав, решил, что это больше вопрос терминологии. «Крутизна» у меня как-то с другим контингентом ассоциируется, который до Хаскеля обычно не добирается :-) А так, да, любопытство, о чём это таком замечательном люди толкуют.
Крайне маловероятная ситуация. Все известные мне люди интересующиеся или всерьёз занимающиеся «нетрадиционными» языками, в первую очередь функциональными, хорошо знакомы с Си, Java и иже с ними. Чаще всего, используют их в работе. То есть первично именно желание перевернуть своё представление о программировании.
Расскажу в общих чертах, как делаем подобное на Django + Google Web Toolkit.

Упомянутая выше автоматическая админка Django, конечно, хороша, но для всех её можно заточить, ну и AJAX-овых красивостей хочется.

На сервере Django диктует архитектуру MVC (или MVT, где T = template, как её называют сами джангисты), к подобному стремимся и на клиенте. Модель сервера оборачивается на стороне GWT интерфейсом (набор getters/setters и, возможно, несколько служебных методов, delete и т.п.). Реализация этого интерфейса спрятана в недра другого класса, который и отвечает за взаимодействие с сервером (данные ходят в формате JSON), и представляет собой «коллекцию» объектов-записей. Коллекция observable, т.е. можно подписаться на события добавления, удаления и т.д. Аналогично, для объекта-записи можно подписаться на события изменения свойства. Таким образом реализуется привязка к интерфейсу. Это может быть простая таблица, это может быть специальный виджет для редактирования такого вида записей — на что фантазии хватит, благо в GWT можно нормально собирать интерфейс из «кирпичиков». Если всё это реализовывать вручную, получается изрядно многословно (ну Java же), но вполне расширяемо. Что приятно, в этой модели есть много мест для автоматизации:
— генерация Java-интерфейсов по моделям;
— data-binding к элементам управления в GWT-интерфейсе;
— генерация REST API для CRUD-операций с моделями.

Не всё из этого пока реализовано, но есть желание собрать в общеполезный набор утилит/библиотеку для связки Django с GWT. К сожалению, пока есть более приоритетные задачи.
Вы с FreeBSD случаем не путаете? Там действительно уже несколько лет не могут добавить возможности, необходимые для нормальной работы драйверов NVIDIA под amd64.
Покрасили :-)
Notebookreview.com опубликовали обзор.
Из печального: всего 3,5 часа работы на 6-ячеечной батарее с включённым Wi-Fi и половинной яркостью экрана. Без Wi-Fi и с минимальной яркостью всё же выжали 6,5 часов.
С дополнительной батареей в отсеке привода результаты можно умножать на 1,5.
Есть такой универсальный документик, в котором можно найти всё о всех современных ThinkPad-ах :-)
ftp://ftp.software.ibm.com/pc/pcinstitute/psref/tabook.pdf
Леново совсем недавно анонсировала универсальный AC/DC адаптер толщиной 15 мм. В корпоративном блоге есть фотографии (ссылку, простите, дать не могу, карма на нуле).
Но судя по tabook, к сожалению, X300 будет (пока?) со старым БП, который вдвое толще.
И с оптическим приводом?
Как бы то ни было, сочетание параметров очень далеко от «обычного 2-х килограммового ноута».
То, что Air он не конкурент, это понятно, аудитория совершенно разная. (На engadget велись точно такие же дискуссии, один в один, любо дорого посмотреть).
Не будет там никаких 2 кг. Данные из tabook:
Weight: 3-cell: from 3.16 lb (1.43kg); 6-cell: from 3.35 (1.52kg)
И по сноске: Weight includes battery and standard optical drive...
Леново никого не собиралась уколоть, Kodachi (это codename X300) они разрабатывали полтора года и о MacBook Air узнали не раньше нас с вами.
12 ...
21

Information

Rating
Does not participate
Location
Zürich, Zürich, Швейцария
Date of birth
Registered
Activity