Register FAQ / Rules Forum Spy Search Today's Posts Mark Forums Read
Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Sep 6, 2010, 08:48 AM   #1
MacBookUK
Banned
 
Join Date: May 2010
Location: UK
Programming Languages for Beginners

I would like to learn a programming language for writing software/apps. I do not have any programming experience, just a bit of web stuff HTML & Java Script. What would you recommend as to language and compiler?
MacBookUK is offline   0 Reply With Quote
Old Sep 6, 2010, 08:49 AM   #2
Hansr
macrumors 6502a
 
Join Date: Apr 2007
C
Hansr is offline   0 Reply With Quote
Old Sep 6, 2010, 09:50 AM   #3
foidulus
macrumors 6502a
 
Join Date: Jan 2007
All depends on your goals. If you want to do programming for a living definitely learn C first. You may not necessarily use it ever again, but learning C will give you a good idea(and appreciation for!) of what the other, higher level languages are doing.

Once you have a firm grasp of C the world is your oyster, you can try to tackle one of the "scripting" languages such as python or ruby. Though first you may want to familiarize yourself a little bit with OO programming that is a bit more like C, in that case I would recommend Java, Objective-C or, shudder to say, C#. They have a very C-like syntax while still being object oriented.

After that languages like Python and Ruby can be a dream, and since you have a firm understanding of what is going on underneath the covers you are probably more likely to avoid some of the performance pitfalls that novices can fall into....

That being said, if your goal is to just write a couple of basic utilities/applications, Python or Ruby is the way to go. As long as you don't try anything too complex you can do a lot with them without having to really know what they are doing underneath the covers. It's only when you really get into the large-scale stuff that you have to be careful with those languages.

Anyway, I've ranted on, whatever you pick just stick with it.
foidulus is offline   0 Reply With Quote
Old Sep 6, 2010, 03:01 PM   #4
larswik
macrumors 65816
 
Join Date: Sep 2006
I was where you are a few years ago. I first asked what was the easiest language to learn for a beginner? Most people said Python. After learning the majority of Python I switched to objective C and much of what I learned in an easier language like Python applied to Objective C which makes learning a more complex language easier.

-Lars
larswik is offline   0 Reply With Quote
Old Sep 6, 2010, 05:41 PM   #5
smetvid
macrumors 6502
 
Join Date: Nov 2009
Lars it is interesting to hear you say that. I have used a bit of Python in the past with most of my experience with Lingo (Macromedia Director), Actionscript and Javascript. I have found Objective C to be very different then Python which always made a lot of sense to me. Maybe I'm just not looking at it with the correct mindset yet.

Of course I have not spent a lot of time with Objective C yet. One of these days if work ever gets slow I want to try to wrap my brain around it a bit more. Any good references you know of that compares Python or Javascript to Objective C?
__________________
2011 17" MBP 2.2 Ghz - 16 GB iPad 1 - As a designer I love Apple and Adobe equally. So lets all stop the hate.
smetvid is offline   0 Reply With Quote
Old Sep 6, 2010, 07:13 PM   #6
larswik
macrumors 65816
 
Join Date: Sep 2006
When I picked up Python I knew nothing at all about programing. That introduced me to things like variables, IF statements, arrays and so on. When I started with objective C they had all these same things that I learned from scratch in Python. We are talking real basic stuff but it worked for me. My challenges now are things like SELF and pointers that I am learning. People here are great in terms of helping understand.

-Lars
larswik is offline   0 Reply With Quote
Old Sep 6, 2010, 07:50 PM   #7
ianprime0509
macrumors newbie
 
