Развлекательный порталРазвлекательный портал


Общее
Игры
Apple
Android
Развлечения
Прохождение
Карта сайта

Раскрыты характеристики приставки PlaySpace - российского аналога PlayStation
Новый трейлер Forza Horizon 5 посвящён обновлению Race-Off
В GOG стартовала раздача вертикального симулятора гномьей шахтерской колонии Hammerting

Монстр по имени Mac OS X
🕑 19.08.2018 Общее 👀 75 просмотров

В 1999 году Mac OS X не вышла. Вмешались непредвиденные обстоятельства, кроме того, пришлось переписывать графический движок, а в индустрии уже посмеивались над Apple, взвалившей на свои плечи столько невыполнимых задач сразу.

Началось непредвиденное обстоятельство вполне невинно, с обсуждения взаимодействия приложений для Carbon с приложениями для Cocoa. Вообще-то, это взаимодействие было не то чтобы невозможно. Никаких мистических барьеров между Objective-C и C, о которых в те времена писали некоторые авторы, никогда не было.

Objective-C отлично работал даже с C++. Точнее, с C++ работал его вариант Objective-C++, подробности ниже.

Барьеров не было, но абстракции у каждой из частей системы были очень разными: при передаче информации из одной части в другую (а ситуации, когда в одной из частей есть библиотека, необходимая программисту, который работает в другой – случай рядовой и обыденный) приходилось тратить непозволительно много времени на перевод, и даже на изучение “иностороннего” языка.

Умный программист, поставленный в такие условия не в первый раз, выделил бы особенно частые и мутные случаи общения, и написал бы собственную библиотеку для их упрощения и унификации. Представьте себе: вместо того, чтобы увеличивать ценность операционной системы уникальными программными продуктами, сотням программистов придется либо “переводить” передаваемые данные, либо писать свои библиотеки для этого…

Решили написать такую библиотеку сами, заранее. Назвали её Core Foundation. Если вы имели дело с программированием для Mac’ов и/или iOS, вы слышали про неё, и некоторые её производные (Core Graphics, например). И, с некоторого момента, она зажила своей собственной жизнью, и выросла в нечто значительно большее, чем тонкий пограничный слой объектов и кода…

Это пятая часть серии о превращении Apple в NeXT Apple. Предыдущие части:

  1. NeXT Apple.
  2. Apple выбирает путь.
  3. Каменноугольный период (Карбон) в истории Apple.
  4. Медовый месяц карбонизации

Core Foundation

Дано: есть две части одной и той же операционной системы, в каждой из них есть, или со временем будут, библиотеки интересные для противоположной части системы. Каждая их частей организует и представляет данные по своему. Одна из них делает это не просто по своему, но еще и множеством разных способов, на разных языках (в основном на C++ и на C, но не только).

Технические требования к связующим обе части библиотекам определились легко.

В качестве языка реализации связующих библиотек был выбран C, который понятен без перевода по обе стороны границы. Если грамотно учесть особенности реализации C в C++, а на Apple неграмотные инженеры если и работают, то не инженерами (менеджерами?), все будет нормально работать.

С другой стороны, для сильно объектно-ориентированной части операционной системы, было бы логично обмениваться с противоположной стороной “объектами”. C не считается объектно-ориентированным языком, но…

Но на самом деле, все что необходимо для реализации на нем объектно-ориентированного поведения, в нем есть. Просто ни одному нормальному человеку, решающему прикладную задачу, не придет в голову тратить уйму времени на подобные нетривиальные упражнения.

Мне иногда (когда я жил в чистом C) очень хотелось учудить что-то такое… Но увы.

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

Постараюсь не залезать во всю эту механику слишком глубоко. Извините, коллеги – если кто-то из вас случайно забредет в этот текст.

Чтобы уменьшить число неопределенностей, набор и принципы структур данных в Core Foundation скопировали (довольно близко к тексту) в Cocoa. Добавили в свои библиотеки то, чего в Cocoa никогда не было (CFTree, например).

