Холивор!

Комментарий к предыдущей заметке позабавил:

:)) XAML’ий binding и мощнее и более ортогонален всему WPF. А тут любимая Apple’ая манера поведения: присобачить нарост сбоку и получившейся «фичей» внушать неофитам ощущение собственной значимости.

Позабавил тем, что WPF, в отличие от фич Cocoa, которые основаны на отличной архитектуре, как раз и есть нарост сбоку.

Сначала Microsoft выпустили WinForms. Через лет пять после выхода WinForms наконец-то стали появляться коммерческие приложения для конечных пользователей, написанные на нем (пришлось смириться с тем фактом, что в Windows XP не включен .NET runtime, заставили юзеров его качать). Википедия прекрасно объясняет проблемы с ним прямо в описании WinForms:

While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a paradigm comparable to model-view-controller. Some after-market and third party libraries have been created to address this issue.

Microsoft поняли это и спустя несколько лет предложили совершенно другой фреймворк с другими виджетами (в XP они ведут себя и выглядят совсем не как нативные) — Windows Presentation Foundation. MVC дошло! Ура! Удачи в переписывании ваших прог.

Дайте-ка вспомнить, какие end-user проги самой Microsoft написаны с использованием WinForms... Щас... Ах, помню — Windows Live Writer — прога, которую в MS написал купленный ею Onfolio. Дайте подумать что еще... Не думается, но кажется, уже многие программисты переключились на WinForms. Ага? Все-таки этой технологии уже больше 5 лет. Ой, правда, теперь надо о ней забыть и писать на новом WPF. Посмотрим, какие проги Microsoft написаны с использованием Windows Presentation Foundation...

Программа синхронизации Zune, наверное на ней написана, ведь там модный интерфейс, да и программа достаточно свежая — Zune не так давно вышел.

As others have pointed out, much of the GUI is written with an assembly/API called "Iris" (UIX.dll). It's managed code, and appears to be centered around web-oriented multimedia presentation. Why they're using this instead of WPF is anyone's guess.

(источник)

Упс. Нет, что-то другое.

Whilst all of this is all well and interesting, the thing that really captures my attention is why they would invest so much time into developing this framework and implementing it just for [t]his software when they have plenty of alternatives like Windows Presentation Foundation (WPF) to work with. I can’t stop wondering if this is going to become a new framework offering by Microsoft for all developers to use.

(источник)

Ну ладно. Посмотрим в википедии:

WPF is intended to be the next-generation graphics API for Windows applications on the desktop. The following are some of Microsoft's own products or other third-party mainstream applications written in WPF:

  • Microsoft Expression Design
  • Microsoft Expression Blend
  • Yahoo! Messenger
  • Nokia Music PC Beta
  • Clear Office Spreadsheet [2]
  • MuvUnder Cover: The Album Art Sleuth [3]

Вау, программа редактирования файлов для WPF написана на WPF! Поразительно. А еще что? По-моему, я слышал, "Сапер" и "Косынка" в Vista написаны с использованием WPF. Упс, нет, оказалось неправдой:

Q: Apparently the games use a custom framework and pure Direct3D. Are there any plans to take advantage of Windows Presentation Foundation, or is this planned for the next major version of Microsoft Windows?

A: No plans at this time.

(источник)

Ладно, дадим Windows Presentation Foundation пять лет, все-таки хороший фреймворк. Главное, чтобы Microsoft, пока мы привыкаем к нему, не выпустила еще какой-нибудь другой...

* * *

Как же не везет программистам Mac OS X! У них нихрена нового нет. Их фреймворк, который нынче называется Cocoa, был написан в конце 80-х, сразу по правильной методике MVC и с правильным динамическим языком. Cocoa развивается с каждым выпуском операционной системы. У нее практически нет "теоретических" фич — Apple придумывает что-то для своих программ, а потом дает те же инструменты сторонним разработчикам. Надоело писать код для контроллеров, который повторяется в приложениях? Давайте добавим класс встроенных контроллеров. Язык и фреймворк позволяет. Все стали использовать SQLite для программ? А почему бы не взять и не обернуть его в удобный для использования API — Core Data?

