Cappuccino дарит нам Cocoa для Веба
Честно удивился, что новость о новой разработке в области веб-программирования так и не была представлена должным образом на Хабре. Что же, попытаемся это дело исправить. Дальше пойдет речь о всяких видах кофе — Капуччино, Какао там всякое.
Итак, Капуччино (Cappuccino) — это детище калифорнийского стартапа 280 North, выращенного не без участия известного Y Combinator'a. Небольшой команде из трех человек (Том, Рос и Франциско, если кому-нибудь интересно) судя по всему очень приглянулся язык Objective-C, который очень сильно любят в свою очередь разнообразные маководы, а точнее программисты, которые для них пишут.
И вот, через некоторое. мне неизвестное, время эти трое ребят сделали Objective-J — довольно прилично работающий скриптовый язык, основанный на JavaScript (по-этому и J). Т.е. любой работающий код, написанный на JavaScript, будет также работать и для Objective-J. Исходники этого проекта доступны под лицензией LGPL и представляют из себя один файл с расширением .js и длинной в 1743 строки.
Чтобы читать было полезнее попробую привести несколько примеров из официального туториала. Сразу хочу сказать, что я к компании Apple и программированию под их ОС не имею никакого отношения. Все это — проявление чистейшего любопытства с моей стороны, которое для любого программиста никак нельзя назвать лишним. Итак, вот что мы имеем.
Объявление класса:
Начинается объявление с @implementation, за которым следует имя класса, двоеточие, имя наследуемого класса и далее в фигурных скобках объявление экземплярных переменных.
Методы внутри класса также объявляются специфически: плюс или минус означают принадлежит ли переменная классу (является статической) или принадлежит объекту. В скобках указывается возвращаемое значение. Про параметры лучше прочитать на сайте, потому что в двух словах и красиво объяснить у меня не получиться. Скажу только что параметр в Objective-J представляют из себя метку (для первого параметра меткой служит имя самого метода), за которым следует двоеточие, в скобках тип параметра, и только потом имя параметра. Что еще за метка спросите вы? Метка — это то, что так понравилось Дмитрию Честных, и то, что повышает читабельность кода. Из-за этих меток вызов метода выглядит примерно так:
А теперь представьте себе примерно такой вызов метода в каком-нибудь PHP, как callSomething(223231, true, false). Не очень информативно, правда? В Objective-C(J) таких непонятностей уже не достигнешь. Такая вот прикольная штука.
Если вы уже заметили, то вызов метода тут и совсем не похож на вызов. Код более похоже на наглядную передачу сообщений, которая читается довольно просто:
На сайте есть продолжение этого небольшого ликбеза, т.ч. заинтересовавшиеся могут просветиться дальше там. А я скажу, что на этом интересное не заканчивается.
Кроме самого Objective-J ребята еще и разработали такой себе фреймворк для него. Аналог Сocoa под названием Сappuccino. Цель, которая перед ними стояла, звучит примерно так: «Вы можете не знать HTML, CSS, JavaScript и DOM. Все, что мы вам предлагаем — это наше технология. Берите ее и создавайте веб-приложения».
На сайте присутствует рабочий HelloWorld, который можно скачать и воочию убедиться, что такое возможно.
Если вы не верите, что кроме ХеллоВорда на этой штуке ничего толком и не напишешь, то для начала посетите проект 280slides. Это собственно и есть стартап написанный самими же разработчиками на Objective-J.
Том, Рос и Франциско, конечно, не утверждают, что их проект заменит JQuery, Prototype и весь JavaScript с каким-то там СSS и дряхлым HTML. Нет. Но это, по крайней мере, интересно и ново. Хотелось бы услышать и ваши комментарии по этому поводу.
P.S. Если бы не Gogol Bordello, я бы этот пост не написал. Спасибо Евгению Гудзю за отличное настроение.
Итак, Капуччино (Cappuccino) — это детище калифорнийского стартапа 280 North, выращенного не без участия известного Y Combinator'a. Небольшой команде из трех человек (Том, Рос и Франциско, если кому-нибудь интересно) судя по всему очень приглянулся язык Objective-C, который очень сильно любят в свою очередь разнообразные маководы, а точнее программисты, которые для них пишут.
И вот, через некоторое. мне неизвестное, время эти трое ребят сделали Objective-J — довольно прилично работающий скриптовый язык, основанный на JavaScript (по-этому и J). Т.е. любой работающий код, написанный на JavaScript, будет также работать и для Objective-J. Исходники этого проекта доступны под лицензией LGPL и представляют из себя один файл с расширением .js и длинной в 1743 строки.
Чтобы читать было полезнее попробую привести несколько примеров из официального туториала. Сразу хочу сказать, что я к компании Apple и программированию под их ОС не имею никакого отношения. Все это — проявление чистейшего любопытства с моей стороны, которое для любого программиста никак нельзя назвать лишним. Итак, вот что мы имеем.
Объявление класса:
@implementation Person: CPObject
{
CPString name;
}
— (void)setName:(CPString)aName
{
name = aName;
}
— (CPString)name
{
return name;
}
@end
Начинается объявление с @implementation, за которым следует имя класса, двоеточие, имя наследуемого класса и далее в фигурных скобках объявление экземплярных переменных.
Методы внутри класса также объявляются специфически: плюс или минус означают принадлежит ли переменная классу (является статической) или принадлежит объекту. В скобках указывается возвращаемое значение. Про параметры лучше прочитать на сайте, потому что в двух словах и красиво объяснить у меня не получиться. Скажу только что параметр в Objective-J представляют из себя метку (для первого параметра меткой служит имя самого метода), за которым следует двоеточие, в скобках тип параметра, и только потом имя параметра. Что еще за метка спросите вы? Метка — это то, что так понравилось Дмитрию Честных, и то, что повышает читабельность кода. Из-за этих меток вызов метода выглядит примерно так:
[myPerson setJobTitle: «Founder» company: «280 North»];А теперь представьте себе примерно такой вызов метода в каком-нибудь PHP, как callSomething(223231, true, false). Не очень информативно, правда? В Objective-C(J) таких непонятностей уже не достигнешь. Такая вот прикольная штука.
Если вы уже заметили, то вызов метода тут и совсем не похож на вызов. Код более похоже на наглядную передачу сообщений, которая читается довольно просто:
var john = [Person personWithName: «John»];
alert([john name]);
[john setName: «Ralph»];
И так далее…
На сайте есть продолжение этого небольшого ликбеза, т.ч. заинтересовавшиеся могут просветиться дальше там. А я скажу, что на этом интересное не заканчивается.
Кроме самого Objective-J ребята еще и разработали такой себе фреймворк для него. Аналог Сocoa под названием Сappuccino. Цель, которая перед ними стояла, звучит примерно так: «Вы можете не знать HTML, CSS, JavaScript и DOM. Все, что мы вам предлагаем — это наше технология. Берите ее и создавайте веб-приложения».
На сайте присутствует рабочий HelloWorld, который можно скачать и воочию убедиться, что такое возможно.
Если вы не верите, что кроме ХеллоВорда на этой штуке ничего толком и не напишешь, то для начала посетите проект 280slides. Это собственно и есть стартап написанный самими же разработчиками на Objective-J.
Том, Рос и Франциско, конечно, не утверждают, что их проект заменит JQuery, Prototype и весь JavaScript с каким-то там СSS и дряхлым HTML. Нет. Но это, по крайней мере, интересно и ново. Хотелось бы услышать и ваши комментарии по этому поводу.
P.S. Если бы не Gogol Bordello, я бы этот пост не написал. Спасибо Евгению Гудзю за отличное настроение.



комментарии (34)