User Name
Password
AppleNova Forums » Programmer's Nook »

What language to learn (computer of course)


Register Members List Calendar Search FAQ Posting Guidelines
What language to learn (computer of course)
Thread Tools
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-02-25, 11:48

I'm looking for a fun new language to take up so I can start making some worthless programs. I was hoping you'd give me some advice on what you think.

Some background....
I took a c++ class, but it was very simple, not visual at all, and just a class to start you thinking about programming logic. I then started to learn javascript, but got bored with that quickly because I had no use for it. I moved to PHP, and then MySQL (is all sql the same?), and now I'm looking for something so that I can make visual programs that aren't run inside a web browser.

What I've been looking at...
I bought a cocoa book a while ago, but never got into it for whatever reason. It just seemed kinda complicated, to do all the stuff you had to do to get something simple to work. Of course it wasn't that complicated, I really just never gave it a good chance.

I have been looking to java too because I hear it's pretty easy to get networking and internet aspects working with this. That is very appealing to me.

Lastly, what sucks so much about REALBasic? I mean, it seems REALLy easy to quickly churn out a basic application that is also platform independent. I don't know why, but I have a bias against it, like it's a joke.

So, what do you think? Learn a GUI language at all or learn something like perl or python? Well, let me know what you think, I'm leaning towards java, but think it would be nice to have such integrated functionality with the OS as cocoa probably allows.

My biggest fear for any language? I'm afraid I'm going to suck it up when I have to start worrying about memory, to clear unused variables and everything.
  quote
scratt
Veteran Member
 
Join Date: Jul 2004
Location: M-F: Thailand Weekends : F1 2010 - Various Tracks!
Send a message via Skype™ to scratt 
2005-02-25, 12:18

I would be interested in views on this also...

I have been out of programming for a long time and am tempted to get into OS X software, seeing as all the toos are there and widgets look like they might be a good placce to start...

The last thing I programmed was a V60 controlling a 3D rendering pipeline on SEGAs arcade platforms...

Before that it was all 680x0 and 56010 DSPs.....

I tried C++ and found it awful, but guess I am going to have to do something like that to get back into things nowadays.. *puffs on old boy pipe* *leans back in leather chair in library*

Not to steal ast3r3xs thread here but if anyone can shed some light on where we would go from here would be really cool....

'Remember, measure life by the moments that take your breath away, not by how many breaths you take'
Extreme Sports Cafe | ESC's blog | scratt's blog | @thescratt
  quote
Mr Beardsley
Member
 
Join Date: Jul 2004
Location: Colorado Springs
Send a message via AIM to Mr Beardsley  
2005-02-25, 15:28

I would recommend you guys go with Cocoa. Objective-C is a neat language, and I really enjoy it. If you want to do visual stuff, then java is right out. (Unless you do java Cocoa). Having to make interfaces with straight java gives me nightmares.

I would recommend "Cocoa Programming for Mac OS X" by Aaron Hillegass. It really helped me get a feel for how to work with Coca and Objective-C. By the time you get done with the book, you've made a lot of small apps that show you how to work with most of the Cocoa framework. If you want to do networking, there is the follow on book which deals with that.

With interface builder and XCode, you can whip up a gui really quick. My girlfriend made a program with a little help. It doesn't do much, you som buttons and different strings come up, but she's proud of saying she made a program.

Just my thoughts.

"Slow vehicle speeds with frequent stops would signal traffic congestion, for instance."

uh... it could also signal that my Mom is at the wheel...
  quote
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-02-25, 17:42

Quote:
Originally Posted by Mr Beardsley
I would recommend "Cocoa Programming for Mac OS X" by Aaron Hillegass. It really helped me get a feel for how to work with Coca and Objective-C.
Ugh, thats the book I have. I guess I'll give it another chance, I don't really like how he does things. I don't feel like he describes things well enough, he just gives you the code and tells you what to do...at least as far as I got.

Edit: Which book do you have, I bought a while ago and hav this

The PHP O'Reilly book I have is the best, it went through functions/manipulations for strings, arrays, objects, and then went into examples and how to work with images, databases, ect...

I just need a beginning book for cocoa, I think the cocoa book just kinda assumed a knowledge of obj-c, and started.

Maybe I'll check out an O'Reilly cocoa book.

Last edited by ast3r3x : 2005-02-25 at 17:52.
  quote
HowardG
Member
 
Join Date: Oct 2004
Location: Spokane, WA
 
2005-02-25, 18:30

ast3r3x,
Thats the First Edition

That may be why.....if you have MacOSX 10.3...
I would get the 2nd Edition. Its alot cleaner and covers Bindings (which appeared in 10.3) and several other new topics.

I would also take a look at Cocoa Recipes for Mac OS X. Its only based on the Vermont Recipes app from the StepWise site a while back. But you start with a basic app and add more and more (preferences, undo, drag & drop, etc.) along the way, so its a good read (atleast I thought so).
  quote