КАК ЖЕ СКУЧНО! Почему бы не придумывать новые фреймворки каждые 5 лет? Хрен с ним, что придется все переписывать.

* * *

Правильная база важна для любого дела, а особенно для программирования. NeXT выбрали отличную архитектуру, которая работает уже около тридцати лет и развивается дальше без "наростов сбоку" — Objective-C и NeXTStep/Cocoa.

Конечно, и у Apple были свои грешки — устаревшие ныне (но работающие) фреймворки, но они позволили безболезненно перейти с одной на совершенно другую операционную систему с малыми затратами (я говорю про Carbon, который используют большинство продуктов Adobe и Microsoft для OS X, и Java/Cocoa bridge). Тем не менее, проблема выбора фрейморка, под который надо писать программы для Mac OS X теперь не стоит — Cocoa.

.NET — хорошая штука. WPF, наверное, хорошая штука. Проблема в том, что сама Microsoft не торопится их использовать для своих же продуктов. Они написаны исходя из теоретических задумок. Я был на "Платформе-2007", где много показывали демо-программ на WPF: вот, смотрите, можно сделать программу с такими кружочками и с такими квадратиками. Это все замечательно, но где реальные программы для конечного пользователя? Где реальная поддержка этих всех чудес операционной системой?

Newer versions of the framework (3.5 and up) are not pre-installed on any versions of the Windows operating system. Some developers have expressed concerns about the large size (around 54 MiB for end-users with .NET 3.0 and 197 MiB with .NET 3.5) and reliability of .NET framework runtime installers for end-users.

(источник)

Такая херня и возникает как раз из-за того, что программы, включенные в поставку ОС не написаны на фреймворках, которые рекламируются для сторонних программеров. И это тупо.

MyasNick 2008-07-02 21:08

Трудно не согласиться. MS задолбала уже с этими своими скачками от одной технологии к другой. Да, и спасибо за наводку... (ушел читать про WPF).

Виталий 2008-07-02 21:08

дотнет удобен для:

1. АСП.НЕТ'a

2. разработки "корпоративных" приложений

сейчас делаем автоматизацию эфира для телевидения - почти везде сплошной дотнет. от интерфейса пользователя (WinForms) до непосредственного управления устройствами. удобно, быстро, не глючно. довольны. переписывать в ближайшие лет пять не будем точно, никуда дотнет не денется. и винформс никуда не денется.

другое дело - разработка мелких программ, в т.ч. shareware. был у меня опыт, писал на дотнете базку данных специфичную на продажу. оказывается в мире столько народу на модемах сидят... в итоге решил, что shareware это только native-приложения. и никак иначе.

Виталий, угу, у моего регистратора cleverbridge платформа на .NET (интерфейс юзера на WinForms).

Виталий 2008-07-02 22:08

а я баг с NSProgressIndicator повторил на 10.5.4 ;)

идиотизм, если честно...

заводишь таймер и в нем постепенно делаешь следующее:

1. прячешь прогресс

2. показываешь, сбрасываешь в 0

3. увеличиваешь некоторое время

4. сбрасываешь в 0

5. прячешь

6. ждешь

7. показываешь

8. двигаешь

9. переходишь к 1

такой вот цикл, вызываемый из таймера. если взять при этом окошко и потаскать, то прогресс подвисает, пока в него не кликнешь.

самое смешное, что если убрать пункт 4, то не глючит ;)

отправил им багрепорт, пусть чинят. мешается...

А stopAnimation: если попробовать?

Упс, это для других индикаторов.

Стас 2008-07-02 22:08

Дима, а если снять с глаз яблоки?

Кокоа с 80-х? А на карбоне тоже перестали писать в 80-е а не год-два назад?

Это Мс прыгала по процесорам? моторолла, поверпс (круче инткла 10 раз по тестам епла), и теперь перешли на "говно" интел который оказался круче поверпс.

