Programming - But on Mac ? Need some advice

Hi guys,

So, I recently made a transition from Windows to a Mac and the experience has been awesome so far. To the problem now:

I'll be starting college soon and will be majoring in CS. I'll be learning Python/Java/C and then use of MATLAB in the first year. I thought to make a head-start by learning programming on OS X.

I have been learning and using C++/Java/HTML etc. for the past two years. This was all in Windows. Like, For C++ there was C:/TC/Bin/TurboC and then you started coding in that blue screen. I can program really well (I think so?) in these languages but I don't know where to start in a Mac.

I know programming. I am not asking about that. I just needed to know what are the necessary softwares, applications I would need to but/download (if not inbuilt) to start it on Mac. Where do I need to go first, what do I need to do first. Remember I am a total NOOB in here so please please 'dumb down' your post a bit.

The answers on other forums left me with more questions than I initially had. (Cocoa, texteditor, eclipse, vitualbox, GUI, g++ !!!).

I googled this and stumbled upon this forum. Some threads were particularly helpful (http://www.techenclave.com/mac-os/learning-programming-on-a-mac-133705.html) but I'll be needing more info, of course.

I know this is a lot to ask but I really am hungry to learn anything and everything about programming on OS X. By the time this post is moderated and receives any response, I'll be armed with some more information on this topic

Thanks!!

P.S. If there's already been a thread or a very informative post/link, that spells out the basics or anything like that, out there on the net please or on this forum, please do tell me.

EDIT: I already have the latest version of X Code (if that helps).
 
Hmmm. Keeping in mind the magnitude of responses that my question has generated, I'll rephrase the question.

Can you guys suggest any good books/links-on-the-net for programming in OS X?
 
I dont want to be rude, but if you are programming with "C:/TC/Bin/TurboC " then kindly don't call yourself a programmer. Man this is 2011, I vowed to never touch "TurboC/C++" way back in 1995.

From the NOOB perspective just stick to "eclipse" or "netbeans" on Mac. Take a pick of your own, both are similar. Then search through there help, join the community forums and mailing lists on these websites....
 
You could use one of xcode(dev environment for c/c++/objective c, for mac and iphone development), eclipse, netbeans, qt creator in mac for c++ development. My personal favourite is emacs. :)
for java netbeans and eclipse will do.
 
otherneo said:
I dont want to be rude, but if you are programming with "C:/TC/Bin/TurboC " then kindly don't call yourself a programmer. Man this is 2011, I vowed to never touch "TurboC/C++" way back in 1995.

I agree. And that is why I started this thread, so that you could help me out. Heck, I am in high school and this is the language that is taught throughout the nation in our curriculum. What do you expect ?

I'l research more. Thanks for the advice guys. Appreciate it.
 
>> I agree. And that is why I started this thread, so that you could help me out. Heck, I am in high school and this is the language that is taught throughout the nation in our curriculum. What do you expect ? I'l research more. Thanks for the advice guys. Appreciate it.

Argh, There is nothing wrong in Turbo C/C++ to learn basics, I would say its better to try your basics of C and C++ on that. Reason its basic, so all you get to help you is your mind, there is no framework to do work on your behalf. You really understand language basics. So do not worry if you are using it, its good; just remember that now to develop a program for an specific OS you have better choices in terms of editor and compiler so for professional programming you'll have to use those. But for basic learning no harm in Turbo C.
 
If you really really weally want to give yourself a headstart, learn using functional languages like haskell, scala...it prolly wont become mainstream popular for another 4-5 years but it will take over

More mainstream languages would be python and ruby

Totally mainstream would be java
 
adi_vastava said:
Argh, There is nothing wrong in Turbo C/C++ to learn basics, I would say its better to try your basics of C and C++ on that. Reason its basic, so all you get to help you is your mind, there is no framework to do work on your behalf. You really understand language basics. So do not worry if you are using it, its good; just remember that now to develop a program for an specific OS you have better choices in terms of editor and compiler so for professional programming you'll have to use those. But for basic learning no harm in Turbo C.

