 |
 |
Switch from java?
|
 |
|
 |
|
Mac Elite
Join Date: Jun 2004
Status:
Offline
|
|
I am pretty much new to all this programming stuff. I posted a while ago (knowing nothing about it) and I was told to start with java. I've read two java books, and I'm doing pretty well with it.
What I was wondering is if I should switch to another language or get extremley good at java first. I was told to just start learning java becuase it's easy, and then switch.
Ultimatley, I would like to learn Carbon or Cocoa so I can really start making awesome programs.
Also, having just finished my second java book, can anyone point me in the direction of how to more java and/or starting a whole new language?
Thanks
Brandon
|
|
|
| |
|
|
|
 |
|
 |
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
You can write Cocoa applications in Java.
|
|
|
| |
|
|
|
 |
|
 |
|
Professional Poster
Join Date: Sep 1999
Location: Ottawa, ON, Canada
Status:
Offline
|
|
Originally posted by Angus_D:
You can write Cocoa applications in Java.
But shouldn't.
To the original programmer, yes - get really good Java first. The idea is to get really good at programming, not to get good at a language - learning a new language is just a formality. The hard part is learning how to plan your software and its algrorithms. If you simply switch to the "language of the day" every so often, you'll waste all your time learning new syntax and writing little "Hello World" apps but never get to anything advanced.
Pick a language, stick with it until you can do something complex. Then you can switch languages.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2003
Status:
Offline
|
|
Originally posted by brandon420506:
I am pretty much new to all this programming stuff. I posted a while ago (knowing nothing about it) and I was told to start with java. I've read two java books, and I'm doing pretty well with it.
What I was wondering is if I should switch to another language or get extremley good at java first. I was told to just start learning java becuase it's easy, and then switch.
Ultimatley, I would like to learn Carbon or Cocoa so I can really start making awesome programs.
Also, having just finished my second java book, can anyone point me in the direction of how to more java and/or starting a whole new language?
Thanks
Brandon
It just depends on what you want to do with your development skills. If you want to develop Mac software next then learn Objective-C and Cocoa. If you want to have a career in development, your best bet would be to stick with Java. You can make a compromise between the two worlds (developing nice software and being comfortable in a particular language) by developing Cocoa apps in Java. People seem to be adament against it, but Apple sure is pouring alot of money into making this a viable development choice. I think Java-Cocoa is only going to get better, as Apple has sort-of come to the realization that sticking with as many standards as it can helps increase their chances of widespread adoption (examples of this include PCI, Unix, IDE, etc... also, including Java, Perl, XWindow environments, etc for free with OSX).
I can't find a book on this, so maybe theres a book writing opportunity in Java/Cocoa 
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Jun 2004
Status:
Offline
|
|
Thanks for all the advice!
So I guess I am gonna stick with java, and then eventually switch to objective-c.(or maybe just start cocoa with java, but I have to research that a bit more).
Thanks again,
brandon
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2003
Status:
Offline
|
|
Actually the cocoa/java thing is easier than it sounds, because Apple provides pretty good documentation for it. Once you have the basics of it, you can just get a cocoa book and translate the language syntax on the fly... Cocoa is just a framework... its not going to look that much different under a different language.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Dec 2001
Location: Atlanta, GA, USA
Status:
Offline
|
|
If you're just learning to program, forget Cocoa. Learn pure java as it was designed. Learn about object-oriented programming, inheritance, and interfaces. Learn something about the packages that Java provides, like AWT, Swing, JDBC, or whatever is appropriate to what you want to do only AFTER you are comfortable in the language.
Once you are solid in java, pick up another language. I'd suggest something different like Python, so you can get a feel for how soft-typed languages work. Python has really nice language features and can be a good learning tool.
The important thing is not to learn a language, but to learn good design and development fundamentals. You can then transfer those to any language you choose to learn down the road. Java was really easy for me to pick up because I already knew C, Perl, Python, Bourne shell, HTML. ECMAScript, Smalltalk, and others. I picked up C++ pretty quickly for the same reasons. Learn the craft, not a trade skill.
|
|
Mac Pro 2x 2.66 GHz Dual core, Apple TV 160GB, two Windows XP PCs
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2003
Status:
Offline
|
|
Arkham_c's got a point. The advantage to making your interface in Swing is that it will be cross platform. The downside is that native Java interfaces are generally not as nice as native interfaces. Though there are some great java interfaces. There are some IDEs that are all java (netbeans and JBuilder if I'm not mistaken), JFTP, etc. But as a general rule, its more difficult to coax a responsive GUI from Java. If you don't believe me, ask Corel. They almost went out of business trying to develop an office suite on top of java. They abandoned it long ago. SWT is another GUI interface for java. Don't know the specifics, but the Eclipse IDE is built using it.
|
|
|
| |
|
|
|
 |
|
 |
|
Registered User
Join Date: Oct 2003
Status:
Offline
|
|
Wow. I sure am late at looking at these threads lately...
Brandon, glad to hear you're getting along well with Java. One thing I'd like to add to this thread is, as you get more experienced, you'll of course start to have a better idea of what sort of programs you want to write.
If you find that you mostly just want to write small one- or two-pagers to do scripting tasks, you probably want to transition to Python (not that Python is at all limited to those tasks -- it's just a higher-level language than Java). If you find that you want more low-level access to hardware (or to the OS), the next step might be C or C++. If you find yourself more committed to writing user-oriented apps using Cocoa on OS X, you might switch to Objective-C.
What I'm trying to get at is, it may be very frustrating to stick with an all-purpose language like Java if you already have very strong ideas in mind about exactly what you want to accomplish.
Personally, I used Java on-and-off for a while, but the more I used it, the more I got annoyed at how verbose everything in Java has to be. Also, I began wanting a language I could use for scripting as well as some general programming, so I'm now pretty well into learning Python -- and I really like it.
|
|
|
| |
|
|
|
 |
|
 |
|
Registered User
Join Date: Oct 2003
Status:
Offline
|
|
> I'd suggest something different like Python, so you can get a feel for
> how soft-typed languages work.
Not to be too pedantic, but:
Java is strongly typed and also statically typed (i.e. javac checks types at compile-time as much as possible).
Python is strongly typed and also dynamically typed (i.e. python evaluates object types at runtime. Fewer compile-time errors, possibly more runtime exceptions -- though, these exceptions may reveal more bugs to you than a simple compile-time type-checking error).
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Jun 2004
Status:
Offline
|
|
I looked into python and it seems pretty cool. I was thinking about it, and I might like to start developing games (just for fun.) What language would I want to use to do that? or should I just start python right now and now worry about the games?
|
|
|
| |
|
|
|
 |
|
 |
|
Registered User
Join Date: Oct 2003
Status:
Offline
|
|
|
|
|
|
| |
|
|
|
 |
 |
|
 |
|
|
|
|
|

|
|
 |
Forum Rules
|
 |
 |
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is Off
|
|
|
|
|
|
 |
 |
 |
 |
|
 |
|