Тем кто пишет "кнопочки тем может и пох, а у кого низкоуровневый код очень весело.

У меня мак не 1-й день, но по сути это говном было им и осталось, мак это интерфейс и все.

Смешно вспоминать как лет 10 назад эпл смеялась над МС "накой эта многозадачность", "зачем защищенный режим процессора" мы круче в 5 раз. И в итоге перешли н аюникс, пизд№ц :(

Rafiki 2008-07-02 22:08

Ну да, новых API не выдумывают. Зачем API? API, это же бесплатно нужно отдавать. Давайте ка мы пропишем в документации что-то типа "начиная с 10.5.*" и заставим всех поголовно купить наше ПО.

Ой, злая Микрософт всех заставляет скачивать свои бесплатные библиотеки! ;)

Rafiki: какие API?

Стас: в плане программирования историю нужно вести не от Apple а от NeXT, поэтому моторолла и "многозадачность" с "защищенным режимом" не принимаются :)

Rafiki 2008-07-02 22:08

Тот самый, Дима. Который потвоему мнению с динозавровых времён NEXT остался тем же. Cocoa.

И? А в чем прикол, что API не изменился?

Стас 2008-07-02 23:08

Просто тебя зомбировал эпл ыыыы.

MyasNick 2008-07-02 23:08

Собственно, вот вам и обещаный холивор :)

Отличный аргумент. Довольно стандартный, кстати.

MyasNick: ага :)

Виталий 2008-07-02 23:08

Rafiki, я недавно спросил в рассылке эппла, посвященной cocoa. Как раз про обратную совместимость и надо ли рвать задницу, чтобы пахало на тигре, когда есть леопард. Ответ был простой и, наверное, очень правильный: те, кто еще не купил леопарда, вряд ли купят твою программу. так что не парься - не та целевая аудитория.

мудро ведь, на самом деле.

Rafiki 2008-07-03 00:08

Виталий, это не мудро. Это признак недоразвитого и узкого рынка. Если ты пишешь образовательное ПО, то эта мудрость уже сейчас яйца выеденного не стоит. А как только появится первое поколение домашних пользователей купившихся на красивую цацку, но в сущности не собирающиеся половину своих доходов отдавать джобсу, тогда и понадобится обратная совместимость. Оныем может не нужна очередная "мега-фича" от яблочников, но нужна новая версия вашего тупой до неприличия записной книжки. А она, так её, "только для Кота Камышового" :)

Это бы ещё больше взыграло на корпоративном рынке, да похоже он надкусанным не по зубам.

Rafiki: зацените статистику ОС людей, использующих продукты крупного маковского разработчика OmniGroup — http://update.omnigroup.com/

После полугода с релиза у Leopard — 37.9% рынка. У Tiger — 61.8% и быстро падает. Остальные — 0.3%.

Rafiki 2008-07-03 03:08

Дмитрий, похоже, не читатель, Дмитрий - писатель :) Я именно об этом и писал.

О чем? О том, что пользователи Mac OS X быстро обновляют ее на самую свежую версию?

Rafiki 2008-07-03 03:08

Нет, о том, что не так уж и быстро. И чем распространеннее будет маковское железо, тем дольше будет адаптация очередных поделок конторы джобса.

Гоша Mазов 2008-07-03 05:08

Еще Джоэл Сполски (Joel Spolsky) говорил о том, что пока мы перетаскиваем на новый фреймворк свой код, мы топчемся на месте, т.к. ничего нового по сути не очень предлагаем пользователю (кроме новых багов, при перетаскивании на фреймворк). Microsoft же на месте в это время не стоит, а движется вперед.

И потом возможности вроде "квадратики, кружочки" это хорошо - но это только возможности. Где хоть раз Microsoft говорит о том, зачем!!! мне это использовать? Кружочки я вполне и сам нарисую в VC++ 6.0, который вполне успешно работает и проблем не вызывает.

