Что бы вы порекомендовали для разработки OS X графических приложений, подобных тем, которые возможны в WPF?
Мой специфический опыт работы с Smalltalk и Java, но в настоящее время я работаю в основном с DHTML / .NET (ASP.NET/C#).





Какао. Многие считают его лучшим фреймворком для приложений. Это язык Objective-C, похожий на язык SmallTalk, который вдохновил создателей Java.
На самом деле, нет разумной альтернативы Cocoa для разработки OS X, если только у вас нет особых потребностей, таких как желание кроссплатформенности.
Я не уверен, что такое WPF, но большая часть разработки для платформы OSX выполняется на Objective-C с Cocoa. Вы можете использовать устаревшие API-интерфейсы Carbon с другими языками, такими как Java, но новые приложения для OSX действительно следует разрабатывать на Objective-C. Вы можете начать с Руководство Apple с Xcode в качестве IDE.
Какао - это основная структура для использования в Mac OS X. Это то, что использует Apple, это то, что использует большинство новых разработок, и именно здесь в основном добавляются новые функции.
Если вы работаете с WPF, я думаю, вам может быть знакомо немало концепций Cocoa. (Несмотря на то, что Cocoa немного старше.) Он полностью построен на MVC, есть уведомления об изменении свойств и привязки, есть поддержка анимации, есть персистентность и структура управления графами объектов и так далее.
(Также вы можете добавить к тегам «mac».)
Помимо Interface Builder, который входит в состав инструментов Xcode, вы также можете использовать QT, GTK +, AWT и SWING (для фона Java), Tk, Squeak (для фона Smalltalk), Shoes (очень крутой маленький набор инструментов Ruby GUI ), FXRuby (больше Ruby), wxWidgets, XULRunner и другие, я уверен, что забыл. Однако для большинства нативных приложений лучше всего подойдет Interface Builder.
Имея опыт работы с Java, не отвлекайтесь на устаревший мост Cocoa-Java. В начале истории OS X Apple предоставила (с трудом поддерживавшийся вручную) интерфейс Java для библиотек Какао. Из-за семантических различий между Java и Objective-C многие из наиболее мощных функций Cocoa, включая привязку значения ключа (на которой построены многие другие функции), очень сложны, что приводит к расхождению возможностей Objetive-C и Java и возможный отказ от моста. Вся разработка какао лучше всего выполняется с помощью Objective-C или одного из множества (автоматически сгенерированных) мостов к динамическим языкам, таким как Python или Ruby.
Имея опыт работы в Smalltalk, я ожидал, что вы освоите Objective-C через день или два.
Другими словами, чем предыдущие плакаты: если вы не разрабатываете свой интерфейс в InterfaceBuilder и не манипулируете им с помощью Objective-C, то вы получите приложение, которое не выглядит, не ощущается, не действует или не работает так, как нужно. приложение Macintosh должно быть, и оно будет показаться пользователям, как больной палец. Это будет неприятно для пользователя по сравнению с другими приложениями, и они, вероятно, захотят использовать другое приложение из-за этого.
Наборы инструментов, такие как QT, приемлемы, если ваше приложение уже использует QT и вы хотите быстро его портировать, но если вы пишете новое приложение (или отдельный графический интерфейс), то напишите его в Какао, используя ObjC или ObjC++.
Вы можете взглянуть на PyObjc, который является мостом между языком программирования Python и Objective-C, включая привязки для компонентов Mac OS X, включая Cocoa.
Имея опыт работы на Smalltalk, я бы порекомендовал какао и Objective-C. Однако, если вы склоняетесь к динамическому языку, Рубин какао позволит вам использовать Ruby, который, я думаю, вам будет легче освоить, чем Python.