Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

DanTekGeek

macrumors 6502
Original poster
Nov 11, 2004
263
0
Denver, CO
hi all,
I want to learn a programming language. Preferably one that works well with OS X. I know some basic JAVA, and feel comfortable with the general ideas of OOP, but im not sure if i should continue with it, or try something else. Does anyone have any suggestions?
 

bousozoku

Moderator emeritus
Jun 25, 2002
15,718
1,893
Lard
You should try as many as possible but accessing GUI elements is easiest with Java and Objective-C on Mac OS X. Of course, with Java, it's good anywhere, in general.

As a long time programmer, I feel comfortable with both of those along with C and C++ and a lot of other languages you'll never know but find Java to be the most efficient use of my time since I don't have to learn how to access GUI on each platform.

Even AppleScript is a good way to become more comfortable with programming because you see a different view on accessing things.
 

dotnina

macrumors 6502a
Aug 19, 2004
856
0
What's your reason for wanting to pursue another programming language? Are you trying to build a resume, or just tinker around and write little programs?

If you're just trying to have a little fun, I'd try Applescript. It seems pretty easy to learn, and it seems like you can do cool little things with it. Similarly, you could try to build some Unix skills by writing and executing bash scripts through the terminal.

For resume purposes, I would recommend more Java and other OOP. If you're interested in doing websites, maybe you could try going the way of PHP.

It really depends on what you're trying to get out of this.
 

AmigoMac

macrumors 68020
Aug 5, 2003
2,063
0
l'Allemagne
When I saw the title and read your post, it came to my mind when a friend told me to help him because he needed to write a program by the end of the semester, I asked him, which language are you going to use? ... German, of course! :p
 

netytan

macrumors 6502
May 23, 2004
254
0
AmigoMac said:
When I saw the title and read your post, it came to my mind when a friend told me to help him because he needed to write a program by the end of the semester, I asked him, which language are you going to use? ... German, of course! :p

LOL. nice one Amigo ;).

Anyway, no-one has suggested this one yet but I would say give Python a try simple because its a very capable language: elegant and easy to learn and powerful! It also has an Objective-C bridge which means it can be used to write Cocoa applications like Java :D.

Also worth mentioning: it is platform neutral (and should work on any platform with a C compiler).

Mark.
 

DanTekGeek

macrumors 6502
Original poster
Nov 11, 2004
263
0
Denver, CO
i want this more for tinkering and creating small programs than for a resume. i was thinking about cocoa, but dont i need more programming knowladge to try that? im definatly planning on learning apple script, but it dosent seem that usefull outside of using the features of the os and programs. i also want something more challenging than applescript.
 

applekid

macrumors 68020
Jul 3, 2003
2,097
0
Wanna be more Mac oriented?
Cocoa with Java or Obj-C is a good start.
Wanna stick to Java?
Stick with it!
The other OOP language of choice for me would be C++ because it's more mainstream.

The only reason I don't want to pursue Java further is because it's for contractor-type programmers, little games for phones and the internet, and/or usually used for only a component of a program. And of course, since Java is in its infancy, it's slow. If I'm wrong, please inform me. But that's the impression I'm getting.
 

bousozoku

Moderator emeritus
Jun 25, 2002
15,718
1,893
Lard
applekid said:
Wanna be more Mac oriented?
Cocoa with Java or Obj-C is a good start.
Wanna stick to Java?
Stick with it!
The other OOP language of choice for me would be C++ because it's more mainstream.

The only reason I don't want to pursue Java further is because it's for contractor-type programmers, little games for phones and the internet, and/or usually used for only a component of a program. And of course, since Java is in its infancy, it's slow. If I'm wrong, please inform me. But that's the impression I'm getting.

That's not entirely accurate. Java is used for any number of things and there are likely to be more C++ contractors than Java contractors.

As an environment, Java does require more resources and can be slower on system with less RAM available but can also be faster because it shares more code and that the code is optimised in the virtual machine.