По моему MS просто обкатывает технологии!?! Та же ведь песня была уже и с технологиями доступа к данным: не успевает прижиться предыдущая, уже выходит следующая. А зачем?

Гоша Mазов 2008-07-03 05:08

Сори, собственно сразу ссылку не нашел... Вот вроде бы ссылка на перевод той самой статьи Сполски: http://local.joelonsoftware.com/mediawiki/index.php/У_Microsoft_поехала_крыша

Денис 2008-07-03 11:08

Я адепт MS поэтому точка зрения соответствующая.

Обидно, но ощущение, что цикл статей про "Cocoa" призван только разогреть публику перед "секретным проектом" от кодирующих роботов :(.

Про "Cocoa" вообще не знаю ни чего - интересуюсь, но подобные заметки не способствуют продолжению интереса - слишком поверхностные.

Т.к. повторюсь, я не знаю ни чего про "Cocoa" - про нее и говорить не буду ни чего (даже если я начитался википедии, как Дима).

Про WPF.

1) WPF разрабатывался (и разрабатывается) уже больше 5 лет.

2) Все НОВЫЕ продукты MS разрабатывает на НОВЫХ технологиях. IE, Office и 99% продуктов MS - это продолжения продуктов - которые уже написаны. И хорошо работают. Их незачем переписывать.

3) Огромный сегмент ПО который не виден обычному пользователю это Enterprise (какой там сапер для простых смертных на WPF). Там только Java и WinForms там нет "Cocoa". Не потому что последняя плохая - потому что первые надежнее, дешевле, и быстрее в разработке.

4) MS до сих пор сильно поддерживает и MFC и ATL на равне с WinForms и WPF. На чем хотите (уже написано) на том и пишите (поддерживайте/дописывайте)

alberka 2008-07-03 13:08

Windows Forms отлично подходит для простых приложений. По-сути является управляемой оберткой для системных функций. Входит в состав .NET 2.0, который нормально работает на Windows 2000 (поддержка 9x как понимаю была упразднена в .net 2.0 sp1 - после 10 лет с момента выхода ОС!). Как видим - обратная совместимость, которая в масштабах большого парка машин играет весьма значительную роль. Не выгодно менять то, что работает и выполняет свои задачи! Это вам не home-user, которому деньги девать некуда...

Теперь про WPF. Это абсолютно новая библиотека для создания графического интерфейса. Ни коем образом не связана с старыми системными библиотеками. Тесно интегрирована с DirectX - часть отрисовки производится с помощью GPU, тем самым освобождая ресурсы CPU. Она нативна в Windows Vista и доступна для скачивания в XP. С помощью нее можно делать симпотичные приложения, разделить дизайн и программирование... Но более требовательна к железу и любит более мощные видео-карточки. За сим, пока не для широкого применения. Хотя уже есть разработки под эту платформу - в том числе и бизнес-приложения (примеры на thevista.ru).

Что касается самой .NET. Если посмотреть на компакт диск Windows XP SP2, можно найти в его меню автозапуска пунктик "установка .net 1.1". Версия 2.0 появилась позднее - так что в дистрибутиве ее быть не может :) На сколько знаю, .NET 2/3 устанавливаются через службу Windows Update наряду с IE7, WMP11 etc.

p.s. Я не против Mac, я не против PC. Есть задача, есть ресуры, есть требования (в том числе - парк машин). Исходя из этого и выбирается решение

alberka:

На сколько знаю, .NET 2/3 устанавливаются через службу Windows Update наряду с IE7, WMP11 etc.

К сожалению, нет.

Денис:

Обидно, но ощущение, что цикл статей про «Cocoa» призван только разогреть публику перед «секретным проектом» от кодирующих роботов :(.

Действительно был секретный проект для девелоперов, но, к сожалению, он сейчас отложен в долгий ящик. Так что не волнуйтесь :)

Все НОВЫЕ продукты MS разрабатывает на НОВЫХ технологиях

Ага, но не на тех, которые даются сторонним программистам. См. про Zune и игры в заметке.

