Архив за Июнь 2010

Mémoires — лучший способ вести дневник на Маке

Я, наверное, как и многие программисты, редко пишу программы, используя API/фреймворки, в которых разбираюсь. Я ничего не знал про MSHTML (визуальный редактор) и совершенно не разбирался в API блог-движков, когда писал BlogJet. Mémoires я изначально писал, чтобы разобраться с Core Data. Никогда до этого я не делал календарь. Я никогда не общался с YouTube API и никогда не работал с QTKit до написания Cathodique. Я никогда заранее не знаю, в каком формате сохранять результат, не знаю какой будет интерфейс. Есть только идея и примерное представление, как все должно работать, но никогда нет четкого плана, потому что его невозможно сделать, не зная деталей. А детали узнать можно только погрузившись в код. Каждый раз я — новичок, и каждый раз я учусь новым вещам программируя.

Сейчас-то я бы спокойно мог написать еще один блог-клиент, еще одну программу для ведения дневника и т.п., и мой код был бы красивым и правильным. Но второй раз случается редко.

К чему я? К тому, что есть языки программирования, которые хорошо подходят для первого раза, и есть такие, с которыми в первый раз сложно. Последних приходится постоянно обманывать (не добавлю пока этот метод в interface; обойдусь без отдельного класса; не буду создавать отдельный тип, обойдусь пока строками; …), потому что они создают преграды на пути ковыряния. Они — языки-бюрократы. Хорошие и неленивые программисты, работая с такими языками, после ковыряния удалят все, что написали, и перепишут заново: красиво и правильно. Я же программист ленивый — я в школе сочинения писал сразу на чистовик — поэтому как только код работает, я его не трогаю. Некогда переписывать, мне надо срочно приниматься за другую задачу, пока есть энтузиазм писать именно эту программу.

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

И поэтому я больше не люблю тебя, Objective-C.

Продолжение следует. А пока я его пишу, изучите exploratory programming.

Я писал в апреле:

Пока для программ на Mac (платформа, на которую я так радостно перешел с Windows) никаких ограничений нет. Но это только пока. С Mac OS X 10.5 приложения можно подписывать сертификатом (как в Windows). Конечно, это служит многим полезным security целям, но появляется еще одна возможность — выборочный запрет исполнения программ. Что если через несколько лет Mac OS X вообще не будет исполнять неподписанные приложения, как iPhone OS?

Сегодня Apple сделала первый шаг:

The new, free Safari Developer Program allows developers to customize and enhance Safari 5 with extensions based on standard web technologies like HTML5, CSS3 and JavaScript. The Extension Builder, new in Safari 5, simplifies the development, installation and packaging of extensions. For enhanced security and stability, Safari Extensions are sandboxed, signed with a digital certificate from Apple and run solely in the browser.

(выделение моё)

Да, расширения для Safari — новая фича. Да, в официальной коллекции расширения для Firefox тоже подписаны. Но в Firefox и Google Chrome можно устанавливать неподписанные расширения. А в Safari 5?