bassplayinMacFiend
Banging the Bottom End
 
Join Date: Jun 2004
 
2005-02-25, 19:19

You could always start with the Apple-suppllied docs. The only sample program is either a currency or temperature converter (I forget which) but that shoud get you started.

You could also follow the link in my sig. & download my Musical Scales program. The complete XCode project files are part of the download as a .zip file in the .dmg file.

If you're interested in (non-GUI) Java programming you can see the examples that paid for my 2G iPod here --> http://members.cox.net/~pevac/designExamples.html . I wrote examples 4 through 14.

Java GUI programming is about as much fun as doing your own root canal with a hand-powered drill. Definitely not recommended for the beginner.

I've found XCode/Interface Builder to be an excellent set of dev tools with one exception; I hate Obj-C's String class as compared to Java's String class. Other than this one nit I dig Obj-C & Apple's dev tools.
  quote
staph
Microbial member
 
Join Date: May 2004
Send a message via AIM to staph  
2005-02-25, 19:49

I've been reading Kochan's Programming in Objective C and I've been finding its approach really rather excellent — it assumes no prior knowlege of C/++ at all, and goes from the basics on in.

There was a good thread on this topic over at .com, but I couldn't be arsed linking to it.
  quote
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-02-25, 20:07

I didn't check Apples documentation yet for xcode, but does it contain, or somewhere have an exhausting list of functions and everything about them/it like php.net does?
  quote
bassplayinMacFiend
Banging the Bottom End
 
Join Date: Jun 2004
 
2005-02-25, 20:41

Quote:
Originally Posted by ast3r3x
I didn't check Apples documentation yet for xcode, but does it contain, or somewhere have an exhausting list of functions and everything about them/it like php.net does?
There is documentation on all Carbon & Cocoa objects. I haven't spent any time on php.net so I don't know how they're setup, but for every Cocoa object there is documentation for every property & method as well as the list of objects an object inherits properties/methods from.

Fire up XCode and click Help --> Documentation and you'll see the installed 'books' in your library.

[edit]
There's also Apple's Objective-C reference in .pdf format.
  quote
curiousuburb
Antimatter Man
 
Join Date: May 2004
Location: that interweb thing
 
2005-02-25, 21:04

Pah... newfangled coding... for true oldtimer chops, you should learn EBCDIC
  quote
autodata
hustlin
 
Join Date: May 2004
 
2005-02-26, 02:30

Cocoa is just plain fun.
Quote:
Originally Posted by ast3r3x
The PHP O'Reilly book I have is the best...
Which O'Reilly PHP book?
  quote
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-02-26, 08:01

Programming PHP

Maybe it was the stage I was in, but I just never got bored while reading through this book. It wasn't as dull as most books are to me normally to me. Just had a way of talking about things, and telling why they are useful. It was more like being taught by a teacher then being told how the language works.
  quote
Paul
Veteran Member
 
Join Date: May 2004
Location: New York City
 
2005-02-26, 13:45

Do any of you remember scheme? in 1997 I coded a calculator for my first (and only) computer science class. Very cool. Does anyone know if it is still used for teaching?

good stuff

1215/234215 (top .51875%)
People really have got to stop thinking there is only one operating system, one economic system, one religion, and one business model. -EvilTwinSkippy (/.)
  quote
Brad
Selfish Heathen
 
Join Date: May 2004
Location: Zone of Pain
 
2005-02-26, 15:06

As Mr Beardsley and bassplayinMacFiend said, writing a good Java GUI ranks among the most painful experiences in life. However, I'd still have to recommend learning Java.

Are you in high school, ast3r3x? Forgive my flakey memory, but I can't really remember how old everyone here is these days. Anyway, if you are and if you plan to take any computer science courses at college, I'd definitely recommend learning Java. It's the "hot" language these days for most programming courses at the university level. Most college students now will graduate knowing a lot of Java and C/C++ and not a whole lot else. A lot of the courses I've taken simply assume you know how to program in Java and can at least read C.

Java is very good for teaching you object-oriented design. Everything in Java is an object that can be subclassed. However, Java is very bad at teaching you memory management. You never allocate or deallocate anything in Java; it's all automatic.

Java is the "easy" language that lots of universities use because it includes classes that already do just about everything for you from string manipulation to socket networking. Java also, as I mentioned, does memory management automatically, allocating when new instances are created and deallocating with a "garbage collector" a period of time after a variable goes out of scope. If you've worked in a traditional language like C for any length of time, the garbage collector is very difficult to get used to (it was for me, at least). If you're relatively new to memory management, though, the garbage collector is a godsend.

