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

kage207

macrumors 6502a
Jul 23, 2008
971
56
I'm glad this is happening. People should learn how to code. Objective-C is not a bad language to learn with. Yes, there are bracket notation but the dot notation is a little easier to understand how the design is related to objects.

I saw one poster saying that corporations wanted cheap labor. Yes, programmers are expensive. There's not enough of them in the US hence why we export the actually programming in a high level language to India, not the design / pseudocode.

Honestly, knowing how to code and Computer Science are two different things. CS has more to do with the theories of crunching data and designing efficiency around algorithms. CS is a lot harder than just knowing how to program.
 

Dr Kevorkian94

macrumors 68020
Jun 9, 2009
2,175
76
SI, NY
I signed up! I will hopefully learn a little objective-c, I heard it's not to hard to learn after I learning C++ so fingers crossed!
 

gnasher729

Suspended
Nov 25, 2005
17,980
5,565
Objective-C is a **** language to begin with and even moreso for an introductory class on programming.

Please explain your reasoning. And tell us what would be a better language in your opinion.

----------

Absolutely horrible syntax and all but useless outside Apple's environment.
There's a reason CS programs don't use it to teach students, high school kids would hate it even more.

Java and C++ are far better to teach OO principles. And far more useful in the real world.

That's not even diving into the technical aspects of the language, which is beyond the scope of this thread.

You're absolutely full of it.
 

CFreymarc

Suspended
Sep 4, 2009
3,969
1,149
Care to explain why? We'd love to hear the reasoning.

Objective-C has a bizarre history. My best description I give is it's a train-wreck of C++ and Smalltalk. To use the language effectively, you need to now some advanced programming techniques.

Whenever I teach someone coding, I start them off the the classic "Hello world!" app usually in C. Once they get if-test and for-loops down, I teach them functions and pointers. After that, then we move to graphical elements and user input.

----------

FYI, the Boy Scouts of America is starting the Programming Merit Badge next year. The requirements are quite impressive. http://meritbadge.org/wiki/index.php/Programming

It is an extension of the existing Computers Merit Badge that has been around since the '60s. In fact, the first artwork for the computer merit badge was two half circle with one a graphic of a magnetic storage reel and the other a punch card. In the 90's the badge artwork was changes to a generic CRT, desktop PC configuration.
 

horsebattery

macrumors 6502
Sep 24, 2013
314
426
Whenever I teach someone coding, I start them off the the classic "Hello world!" app usually in C. Once they get if-test and for-loops down, I teach them functions and pointers. After that, then we move to graphical elements and user input.

I think that's how my first C course went. Thank goodness we used Java when we worked a bit on GUIs though.
 

hansonjohn590

macrumors 6502
Sep 14, 2013
353
4
Both of you please settle down.
First, Windows has always had way more market share than Mac but that doesn't make it better. Likewise all the iOS apps don't stand as proof alone that Objective-C is a great platform. However the point that teaching people how to use Objective-C might help get them interested in programming is still valid.

Waaaaay back my high school had a tech lab class where we learned about programming, building computers, and troubleshooting computers. Out of 2000+ students, 5 joined the class and 2 of those 5 were attractive girls. Back then there was no explanation that if you learned programming you could be working your own non-core hours wearing whatever clothes you wanted and making twice as much as everybody else.

And this is why I love what I do! Ice and snow outside? Work from home!

Please explain your reasoning. And tell us what would be a better language in your opinion.

----------



You're absolutely full of it.


Why don't you take your own advice and answer quote #1?
 

Azathoth

macrumors 6502a
Sep 16, 2009
659
0
What's the reasoning behind this campaign? Are there not enough people with these skill sets in the pipeline?

And before they embark on a mission to get people to code, have they looked into the reasons why more people don't code already?

+1 - Or how about an hour teaching people the basics of a spreadsheet - much more useful for most people. What we really don't need is a glut of programmer wannabies, that are convinced that just because they know some C syntax, that they somehow know anything about programming.