Огромный сегмент ПО который не виден обычному пользователю это Enterprise (какой там сапер для простых смертных на WPF).

Именно поэтому я и использовал термины "коммерческие приложения для конечных пользователей" и "end-user проги". Эта заметка только их и касается, enterprise меня не интересует. (У моих партнеров по e-commerce приложение написано на .NET WinForms и я его счастливый пользователь.)

Гоша Mазов:

Ага, помню эту статью, очень классная.

P.S. Для интересующихся — да, я писал на WFP один продукт (который не был дописан и не вышел). По-моему, это было где-то во время переименования Avalon в WPF.

meowth 2008-07-03 18:08

Не понял вот чего: автор хотел похвалить Cocoa или поругать все остальное, и его главного предстаителя - .net в лице m$?

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

Кто сказал "мяу(т)"? :)

Гоша Mазов 2008-07-04 09:08

О совместимости от Microsoft... Есть совместимость формальная, а есть фактическая. Формальная - на уровне интерфейса безусловно есть, по той простой причине что большинство оконного кода так или эдак юзит нечто вроде SendMessage(число_раз, число_2) (я про WPARAM, LPARAM). Причем число может интерпретироваться вызываемым кодом ОС как угодно: хендлы, флаги, указатели. Это так называемые "толстые" интерфейсы. Когда сам интерфейс вызова позволяет передавать в вызываемый код почти что угодно. Это в общем, то удобно, и тут я MS поддерживаю мне самому пришлось однажды делать именно таким способом, и пришел я к нему не сразу, поэтому понимаю выгоды и проблемы такого подхода.

Но я чуть о другом: есть же еще и совместимость на уровне "черного ящика", когда вызывается некая сущность и ожидается, что она будет делать именно "A", а никак не "B". Когда я прошу отправить почту, я не жду, что начнется форматирование диска.

Простой пример: есть такой компонент Windows RichEdit (к примеру редактор WordPad на нем и построен). В WinXP SP2 вышла его 5-ая версия с такой же заявленной совместимостью. А что оказалось на деле?

- Поиск: заявлена совместимость. Де факто совместимость дале-е-еко не полная. В половине случаев он просто не работает. Пришлось переписать так эдак тысяч с 20 строк кода.

- Подсветка гиперссылок. Совместимость заявлена. Де факто: формат совершенно иной, чем в предыдущей версии. Но мало того, сам алгоритм подсветки помечает текст как измененный. Это очень интересная такая совместимость от MS. Интересно, когда синтаксис кода в той же Visual Studio подсвечивается, код помечается как измененный? Т.е. мне все нужно перекомпилировать только от того, что я посмотрел на собственный же код? Думаю аналогии ясны. Поиск этого косяка Microsoft занял несколько недель.

Работа с текстом: заявлена полная совместимость. А как же - компонент RichEdit это же редактор текста!?! Небольшая мелочь - вывод текста из редактора вовне работает самую малость иначе. Все предыдущие версии компонента выводили простой текст вместе со служебной инфой (невидимый текст, непечатаемые символы). В новой версии все самое - но о-ля-ля - только при этом вся служебная информация из текста УДАЛЯЕТСЯ. Всего лишь :) Пользователь отредактировал текст, сохранил и обана! ничего из служебной информации больше нет (невидимые информация по гиперссылкам, якоря в тексте, служебная разметка текста).