If you're already past college or don't plan to take university computer science classes, I'd recommend learning Cocoa... then Java. Since you already know the basics of C++ (and hopefully some memory management), you'd be greatly benefitted by moving into Cocoa and Objective-C which will just be an extension of what you've learned. Learning Cocoa itself will probably not do you a whole lot of good in the "real world" (because a "real" programming job will probably require you to work in MS Visual C or MS C#), but it will give you a very solid foundation on object oriented programming while keeping your mind focused on the importance of memory management.

Java would still be nice to learn at some future point because it does at least offer easy cross-platform compatibility. A class you compile on a Mac OS X machine will run exactly the same on a Windows machine and a Linux machine and a Sun machine. You don't even have to recompile!

The quality of this board depends on the quality of the posts. The only way to guarantee thoughtful, informative discussion is to write thoughtful, informative posts. AppleNova is not a real-time chat forum. You have time to compose messages and edit them before and after posting.
  quote
mdeloria
New Member
 
Join Date: Jan 2005
 
2005-02-28, 19:37

Quote:
Originally Posted by Paul
Do any of you remember scheme? in 1997 I coded a calculator for my first (and only) computer science class. Very cool. Does anyone know if it is still used for teaching?

good stuff
Paul, as I type this, I am working on a scheme project for college. I am a CS major. So yes, it is used still for teaching despite my utter hatred for this language
  quote
scratt
Veteran Member
 
Join Date: Jul 2004
Location: M-F: Thailand Weekends : F1 2010 - Various Tracks!
Send a message via Skype™ to scratt 
2005-02-28, 19:49

Thanks y'all. This made for interesting reading....
  quote
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-02-28, 20:43

Brad, I'm a freshman in college majoring in Management Information System major, so if that is worth anything.

I go to a penn state campus, and I'm taking CmpSci 203, which is a 'business oriented computer programming class.' This means we learn how to work with functions in excel, minitab (although I just copied this lab), Visual Basic (I just used REALBasic to the lab, figured it was the same), and then after we are done with visual basic, we are going to start working with MS Access.

We didn't really work with memory management in c++ because we never made programs that were big enough or ran long enough to need it.

So I guess there is no interface builder while writing Java huh? Why is it so bad to build interfaces with Java? Can Java programs run at the same speed as cocoa apps can?
  quote
bassplayinMacFiend
Banging the Bottom End
 
Join Date: Jun 2004
 
2005-02-28, 20:55

Quote:
Originally Posted by ast3r3x
Brad, I'm a freshman in college majoring in Management Information System major, so if that is worth anything.

I go to a penn state campus, and I'm taking CmpSci 203, which is a 'business oriented computer programming class.' This means we learn how to work with functions in excel, minitab (although I just copied this lab), Visual Basic (I just used REALBasic to the lab, figured it was the same), and then after we are done with visual basic, we are going to start working with MS Access.

We didn't really work with memory management in c++ because we never made programs that were big enough or ran long enough to need it.

So I guess there is no interface builder while writing Java huh? Why is it so bad to build interfaces with Java? Can Java programs run at the same speed as cocoa apps can?
If you're going to be working in Excel & Access, then spend the time to learn Visual Basic. Both of these programs are extendable through Visual Basic for Applications (VBA) which is basically VB6. Once you have the basics of VB down, you'll be able to use the object models in Excel & Access to programmatically manipulate data, so you'll want to be familiar with VB's syntax and how it works with objects so learning to use the Excel & Access object models will be that much simpler.

I've found that both Netbeans & Eclipse provide a drag & drop Java GUI builder, but I've already run into issues trying to group buttons & such using these IDEs. At this point I'd say that coding the GUI would probably be easier for me then it would be to use these GUI builders.

Java apps won't run as fast as Objective-C Cocoa programs because Obj-C is compiled, while Java is run through a Just In Time (JIT) compiler at run time. This is why Java can run on multiple platforms. The code is compiled into byte code, then this byte code is compiled at run time. As long as a JIT is available for an OS it can compile the byte code. So, think of the byte code as an intermediate level of compilation.

VB/VBA is also compiled at run time (although I believe you can compile VB apps but not VBA) so it will run slower than RealBASIC since RB is compiled as well.

Hope this helps.

[edit]
For my CS Major related classes I'd say 90+% was in Java because they wanted to drill OOP into our heads. Two classes dealt with C & one class was in ASM. The database programming classes were the only ones that didn't have any Java or C programming involved cuz that's all SQL.

Last edited by bassplayinMacFiend : 2005-02-28 at 21:00.
  quote
Brad
Selfish Heathen
 
Join Date: May 2004
Location: Zone of Pain
 
2005-02-28, 21:08

What bass dude said x2.
  quote
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-02-28, 21:24

Well we are done with excel and nothing important with visual basic is going to be done. I've taken a VB class in high school my freshman year, and while I don't remember hardly anything, it's so stinking simple.