Штука оказалась очень удобная. Из самых разных непричесанных данных, с некоторыми усилиями (но в рамках допустимого), программист в Carbon теперь мог собрать данные в какую-нибудь из структур (например, это массив, элемены которого могут быть либо строками, либо другими массивами строк), и выдавать её в ответ на запрос с той, или даже с этой, стороны.

На той стороне, в Cocoa, брат-программист преобразует этот универсальный объект в объект какого-то класса… Бум – опять нехорошо. Со стороны Cocoa, сильная сторона которого – высокая скорость программирования, работа с таким объектами слишком трудоемка…

И тогда какой-то сумасшедший придумал “посадить” Cocoa на этот самый приграничный слой, и заставить самые используемые объекты Core Foundation превращаться, по воле программиста, из объекта Cocoa в объект Core Foundation и обратно…

А какой-то другой сумасшедший решил, что это именно то, что надо – и что на такое не жалко потратить кучу лишнего времени… Этого кого-то звали Эви. Джобс, который во все совал свой нос, думал над этим предложением несколько дней (проект, пока еще почти нелегальный) уже был в работе, под прикрытием Эви, и… согласился.

Он не был технарем, но чутье на красивые решения у него было.

Objective-C++

Objective-C++ – гибридный язык, разработан (случайно) на NeXT Software, незадолго до поглощения ей Apple (или наоборот).

Objective-C++ никто специально не проектировал. Для забытых уже целей, одному из инженеров NeXT потребовался компилятор компиляторов (типа yacc или bison).

Но, либо для его задачи в этих простых и надежных “кк” чего-то не хватало, либо его мучила любознательность, вместо них он решил использовать компилятор компиляторов “на стероидах” (никак не могу вспомнить, как он назывался – а ведь и я пару месяцев его помучал, из любопытства, лет 20 назад).

И, в качестве упражнения, он написал компилятор языка, объединяющего в себе C++ и Objective-C. И C.

Компилятор был невероятно медлительным, но дело свое делал хорошо, и его включили в инструментарий разработчика NeXT, который перешел в Project Builder Mac OS X.

Получился язык, незаменимый при импорте в Cocoa кода, написанного на C++.

Продолжение следует

👍 0 👎 0

>>>Ссылка для отзывов и предложений<<<


Ещё новости с тэгом Общее


Что такое землетрясение, каковы причины его возникновения и их последствия?Что такое землетрясение, каковы причины его возникновения и их последствия?
🕑 07.02.2023 Общее Происшествия 👀 428 просмотров

Заброшенный вокзал, расписанный народными художественными узорами в ВенгрииЗаброшенный вокзал, расписанный народными художественными узорами в Венгрии
🕑 07.02.2023 Общее Фотоподборки 👀 317 просмотров

Красочные водопады Плитвицких озер в ХорватииКрасочные водопады Плитвицких озер в Хорватии
🕑 07.02.2023 Общее Красота 👀 381 просмотров

Антиправительственный митинг в Москве 10 марта 1991 годаАнтиправительственный митинг в Москве 10 марта 1991 года
🕑 07.02.2023 Общее Фоторепортажи Места События 👀 2863 просмотров

Фото-загадка: Какие символы зашифровали на этикетке зимней «Кока-колы»Фото-загадка: Какие символы зашифровали на этикетке зимней «Кока-колы»
🕑 07.02.2023 Общее Интересное 👀 630 просмотров

Перевал через Альпы и «бесконечное» шоссе: 5 опасных, но захватывающих путейПеревал через Альпы и «бесконечное» шоссе: 5 опасных, но захватывающих путей
🕑 07.02.2023 Общее Мир Страны Города 👀 448 просмотров

Чебуреки — все секреты идеального теста и фарша!Чебуреки — все секреты идеального теста и фарша!
🕑 07.02.2023 Общее Еда Рецепты 👀 515 просмотров