Это я так, на вскидку написал - самые основные и умиляющие моменты совместимости. Когда новая версия этого компонента с хваленой Microsoft`овской совместимостью вышла, я с песнями и плясками помчался с ним ковыряться в области реализации таблиц. Успешно все это провернул за пару недель. А вот на борьбу с фактической совместимостью у меня ушло почти 5 с половиной месяцев, и релизе новой версии писать особенно было нечего кроме "обеспечена обратная совместимость" - пользователя это не интересует, это само собой разумеется. (А упомянутая корпорация в это время совместимостью не мучалась, она просто делала новый продукт. Именно в это время вышел новый OneNote, а не новая версия сапера. Ну да ладно, зато я получил весомое подтверждение что мои идеи не барахло, если даже Microsoft их реализует в том или ином виде).

И разница между выходами RichEdit 4.xx и 5.0 всего в пару лет. Формальная совместимость? О да! Сколько хотите! А то, что немного винегрет из пользовательских данных сделает... Ну и что? Зато совместимость! Можно наплодить в собственном же коде вагон и тележку багов - нибида (С) - поправим. Но насмерть запоротые данные пользователя (текст, подборки веб страниц, архив почты и.т.д.) - как восстанавливать это!?! Данные пользователя всегда святы. Невозможное у нас займет один день, чудо чуть больше - но убитые пользовательские данные никакие сервиспаком не поднять!

Я не адепт Microsoft, но и не хочу их ругать без оглядки. Изменять, создавать новое без изменения уже сделанного это действительно архисложно. Мне кажется, я понимаю их трудности. Нельзя без конца перестраивать "сарайчик", иногда его просто нужно снести и строить новый. И такие проблемы в IT имхо неизбежны из-за самой сути области - т.к. только решая задачу мы и находим ее оптимальное решение. В Microsoft работают, наверное, не слабые специалисты, но они не боги, и встречаются с теми же проблемами. Но одно дело Microsoft`овский маркетинговый посвист из серии "информация на кончиках пальцев", а совсем другое дело фактические реалии.

И поверьте, ну никто не бросится переписывать миллионы строк кода на WPF только оттого, что Microsoft выпустила WPF. Эти строки существуют, их надо поддерживать, они должны решать проблемы конкретных пользователей, в конце концов пользователи именно за это и платят. И не очень то понятно, как аргументировать пользователю необходимость выложить еще XXX денюжек только потому, что теперь все и на WPF. А как часто выходят полностью новые продукты, и в каком соотношении их доля с новыми версиями?

Petron 2008-07-04 13:08

.net отличная платформа

если кто-то из крупных брендов не хочет тратить силы на ее поддержку - это его крупная ошибка

Русо Туристо 2008-07-04 17:08

Чудят-чудят, а багов все равно выше крыши (

Alex 2008-07-06 00:08

"Дайте-ка вспомнить, какие end-user проги самой Microsoft написаны с использованием WinForms…"

Microsoft CRM, все клиентские тулзы для SQL Server 2005/2008, Exchange Server 2007, новые продукты офисной линейки и тп. Ты просто не в теме :)

а еще прочти вот эту статью Джоела - http://www.joelonsoftware.com/articles/APIWar.html

"How Microsoft Lost the API War"

Там есть и про Эппл, и про Сан и про MS. Многое станет понятно.

Alex, прочитайте предложение, которое процитировали.

Sergey Zwezdin 2008-07-07 07:08

Ребята, вы лучше б чем кости перемывать (на чем написана косынка), пошли бы и что-то полезное сделали.

Sergey Zwezdin: так мы делаем. Это не мешает иногда собраться и пообсуждать.

jimbo 2008-07-07 16:08

WinForms -- это general purpose framework, который, как мне кажется, появился из-за наличия большого количества VB6-разработчиков. Благодаря тому, что это general purpose framework, никто не мешает нахлобучить на него реализацию MVC, благо что data bindings у них есть, по-моему, с самого рождения. В WinForms 2.0 их развили с помощью data binding source, которые могут принимать обычные объекты, а не только data-bound компоненты. Получается вполне натуральный MVC -- было бы желание так писать.

К тому же, Дмитрий, вам бы не пристало жаловаться на разработку в условиях отсутствия MVC -- каким-то образом данное обстоятельство (а в Borland Delphi MVC отсутствует) не помешало вам выпустить замечательный продукт. ;)