Again I am highly biased against TURBO C/C++ and I have my reasons for them...

1. I was taking interview of a fresher, in 2005, and I asked him "How is a program compiled?". To my shock, he replied "by pressing F9 (or Ctrl + F9). I think this is the so called "framework" that you were criticizing in your post

2. TURBO is a compiler from 16-bit days, and computer science moved to 64-bit way back in 2003. So int is only two bytes.

3. TURBO has particular nuances in terms of "undefined behavior" in C/C++ standard. Where the standard says the behavior is undefined, TURBO implements to behavior in a really weired way. The problem starts when these "undefined behaviors" become part of interview questions. As the interviewer learned programming in TURBO and expects you to know the weired TURBO behavior.

4. TURBO sucks at editing. A modern day editor allows a programmer to put his/her ideas into the computer a lot faster. e.g. people are still stuck with weired shorthand variable naming because they have not utilized the power to automatic word completion. Even today, programmers write nw_inf_drdo_hy.

I can keep going on forever, (things like "void main", "conio.h",)

In my opinion, Python is as good as it gets for a beginner in programming (most of the universities have already switched or consider switching to Python as a de-facto programming language for starters). I would still call a Python Programmer as Programmer, but there is no such thing a "TURBO Programmer.

If one has to understand programming and especially compilation, there is whole lot to learn; editor, preprocessor, compiler, linker, loader, execution environment.

P.S. There was another funny incident with me during interview. That was in th start of my programming career. I was being interview for HCL Noida. During the course of interview the bit/byte discussion came up and I told the Interviewer that C standard states that they byte that is available for C programmer will always be 8-bit regardless of the byte size on the underlying platform. Interviewer mocked me and said that can a byte not be 8-bit! Luckily I was having copy of C-standard book that I purchased that very morning. I took out the book and showed him the relevant section and also told him some of the older processor who had more than 8-bit bytes. Needless to say I was not selected, but looking back now, I am happy that I was not selected. Moral of the story : You should not boast about "Compiled Language Programmer" unless you have mastered all the finer details.

Advice for All Burgeoning Programmers : STAY AWAY FROM TURBO AND YASHWANT KANITKAR. You will thank me one day...
 
In debate mood, are we :),

>>I was taking interview of a fresher, in 2005, and I asked him "How is a program compiled?". To my shock, he replied "by pressing F9 (or Ctrl + F9). I think this is the so called "framework" that you were criticizing in your post

Nope I was talking about software framework like MFC et al. Now imagine the same guy using visual studio, you asked him same question "How is a program compiled?", he'll answer by Ctrl + shift + B or F7. So its problem with the person and not with the editor. :eek:hyeah:

>>TURBO is a compiler from 16-bit days, and computer science moved to 64-bit way back in 2003. So int is only two bytes

And how does this relates to understanding a language. C or C++. Are you stating he can not learn language basics from turbo because it is 16 bit?(its a platform dependent thing and not enforced by language. )

And FYI scientist move to 64 bit decades back and its IA64 and AMD X64 which is launched in 2003.

>>TURBO sucks at editing.

I agree, 100%

>>but there is no such thing a "TURBO Programmer.

BECAUSE its not a language its just a build tool for C, C++. Have you heard IDLE programmer? God please think before you write something.

>>If one has to understand programming and especially compilation, there is whole lot to learn; editor, preprocessor, compiler, linker, loader, execution environment.

Compilation is platform dependent though language constructs not, so does the linker, loader and execution environment. And if you go back to my last post I told him to learn language basics from Turbo but chose something different for professional programming. As professionally you should know the details of your platform, though while learning a language you should concentrate more on cross platform compatible code.

Now to end it I am not saying its the best platform to learn C, C++, as its surly outdated and its editing capability itself make it a no brainier for me, especially considering VS express edition is free. (I also do not know whether it is updated with C standard or not, though I guess it should). Plus the better debugging capabilities of new IDEs.

But when you draft things to a newbee like this

"but if you are programming with "C:/TC/Bin/TurboC " then kindly don't call yourself a programmer"

I call it exaggeration, you can be as good C programmer on Turbo as you could with any other editor. It will be harder off course but one will be called a programmer if he can program and not because he does not use Turbo.
 
Turbo c++ isn't ISO 97 standard compliant. code written in turbo c++ will not compile with modern c++ compilers. So, I think if you want to go with cross platform code, it's better to go with something else. As turbo c++ runs in real mode, detecting bugs similar to modern c++ compilers/tools will be far more difficult. That might make a beginner's life more difficult.
 
lawsofphysics said:
I agree. And that is why I started this thread, so that you could help me out. Heck, I am in high school and this is the language that is taught throughout the nation in our curriculum. What do you expect ?

I'l research more. Thanks for the advice guys. Appreciate it.

I'm forced to post here after reading this in spite of knowing not much about Macintosh.

They do teach Turbo and Borland C/C++ in schools, colleges (yes! we had in last semester #facepalm!) and even in those private C/C++ courses.

Does Google exist? If it does, what have you been doing online? Just search once 'c/c++ ide for <some_os>', and it is going to list out a billion results. Of course, the sensible ones would be say around 10.

Two awesome IDEs I know, which work on any OS are Eclipse and Netbeans. They not only support c/c++, but a lot of other languages as well.
 
Almost my words though I noticed one difference, :)

It did support protected mode binaries, though I already said debugging was a pain. No where near new IDEs.

<quote>

Turbo C++ 3.0 was released in 1991 (shipping on November 20), and came in amidst expectations of the coming release of Turbo C++ for Microsoft Windows. Initially released as an MS-DOS compiler, 3.0 supported C++ templates, Borland's inline assembler, and generation of MS-DOS mode executables for both 8086 real-mode & 286-protected (as well as the Intel 80186.) 3.0's implemented AT&T C++ 2.1, the most recent at the time.

Starting with version 3.0, Borland segmented their C++ compiler into two distinct product-lines: "Turbo C++" and "Borland C++". Turbo C++ was marketed toward the hobbyist and entry-level compiler market, while Borland C++ targeted the professional application development market

</quote>

from Turbo C++ - Wikipedia, the free encyclopedia

>>Turbo c++ isn't ISO 97 standard compliant

Good to know but I read the latest version launched in 2006 so probably/may be it should be. :)
 
This is really ridiculous. Were you previously talking just about old turbo c++ or the old new whatever but turbo? Newer turbo c++ is totally based on borland c++ builder, and almost s difficult/simple etc etc compared to something like visual c++ which you aren't in favor of. Now the only thing you want to is debate, then go on. :)
 
Errrr, I did not understood your response,

First I said, "There is nothing wrong in Turbo C/C++ to learn basics, I would say its better to try your basics of C and C++ on that. Reason its basic" and "you have better choices in terms of editor and compiler so for professional programming you'll have to use those. But for basic learning no harm in Turbo C."

Next "its surly outdated and its editing capability itself make it a no brainier for me, Plus the better debugging capabilities of new IDEs."

I don't understand where you picked that I am not in favor of Visual studio. :)

you replied to this "while learning a language you should concentrate more on cross platform compatible code.",

It looks like this statement gave you insinuation of using turbo C for cross platform. No that was not the point, I was replying to otherneo comments on platform specific thing.

(You already made your mind before your post, didn't you ;) )

-Update-

In case it is still not clear than let me restate it, my reply was against the very line that "if you are learning from Turbo, do not call yourself a programmer."
 
Stick to standards complaint compiler like gcc/MS compiler.

No turbo C++ please, you'll repent your days re learning standards and undefined behaviour.

Editor is not important, but a standards compliant compiler is needed.

Get one.
 
Back
Top