Or this this the "app-economy" where we're all gonna sell 1 dollar BS apps to eachother? Zero.sum.game.

Heck, welding, woodworking or cooking (with ingredients other than from a box or can) would be 10^6 times more useful to 90% of the kids.
 

captain cadet

macrumors 6502
Sep 2, 2012
417
648
Coding should replace languages like French in schools I feel. Coding will power the future and that forign language will only be useful to one or two people in the whole year. ICT in UK is too focused on word, PowerPoint,excell and so on which I think is rubbish way of going around it. Were coding in college now and it's great but I wished we started at a younger age. 16 is way to old to learn coding and be surfactant at it by going into workforce or university.
This is the only promblem GUI systems have caused, everyone knows how to use GUI but nobody knows coding anymore - even web pages people use wordpress or something simular.
 

KdParker

macrumors 601
Oct 1, 2010
4,793
998
Everywhere
I suppose this is why computer have to be so fast to compensate for such terrible coding & over 100MB for a driver for something.

Horrid bloated code which is not written by REAL programmers, just those who think they can code.

Yes, but those 'who think they can code' keep REAL programmers employed. :)

----------

+1 - Or how about an hour teaching people the basics of a spreadsheet - much more useful for most people. What we really don't need is a glut of programmer wannabies, that are convinced that just because they know some C syntax, that they somehow know anything about programming.

Or this this the "app-economy" where we're all gonna sell 1 dollar BS apps to eachother? Zero.sum.game.

Heck, welding, woodworking or cooking (with ingredients other than from a box or can) would be 10^6 times more useful to 90% of the kids.

This will get some people that otherwise wouldn't venture into coding a start.
 

ctyrider

macrumors 65816
Jul 15, 2012
1,026
594
Sweet, just signed up for my 8 year old. I am sure this will be a good excuse for him to ask for his own MacBook for his upcoming birthday :D
 

Asclepio

macrumors 6502a
Jul 11, 2011
718
315
federighi don't know how to code, lets teach it to him!!!
Submit Reply Preview Post
 

gnasher729

Suspended
Nov 25, 2005
17,980
5,565
Why don't you take your own advice and answer quote #1?

1. Introspection.
2. Polymorphic containers.
3. Built-in support for external storage.
4. Built-in support for inter-process calls.
5. Named parameters.
6. Protocols and class extensions.
7. Built-in Key/value observations.
8. Built-in database support.
 

bbeagle

macrumors 68040
Oct 19, 2010
3,542
2,982
Buffalo, NY
Stay off Wikipedia next time because clearly you have absolutely no idea what you are talking about (though you seem to have mastered the art of copy and paste ;)).

I just love how these forums are made for bullying people and ideas more than discussing them. sigh. :rolleyes:

Someday soon, MacRumors numbers will go down, and they won't understand why, and blame it on something irrelevant, when truly, they should police their boards to allow topics to be discussed, not allow bullying.
 

quietly

Suspended
Aug 13, 2012
4
0
Absolutely horrible syntax and all but useless outside Apple's environment.
There's a reason CS programs don't use it to teach students, high school kids would hate it even more.

Java and C++ are far better to teach OO principles. And far more useful in the real world.

That's not even diving into the technical aspects of the language, which is beyond the scope of this thread.



I have to completely disagree with this. The syntax is outstanding (forcing named parameters does wonders for readability). It has recently started to support boxing/unboxing which Java still doesn't support properly. Does Java have closures?

I think Objective-C is an extraordinary language. ARC is a far superior memory management model compared to Java's as well.

When you talk about OO principles (encapsulation, polymorphism, composition, protocols/duck typing, OOD) I can't think of how Objective-C would be a poor choice in any of those aspects. Wide support is definitely a weakness it does have. Then again, a lot of us were taught Pascal as our training language, and look where that would get us today :)
 

Pyrrhic Victory

