`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Андрей Зубинский

Непрограммистам неинтересное

+44
голоса

В программировании инноваторы обычно гнездятся на двух уровнях - или где-то вовсе уж в глубоких системных норах, или высоко-высоко, там где userspace. И первое - хорошее дело, и второе - нужное. Потому что если только первое без второго, то получается как-то так (картинка сугубо для привлечения внимания):

Непрограммистам неинтересное

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

А тут вот - бац, и такой внезапный фокус в обычном C:

void (^block)(void);

По виду это вроде как объявление указателя на функцию. Но вот символ "^"... - в стандартном С такого не бывает. Потому-то на "стандартность" C появление возможности такой записи (даже без всякого понимания её семантики) никак не влияет. Что уже хорошо, потому что означает - всё, написанное на стандартном С, с появлением такого фокуса останется написанным на стандартном С и будет без проблем выполняться. И это хорошо.

А теперь о семантике. Такой записью програмисты Apple предлагают объявлять блоки - примерно то же самое, что в других языках принято называть closure или lambda. То есть, - исполняемую основанную на стеке структуру данных, имеющую свободный доступ (по значению) к переменным из области видимости, в которой она была определена, способную создавать свои временные переменные и возвращать значение.

Но главное в этой штуке, блоках, конечно, не ещё одна реализация модного closure. А то, что спрятанная за маленькой деформацией C-синтаксиса поддержка времении исполнения, называемая Grand Central Dispatch (GCD), позволяет автоматически копировать и распространять блоки по потокам исполнения (threads) для их отложенного выполнения, следя за сохранностью их контекста. А вот это уже означает, что GCD предлагает новый механизм многопоточного программирования. То есть, того, что сейчас наиболее востребовано, потому что многоядерность и вообще. Вот. Да.

Ну и ещё приятно, что в Apple отпустили реализацию  GCD в свободное плавание с открытыми исходными текстами. Почему именно так сделано - понятно: технология новая, требующая одновременно и интенсивной обкатки, и массового признания. И если у тебя Unix-подобная ОС, то без поддержки всего Unix-подобного сообщества (каламбур, хехе) не обойтись.

Кому хочется в это дело погрузиться - есть и вменяемая документация (это, всё-таки, корпоративная разработка), есть и сырцы.

ЗЫ

С удивлением (удивиельным удивлением, я бы сказал) узнал с сайта офиса премьер-министра Великобритании, что один из признанных столпов и отец компьютинга Алан Тьюринг в 1952 году "... was convicted of ‘gross indecency’ - in effect, tried for being gay. His sentence - and he was faced with the miserable choice of this or prison - was chemical castration by a series of injections of female hormones. He took his own life just two years later."

 

А тег сегодняшнего дня - "КПК". Юные айтишники уже и не знают, что оно значит :)

- ты КПК видел?

- нет...

- и я не видел. но ведь он где-то есть.

правда, очень старый. и новых уже никто делать не будет.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+44
голоса

Напечатать Отправить другу

Читайте также

Что такое КПК? Это же iPod touch :)

BTW Довольно известный факт, что Алан Тьюринг был геем.

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT