2010-05-20 103 views
6

我很傷心。我想開始製作OS X的應用程序。我想要挖掘一個特別服務不足的市場,但我不知道我是否應該只爲使用Cocoa和Objective C的Mac開發它,或者如果我應該開發它與Java和JavaFX。我應該學習操作系統特定語言還是Java?

我想我的問題是,Java是否足夠強大,足以處理與Mac上的Objective C和Windows上的C#(.net)相同的內容?

+1

添加了osx標籤,因爲問題似乎是osx特有的。應該引起OS X社區更好的關注。 – 2010-05-20 16:12:24

+2

也許我不應該這樣說,因爲我的評論可以被認爲是非常主觀的,但你爲什麼要在一個封閉的平臺上開發,而開發人員不受尊重。 http://www.eff.org/deeplinks/2010/03/iphone-developer-program-license-agreement-all – 2010-05-20 16:27:39

+1

安德烈,我猜Ben引用了Mac,而不是iPhone/iPad。 Mac開發和Windows開發一樣開放。當然,不像Linux開發那麼開放。作爲Cocoa Sunday的一位長期開發者,我不喜歡因爲iPhone開發協議如此糟糕而遭到誹謗。 iPhone開發協議的糟糕狀態並沒有轉化爲可可的壞處。事實上Cocoa是一個體面和優雅的框架! – Yuji 2010-05-20 18:22:39

回答

5

如果您想爲OSX(和/或IPhone,Ipad)開發(專有),那麼對於使用操作系統功能的原生應用程序(和行爲)來說,最好的選擇仍然是學習Objective-C(和可可框架)。

學習Objective-C語法並不難,如果你碰巧有一些簡單的C經驗。探索提供的框架和功能(Cocoa)是更耗時的部分(其他語言也是如此)。

+0

我不是OS X極客,但是我最近沒有看到有關iPhone和iPad開發者協議要求開發完全使用本機API完成的新聞?我想,這可能不適用於桌面應用程序,但是,iPhone市場幾乎「沒有得到滿足」,因此可能不會是@Ben所談論的。 – 2010-05-20 16:15:36

+0

是的,蘋果現在積極勸阻/禁止使用交叉編譯器。在某些圈子中圍繞這個話題進行了許多討論(例如Adobe與Apple之間的討論)。 – ChristopheD 2010-05-20 16:19:31

+0

非常感謝您的快速響應。我想我會用目標C去做 – Ben 2010-05-20 16:22:00

4

Mac用戶通常會避免不符合預期行爲的應用程序。如果你真的認爲你可以「挖掘」那個市場,那麼你將不得不做好準備,努力去理解這個市場 - 而本地開發工具將使這個任務更容易。

+0

悲傷但真實+1 – 2010-05-27 16:21:28

2

那麼,Java是強大的,但仍然有一些東西,你想在一個特定操作系統......天色UI做的,因爲你可以訪問從Java Windows和OS X庫,有併發症使用特定的技術,例如WPF爲Windows創建非常漂亮的GUI,而Java不如創建這些GUI。

它通常取決於您想要創建的應用程序的類型,這些應用程序是否適用於業務,企業用法,其中UI不是一個大問題,但可移植性是?去用Java。如果你想爲特定的市場創造視覺上吸引人的或快速的工具?使用操作系統特定語言。

2

你應該以不同的方式看待事情。你需要學習編程,大多數情況下,Java不是初學者的答案。

你不需要做的是選擇一種語言,因爲「它更好」。如果你想開發OS X的應用程序,你應該學習Objective C。

然後在將來的某個時候,你可能會意識到你需要做Java。沒問題,你已經是一名開發人員,那麼學習Java很容易。

所以重點只是學習編程。

2

如果服務不足的市場是特定於OS X的話,那麼我會選擇一些本地定位到該平臺的東西。如果您想創建一個將OS X作爲一個平臺的通用應用程序,則應該使用Java或其他平臺不可知語言編寫它。這實際上取決於您希望應用程序的便攜性,應用程序具有的功能以及您擁有的應用程序類型。我建議在作出決定之前檢查哪些語言最適合您的需求,直至做出決定

2

無論您選擇哪種語言,只要您學習它。變量,循環,決策邏輯等 - 這些原則幾乎適用於所有的語言。所有這些變化,從語言到語言,都是語法和功能(IE:在C/C++中手動執行內存管理,在Java中爲管理內存管理)。

不適合你的情況,但總的來說 - 可能要選擇一種可預見的最適用的語言。還有更多的Java &。NET工作比Pascal;)

2

Java是足夠強大,但它從來沒有真正起飛,作爲開發桌面應用程序的平臺。然而,由於Java Enterprise Edition的到來,開發web應用程序非常受歡迎。

Java在桌面應用程序市場缺乏滲透的原因可能可以追溯到最初的GUI開發框架AWT的質量差。 Swing在這方面有所改善,並且多年來持續改善但仍有一些怪癖。這主要是因爲Swing自己繪製屏幕組件,而不是使用底層平臺。

如果你想要一個外觀和感覺爲native的應用程序,那麼你應該使用Cocoa。如果你真的有心在Java編程的心態,那麼你應該考慮使用Eclipse RCP。這是使用本機操作系統小部件的Java GUI框架。

+0

IMO,缺乏桌面滲透的可能原因更多的是對桌面應用程序缺乏興趣。 Webapps,雲計算,HTML5都是針對整合維護的... – 2010-05-20 17:56:31

+1

我猶豫在桌面討論上啓動Java。然而,我不是在談論最近的歷史,我正在談論十多年前Java被定位爲桌面應用程序的時候。即使在今天,商業和開源桌面應用程序仍然普遍存在,但其中很少用Java編寫。 – 2010-05-20 18:44:30

+0

@OMG Ponies,他談到了Java缺乏滲透的情況,因爲在那裏有大量的桌面應用程序。答案是正確的:Swing自成立以來一直受到廣泛的憎恨(也是愛)。 – 2010-05-27 16:20:35

0

我應該學習操作系統特定語言還是Java?

是的,你應該。

我的意思是,計算機語言是工具。一個好的工人在他的工具箱中有幾個工具。你不會在plumbingoverflow.com上找到人問「我應該學習如何使用管鉗或吹火炬」。

+0

這是一個很好的比喻。哦,對不起,我的意思是這不是一個很好的比喻。 OP想要開始在OSX上開發,並想知道Java應用程序是否可以本機查看/行爲。你的回答是:「得到你所有的工具,人。」這根本沒有幫助。 – 2010-05-27 16:19:12

+0

我把你引向問題的標題。正確的答案是「兩者」。決定這項工作的最佳工具的最佳方法是嘗試一下。根據我的經驗,注重某種特定語言的程序員往往不像那些擁有廣泛語言並渴望瞭解更多信息的程序員。 – JeremyP 2010-05-27 19:49:20

+0

當然,這是真的,但對於正在啓動的人來說,這並不意味着什麼。 – 2010-05-29 18:25:06