От Lamborghini до Mitsubishi: производители автомобилей, которые делают трактора не хуже спорткаровОт Lamborghini до Mitsubishi: производители автомобилей, которые делают трактора не хуже спорткаров
🕑 06.02.2023 Общее Автомир 👀 236 просмотров

Истории из цикла — с неожиданным концомИстории из цикла — с неожиданным концом
🕑 03.02.2023 Общее Юмор 👀 508 просмотров

Совет хозяйкам: никогда больше не развешивайте мокрые вещи на сушилки и радиаторы в квартиреСовет хозяйкам: никогда больше не развешивайте мокрые вещи на сушилки и радиаторы в квартире
🕑 03.02.2023 Общее Интересное 👀 329 просмотров

Как понять смысл слов некоторых слов без словаряКак понять смысл слов некоторых слов без словаря
🕑 03.02.2023 Общее Общество 👀 859 просмотров

Моя правда самая правдивая: эта история произошла на судеМоя правда самая правдивая: эта история произошла на суде
🕑 03.02.2023 Общее Истории Рассказы Анекдоты 👀 295 просмотров

Как немцы поступили с миллионами касок вермахта, оставшимися после войныКак немцы поступили с миллионами касок вермахта, оставшимися после войны
🕑 29.01.2023 Общее История 👀 400 просмотров

Зачем в США в начале XX века малышей отправляли почтойЗачем в США в начале XX века малышей отправляли почтой
🕑 28.01.2023 Общее США 👀 422 просмотров

«Миротворец»: что собой представляет и на что способен самый культовый револьвер Дикого Запада«Миротворец»: что собой представляет и на что способен самый культовый револьвер Дикого Запада
🕑 26.01.2023 Общее США 👀 583 просмотров

Почему Америка и Европа такие богатые и откуда у них столько денегПочему Америка и Европа такие богатые и откуда у них столько денег
🕑 19.01.2023 Общее Интересное 👀 1549 просмотров

Астрологический прогноз на 19 — 25 февраляАстрологический прогноз на 19 — 25 февраля
🕑 16.12.2017 Общее 👀 776 просмотров

Иван Ургант снова высмеял Анатолия КашпировскогоИван Ургант снова высмеял Анатолия Кашпировского
🕑 29.12.2017 Общее 👀 677 просмотров

Ольга Анохина: «Проблемы от бывшей родни»Ольга Анохина: «Проблемы от бывшей родни»
🕑 20.12.2017 Общее 👀 676 просмотров

Владимир Финогеев: Часовые амбарыВладимир Финогеев: Часовые амбары
🕑 08.01.2018 Общее 👀 752 просмотров

Популярное 2 недели


Малоизвестный китайский бренд уделал Xiaomi и Samsung: самые крутые технологии в смартфонах InfinixМалоизвестный китайский бренд уделал Xiaomi и Samsung: самые крутые технологии в смартфонах Infinix
🕑 26.03.2024 Android Это Интересно Мобильные Технологии Новичкам Смартфоны Infinix 👀 78 просмотров

Стала совсем неузнаваемой: Брежнева перестала скрывать дефект на лицеСтала совсем неузнаваемой: Брежнева перестала скрывать дефект на лице
🕑 25.03.2024 Развлечения Звезды Новости 👀 82 просмотров

Сливочный гратен из цветной капусты и лука: рецепт классическийСливочный гратен из цветной капусты и лука: рецепт классический
🕑 23.03.2024 Развлечения Мой Дом Готовим Вместе 👀 80 просмотров

В обновление 1.50 для Euro Truck Simulator 2 получит обновление Wielton Trailer PackВ обновление 1.50 для Euro Truck Simulator 2 получит обновление Wielton Trailer Pack
🕑 22.03.2024 Игры 👀 87 просмотров

