Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
ddtlm said:
Cause it was made by MS. Does it even run on Macs? Meh, even if it did why would anyone not MS-centric choose it over something like C, Java, Ruby, etc...
C# does, in the form of Mono, spearheaded by Miguel de Icaza.
http://go-mono.org
They have an OS X installer if I'm not mistaken. if they dont you can use fink or dports to install.
Umm C# is okay I suppose. I learned C, Java, miscellaneous tidbits of other languages like brain****...C# might be a tad difficult to begin with though.

I'd suggest starting out with Objective-C maybe? Or just a scripting language, something simple.
Try Hillegass's Cocoa Programming for Mac OS X or Kochan's Programming in Objective-C, both highly recommended over ANY of the O'Reilly obj-c/cocoa/macosx in general books.

Learning Ruby right now. It's one sweet language :)
 
übergeek, thanks for recommending the Hillegass books, i'll check it out.

i never thought about learning PHP and then making gadgets... hhmmm... that might be alot better for me...
 
One thing I have not seen asked is:

( in the voice of the cheshire cat ) What do you want to write?

If you don't know, then it really doesn't matter what language you learn.


One thing I would HIGHLY RECOMMEND is a subscription to the MacDeveloperJournal(.com)

Max.
 
brap said:
I'd start with Visual Basic under VPC.

No, don't laugh. it's the quickest, simplest way of getting the hang of the constructs and principles you need to be able to know as second nature whilst programming. It's also still developed, and the speed tradeoff with C++ is negligible today. outside :D

i liked visual basic in school and i don't care if bill gates owns something like 13 languages, and many other companies that develop code...in the end it's all the same after awhile, one language to the next as some hard core programmers tell me
 
well if it doesn't run on Mac, then it's not too good for me... as for being a nitghtmare - when i spoke to one of the lecturers, he was kind of like, WTH? :p :D

i guess i should stick with more of a web-centric language like PHP or something like that. i really should be focusing more on learning video editing and SFX more than coding...
 
Here's ,my experience with languages and programming:

Started with Pascal: Yuck yuck yuck. Didn't like all the wierd rules n'stuff. My first Language and was dissapointed... maybe it was my teacher...

Learned C: This is what I should have learned in the first place because its so similar to Pascal, I felt I wasted my time re-learning more complicated but similar syntax and types etc... but C felt much better than Pascal thats for sure. Just make sure you get Pointers and pointer arithmetic understood perfectly!! Its the most important aspect, that and memory allocation and deallocation being done correctly. Bit-wise operations are also very handy/powerful/fast but hard to read sometimes. C is very powerful.

Third, learned C++: I said ahhh, this is awesome, I think I'll just use C++ objects as the base of any apps I make and have the GUI in platform specific code (like objective-c). Plus, I got the idea of objects, and the idea of funtion overloading + subclassing + streams... liked streams, didn't get multiple inheritance... (what if two objects have the same function?) Either way, I thought, "What a smart language C++ is, its fast, object oriented, platform neutral."

Moved to Java: I thought wow! Forget C++!! This is so much more fun and elegant, liked the idea of types actually being objects (numbers for example), decided everything I do would be in Java (garbage collection seemed nice (automatic freeing of memory), if slow) and the way things operated, I liked it alot, thought I could write code once, and deploy it on a desktop and a web page too, like that even more.

Lastly, tried Objective-C: I thought, this is even better than Java!! I really really liked the fact that in the syntax, methods a separate from the objects they call, so for example instread of calling object.doSomething() you call [object doSomething]; this makes the syntax so different than C you dont get confused, and I really hated the syntax of C/C++ functions TBO. Also, since methods (functions) are "sent" not called to objects, its entirely possible to send calls to objects that don't understand them and not have the app crash (this would be impossible in pure C++ without workarounds) and in fact, if an object doesn't understand a message, it can forward it somewhere else! I thought WOW! Way better! Then the idea of typlessness (id as a void object pointer) was great because any object could take the place of another as long as it implemented the methods needed AT RUNTIME. Many things about cocoa itslef, too made me like it so much, its designed very very well, and its a shame its not available on other platforms, but maybe thats the point. Anyways, as a person who has gone from zero knowledge and therefore zero prejudice and through 4 languages I think Objective C is clearly the most "Fun" yet powerful. I was also glad that Objective C was just completely implemented in C itself, and was an object system purely based in C not just "on" C, and non-proprietary like say VB, even though cocoa may be.

Anyways, here's my conclusion:

Pascal, blah.

C, YOU MUST KNOW C even if it is so confusing, just go slowly until you get it.

C++, very practical if even more messy than C. Its a fine object system, even if heavily typed, which is good and bad.

Java, very nice, fun, slow. I dont like VMs, and I don't like Garbage Collection (slower, and I wanna know whats going on with my objects)

Objective-C, absolutely simple, the most simple OO language based on C I have studied, yet the most flexible and powerful. Can be heavily typed, or typeless, no multiple inheritence (I don't like it anyways - messy), fragile base class problem is mostly a non-issue etc.Memory management is completely up to the implementor, in cocoa its reference counting (I think a good compromise). Its just great to use, and you can use C++/Java objects from it as well, which is double nice. You can program in straight C all you want in Objective C without constraint, I liked that too.
You can load a plug-in with one line of code! One line! Less code to write == less bugs on your side.

In the end I, as you can tell, found Objective-C to be the best for me... Java is good, and C++ is fine, but Objective-C has the flexibility of C without the "hairballs"; fragile base class scared me away from C++ I hear Ruby and Python are also very good, but haven't tried them lately. C# seems interesting, but I dislike the C++/Java like syntax... a lot.

Anyways, Good luck.
 
Nermal said:
Delphi is a nightmare :eek:

VB.net is easy to learn, as powerful as C++, and only runs on Windows :(

But Delphi also only runs on Windows.

I'm not sure what you're using as a basis to call Delphi a nightmare but it's hardly that. If I have to do fill-in-the-blank programming, I'd rather use a Borland environment. They're consistent and the documentation is nearly complete. If those were traits of any Microsoft environment in the last 28 years, I'd be shocked. Visual BASIC is the nightmare.
 
Dun Dun DUNNNNN

Has anyone heard of COMAL? It is the programming language that we get taught at school. I don't think it is very popular, here is some syntax:

counter:=0
REPEAT
counter:=counter+1
PRINT counter
UNTIL counter=10

You insert internal commentary by doing '//' i.e.

//This displays the word 'Hello'
PRINT "Hello"

I've found a website of a book that we use at school. It has files for the COMAL, C and TrueBasic programming environments for you to download.

Find it here: http://www.newhighercomputing.co.uk/mac.htm

Can anyone tell, by the syntax that I have typed, if COMAL is close to any other programming language? Also, I recently installed Xcode, it looks a little daunting. What programming languages can you implement in Xcode?

Thanks in advance.

Shaun.
 
FearFactor47 said:
Has anyone heard of COMAL? It is the programming language that we get taught at school. I don't think it is very popular, here is some syntax:

counter:=0
REPEAT
counter:=counter+1
PRINT counter
UNTIL counter=10

You insert internal commentary by doing '//' i.e.

//This displays the word 'Hello'
PRINT "Hello"

I've found a website of a book that we use at school. It has files for the COMAL, C and TrueBasic programming environments for you to download.

Find it here: http://www.newhighercomputing.co.uk/mac.htm

Can anyone tell, by the syntax that I have typed, if COMAL is close to any other programming language? Also, I recently installed Xcode, it looks a little daunting. What programming languages can you implement in Xcode?

Thanks in advance.

Shaun.

It's almost exactly like Pascal, except that comments are surrounded by {} or (**) pairs.

Xcode supports projects for C, C++, Objective-C, and Java but the editor also understands the various scripting languages well enough to check the balance of paired items.
 
I have used BASIC, C, C++, and Java. Java is the latest I have been using. And I feel its a great language even if you are just starting programming.

cheers
 
jefhatfield said:
...in the end it's all the same after awhile, one language to the next as some hard core programmers tell me
i dunno about the bill gates thing...but yeah in the end its not that hard to learn a new language once you have one under your belt and you know it well.
Doesnt work with all languages, but if you know for example C++, Java won't be difficult to learn, and if you know C or Java, Objective-C isnt too hard to learn. You already have a foundation on which to build on. A real language comparison might be, for example, if you know a language like Spanish already, it becomes easier to learn French because they have many similarities. Yeah. mmm.
 
whooleytoo said:
Java is (IMO) a very easy to learn development language/environment. It's syntax is very similar to C, so it should be relatively easy to move between the two.

I agree, LEARN OBJECT ORIENTED LANGUAGES!! (PHP 5, C++, Java, VB.net, etc).

Java's an awesome language to start on because it has datatypes, is object oriented, works on any platform, and has a bunch of cool libraries included that allow you to build an interface and draw stuff.

If you learn java, you'll be good for TONS of languages.
 
I think a point that several people touched on is, there's a progression. Some languages are better for when you're first learning the concepts, and others give you greater capabilities, for when you've got the basics down pat, and are wanting to expand.

My recommendation is start with a language that is simple, has strong typing, and is sufficiently close to the machine, that you will understand how the machine works, and how your code affects it.

I know this will sound totally uncool, but what I'm recommending is that you start with C and/or assembler. Once you've learned how the machine works with assembler, and how structured programming works with C, then move on to learnnig object oriented programming with C++ or Java or objective-c.

Do not start with a weakly typed language, where you can sort of fudge things until 'they work', like a scripting language. Use a compiled language. Yes, you will have to sit on your ass while it compiles, but guess what, then you'll learn to solve the problem in your head, and not just edit until it stops giving errors.

I'm in computer science, and I've programmed for 8 years or so. I've seen a lot of programmers who suck, and I think this is a good strategy to avoid ending up like that.
 
MarkCollette said:
Do not start with a weakly typed language, where you can sort of fudge things until 'they work', like a scripting language. Use a compiled language. Yes, you will have to sit on your ass while it compiles, but guess what, then you'll learn to solve the problem in your head, and not just edit until it stops giving errors.

Well at least we agree on that.

Whatever you start out with, take it at school! It'll help you understand the important concepts faster, and it'll teach you how to express your problems to other programmers (or reference manuals) if you ever need help (and you will).
 
wow, even more replies. :)

i found out about Delphi, it's a double class at my college, so i'd have to enroll into two more classes for it. well i'm not too keen on that idea... :(

but i've also only got till the end of the year to do it, since i'm leaving college then. i only really wanted to get a taste of it and see what it's like, since i'm already a designer. i've never heard of a designer/programmer. :p it probably will be better for me to do some web-based thing after all.

but do keep discussing all these different languages, i'm finding it very interesting. :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.