I hate business oriented programming, it's so boring and relatively simple, the teacher lectures verbatim from the book, she says she had to do all of this stuff, but I can't believe her with how little she seems to know.

I guess Java it is then.
  quote
bassplayinMacFiend
Banging the Bottom End
 
Join Date: Jun 2004
 
2005-02-28, 21:27

Quote:
Originally Posted by Brad
What bass dude said x2.
Thanks for gettin my back.
  quote
Barto
Student extraordinaire
 
Join Date: May 2004
Location: Canberra, Australia
 
2005-03-01, 09:25

Quote:
Originally Posted by bassplayinMacFiend
Java apps won't run as fast as Objective-C Cocoa programs because Obj-C is compiled, while Java is run through a Just In Time (JIT) compiler at run time.
I take it you haven't used .NET (aka Java done right).
  quote
bassplayinMacFiend
Banging the Bottom End
 
Join Date: Jun 2004
 
2005-03-01, 10:42

Quote:
Originally Posted by Barto
I take it you haven't used .NET (aka Java done right).
It's not officially available for OS X yet, is it? Last Fall I converted my home to all Macs so I only use PCs at work now so I don't have a PC to use for development.
  quote
Barto
Student extraordinaire
 
Join Date: May 2004
Location: Canberra, Australia
 
2005-03-01, 11:00

Rotor has been on the Mac for years, and the latest unstable version of Mono/OSX includes Cocoa bindings for C# (Cocoa#).
  quote
thuh Freak
Finally broke the seal
 
Join Date: May 2004
 
2005-03-01, 11:08

VB is an interesting language. It is (or atleast was) similar to REALbasic (haven't looked at RB in a long long time). But VB isn't really used very much anymore (atleast not at my job; and from my understanding not much in business). We don't even have a version of VStudio to deal with VB6- anymore; our classic-VB apps are old and time-tested and dont need active development. VB.net, the successor to VB, is a very different language (while maintaining some, perhaps most, of the VB syntax). It breaks compatibility a lot, and theres a whole lot of new concepts introduced to the language (like OO). One thing to note is that VBA is still very close to classic VB. I think I read in VS mag that VBA is going .net (or maybe it already has).

The .net languages are pretty cool. I mean, about as cool as languages can get when they don't allow you to do pointer arithmetic. I certainly wouldn't recommend going with them over anything Cocoa related, but you should be aware that the mono project made a .net compiler (i think c#.net, maybe it was vb.net; maybe both?) that works on non-windows machines, and theres a large enough f/oss .net libraries available to mimic much of the standard .net ones. one side benefit of c#.net is that it is so fucking close to java; well, that may or may not be seen as a benefit. another nifty thing about .net is that any .net language u write in (for windows, theres more than just the standard c# and vb.net) will compile to a bytecode (same idea as java, different implementation).

If you are really interested in programming, I think you should learn memory management, thence a language like c, c++ or objective-c. it is a very important part of CS. objc kind of cheats a little, wrt memory management, but theres some there. If you are just curious about programming, a higher level language like java would probably better suite you.

WRT sql, yes, they all are basically the same. you have SELECTs, INSERTs, UPDATEs, DELETEs and so on. Sometimes one has a peculiar feature that another one doesn't (like with joins, i think one db had INNER and OUTER joins before the competitors...).
  quote
ast3r3x
25 chars of wasted space.
 
Join Date: May 2004
Send a message via AIM to ast3r3x  
2005-03-01, 16:40

I guess I'll give a go at java since I'll probably have to take a programming course in that sometime in the next three years for my major.
  quote
scratt
Veteran Member
 
Join Date: Jul 2004
Location: M-F: Thailand Weekends : F1 2010 - Various Tracks!
Send a message via Skype™ to scratt 
2005-03-06, 05:23

Hi all...

Thanks for all the input.. I'll take it on board and have a think.. Just wanted to let people know I have been reading the thread after asking to be included...


'Remember, measure life by the moments that take your breath away, not by how many breaths you take'
Extreme Sports Cafe | ESC's blog | scratt's blog | @thescratt
  quote
Posting Rules Navigation
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Post Reply

Forum Jump
Thread Tools
Similar Threads
Thread Thread Starter Forum Replies Last Post
What is it with Apples Jules26 Apple Products 79 2005-01-18 04:33
Do you shut down your computer or do you put your computer to sleep? Quagmire General Discussion 47 2005-01-09 19:30
What Slows down a computer the most Wrao General Discussion 18 2004-08-07 03:29
Girlfriend's new computer DMBand0026 General Discussion 18 2004-07-31 09:20
Sony announces ultra portable computer. Quagmire General Discussion 7 2004-07-09 23:24


« Previous Thread | Next Thread »

All times are GMT -5. The time now is 17:44.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004 - 2024, AppleNova