LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Should I learn Objective C? (https://www.linuxquestions.org/questions/programming-9/should-i-learn-objective-c-791333/)

CoderMan 02-24-2010 02:23 PM

Should I learn Objective C?
 
Hi. I heard about a language called Objective C the other day, and I was wondering if it was worth my time to learn it. Could any proponents or critics of the language give me any valuable insight on the subject?

My background: I've mostly programmed in C++ and Java, though I also have some background in C, Perl, assembly, and a few other languages. I general, I like "high-level" application programming and am a big OOP fan. I really like the Java programming language, though I'm not such a big fan of the implementation.

My preferences and concerns:
- Is there any proprietary licensing attached to the language or its implementation?
- I love garbage collection when it is transparent and easy to use
- a very natural OOP interface.
- I rely heavily on polymorphism
- enough community library support to create graphical games and applications in a Linux environment

pixellany 02-24-2010 02:34 PM

There is a standard answer to questions like this:
If you don't know why--or whether--you need something, then you probably don't need it.

I tend to learn languages only to solve specific problems. I do often just dabble out of curiousity, which you could certainly do. But, if you don't have lots of free time, stick with letting the problem come first.

CoderMan 02-24-2010 02:58 PM

Quote:

Originally Posted by pixellany (Post 3875484)
There is a standard answer to questions like this:
If you don't know why--or whether--you need something, then you probably don't need it.

I tend to learn languages only to solve specific problems. I do often just dabble out of curiousity, which you could certainly do. But, if you don't have lots of free time, stick with letting the problem come first.

Well, I need /some/ language to do my programming in. Java is nice, but it kind of sucks that the implementation is proprietary. I could keep programming in C++ forever, of course, but if there is a better option for my needs, I'm open-minded. I found out about Objective C when I was looking into implementing garbage collection in C++, but before I dive head first into Objective C I would appreciate any pros or cons from people that actually have some background using it.

MTK358 02-24-2010 03:23 PM

I was also considering Objective-C because I both want a low-level OO language, and because I think C++ sucks because of it's confusing syntax and duplication of C's features.

So I would also like to know if Obj-C is any better for general Linux programming, the reasons I'm hesitant the way it is so related with Apple and this "*step" stuff I don't understand, and because I can't find any good tutorials.

Sergei Steshenko 02-24-2010 03:27 PM

Quote:

Originally Posted by CoderMan (Post 3875510)
Well, I need /some/ language to do my programming in. Java is nice, but it kind of sucks that the implementation is proprietary. I could keep programming in C++ forever, of course, but if there is a better option for my needs, I'm open-minded. I found out about Objective C when I was looking into implementing garbage collection in C++, but before I dive head first into Objective C I would appreciate any pros or cons from people that actually have some background using it.

There is free/open source Java implementation.

Isn't Objective C widely used by Apple ?

vbx_wx 02-24-2010 05:36 PM

if u own an iPhone,then learn it so u can make your own aplications ;)

vxc69 02-24-2010 05:40 PM

Quote:

Originally Posted by vbx_wx (Post 3875700)
if u own an iPhone,then learn it so u can make your own aplications ;)

I second that. Some ppl make $600 a day on iphone apps.

CoderMan 02-25-2010 01:19 AM

Quote:

Originally Posted by Sergei Steshenko (Post 3875545)
There is free/open source Java implementation.

If this be the case, please make divulging the details the priority of this thread. I am still very new to Java, but I was under this distinct impression: the Java language itself can be used freely, and there is even a FOSS version of the development kit, but the Virtual Machine itself is quite the property of Sun and cannot be legally distributed in a modified form, meaning that ultimately proprietary software must be used in order to run Java code. But if I am the slightest bit mistaken on the point, I will gladly herald my ignorance and have my misconceptions corrected.

CoderMan 02-25-2010 01:40 AM

Merciful heavens, there are some clean-room JVMs! I'm installing one now call "kaffe". I hope it works as it should. But I wonder if any of these can be used for in-browser applets... would I need to find new browser plugins?

Sergei Steshenko 02-25-2010 02:36 AM

Quote:

Originally Posted by CoderMan (Post 3875999)
If this be the case, please make divulging the details the priority of this thread. I am still very new to Java, but I was under this distinct impression: the Java language itself can be used freely, and there is even a FOSS version of the development kit, but the Virtual Machine itself is quite the property of Sun and cannot be legally distributed in a modified form, meaning that ultimately proprietary software must be used in order to run Java code. But if I am the slightest bit mistaken on the point, I will gladly herald my ignorance and have my misconceptions corrected.

I am not a Java guy; I remember that a couple (?) years ago RedHat got Java stack (based on 'gcc' Java backend) certified. I.e. the whole open source Java stack got certified.

ntubski 02-25-2010 09:40 AM

Isn't Sun's implementation open source as well?

Java (software platform)
Quote:

On November 13, 2006, Sun Microsystems made the bulk of its implementation of Java available under the GNU General Public License[1], although there are still a few parts distributed as precompiled binaries due to copyright issues with Sun-licensed (not owned) code.[2]

paulsm4 02-25-2010 01:13 PM

Objective C is a *great* alternative to C++!

http://en.wikipedia.org/wiki/Objective_C

Also take a look at GNUStep:

http://en.wikipedia.org/wiki/GNUstep

So the answer to your question is:

"Yes! By all means - go for it!"

IMHO .. PSM

MTK358 02-25-2010 02:52 PM

But anyway, WHAT is GNUStep, and everything else *Step?

paulsm4 02-25-2010 03:40 PM

Hi, MTK358 -
Quote:

Q: But anyway, WHAT is GNUStep, and everything else *Step?
Among other things, "NextStep" was what Tim Berniers-Lee used to write the very first web browser:

Quote:

http://www.w3.org/People/Berners-Lee/WorldWideWeb.html
http://www.boutell.com/newfaq/history/fbrowser.html

I wrote the program using a NeXT computer. This had the advantage that there were some great tools available -it was a great computing environment in general. In fact, I could do in a couple of months what would take more like a year on other platforms, because on the NeXT, a lot of it was done for me already. There was an application builder to make all the menus as quickly as you could dream them up. there were all the software parts to make a wysiwyg (what you see is what you get - in other words direct manipulation of text on screen as on the printed - or browsed page) word processor. I just had to add hypertext, (by subclassing the Text object)

MTK358 02-26-2010 08:53 AM

I still don't get what it is. Is it a desktop environment, an API, an compiler, a "pre-compiler", an IDE, or some strange mixture of the above?


All times are GMT -5. The time now is 08:24 AM.