Join Date: Aug 2010
Python is great as a starter and Objective-C is great for writing actual applications (after you've learned the foundations of programming)

Oh yeah, and Java is also pretty good if you don't like some of the more complex C stuff like pointers, but it's not that hard anyway.
ianprime0509 is offline   0 Reply With Quote
Old Sep 6, 2010, 08:13 PM   #8
miles01110
macrumors 604
 
miles01110's Avatar
 
Join Date: Jul 2006
Location: The Ivory Tower (I'm not coming down)
Tcl/Tk
__________________
Got a problem? Check here first.
miles01110 is offline   0 Reply With Quote
Old Sep 7, 2010, 06:01 AM   #9
kevin.horgan
macrumors newbie
 
Join Date: Jul 2009
Well if you are starting out you may already have some ideas what type of programming your want to do. For example programming for the web (SAAS apps etc), iPhone or Mac programming, Corporate enterprise programming etc.
This might then determine the best language to learn first. So for the Mac I would suggest Objective-C. For Web and SAAS apps take a look at Python ( with Django). For Corporate I would suggest Java or C# would be great.

If you have no specific idea today then I would suggest a language which gets you up to speed fairly quickly such as for example Python.

C has been mentioned above and is an excellent language and you will find the syntax in other languages such as Java, C#, Objective-C. So it makes a great basis to learn about programming and to learn other languages. But if you have a specific need you might find the demand for pure C programmers in that sector is limited, for example in the Corporate world you will likely find much more C# or Java work than C work.

Good luck.

Kevin

PS my first language was BASIC on a DEC PDP 11/70 but I still managed to learn the languages above as I needed them during my career so maybe the important thing is just to learn a language and not worry too much about which one first.
kevin.horgan is offline   0 Reply With Quote
Old Sep 7, 2010, 08:55 AM   #10
balamw
Moderator
 
balamw's Avatar
 
Join Date: Aug 2005
Location: New England, USA
Quote:
Originally Posted by kevin.horgan View Post
for example in the Corporate world you will likely find much more C# or Java work than C work.
You'll find straight C quite often in embedded systems where the overhead of C# of Java for portability would not be appropriate.

Quote:
Originally Posted by kevin.horgan View Post
PS my first language was BASIC on a DEC PDP 11/70
I learned BASIC on three platforms: PDP/11, Apple ][ and HP-85 (In the years between 7th and 12th grade). (I also learned LOGO and UCSD Pascal shortly thereafter).

I would not recommend BASIC of any kind as a first language to anyone today though. It tends to reinforce sloppy habits. (I don't have enough Python experience to know if it is as fast and loose).

B
__________________
MBA (13" 1.7 GHz 128GB), UMBP (15" SD 2.8 GHz), UMB (13" 2.4 GHz), iMac (17" Yonah), 32GB iPad 3 WiFi+LTE, 64 GB iPad WiFi, 32 GB iPhone 5, Airport Extreme
balamw is offline   0 Reply With Quote
Old Sep 7, 2010, 10:59 AM   #11
milbournosphere
macrumors 6502a
 
milbournosphere's Avatar
 
Join Date: Mar 2009
Location: San Diego, CA
Quote:
Originally Posted by Hansr View Post
C
+1. It's really too bad that this isn't the gateway language at my program any more. It's sad to see all of the now-sophomores and juniors scrambling to learn C when they reach the upper-level courses, and have to use it effectively.

C is really good to learn. It's lower level, but it isn't Assembly language. I would use C as a gateway language into Java, C++ and objective C.
milbournosphere is offline   0 Reply With Quote
Old Sep 7, 2010, 11:19 AM   #12
mac2x
macrumors 65816
 
Join Date: Sep 2009
Quote:
Originally Posted by milbournosphere View Post
+1. It's really too bad that this isn't the gateway language at my program any more. It's sad to see all of the now-sophomores and juniors scrambling to learn C when they reach the upper-level courses, and have to use it effectively.

C is really good to learn. It's lower level, but it isn't Assembly language. I would use C as a gateway language into Java, C++ and objective C.
At my school the intro to programming course is C (which I'm taking now), and the next course up is Java. I'm loving C because I've had exposure on my own time to C++ and Obj–C, but I've never grasped the basics as well as I have even with just a couple of classes under my belt.
__________________
Retina MBP | 2.6 GHz i7 | 16 GB RAM

Gaming Rig | Core i7-2600K | 16 GB RAM | 160 GB OCZ Agility 2 | EVGA GTX 770 SC | Windows 7 Pro x64 | ASUS VG248QE
mac2x is offline   0 Reply With Quote
Old Sep 7, 2010, 12:40 PM   #13
firewood
macrumors 603
 
Join Date: Jul 2003
Location: Silicon Valley
Good programmers know multiple languages. Therefore you do not need to start with the language(s) that you will eventually use, or even a useful language.

I recommend starting with a "toy" language. Or at least an interpretive language with imperative output. After you've figured out all the basic programming tricks and it seems too easy (may take a day or two, may take forever, YMMV), then you can move on ("up").

Squeak (Smalltalk, Scratch, Alice) seems to be a good starter language leading to some of the ideas behind Objective C. I'm personally a big fan of old-fashioned Basic, as many great programmers I know started with it.
firewood is offline   0 Reply With Quote
Old Sep 7, 2010, 01:38 PM   #14
smetvid
macrumors 6502
 
Join Date: Nov 2009
I just recently read that C can be used to make iDevice apps. Is this true? My understanding was that Objective C has to support everything in C but of course not the other way around. So in theory you could write an app 100% in C although that may not be the best solution. Do people write apps in C and if so is there really that much of a performance hit?
__________________
2011 17" MBP 2.2 Ghz - 16 GB iPad 1 - As a designer I love Apple and Adobe equally. So lets all stop the hate.
smetvid is offline   0 Reply With Quote
Old Sep 7, 2010, 01:53 PM   #15
firewood
macrumors 603
 
Join Date: Jul 2003
Location: Silicon Valley
Quote:
Originally Posted by smetvid View Post
I just recently read that C can be used to make iDevice apps. Is this true? My understanding was that Objective C has to support everything in C but of course not the other way around. So in theory you could write an app 100% in C although that may not be the best solution. Do people write apps in C and if so is there really that much of a performance hit?
iOS apps in C can actually perform better (for the non UI non OOP stuff). However all of the Cocoa Touch UI interaction and display requires Objective C (unless you want to manually call into the framework around the runtime using method pointers). Some apps requires no almost no Cocoa UI, and thus can be written completely in C, except for a few pages of Objective C wrapper code. Some C/Open GL games have been ported this way.
__________________
Apple II+, Mac 128k->512ke, Duo 210, MacBook Air 11, iPhone 5, iPad Mini Retina
firewood is offline   0 Reply With Quote
Old Sep 7, 2010, 02:06 PM   #16
brianfast
macrumors regular
 
Join Date: Jun 2010
You can even make most of your application for an iOS device in C++ if you want, but I would only recommend doing this if you are porting something...

Also +1 for C/C++
brianfast is offline   0 Reply With Quote
Old Sep 7, 2010, 02:29 PM   #17
ulbador
macrumors 68000
 
ulbador's Avatar
 
Join Date: Feb 2010
I'm a big fan of PHP as a starting language. Sadly it can make for some REALLY bad programming habits because of how lose it is in its syntax and typing.
ulbador is offline   0 Reply With Quote
Old Sep 7, 2010, 10:45 PM   #18
Les Kern
macrumors 68030
 
Les Kern's Avatar
 
Join Date: Apr 2002
Location: Alabama
Depends on what you want to accomplish. I decided on RealStudio because of it's ease of cross-platform functionality (which I required) and excellent online resources. It's been pretty lucrative for me, so I have zero complaints. I was less interested in making Mac-Only software than I was in tapping the overwhelming numbers of PC users, i.e. moolah.
That being said, perhaps I should have spent more spare time learning how to make iPhone/iPad apps. Maybe I would have hit on a winning app... but maybe not. You need to identify your market first and go from there.
Les Kern is offline   0 Reply With Quote
Old Sep 7, 2010, 11:37 PM   #19
Cromulent
macrumors 603
 
Cromulent's Avatar
 
Join Date: Oct 2006
Location: The Land of Hope and Glory
Quote:
Originally Posted by Les Kern View Post
Depends on what you want to accomplish. I decided on RealStudio because of it's ease of cross-platform functionality (which I required) and excellent online resources. It's been pretty lucrative for me, so I have zero complaints. I was less interested in making Mac-Only software than I was in tapping the overwhelming numbers of PC users, i.e. moolah.
That being said, perhaps I should have spent more spare time learning how to make iPhone/iPad apps. Maybe I would have hit on a winning app... but maybe not. You need to identify your market first and go from there.
If you want cross platform compatibility and want to use a BASIC dialect I just don't understand why anyone would want to use RealStudio when Mono offers Visual Basic (with very good support for .Net 2.0) and is free. Plus it also has a great IDE (MonoDevelop) which is also cross platform.
__________________
Neural Advance - Mac OS X, UNIX and Windows Development
Last.fm Profile | Extreme Metal Reviews
MP 4x 2.66Ghz Xeons / 6GB RAM / 640GB + 500GB + 750GB + 1TB HDDs / ATI Radeon 4870 / iPad 3
Cromulent is offline   0 Reply With Quote
Old Sep 8, 2010, 12:35 AM   #20
Les Kern
macrumors 68030
 
Les Kern's Avatar
 
Join Date: Apr 2002
Location: Alabama
Quote:
Originally Posted by Cromulent View Post
If you want cross platform compatibility and want to use a BASIC dialect I just don't understand why anyone would want to use RealStudio when Mono offers Visual Basic (with very good support for .Net 2.0) and is free. Plus it also has a great IDE (MonoDevelop) which is also cross platform.
Indeed, why? Years ago it wasn't as sophisticated as I wanted, and still may not be. but I don't care now as my business is built around RS. Like you appear to be, I am amazed to see some try to learn C++ in order to make nothing. To each their own. Mono would be considered if years ago were now. Moreover, the poster asked for input and I gave a success story and another option for them to look into. Comments back on what I used was NOT asked for, certainly not by me.

Last edited by Les Kern; Sep 8, 2010 at 07:59 AM.
Les Kern is offline   0 Reply With Quote
Old Nov 23, 2010, 01:33 AM   #21
Chrome
macrumors newbie
 
Join Date: Jan 2003
Location: I don't.
Quote:
Originally Posted by Les Kern View Post
Depends on what you want to accomplish. I decided on RealStudio because of it's ease of cross-platform functionality (which I required) and excellent online resources. ...
...I was in tapping the overwhelming numbers of PC users, i.e. moolah.
What?!
Pardon replying in oldish thread. I was reading here because though I started with BASIC and 6520 ASM, did minimal C on Amiga and Mac, and have done a bit of PERL and JavaScript, I haven't done anything "serious" in some years and I'm having a lousy time getting my head around Objective C, Cocoa, and XCode in one gulp!

I've been looking for something pretty powerful but less intimidating and came across Real Basic, (okay Real Studio). Looked promising but I have to disagree with the resources being adequate for it. That wiki is a rotten excuse for documentation when you're just trying to learn the language, and it seems that other than forums, they have no other documentation.

I need some good reference in front of me and all I see are a couple outdated books and the horrifically annoying wiki. It's supposed to allow downloading as PDF but not in any really organized way, and a lot of the material is messed up in translation, besides it's structure being so... scattered. The code samples I've seen have been pretty... unhelpful as well. XCode/Cocoa's looking better as I try to explore Real Studio, but that's so overwhelming.

I can't believe they want $1000 for the cross-platform "Enterprise" version of Real Studio when they don't even have any decent printed/printable documentation, or am I missing something?
__________________
 Mac Pro 1,1 - 2.66 GHz - 7 GB RAM - OS X.6.5
Chrome is offline   0 Reply With Quote
Old Nov 23, 2010, 02:51 AM   #22
xStep
macrumors 68000
 
Join Date: Jan 2003
Location: Lost in Minneapolis
Quote:
Originally Posted by Chrome View Post
...and I'm having a lousy time getting my head around Objective C, Cocoa, and XCode in one gulp!
Generally people recommend you learn Objective-C first. A highly recommened book is Programming in Objective-C 2.0. I see the 3rd edition is scheduled for a February release.
xStep is offline   0 Reply With Quote
Old Nov 23, 2010, 04:18 AM   #23
Amuraivel
macrumors member
 
Join Date: Jan 2006
My vote:

Java

1. strongly typed;
2. Object-oriented
3. cross-platoform



I've done plenty of projects without any C. I do think if you want to be a professional, C might be useful, as a hobbyist Obj-C and Java will get you results much quicker.
Amuraivel is offline   0 Reply With Quote
Old Dec 3, 2010, 09:22 PM   #24
Littleodie914
macrumors 68000
 
Littleodie914's Avatar
 
Join Date: Jun 2004
Location: Rochester, NY
Quote:
Originally Posted by Amuraivel View Post
My vote:

Java

1. strongly typed;
2. Object-oriented
3. cross-platoform



I've done plenty of projects without any C. I do think if you want to be a professional, C might be useful, as a hobbyist Obj-C and Java will get you results much quicker.
I would have to agree.
  1. Unless you're learning the language for a specific purpose, you should learn a language that makes it easy to complete fun/creative tasks without having to worry about managing memory, fighting against often-terse syntax, etc.
  2. Java's strong object-oriented 'feel' makes it easy to work with OO design patterns, which are often nearly impossible to learn in C.
  3. Lets be honest. Machines are getting faster by the minute, and pretty soon the necessity of using C for embedded systems will disappear, and the language will follow closely behind.
Littleodie914 is offline   0 Reply With Quote
Old Dec 3, 2010, 09:46 PM   #25
ulbador
macrumors 68000
 
ulbador's Avatar
 
Join Date: Feb 2010
First decide on the purpose, then decide on the language. What do you want to accomplish?

A .NET style language is practically a given if you want to do Windows development. Objective C is a given for Mac based development. If you want to write for cell phones you almost have to write for the phone and in the language you want to target. Java is cross platform so it's always a choice.

When writing for the web, you have a huge number of choices. The bottom line is pick a language that will suit what you want to accomplish.

I hate to see the argument of "learn C" or "learn python" because it will give you a strong foundation. Learn the language that will best accomplish your goal. Because if I'm interested in making an iPhone game and I'm stuck developing "hello world" forms in PHP all day, I will quickly adopt a new hobby.
ulbador is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Mac programming should be more like iOS programming. moonman239 Mac Programming 13 Feb 17, 2014 01:37 PM
Need an Accredited Online Course on Programming Languages ArtOfWarfare Mac Programming 6 Sep 9, 2013 11:30 AM
Bootcamp for beginners NikkiJayne Windows, Linux & Others on the Mac 2 Aug 4, 2012 11:56 AM
Beginners guide prello23 iPad Tips, Help and Troubleshooting 1 Jul 2, 2012 11:11 AM

Forum Jump

All times are GMT -5. The time now is 04:27 AM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC