Should I learn a operating system specific language or something like Java? [closed]
I am torn. I want to start making applications for OS X. There is a specifically under-served market that I would l开发者_如何学运维ike to tap but I don't know if I should develop it only for the mac with Cocoa and Objective C or if I should develop it with Java and JavaFX.
I guess my question is, is Java robust enough to handle the same things as Objective C on Mac and C# (.net) on Windows?
If you want to develop (exclusively) for OSX (and/or IPhone, Ipad) your best bet for native looking (and behaving) applications which tap into the power of the OS would still be learning Objective-C (and the Cocoa framework).
Learning Objective-C syntax isn't hard if you happen to have some plain C experience. Exploring the framework and functionality provided (Cocoa) is the more time-consuming part (the same can be said of other languages).
Mac users will generally avoid applications that don't behave as they expect. If you honestly think you can "tap" that market then you are going to have to be prepared to put the effort into understanding that market - and the native development tools will make that task easier.
Well, Java is robust, but still, there are some things that you want to do in a operating system specific... Mostly UI, since you can access both Windows and OS X libraries from Java, there are complications in the use of specific technology, for instance WPF creates very handsome GUIs for windows, while Java is not as good as creating those.
It usually depends on the type of applications that you want to create, are those for business, enterprise usage where UI is not a big issue, but portability is? Go with Java. If you want to create visually appealing or speedy tools for a specific market? Go with OS Specific languages.
You should look at things differently. You need to learn programming and most of the cases Java is not the answer for a beginner.
What you needn't do is choose a language because "it's better". If you want to develop applications for OS X you should learn Objective C.
Then at some point in the future you might realize you need to do Java. No problem, you already are a developer, it'll be a breeze to learn Java then.
So the point is just learn to program.
If the under-served market is specific to OS X then I would go with something that targets that platform natively. If you want to create a general application that uses OS X as one platform the you should write it with Java or some other platform agnostic language. It really depends upon how portable you want your application to be, what features your application will have, and the type of application you have. I'd advise examining what languages best fits your needs as far as a tool (features, libraries, platform, etc.) before making the decision
It doesn't matter that you pick a language, just that you learn it. Variables, loops, decision logic, etc - the principles will be there in pretty much every language. All that changes, moving from language to language, is syntax and power (IE: memory management by hand in C/C++ vs managed memory in Java & .NET).
Not for your situation but in general - might want to choose a language that foreseeably is most employable. There are more Java & .NET jobs than there are Pascal ;)
Java is robust enough but it has never really taken off as a platform for developing desktop applications. It is however very popular for developing web application due the advent of Java Enterprise Edition.
The reasons for Java's lack of penetration in the desktop application market can probably to traced back to bad quality of if the initial GUI development framework AWT. Swing improved on this and has continued to improve over the years but still has some quirks. This is primarily because Swing draws the screen components itself rather than using the underlying platform.
If you want an application that looks and feels native then you should use Cocoa. If you really have you heart set on programming in Java then you should consider using the Eclipse RCP. This is Java GUI framework that uses the native operating system widgets.
Should I learn a operating system specific language or something like Java?
Yes, you should.
By which I mean, computer languages are tools. A good workman has several tools in his toolbox. You don't find people on plumbingoverflow.com asking "should I learn how to use a pipewrench or a blow torch".
精彩评论