macrumors regular
Feb 6, 2012
152
0
I didn't get exposed to programming languages until a few months ago, JS and Ruby. I basically tried learning them myself on codecademy.com. I finished their lessons and understood the basic concept of how OOP works, but I don't have the patience to spend probably a year to reach a sufficient level of competency to be professionally competitive. I am in my late 20s now and ten years ago I probably could have done very well with it if I had taken some classes with a professionally designed curriculum to maximize learning efficiency. But now it's probably too late because I don't have the time to spend learning code rather than working.

Cliff notes: fml
 

Renzatic

Suspended
But now it's probably too late because I don't have the time to spend learning code rather than working.

It's never too late to pick up something new. I know from personal experience what it's like not having enough free time to spend hours going neck deep with the latest thing that interests you, but even half an hour a night is more than enough to actually learn something over an extended period of time. You just gotta do it.

No, you won't be able to get a job in a year learning at that pace. But in two...three years? Who knows? You won't be immediately rewarded, but it could open up new doors for you on down the road.
 

Solomani

macrumors 601
Sep 25, 2012
4,785
10,477
Slapfish, North Carolina
Good initiative. Being able to write just a few lines of code in order to solve things (I assume the emphasis will be on problem solving) is an ability everyone should have.

It is definitely a good initiative. Of course, NOT everyone is going to jump on the code-geek bandwagon, but at least it may increase interest in programming among young Americans.

It's reality that the USA has been falling behind in the sciences (and mathematics), far behind Asian nations.

There was a recent news article a few weeks ago, where the article described a young boy, about 12 years old, who was a genius in robotics and engineering already, interning in a high tech company, and it also stated that he had already written his first iOS program. And instantly, I knew that the boy was NOT a Caucasian. He was an Asian-American…. immigrant parents from India, to be exact.

Simply unfortunate that in the States, the "sciences" (includes anything from biology and chemistry to engineering, physics and computer programming) are considered nerdy and uncool to learn.
 

PinkyMacGodess

Suspended
Mar 7, 2007
10,271
6,226
Midwest America.
Actually, Bieber is out... One Direction is in... And as anyone who tried to get tickets to their concerts this past weekend (for their daughters)? LiveNation and Ticketmaster could use some coding help on their websites...

Apparently One Direction is out now too, at least here. Their dolls are on the clearance rack at the local stores... Things change in a nanosecond now.
 

Reason077

macrumors 68040
Aug 14, 2007
3,648
3,725
Also, the syntax was chosen differently. I prefer the Objective C way.
Syntax example:
C++: dog->bark();
Objective-C: [dog bark];

I agree that there's nothing wrong with ObjC's message passing syntax. It's just different from other C-family languages, not better or worse. (OK, arguably its better because you name the parameters at the call site, but you could also argue that its worse because its more verbose)

But... the problem with this calling style is that it's inconsistent with C. Why do you have to call C functions with func() style but call ObjC ones with [obj doSomething] ? You and I know why, but the bottom line is that it's an implementation detail. The kind of thing that isn't much fun for a beginner programmer.

ObjC has gotten a lot better in recent iterations, with ARC in particular being a huge improvement, as well as little incremental things like collection subscripting and literals, auto-implemented properties, etc.

But its still filled with all kinds of anachronisms. The core libraries aren't particularly modern, so a lot of things that are trivial with other languages aren't easy in ObjC without using 3rd-party libraries.

ARC makes ObjC memory management much more pleasant than it used to be, and is a good compromise in terms of efficiency. Good for apps, but does not completely eliminate memory leaks and does not really scale to the enterprise level (circular references, anyone?)

Types are "somewhat" weak, which is either good or bad for beginners depending on your perspective, but again, there's inconsistencies here.

Theres no support for modern language features like Generics, or even some basic ones like namespaces/packages. And certainly no support for functional programming / lambda expressions (i.e. what all the cool kids are doing now).
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.