Saturday, September 22, 2007

leopard vs tiger

первой mac os x, с которой я работал, была версия 10.3. после linux все было несколько странно, но в целом приемлемо, и, даже, очень неплохо. год отработав на своем ноутбуке под 10.3, я решил сменить операционку на 10.4, благо что она только что вышла.

трансфер был мучительный, потому что новый софт был несовместим со старым. чего стоит хотя бы новый quicktime 7, к которому не было плагинов, ноутбук, не возвращающийся из sleep, если подключена хотя бы одна samba share.

проблем была масса, но и обновлений тоже было немало. dashboard и automator, spotlight и smart folders в finder, address book, mail. новый isync с поддержкой нового железа, новый safari, который наконец смог заменить ie 5.2

10.4 - это к тому же первая система, портированная на intel. вместе с портированием на intel в mac os x появился bootcamp, photobooth, itunes с coverflow, front row. это уже была не 10.4, а нечто большее, благо что изменений не на одну major версию наберется.

сейчас я сижу и рассматриваю mac os x 10.5 и что-то мне кажется, что джобс всех омбанул. реально новых приложений - всего 3: spaces, time machine, podcast capture. изменения интерфейса вобрали в себя некоторые моменты дополнительно устанавливаемого софта на 10.4.

все стало симпатичнее, многое стало лучше и понятнее работать, но если tiger по сравнению с panther это три шага вперед, то leopard - визуально этот даже один шаг не смог вытянуть. тем более странно смотреть на 300+ фич, которые отличают леопард от тигра.

через сутки после начала работы на новом релизе я понял, что в леопарде больше скрытого, чем открытого глазу. netinfo manager? его больше нет. нет ни графического интерфейса, ни утилит, доступных через терминал. его полностью вырезали, заменив directory services. точнее, netinfo остался, но интерфейс к нему полностью сменился. lookupd? его тоже больше нет. вместо него directory service cache manager. /etc/rc? канул в лету. на его месте allmighty launchd. java? для java становится все меньше программных интерфейсов. еще в тигре apple отказалась поддерживать нативные классы для java. теперь модно программировать на ruby, в том числе и gui. universal binary? да, но они стали еще универсальнее. вместо архитектур i386 и ppc в тигре во всех поставляемых с леопардом бинарников аж четыре архитектуры: ppc7400 ppc64 i386 x86_64. и леопард не умеет запускаться под g3 и ранними g4 вообще. потому что запускаемого кода под такую платформу не содержит.

хотя, наверное, в теперешнем состоянии 10.5 совсем хороша. у нее нет множества детских проблем предыдущих версий (например, с сетью). интерфейс отполирован и лишился своей полосатости. улучшать систему можно, но особенно некуда. если раньше имело значение количество галочек, которые отмечают залатанные бреши отсутствующего софта, то теперь нужно переходить к доводке напильником и полировке. потому что под mac os x есть практически все, что нужно.

performance testing

некоторое время назад один человек рассказал о том, что в mac os x невозможно оперировать с 250 000 файлов в одной директории. конечно, делать так - это бред, но мне стало интересно, действительно ли оно так. при этом, этот же человек уверял, что в виндовс все в порядке и никаких проблем с этим нет.


скрипт:



#!/usr/bin/perl

use strict;

local $/;

my $file = $ARGV[0];
my $dir = $ARGV[1];

die 'can\'t open file' unless open IN, $file;

binmode IN;
my $content = <$file>;

close IN;

foreach my $counter (0 .. 300000) {
print "$counter\n"
if $counter % 10000 == 0;

die 'can\'t open file for writing'
unless open OUT, '>', "$dir/$counter.png";
binmode OUT;

print OUT $content;

close OUT;
}


все тестировалось в фаловой системе hfs+ для mac os x, ntfs для windows xp sp2



создание файлов в виндах и mac os x заняло примерно 2-3 минуты (windows time /t не выводит секунды)
время показа содержимого директории в finder и explorer - 4-5 минут. короче, не делайте так и будет вам счастье.


P.S.: far всю ночь удалял файлы из директории, потому что эксплорер выдавал sharing violation при попытке удаления папки. и до сих пор еще не справился. под mac os x в finder все произошло достаточно быстро (10 минут), хотя файндер перед перемещением в корзину очень уж долго считал считал файлы.