Состоялся релиз фильма *Дом у дороги* с Джейком Джилленхолом и Конором Макгрегором - фильм уже доступен в сетиСостоялся релиз фильма *Дом у дороги* с Джейком Джилленхолом и Конором Макгрегором - фильм уже доступен в сети
🕑 22.03.2024 Игры 👀 112 просмотров

Четвёртый закулисный ролик Rise of the Ronin расскажет о создании игрыЧетвёртый закулисный ролик Rise of the Ronin расскажет о создании игры
🕑 19.03.2024 Игры 👀 341 просмотров

Обзор очень тихой беспроводной клавиатуры Ugreen. Подключил ее ко всем гаджетам в доме и не жалеюОбзор очень тихой беспроводной клавиатуры Ugreen. Подключил ее ко всем гаджетам в доме и не жалею
🕑 17.03.2024 Apple Обзоры Гаджетов Лучшее АлиЭкспресс Техники Скидки 👀 83 просмотров

Как искать промокоды на скидку и сканировать чеки в Едадил, чтобы получать кэшбэк за покупкиКак искать промокоды на скидку и сканировать чеки в Едадил, чтобы получать кэшбэк за покупки
🕑 16.03.2024 Apple Советы Трюки Скидки АлиЭкспресс Работе Цены 👀 63 просмотров

Игра «Найди и посчитай фигуры»Игра «Найди и посчитай фигуры»
🕑 16.03.2024 Развлечения Яркое Детство Игры Творчество 👀 176 просмотров

Рецепт шоколадных блинчиков Рецепт шоколадных блинчиков
🕑 16.03.2024 Развлечения Яркое Детство Рецепты 👀 157 просмотров

В *Битлджус 2* раскроют прошлое героя; Майкл Китон увидел часть отснятого материала и остался в полном восторгеВ *Битлджус 2* раскроют прошлое героя; Майкл Китон увидел часть отснятого материала и остался в полном восторге
🕑 16.03.2024 Игры 👀 108 просмотров

Рыбы по гороскопу: сильные и слабые стороны, характеристика и главное качество знака зодиакаРыбы по гороскопу: сильные и слабые стороны, характеристика и главное качество знака зодиака
🕑 16.03.2024 Развлечения Гороскопы Гороскоп 👀 93 просмотров

Названа причина смерти Ширвиндта — близкие не хотят верить новостямНазвана причина смерти Ширвиндта — близкие не хотят верить новостям
🕑 15.03.2024 Развлечения Звезды Новости 👀 73 просмотров

Вот так брутал! Расторгуев удивил своим видом после слухов о пластикеВот так брутал! Расторгуев удивил своим видом после слухов о пластике
🕑 15.03.2024 Развлечения Звезды Новости 👀 132 просмотров

>>>Ссылка для отзывов и предложений<<<

Новости в картинках