Далее. Тут привели ссылки на джоэлевский Fire and Motion. Джоел хорошо расписал разнообразие фреймворков, однако "забыл" упомянуть, что появление нового фреймворка совершенно не обязывает никого переходить на него. ODBC, RDO, DAO, ADO и OLEDB могут существовать одновременно, а появление, скажем, WCF не отменяет работы .NET remoting и DCOM. Мне не понятно, почему WPF должно отменять WinForms. На моей памяти Microsoft серьёзно сломали совместимость только в случае с переходом VB6->VB.NET. И то, подсластили пилюлю наличием привычных WinForms и визардом, который конвертировал существующий код.

Apple, насколько я понимаю, может предложить только переписать весь Carbon-код в Cocoa, чтобы всё работало в Snow Leopard.

К слову сказать, мне очень сложно представить ситуацию в Wintel-мире, когда вендор калибра Adobe сидит уже который год и не может заставить работать свой код в соответствии со сложившимися реалиями -- да у них в штаб-квартире уже б давно команда из Редмонда жила.

jimbo: Заметно, что старые технологии MS не умирают. Хотя бы по интерфейсу. Лучше бы уж заставить всех все переписывать :)

Насчет Carbon: это же порт Macintosh Toolbox под новую операционку. Тулбоксу лет больше чем Windows 3.11 — понятное дело, его пора убирать (кстати, с чего все взяли, что в Snow Leopard не будет Carbon — еще как будет! Просто будущее Carbon теперь — интеграция с Cocoa).

Кстати, Adobe выпускала Illustrator для NeXT. А сейчас они переходят на "кроссплатформенные" языки со своими GUI-библиотеками (в Lightroom 40% кода написано на Lua).

jimbo 2008-07-07 17:08

Не забудьте о брёвнах в своём глазу:

http://tinyurl.com/69dbk7

http://tinyurl.com/6kmcas

http://tinyurl.com/5uj336

http://tinyurl.com/35jquf

http://tinyurl.com/5et5wd

Кстати, если бы вы хотели уколоть Wintel больнее, то вот ссылка получше:

http://www.istartedsomething.com/taskforce/

Ваша идея "всё переписать" не нова. К сожалению, она хорошо работает только тогда, когда у вас 3-5% рынка и пользователи, готовые целовать вас в зад за продукт любого качества, а не 95% с огромным процентом людей, у которых бизнес завязан на ваши решения.

jimbo 2008-07-07 17:08

А, значит, это слух был насчёт Carbon. Сорри.

Не забудьте о брёвнах в своём глазу:

Угу, исправлено в Leopard'е ;)

jimbo 2008-07-07 17:08

Ух ты! Всего-то 6 лет понадобилось, чтобы вычистить!

Victor Petrenko 2008-07-08 17:08

Adobe пришлось переписывать photoshop на cocoa, потому что Carbon не будет поддерживаться в 64х битных версиях MacOSX.

http://www.zathras.de/angelweb/blog-adobe-on-carbon-64-bit.htm

К сожалению, всем остальным придется делать тоже самое. Либо так и остаться в мире 32х битных приложений.

Victor Petrenko: "переписывать photoshop" — это громко сказано. Переписывать придется, в основном, GUI код. А это делать уже давно пора.

jimbo 2008-07-09 16:08

Да-да. Особенно, если это популярное приложение с большой user base -- только и делать, что переписывать код по велению левой пятки Джобса.

Victor Petrenko 2008-07-11 19:08

Дмитрий, решение оставить ОС без возможности разрабатывать полноценные приложения на C++ это нормальное решение? :)

Переписать GUI, сделать кросс-языковую интеграцию. Нда, Think Different, полагаю -)

Victor Petrenko: полноценные приложения на C++ писать можно. GUI компоненты Carbon не будут портированы на 64-битные процессоры, значит GUI-код придется переписывать. Я предполагаю, у Adobe уже есть свой фреймворк для кросс-платформенного GUI на Windows/Mac, соответственно, им придется переписать свои wrappers на Objective-C/Python/Ruby, либо сделать bridge Cocoa/C++.

Не GUI код на C++ остается и эта часть Carbon портирована на 64 бит и никуда не денется.