Furthermore, C++ is more error prone because people still tend to use structures which do not support a definite beginning and ending. You've probably heard of buffer overrruns and it's difficult for Java to have them since resources are monitored and managed by the virtual machine. Of course, that sort of thing slows down the code. Would you rather have fast, error-prone code or slower, proper code?
 

DanTekGeek

macrumors 6502
Original poster
Nov 11, 2004
263
0
Denver, CO
i think ill learn cocoa. it seems to fit well with my skills and can do what i need it to do. its also handy that its so integrated with os x. does anyone have some good recources or books for learning cocoa?
 

VincentVega

macrumors regular
Jan 26, 2004
108
0
UK
netytan said:
LOL. nice one Amigo ;).

Anyway, no-one has suggested this one yet but I would say give Python a try simple because its a very capable language: elegant and easy to learn and powerful! It also has an Objective-C bridge which means it can be used to write Cocoa applications like Java :D.

Also worth mentioning: it is platform neutral (and should work on any platform with a C compiler).

Mark.

Agreed about Python. It's great and very easy to use to knock up quick scripts in not much time.

As for books, you can't get better than O'Reilly, IMHO. They have a decent-enough range of Mac books, including some introductory stuff to programming with Cocoa, Carbon and the like.
 

Catfish_Man

macrumors 68030
Sep 13, 2001
2,579
2
Portland, OR
DanTekGeek said:
i think ill learn cocoa. it seems to fit well with my skills and can do what i need it to do. its also handy that its so integrated with os x. does anyone have some good recources or books for learning cocoa?

cocoadev.com

cocoadevcentral.com

developer.apple.com

books by Aaron Hillegass (generally considered the best) or O'Reilly

#macdev on irc.freenode.net (not always a good place for newbie questions)
 

applekid

macrumors 68020
Jul 3, 2003
2,097
0
Quite glad to be proven wrong. Thank you, bousozoku and robbieduncan. :)

However, I do have a question. Do I really have a future with Java? Can I actually expect to be picked up by a large company that will hire me, and not make me a contractor? It seems to be contracting is popular, but still...

Also, I'm looking into of a more game development/software engineering career. Java the way to go, or would C++ be a better choice? It looks like a majority of games are still developed with C++, so I'm thinking about switching over or learning both.
 

bousozoku

Moderator emeritus
Jun 25, 2002
15,718
1,893
Lard
applekid said:
Quite glad to be proven wrong. Thank you, bousozoku and robbieduncan. :)

However, I do have a question. Do I really have a future with Java? Can I actually expect to be picked up by a large company that will hire me, and not make me a contractor? It seems to be contracting is popular, but still...

Also, I'm looking into of a more game development/software engineering career. Java the way to go, or would C++ be a better choice? It looks like a majority of games are still developed with C++, so I'm thinking about switching over or learning both.

Learning and maintaining knowledge of multiple languages is always best. You might even find that Objective-C or Smalltalk is desired, though they're not sought so often.

As far as contractors go, the U.S. market has shifted greatly toward the disposal developer, due to the cost of benefits and human resources.
 

robbieduncan

Moderator emeritus
Jul 24, 2002
25,611
893
Harrogate
applekid said:
Quite glad to be proven wrong. Thank you, bousozoku and robbieduncan. :)

However, I do have a question. Do I really have a future with Java? Can I actually expect to be picked up by a large company that will hire me, and not make me a contractor? It seems to be contracting is popular, but still...

Also, I'm looking into of a more game development/software engineering career. Java the way to go, or would C++ be a better choice? It looks like a majority of games are still developed with C++, so I'm thinking about switching over or learning both.

I work for a very large American financial institution in London as a developer. Our old code is C++. Our new code is Java. Well that's an oversimplification as some of our new code is Perl and shell script, but a lot of it's Java. Going forward we will continue to support and sometimes modify the C++ as well as the Java so both are usefull.

If you want to be a games programmer then C++ is the way to go. I looked into being a games programmer (I went as far as interviewing with CodeMasters) but decided it wasn't for me.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.