views:

300

answers:

3

I'm in my second computer science course right now. I've enjoyed programming so far, but really have just scraped my way by. I've not done much programming outside of required class work. For similar reasons, I never really invested in downloading/learning software to help me program (IDE's, editors, compilers, etc).

I know it sounds tedious, but my current setup is: notepad++ for coding; Filezilla to transfer .cpp & .h files to school's aludra/unix and compiling; unix tells me where my bugs are and I go back to notepad++ to debug; repeat until done.

This isn't fun - and I know it could be easier. But I put it off knowing that I was soon going to switch to a Mac. And, tomorrow, I'm switching.

So...

  • How should I set up my Macbook for the best programming experience?
  • What IDEs and editors and debuggers and so on should I download?
  • How will Mac programming differ from PC?

I'm open to all ideas and comments, even the most basic.

(Background - I'm learning/programming in C++ right now. Next semester, my classes switch to Java. I'm also going to take a class in web development, with HTML/CSS/Javascript/PHP. My new laptop will be a late 2009 Macbook Pro with Leopard, or maybe Snow Leopard. Free would be preferrable for all programs.)

Thank you all.

+1  A: 

Eclipse is the best editor for java. It's available on a mac for free, just as it is on windows.

There's a good text editor made by barebones software called text wrangler. It's free, and is good about syntax coloring for basic editing.

The best of the best for web development on mac is a tie between text mate and coda. If you're going to be doing a lot of web development, they're worth the investment.

To run a test environment in mysql/php, download MAMP (the mac counterpart to WAMP). Google search it - it's free, and really easy.

Mac programming doesn't differ at all from windows programming if you're writing java, php, etc., because it all goes the same place. Java just boils your code down differently depending on your machine, but it does the same stuff. PHP will probably be held on some sort of linux distro, so it's the same on both. C++ is the same given the appropriate compilers.

Enjoy your mac!

DexterW
+5  A: 

How exciting for you, I'm sure your new lappy will be able to make your life as a novice programmer much, much simpler.

Here's what I would do.

  1. Download and install eclipse. It's free, and it's a very good IDE to have if you're going to program java. There are versions available for c/c++ and php as well, and there is a silly amount of great plugins for just about anything you'll ever need. Get it here.
  2. Get the subversive plugin to your eclipse. It will make your life so easy when it comes to managing your code through svn. You can download the plugin through eclipse.
  3. Download Ruby. Ruby is (imho) a great language for beginners, and the irb environment is very handy for trying little things out. Get it here.
  4. Get emacs. Emacs is a great editor, and it's free. Use it for editing your system files, or for coding if you find it suits you. Get it here. (I can also recommend Textmate, it's a really good editor, but unfortunatly not free. If you want to spoil yourself a bit, though, I'd really recommend it.)
  5. If you're doing modelling, you should definitly treat yourself to a licence of omnigraffle. It will definitly make your life easier, and it will let you draw models like nothing else. Get it here.
  6. I would advise you not to bother with macports. Generally I find it will install everything, everyone and their dog on your lappy evertyime you use it, and that gets tedious pretty quickly.
  7. If you're doing any php-stuff, get MAMP. MAMP puts you three clicks away from a running apache, mysql and php-setup without you so much as thinking. Very good piece of software, I think. Get it here.

For the rest of it, just download stuff when the need arises. Most of the things you'll need to install comes in handly little installer packages, and you won't need to know much in order to get them installed and working on your computer.

All the best of luck to you!

Banang
++ for OmniGraffle. It's awesome.I use Aquamacs, which is Emacs with some movement towards feeling like a MacOSX gui. For me (20 year emacs user) it's pretty nice.
khedron
Ruby, PHP, and Apache are preinstalled on MacOSX, but you will need XCode in order to compile native (written in C/C++/Obj-C) extensions.
Carmine Paolino
Not to start a flame war, but when it comes to editors, you should also consider vim (which also has a great plugin for eclipse).
Amir Rachum
+2  A: 

You definitely need Developer Tools from Apple. They include:

  • XCode, a very good IDE and editor
  • InterfaceBuilder
  • gcc, g++ and clang to compile code, in various versions
  • gdb as debugger
  • Instruments for performance analysis

as well as a lot of other utilities to program in C, C++, Java, Objective-C and Objective-C++.

Python, Ruby and PHP interpreters and libraries come preinstalled with every Mac so don't bother installing it by hand. (the Apache web server is also included, so you only need MySQL to have a full MAMP stack)

The Developer Tools package comes with every MacOSX DVD but I recommend you to download the latest version directly from Apple (it requires a free Developer account).

Once you installed it put XCode in the Dock and that's it! No other stuff needed.

NB: This is the simplest and only supported way of getting compilers and debuggers for C-based languages, even if you won't use XCode as an editor.

Speaking of editors, I recommend you to stick to XCode for a while because it is simple enough, yet very powerful, and it's free.

If you don't like it try TextWrangler (free) or TextMate (paid). Vim and Emacs are two other good editors, but I don't recommend you to try them right now because they use obscure and non-standard key combinations, so you will spend a lot of time learning how to use them instead of programming.

Anyway the best thing you can do is to learn one editor very well, the effort in learning it will surely pay off every day.

Carmine Paolino
I would use Eclipse or NetBeans for Java, but you definitely need XCode for basic dev tools.
khedron
That's my point. Also, XCode supports Java really well (editor, graphical debugger, documentation...).
Carmine Paolino