Раскрыты характеристики приставки PlaySpace - российского аналога PlayStation
Новый трейлер Forza Horizon 5 посвящён обновлению Race-Off
В GOG стартовала раздача вертикального симулятора гномьей шахтерской колонии Hammerting
Собчак предъявила документ из Генпрокуратуры — на Пугачеву написан донос
Разработчики Star Citizen показали первых животных и другие функции, которые появятся в альфа 3.23
Вышла демо-версия Stellar Blade для PlayStation 5
«Я – капитан»: номинант на «Оскар» и один из лучших фильмов Маттео Гарроне
Ему осталось жить недолго: раскрыты подробности диагноза Карла III
Сэр Кристофер Нолан: режиссера «Оппенгеймера» посвятят в рыцари
Как сделать NFC-метку для iPhone из банковской карты и в одно касание включать музыку и многое другое
Посмотрите, какой складной смартфон сделала vivo: он намного дешевле и круче аналогов от Samsung и HUAWEI
Выпущена ретро-клавиатура Retro Mechanical Keyboard C64 Edition с дизайном в духе Commodore 64
Системы жидкостного охлаждения TRYX Panorama получили изогнутый AMOLED-дисплей
Том Хендерсон поделился материалом о проблемной разработке шутера XDefiant
Появились некоторые спецификации настольных процессоров AMD Ryzen Granite Ridge Zen5
На проработку физики волос Евы в Stellar Blade ушло до года дополнительной работы
«Эти мерзкие видео»: Слава о том, что нужно сделать с Кологривым после дебоша и тюрьмы
Dragon*s Dogma 2 - самый крупный британский релиз 2024 года
Уделала Бузову по всем фронтам: Погребняк огорошила подругу известием о свадьбе
Появились первые отзывы о *Мегалополисе* Копполы
Журналист Джейсон Шрайера призвал не верить в слухи о переносе сроков релиза Grand Theft Auto 6
Сын Дубцовой с избранницей не скрывают чувств в Дубае — ей 17 лет
Полное прохождение демоверсии экшена Stellar Blade
Объявлен актёрский состав *Пункта назначения: Кровные узы*
Electronic Arts анонсировала обновление 7.0.1 для Battlefield 2042
Мотра возрождается в китайском трейлере *Годзиллы и Конга*
В Москве состоится театральная премьера со звездным актерским составом
Рецепт шоколадного мусса
Анимационная компания «ЯРКО» проводит кастинг в клип мультсериала «Живой гараж»
Слух: Returnal и Assassin Creed: Valhalla станут главными играми апрельского набора Humble Choice
«Посмотрите на мои ноги»: располневшая Боня показала целлюлит и дряблую кожу
Полина Гагарина без макияжа в тизере спин-оффа сериала «Бывшие»
Как бесплатно рисовать по словам с помощью нейросети DALL-E 3 на iPhone
Лучшие сервисы для бесконтактной оплаты вместо Мир Пэй, которые доступны в России в 2024 году
CDPR изучает вопрос о выдаче лицензий на The Witcher и Cyberpunk сторонним разработчикам мобильных игр
Forza Horizon 5 привлекает в 30 раз больше игроков, чем новая Forza Motorsport
Игра «Соедини по точкам»
Barotrauma. Финальный финал!
«Пинок под зад»: Светлаков был унижен перед уходом из «Уральских пельменей»
Гранд-финал Московской студенческой киберспортивной лиги перенесен на 31 марта
Космо-забег корги, морские обитатели, музыка при свечах и под звездным небом - куда пойти в Москве
JRPG Reynatis, от сценариста Final Fantasy 7 Rebirth, получила 45 минут геймплея
«Пусть поскорее родится доченька»: Диброва с мужем принимают поздравления
Новый геймплейный трейлер Tekken 8 раскрывает дату появления Эдди Горду в файтинге
Игра для детей «Сложи картинку»
Дальнейшая судьба франшизы Shadows of the Damned зависит от продаж ремастера
Датамайнер ранней сборки The Sims 5 обнаружил полную карту мира
Побег из Саратова, карантин в Новосибирске и свадьба в Осетии: новые трейлеры недели
СМИ сообщили, какой «подарок» власти готовят Пугачевой на юбилей
Бывший боксер начинает новую жизнь и тренирует мальчишек в спортивной драме «Панчер»
Для хоррора Alone in the Dark вышел патч с многочисленными улучшениями и исправлениями
Кристен Стюарт заявила, что участие в MCU *звучит как гребаный кошмар*
Истории о любви, лёгкость ритма регтайма и сила чувств и эмоций по-русски
Embracer завершила процесс реструктуризации и пока не готова к новым слияниям и поглощениям
Теплые весенние концерты в Киноконцертном зале «Эльдар»
Для атмосферного платформера Rain World анонсировано дополнение The Watcher
Стало известно, кто из детей Брэда Питта встал на его сторону в бракоразводном конфликте с Джоли
На Microsoft, Rockstar и другие игровые компании подали в суд за создание *слишком увлекательных* игр
Степаненко получила чужое наследство — вошла во вкус и не может остановиться
Состоялся анонс карточного рогалика As We Descend

ePN © 2023 Все права защищены.