PDA

View Full Version : Learn Programming?




jer446
Jun 6, 2005, 06:13 PM
I call myself a power user, i am able to pick up things pretty quickly, and am good at learning things. I really would love to learn how to program, just so i have another skill under my belt, and maybe could get a job one summer. I am in highschool, is it to late to learn? What is the most beneficial language? I am in electronics, and next year will be coding in basicx. Where can i learn to program? Is there any certifications i can get once i learn to prove i know my stuff, just another thing for college. I am willing to pay for lessons if i have to.



jer446
Jun 6, 2005, 06:44 PM
i would also like to start with a language that isnt to hard to pick up, that way i wont be discouraged to learn new languages. ALso if it is posssible to have a language tha works on mac and windows, that way if im ever looking for a job, im not limited to mac or pc.

jeremy.king
Jun 6, 2005, 07:26 PM
If you are looking for something career related (eventually) and cross-platform. Look no further than Java. Although I wouldn't bother if you are looking to develop desktop applications, they still haven't seemed to get it right yet...

For someone who is quick to learn, I am surprised you don't know where to go to learn how to code. Anywho, heres a few options for you to consider.

Local college/university
Technical school (IIT, Devry, etc.)
Online course
A book!

It really all depends on your learning style and commitment - not to mention available funds.

rinseout
Jun 6, 2005, 07:28 PM
The only way to learn how to program is to write programs. There are plenty of free books (see here (http://mindview.net/Books) for books on C++, Java, and Python) that come complete with exercises to try. Your mac comes with pretty much everything you need; just install the Developer's tools and you're good to go.

macbaseball
Jun 6, 2005, 07:53 PM
The only way to learn how to program is to write programs. There are plenty of free books (see here (http://mindview.net/Books) for books on C++, Java, and Python) that come complete with exercises to try. Your mac comes with pretty much everything you need; just install the Developer's tools and you're good to go.

Thanks for that link. I'm going to try to learn also this summer...

jer446
Jun 6, 2005, 08:08 PM
ok i will look into it. So your saying java is the best to learn, as it is the most beneficial? What type of programs do you make with it? I dont think i want to be a software programmer, but programming is beneficial in many different careers, as i might want to be an engineer.

rinseout
Jun 7, 2005, 05:09 PM
ok i will look into it. So your saying java is the best to learn, as it is the most beneficial? What type of programs do you make with it? I dont think i want to be a software programmer, but programming is beneficial in many different careers, as i might want to be an engineer.
all programs count as software, even if all your program does is think for a long time and then spits some numbers into a file (my speciality).

Mitthrawnuruodo
Jun 7, 2005, 05:23 PM
Java (http://developer.apple.com/java/) is the best language to start with if you want to learn proper OO programming (http://en.wikipedia.org/wiki/Object-oriented_programming). That was the first programming language I learned when in College, and it has a very nice learning curve. Later we "advanced" into C++ (http://en.wikipedia.org/wiki/C_Plus_Plus), and the transition was very easy with basic (no pun intended) Java skills...

I also have heard good things about Python (http://www.python.org/), and if and when I find time to learn another programming language, Python is at the top of my list.

Wyrm
Jun 8, 2005, 09:28 AM
I second the recommendation for java, but once you start down the java path, er, well you know the rest...

Eclipse IDE makes programming java a snap, and it's free (as in speech):
http://www.eclipse.org/

-Wyrm

CmdrLaForge
Jun 8, 2005, 01:05 PM
Java. Great language!
-enough said

cube
Jun 8, 2005, 01:37 PM
Concentrate on the concepts first. Get this book (http://www.amazon.com/exec/obidos/tg/detail/-/0262062186/) The programming environment they use has teaching modes (the development used to be at Rice University, but now it is distributed among several other schools).

This book is available for free online here (http://www.teach-scheme.org/). If you look there, you'll see that there are even free workshops for your teachers!

The software is available for Windows, OSX, Darwin, Linux, FreeBSD and Solaris. Probably it still works with other Unixen if you compile it yourself (but I'm not sure, as the compiler now also includes native code generation, not just bytecodes. Although it could be that other platforms still work, but just do not support this feature). I used to run it on IRIX.

jer446
Jun 8, 2005, 02:07 PM
is there any way i can take like an online course, so i get certified? That way i can move at my own pace whenever i have time, and at the end i will have something to show for it.

cube
Jun 8, 2005, 02:22 PM
http://java.sun.com/learning/online/index.html, but you'll miss on concepts that you would learn if you took my recommendation above first.

mac15
Jun 8, 2005, 11:24 PM
I recently bought Cocoa Programming for Mac OS X (http://www.amazon.com/exec/obidos/tg/detail/-/0321213149/ref=pd_sxp_f/002-0385057-8265663?v=glance&s=books), just waiting for it to ship. I hear its great for absolute beginners, which I happen to be :)

jeremy.king
Jun 9, 2005, 11:03 AM
http://java.sun.com/learning/index.html

Then go after your Sun certified programmer when you are ready. Difficult test, but helps the resume.

Edit: whoopsy...same link as above but leaving it to hammer it home ;)

jobutex
Jun 9, 2005, 12:43 PM
http://java.sun.com/learning/index.html

Then go after your Sun certified programmer when you are ready. Difficult test, but helps the resume.

Edit: whoopsy...same link as above but leaving it to hammer it home ;)

Be sure and brush up on your Hindi, too, because programming jobs are becoming really, really scarce outside of India, China, *slavia, Ireland, etc. I would recommend going into network, system administration, or storage for a job in I/T. Scripting languages like Perl, Python, and Ruby are much more of an asset in these situations.

IMHO, if you really want to learn how to program, skip Java. You have to deal with too much of the interface programming, unless you're doing strictly command line stuff, and Java isn't well suited for that. Learn Perl, Python, or get the books "A Book on C" or "C by Dissection" by Kelly and Pohl. Excellent books on C programming for the beginner.

If you just want to learn to program the Mac for fun, get "Programming in Objective-C" and "Cocoa Pogramming for Mac OS X." That will introduce you to object oriented programming and programming specifically for the Mac.

Why do I not like Java? It's closed source, meaning its future direction is dictated by Sun, who doesn't have a really good track record at a lot of other projects.

mwpeters8182
Jun 9, 2005, 12:51 PM
Depending on what you want to do, there's a variety of languages to learn. I'm partial to perl, but that's because I see it a lot in scientific stuff. It's pretty easy to pick up, and it's got some nice features.

I would recommend testing out a bunch of languages, compilers are free for most, good luck.

MP

BlackDan
Jun 9, 2005, 01:27 PM
Don't do Java. PLEASE.

Learn C/C++. No matter what everyone is saying there's still a performance issue with Java AND ANSI C/C++ is the most commonly used language IMO. Also I think C++ is easier to learn. The idea of Java is great, being platform-independent and all, but I don't think it's the best place to start.







or you could immediately start with X86 assembler :D Just kidding

mrzeve
Jun 9, 2005, 02:55 PM
Im in the same situation as the guy who started this thread.

I know how to program in Visual Basic (yeah-program =\) but I want to learn how to make cross platform applications. I dont mean I want to learn 2 different lanaguages, one for windows and one for Mac. I want 1 app, when after being recomplied, will run on the other OS. I'd like to program them all on my Mac though. Ive installed the dev tools.

I dont know which language to use, and where to learn it. The reason for this is because I really NEED a language that lets you code will putting together the interface, like Visual Basic does. Ive tried QT for Mac but its a trial and I cant afford something like that.

Any recommendations?

mwpeters8182
Jun 9, 2005, 04:44 PM
What kind of interface do you need to use? Basic menus and stuff, or something more advanced? Perl/Tk is an option, as well as Java. If you're doing stuff on windows you could use xwin32 to do X11 stuff (though i don't think that's free).

MP

mrzeve
Jun 9, 2005, 04:59 PM
What I mean by interface is basically just the eye candy of the program. Like the interface of iTunes. I dont want a program that runs by command line or something like that.

Would a picture of a program that I made in windows help you in understanding what I want?

http://img294.echo.cx/img294/6623/wfminterface1pf.jpg

Not the same thing obviously - but I think you can get what I mean now.

BTW, Im pretty fluent in PHP and MySql if that would help in anything.

macbaseball
Jun 9, 2005, 05:34 PM
I'm a bit confused: Should I learn Java or Cocoa. They both seem to be useful, as I could make either widgets or applications.

Also, depending on the one i pick, what would be the best book to buy. I looked at tht earlier post, and I went to the site yesterday. I was about to print it out when I noticed it was 1,127 pages. :eek:

I decided I need to buy a book...

plinden
Jun 9, 2005, 05:40 PM
Don't do Java. PLEASE.

Learn C/C++. No matter what everyone is saying there's still a performance issue with Java AND ANSI C/C++ is the most commonly used language IMO. Also I think C++ is easier to learn. The idea of Java is great, being platform-independent and all, but I don't think it's the best place to start.

There shouldn't be any issue with performance with a properly written Java program - yes, even the most efficient Java program is slightly slower than the most efficient one written in C/C++, but it shouldn't be any more than 5-10% difference in runtime, if you don't take into account the time to load the virtual machine, which only takes a couple of seconds anyway, which isn't an issue with long running applications.

Unfortunately lots of people come into Java and use things like List.indexOf or String.charAt without knowing what they're doing, or forget to initialize their Arrays or Maps to the correct size, and find that their program runs like a dog with three legs. On the other hand, lots of people come into C/C++ without knowing enough about handling memory allocation.

For instance, a colleague of mine wrote a program to parse a really large XML file (several 100 MBytes and tens of thousands of entries) that took about 2 minutes just to start. I rewrote it to take less than 5 seconds to start, because unlike him I knew how to initialize the data structures, and also realized that you didn't actually need access to all the data and only parsed (and cached) the individual XML entries when they were requested by something the user did.

Another for instance - a customer of ours wrote a C++ extension to some of our server software and started screaming blue murder when our servers started core dumping regurlarly, and refused to accept that the problem was in their code. Eventually they let us see the code and within minutes our C++ guys were able to point out three major memory leaks in a 100 line program.

Anyway, what language to learn depends on what you want to do. For webapps, Java/JSP or .NET/.ASP are the two defacto standards - except that Java/JSP is cross-platform (our webmail software runs on Windows, Linux, Solaris, AIX and HPUX without our having to modify anything), but if you're thinking of doing engineering, C/C++ probably is the best.

Nuc
Jun 10, 2005, 12:32 AM
Ok I've programmed in Fortran (not very efficiently). However, if I were to code in obj-c how does these to compare... I've always understood that fortran is more for engineers (which I am) however what kind of comparison is this to obj-c? I'm looking to possibly write programs (more or less modeling e.g. atmospheric transport) which requires numerical integration and such.

What do you guys suggest...

Nuc

panphage
Jun 10, 2005, 01:36 AM
I recently bought Cocoa Programming for Mac OS X (http://www.amazon.com/exec/obidos/tg/detail/-/0321213149/ref=pd_sxp_f/002-0385057-8265663?v=glance&s=books), just waiting for it to ship. I hear its great for absolute beginners, which I happen to be :)
Almost positive that book assumes you are a proficient C programmer.

whooleytoo
Jun 10, 2005, 09:06 AM
The advantage of going with Java, is that your code (and equally importantly - your skills) are very portable.

The disadvantage is, it's too easy. Yes, too easy - a bit like Visual Basic on the PC - a lot of developers can write programs without understanding a lot of the underlying concepts which they need to know. In that respect, I can see why a lot of colleges here teach C++ and assembler first, then Java later on.

I haven't done much Java development on OSX, but if code portability wasn't my primary concern, I'd go for Objective C & Cocoa.

cube
Jun 10, 2005, 02:32 PM
I'm looking to possibly write programs (more or less modeling e.g. atmospheric transport) which requires numerical integration and such.

What do you guys suggest...

Nuc

Use this (http://www.mathcom.com/corpdir/techinfo.mdir/scifaq/q115.html) to narrow down the choices.

Note that some languages let you call Fortran, C (and from there C++), and maybe others.

But what about developing using Maple?

jsw
Jun 10, 2005, 02:48 PM
I'm a bit confused: Should I learn Java or Cocoa. They both seem to be useful, as I could make either widgets or applications.There are vastly more Java books and resources out there than there are for Cocoa. That said, Cocoa (really, Objective-C with OS X's libraries) is a better choice for Mac-centric development.

You might want to try starting to learn both. One will likely seem more natural to you after a few days, and that's probably the best one to learn first.

Nuc
Jun 10, 2005, 03:30 PM
Use this (http://www.mathcom.com/corpdir/techinfo.mdir/scifaq/q115.html) to narrow down the choices.

Note that some languages let you call Fortran, C (and from there C++), and maybe others.

But what about developing using Maple?
I've used Maple however I've never done anything extensive in it. Are you able to write a code in maple. I think I've seen this done but I don't know to what extent you can write one. I know in Matlab you can do this kind of stuff, but I've never used it.

Nuc

CmdrLaForge
Jun 11, 2005, 02:08 AM
There are vastly more Java books and resources out there than there are for Cocoa. That said, Cocoa (really, Objective-C with OS X's libraries) is a better choice for Mac-centric development.

You might want to try starting to learn both. One will likely seem more natural to you after a few days, and that's probably the best one to learn first.

If you already know Java - how difficult is it to pick-up Objective-C ? Is that the only option for writing OS X apps with a nice GUI?

Cheers

macbaseball
Jun 11, 2005, 12:00 PM
There are vastly more Java books and resources out there than there are for Cocoa. That said, Cocoa (really, Objective-C with OS X's libraries) is a better choice for Mac-centric development.

You might want to try starting to learn both. One will likely seem more natural to you after a few days, and that's probably the best one to learn first.

Ok, thank you. I think I'm going to pick up some books this weekend...

cube
Jun 11, 2005, 12:26 PM
I've used Maple however I've never done anything extensive in it. Are you able to write a code in maple. I think I've seen this done but I don't know to what extent you can write one. I know in Matlab you can do this kind of stuff, but I've never used it.

Nuc

From Maplesoft's site:


- Language optimized for mathematics saves days of development time
- Customize user interface via Maplets or Maple documents with embedded GUI components
- High-performance hardware-based floating-point computations including ability to compile user functions
- Easy connectivity to MapleNet, other applications and Web sites
- Automatic source code generation in C, Fortran, Java, MATLAB, and Visual Basic

freiheit
Jun 11, 2005, 10:31 PM
I'm a bit confused: Should I learn Java or Cocoa. They both seem to be useful, as I could make either widgets or applications.

You can use Cocoa with Java. Cocoa is a framework to tap into system resources and do fancy GUI stuff. Java is a language that takes input, does some processing, and makes output. You can use Cocoa with Objective-C or with Java -- there's even an in-development tool to use Cocoa with the C# language.

Even if you only use XCode's Interface Builder to make a GUI interface and use Java for all the back-end work, you will have successfully used Cocoa with Java. A good place to start by doing some simple beginning programs is Apple's own developer website. They have at least one XCode+Java tutorial, and XCode is already bundled with MacOS X so there's no cost involved to try it out.

Catfish_Man
Jun 11, 2005, 11:25 PM
If you already know Java - how difficult is it to pick-up Objective-C ? Is that the only option for writing OS X apps with a nice GUI?

Cheers

I picked up basic ObjC in a week from a working knowledge of Java and a tiny bit of C/C++ knowledge. The only thing that'll bite you is memory management. Reference counting is much less painful than manual mem management, but it can't compare to garbage collection. The advantage of learning ObjC is that a) it's a pretty decent language, and b) it has the best access to Cocoa (Java works with Cocoa, but the API reads like it was written for ObjC, which it was). Cocoa makes all the trouble worthwhile. Also, ObjC is getting garbage collection in a future version of OSX :D (the compiler flag is in there now, it just doesn't work yet).


In response to the original poster: Java is an excellent choice as a learning language. It's used a lot in the real world, is heavily documented, is cross platform, and shields you from some of the more obnoxious bits of programming (manual memory management in particular). From there I moved to Objective-C, but that really depends on whether you're interested in Mac-centric development or more of a variety. I also second the recommendation of Eclipse, but with the note that it's really overkill for beginning projects; like using nuclear weaponry on mosquitoes. I use subethaedit for small projects (with "small" here being defined as one or two classes and less than 300 or so lines of code).

HiRez
Jun 12, 2005, 01:21 AM
IMHO...

Best for learning procedural programming: C
Best for learning OO programming: Java
Best for backend server coding: Java
Best for web site coding: PHP
Best for Mac programming: Objective-C + Cocoa
Best for cross-platform scripting: Python
Best for Mac scripting with GUI: AppleScript

The good news is all of these and more are available on the Mac, many installed by default. I would definitely start with Java, as it is cross-platform, embodies most object-oriented concepts, has a fairly easy syntax, a huge number of libraries to do almost anything you want, and most importantly has a massive amount of resources available, both in printed form and online. If you have a question about Java or need to find a tutorial or an example app, you can usually do it very quickly if you're using Java. Having said that, I'll tell you I haven't touched Java much since I started Cocoa programming. It's so powerful and so much fun, it's hard to go back. I haven't found anything even close to it for coding GUI desktop apps.

Nuc
Jun 12, 2005, 01:33 AM
From Maplesoft's site:
I wish I had known this last semester damnit...

Nuc

Nermal
Jun 12, 2005, 07:39 PM
This thread inspired me to download Sun's Java Studio Creator, for making web apps. After about 2 hours, I still haven't figured out how to make a simple adder (two text fields, a button, and an output - the intention was to put two numbers into the text fields, click the button, and get the sum in the output field). Java seems too complex for me, back to VB it is :eek:

macbaseball
Jun 12, 2005, 09:10 PM
This thread inspired me to download Sun's Java Studio Creator, for making web apps. After about 2 hours, I still haven't figured out how to make a simple adder (two text fields, a button, and an output - the intention was to put two numbers into the text fields, click the button, and get the sum in the output field). Java seems too complex for me, back to VB it is :eek:

Get a book. You could follow the tutorials. I'm sure it would make it a lot easier than opening Sun's Java Studio Creator, and just starting.

freiheit
Jun 12, 2005, 11:53 PM
You might also look at other Java IDEs. One I've used (only basically) was Simplicity For Java. It's written in Java, so should run under MacOS X, Windows, Linux, OS/2, etc.

http://www.datarepresentations.com/index.jsp

I don't think it'll give you any Cocoa connections, but it'll let you use JavaBeans, AWT, Swing, etc.

Nermal
Jun 13, 2005, 01:41 AM
Get a book. You could follow the tutorials. I'm sure it would make it a lot easier than opening Sun's Java Studio Creator, and just starting.

I taught myself .NET without a book :) I just grabbed a copy of Visual Studio (Microsoft NZ was giving away free 6-month trials a few years ago) and fiddled with it. I'm sure I picked up the basics a lot quicker than with Java.

Dim FirstValue As Integer = TextBox1.Text <- this works
int firstValue = textField1.getValue(); <- this doesn't

Show me how to do that, and I'll give Java another chance :)

Zion Grail
Jun 17, 2005, 02:21 AM
For learning Java (my favorite programming language), here's the book. Link. (http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=9k0lWBVBYK&isbn=0596009208&itm=1)

And I do mean the book. (Man, I'm like a freaking advertising over here. I guess it's just a result of seeing a bunch of people asking about learning Java, though.) I have a lot of Java books, and this blows 'em all away.

Zion Grail
Jun 18, 2005, 11:30 PM
Be sure and brush up on your Hindi, too, because programming jobs are becoming really, really scarce outside of India, China, *slavia, Ireland, etc. I would recommend going into network, system administration, or storage for a job in I/T. Scripting languages like Perl, Python, and Ruby are much more of an asset in these situations.

IMHO, if you really want to learn how to program, skip Java. You have to deal with too much of the interface programming, unless you're doing strictly command line stuff, and Java isn't well suited for that. Learn Perl, Python, or get the books "A Book on C" or "C by Dissection" by Kelly and Pohl. Excellent books on C programming for the beginner.

If you just want to learn to program the Mac for fun, get "Programming in Objective-C" and "Cocoa Pogramming for Mac OS X." That will introduce you to object oriented programming and programming specifically for the Mac.

Why do I not like Java? It's closed source, meaning its future direction is dictated by Sun, who doesn't have a really good track record at a lot of other projects.

The reason Sun won't release the Java code is because we'll then have a million different versions of it flying around and they won't be perfectly compatible. There'll be a Microsoft version, IBM version, Joe-Bob's-basement version, etc. With Sun at the helm, they can ensure cross-platform compatibility. That's Java's big advantage - write once, run anywhere.

Supa_Fly
Jun 19, 2005, 10:55 PM
The reason Sun won't release the Java code is because we'll then have a million different versions of it flying around and they won't be perfectly compatible. That's Java's big advantage - write once, run anywhere. Taking right from the source.

I know nothing, absolutely NOTHING about programming. I tried Java, really tried and I found that most of it even from Sun; assumes that you have some basic knowledge of C programming.

C, C+, C++, C#, Objective-C, what the hell is the difference?! Can anyone describe in laymans terms their differences, please? Also, how can one be a programmer in any language when the true core of assembling that code, is done via an application that translates it to something the Operating System or cpu can understand? My head really hurts trying to understand this fundamental - mental, hmm.

Seriously though; I understand Java has the advantage of running on a cellular phone directly in a runtime environment, but what about any C type program? I'm interested in learning the code needed to make Series60 applications for Nokia's Symbian smartphone.

Lastly, I'll be seriously learning PHP, Apache, and MySQL - which I find as administration for running a personal website.

Looking forward to that Infiniti FX-45 ;)

broken_keyboard
Jun 20, 2005, 03:43 AM
Dim FirstValue As Integer = TextBox1.Text <- this works
int firstValue = textField1.getValue(); <- this doesn't

Show me how to do that, and I'll give Java another chance :)

int firstValue = Integer.parseInt(textField1.getValue());

caveman_uk
Jun 20, 2005, 04:46 AM
C, C+, C++, C#, Objective-C, what the hell is the difference?! Can anyone describe in laymans terms their differences, please? Also, how can one be a programmer in any language when the true core of assembling that code, is done via an application that translates it to something the Operating System or cpu can understand? My head really hurts trying to understand this fundamental
I don't know about the others as I have never used them. C is a relatively simple language that allows you to do pretty much anything if you know how to do it. Requires extensive use of memory pointers to get stuff done - man I hate all those '&'s and *'s. C++ and objective-C are both supersets of C -meaning they both take C and extend it. They both extend it in different ways. C++ is a much larger language than objective-C. Objective-C on the mac gets it's power and ease of use from the Cocoa frameworks - not the language itself. Objective-C is much more dynamically typed than C++.

You can be a progarmmer in any computer language you want - just because you can't program in binary doesn't mean you aren't one. It's similar to saying that you can't possibly speak a language as you only speak English and not, say, Hungarian (thinks of hard language...). Even people that write assembler aren't really writing in what the machine understands - though they are an awful lot nearer than an Java or objective-C programmer.

freiheit
Jun 21, 2005, 01:49 AM
Lastly, I'll be seriously learning PHP, Apache, and MySQL - which I find as administration for running a personal website.

PHP is a good language to know, especially for web development. But thanks to Safari and now Dashboard (in MacOS X 10.4) you could use PHP behind the scenes for some general programming work, too. The best thing is your PHP will be 100% cross-platform (ie. will work on Mac-PPC, Mac-Intel, Windows, OS/2, Linux, etc.) excepting of course any calls you make to specific other programs of one system. There's also GUI frameworks such as PHP-Tk that you can use to build non-native GUI programs based on purely PHP code (again, cross-platform compatible thanks to using Tk instead of Cocoa).

So if your head hurts thinking about C, C++, C#, Objective-C, and Objective-C++, PHP may be a good way to get into programming.

Supa_Fly
Jul 5, 2005, 01:28 PM
PHP is a good language to know, especially for web development. But thanks to Safari and now Dashboard (in MacOS X 10.4) you could use PHP behind the scenes for some general programming work, too. The best thing is your PHP will be 100% cross-platform (ie. will work on Mac-PPC, Mac-Intel, Windows, OS/2, Linux, etc.) excepting of course any calls you make to specific other programs of one system. There's also GUI frameworks such as PHP-Tk that you can use to build non-native GUI programs based on purely PHP code (again, cross-platform compatible thanks to using Tk instead of Cocoa).

So if your head hurts thinking about C, C++, C#, Objective-C, and Objective-C++, PHP may be a good way to get into programming.

PHP it is, and also gonna start on C++ & Objective-C. Funny thing is for programming apps I'm not even sure which application to work on, but for PHP it'll be for web & phone usuage. Streaming. Thanks freiheit!

@caveman_uk, this past weekend I helped my mother move, and for so many years with lack of communication, we talked. STill fought though, as usual. But I found out that she took a few courses in Cobol ?!! :eek:

If she can do so can I.

hhlee
Jul 5, 2005, 02:38 PM
Ok I've programmed in Fortran (not very efficiently). However, if I were to code in obj-c how does these to compare... I've always understood that fortran is more for engineers (which I am) however what kind of comparison is this to obj-c? I'm looking to possibly write programs (more or less modeling e.g. atmospheric transport) which requires numerical integration and such.

What do you guys suggest...

Nuc

Matlab. Yeah, its slow but great to prototype on, lots of built in functions. Once you get your program running, if its too slow (which Matlab is, but it might be okay for your time scale) port to something fast like C

lgoss007
Jul 6, 2005, 09:35 AM
In addition to what was mentioned, here is a faq about the C++ language from it's creator http://www.research.att.com/~bs/bs_faq.html. There is some comments about C, Java, and C# there as well as some other faq's about the language. C++ is very good for low level programming (drivers), high performance games (like WoW, Unreal, etc.), and general programs as well (I prefer it to Java).

C# is a .NET language, not to be confused with the Internet (.NET is just a marketing name by Microsoft). It's a language for the .NET platform just like Java is a language for the Java platform, only the .NET platform only really runs well on Windows (Linux support is improving but lags behind). Look at the section of the faq above titled "Is Java the language you would have designed if you didn't have to be compatible with C?" and the one right after it "What do you think of C#?".

And as far as assembling code, well it helps a little to understand but don't worry about it yet. With more experience (and reading the right material) you'll be able to understand more of what is done by the compiler, but it's not really necessary right away. Though you could take a peek at the assembly language itself: http://www.xs4all.nl/~smit/asm01001.htm

pubwvj
Jul 11, 2005, 02:34 PM
If you are looking for something career related (eventually) and cross-platform. Look no further than Java.

Ahh... No... Not Java!!!! Argue, Gasp, Groan...

(The hardware keeps getting faster and faster but the user experience is still dogged because people choke their programs at too high a level.)

medievalist
Jul 11, 2005, 03:52 PM
If you already know Java - how difficult is it to pick-up Objective-C ? Is that the only option for writing OS X apps with a nice GUI?

Cheers

Using Xcode and the Interface Builder you can put a gorgeous Mac OS X interface on Unix shell scripts, AppleScript, Perl scripts, Java, Objective C, Fortran . . . it doesn't matter.

medievalist
Jul 11, 2005, 03:58 PM
I call myself a power user, i am able to pick up things pretty quickly, and am good at learning things. I really would love to learn how to program, just so i have another skill under my belt, and maybe could get a job one summer. I am in highschool, is it to late to learn? What is the most beneficial language

Asking programmers what the best language is like asking a room of devoutly religious people what the best religion is <g>

If I were you, I'd start by fooling around with AppleScript; there's lots of information on Apple's site, you've got the AppleScript editor, and if you installed the developer's tools, you've even got AppleScript Studio. You can learn enough about programming from AppleScript to see if you're interested in going farther--you might detour to javascript, and explore using Javascript, HTML and CSS to build a couple of Widgets. You could then think about learning either Perl (which I confess I hold dear, but I'm a textual scholar--Perl was invented for folk like me) or RealBasic, or Java.

Once you're eighteen, get a hundred bucks together and join Apple's Developer organization as a student developer, then apply in spring for a scholarship to WWDC; it's a great way to learn a lot of stuff.