What must have tools/apps/utilities are recommended for OS X in general, and for a developer using that platform specifically?
MacPorts - gives easy access to virtually all the major open source projects out there. Installing something is as simple as:
sudo port install gimp
Xcode comes on your OS X install disc and is very popular. Eclipse is the other very popular cross platform development environment.
VirualBox is a free virtual OS host so you could use that to run any linux flavor you wish, possibly to mirror the setup of your target system or server, depending on the type of development you are doing.
http://changesapp.com/ is an awesome diff tool to determine file changes between two folders. It is imperative for comparing source code that isn't in a system like svn or git. I like it a lot more than the diff tool that comes with Xcode.
http://tuppis.com/smultron/ is what I use for editing source files I don't want to take the time to open in an IDE. It is quick and lightweight and does good keyword highlighting.
Lastly is Bean. A lightweight quick and easy rich text editor. Just what you need for quick notes, lists, memos, whatever. http://www.bean-osx.com/Bean.html
I use TextMate for editing of text files. It does syntax highlighting for a number of languages. I use it for Ruby on Rails and it handles the highlighting for Ruby, HTML, etc.
TextWrangler is a good simple text editor.
Skim for viewing pdfs
Omingraffle ($) is good for drawing.
Hey Mac, you might want to check out BBEdit. It is a really nice editor - not free but really nice.
Definitely get Quicksilver. Even if you just use it as an application launcher, it makes things so much easier you'll be annoyed on any computer that doesn't have it.
Glims for Safari
NTFS-3G for OS X adds write-access for NTFS volumes
Forklift (Alternative to Finder)
SubEthaEdit (really good editor)
Cyberduck FTP Client
istats System informations in the menu bar
MacPorts or Fink are both decent choices for easy installs, but as a developer it is sometime necessary to just install the software that you really need on your own.
On the Mac, I'd say my favorite apps from a developer perspective are XCode, iTerm and Smultron. You probably want to check out http://osx.iusethis.com/ though and see what the cool kids are using.
OmniGraffle is an excellent vector drawing tool that's also highly capable for DOT graphs and UML. If you like OmniGraffle be sure to check out Graffletopia.
GrandPerspective is really nice for finding those huge files or directories you didn't know about.
I really like iStat Menu -- it allows you to display all kinds of geeky metrics in your menu bar, such as CPU temperatures, bandwidth activity, network activity, fan status, memory usage, etc. There are Widget and Application forms of that as well.
GeekTool. It lets you run Unix programs at regular intervals, then overlay their output on your desktop.
My list would be:
- Quicksilver : Must-have launcher
- TextMate : Text editor
- Eclipse : "Hardcore" code editor
- NetNewsWire : RSS reader
- Adium : The only IM client you need
- Transmission : Bittorrent client
- Cocktail : System maintenance utility
- The Unarchiver : Archive unpacker program
- MacPorts : All for your packages needs
- Transmit : Regular FTP goodness
- ForkLift: FTP software with support for S3, WebDAV, SMB, NIS and AFP shares
- Perian : Open source quicktime component supporting AVI, DivX, FLV etc.
- Fluid : Run Web App as a separate Cocoa desktop application.
- QLColorCode : Better syntax highlighting for QuickLook in Leopard
- Xcode: Apple's development environment for Mac OS X.
Textmate is nice, but if you've used Emacs before and miss it there's a very good port:
Other than that, if you're using a laptop get to learn Spaces well - it's invaluable. There are some configuration options that can make it behave generally how you would like.
You might get better answers if you would add specifics as to what language(s) you are planning to develop with.
Behind a pane of glass that says Break In Case of Emergency : VMWare Fusion + OS from which you switched away.
(if indeed it was *nix or Windows ... don't think Beos is supported quite yet)
Coda If you're a web developer. It provides project workspaces, SubEthaEdit's networked text editor, Transmit's FTP code, a CSS editor, terminal, browser (WebKit), and some reference books. Each tab of your editor can switch to any of these modes. It's my home base.
NetNewsWire for RSS/Atom, used to charge but now it's free. Best reader there is.
Kendall mentions Aquamacs, but personally, I would recommend Carbon Emacs as the best Emacs port for OSX.
I love to use Witch for switching back and forth between documents, not windows. You'll find it useful for lots of applications that are document based.
Caffeine is great too, keeps your screensaver at bay while it's on.
Seashore for those quick image edits without Photoshop.
And of course, TextMate
Not a development tool as such, but I love Transmit for FTP.
You should register as a developer at http://developer.apple.com/ where you then can get tools and sample code.
BBEdit, OmniGraffle, GraphicConverter, VMWare Fusion, AppDelete, GrandPerspective
If you code Oracle then: instantclient10_1, JDeveloper
If you code XSLT then: Oxygen
Some of these tools are free. However, for the ones that aren't follow Mac blogs, and take advantage of the bundle discounts. They are controversial as an ISV, but they are usually great deals for users.
Since you mention that you've just switched to Mac, I'll mention XCode. It is THE developers tool for Mac and it's free from your install disks. Not only does it include the IDE and Cocoa frameworks, but almost all of the traditional unix/gnu programming tools you can think of.
Here's some of mine:
- I do my development on Eclipse.
- OmniOutliner - valuable tools for keeping lists. It's a valuable tools for jotting stuff while doing research in your code and brainstorming with yourself.
- OmniFocus - for keeping track of my tasks. This is, IMHO, the best task management app I came across. It is a bit complex, but worth the learning curve.
- Evernote - for storing and searching notes. Very useful.
- Skitch - great for taking screenshots. Just an overall winner.
- Sequel Pro - Simple MySql tool.
- GeekTool - for showing output on your desktop (like server stats).
- XMind - for mind mapping.
- CSSEdit - if you're ever going to do CSS work, this is a must.
- Screenflow - great tool for screencasting.
You may even want to download (the current version of) Xcode with the wonderful ELinks (text mode web browser).
I use TextMate for most of my coding and SubEthaEdit for writing code examples. The reason being that it allows you to copy and paste syntax colored code into e.g. Keynote. It can also produce HTML snippets so you can add your code examples to web pages with syntax coloring.
I general I recommend Keynote. I think it is a great presentation tool. I am a big fan of OmniGraffle for making all kinds of charts, although I think the UI has gotten a bit complex lately. Any I use it for all kinds of illustrations, UML diagrams etc. It is easy and pretty.
I can also recommend Delicious Library. I use it to keep track of my books. It scans the barcode and pulls the data off from amazon and creates a visual bookshelf for your books.
Apart from that I use regular Unix tools like ctags, cscope, doxygen (Actually Apple has their own documentation tool but I only found out about that lately) etc.
News Anchor reads your feeds out loud – useful when you're trying to have breakfast while listening to your news. Currently there is no equivalent on Windows that I know of.