bash.im ithappens.me zadolba.li
9904

Невидимая колбаса на завтрак

Опять скатываемчя к холиварам — какая ОС (платформа, язык программирования) круче. Появились тёртые-перетёртые сравнения ОС с девушками, домами, собаками и автомобилями. Это невообразимо скучно. Столь же скучно наблюдать, как дилетанты спорят о качествах тех же самых ОС. Ну, раз пьянку нельзя остановить, её надо возглавить. Любители яблочной оси, пристегнитесь.

Вышла Windows 95. Вони было выше крыши: никакая, мол, не операционка, а дешёвая графическая оболочка вокруг DOS. «Немонолитная» операционная система, оттого и кривая. Холивар — далее везде со всеми остановками.

И вдруг выходит Mac OS X. Извините за аналогии с W95, но на опенсорсное ядро натянута подобранная на помойке и слегка подкрашенная графическая оболочка от дохлого NextStep. Причём подобранная вместе с языком программирования, поскольку на другой язык переползти кишка тонка оказалась.

Язык этот (Objective-C) представляет собой зелёную тоску программиста-сишника прошлого тысячелетия по SmallTalk. Программировать «кошерные» графические приложения можно только на нём. В языке одновременно присутствуют три (!) стратегии сборки мусора, которые замысловато взаимодействуют между собой. От версии к версии программный интерфейс к графической оболочке рихтуется так, что приходится заводить новую сборку под каждую новую цифру после «10».

Макось не виснет? Ага, щас. Объясню почему. В Objective-C обращение к пустому объекту ошибкой не является. Вы пришли в магазин колбасы купить, а её нет — пустой объект. Нормуль — берём это ничто, идём домой и старательно щёлкаем зубами — типа, едим. Никакой ошибки нет — нормальная ситуация. Надеюсь, доступно изложил. Три сборщика мусора подрались и случайно (по программерской ошибке) затёрли какой-нить объект. Пользователь нажимает кнопки — реакция не та или вообще никакой. Потыкается — да и перезапустит программу. Зато падения нет.

Давеча так и случилось: подвис док, та самая полупрозрачная хрень с иконами запущенных программ, обычно живущая внизу экрана. Новые иконы не кажет — соответственно, работать и отлаживаться нельзя, поскольку моя программа запускается перетаскиванием документа на икону приложения. Решил перезапустить. Мышка елозит, кнопки «Quit», «Force Quit» и прочие прекрасно нажимаются, однако результата никакого — колбасы нет, зато щёлкаем зубами.

Перезагрузиться тоже не удаётся — пункт меню «Reboot» нажимается, но ничего не выгружается. Кнопка не давится. Вырубил мак из розетки. Зато потом освоился — через сеть и SSH перегружать с соседнего компа. На всякий случай всем рекомендую: учите bash и SSH-консоль!