Every developer’s toolbox changes and evolves over time, even the old Reluctant Developer’s. In fact, I go through periods where I spend way too much time trying to find the next app that’s going to get me over the hump from hack to rock star. I haven’t found it yet because it doesn’t exist, but it’s still interesting exchanging some of the tools in the toolbox now and then, and sometimes finding that app that really makes a difference in one’s workflow.
So here’s a list of what I’m using now, along with a brief (sometimes very brief) explanation of “why”:
- Operating System
OS X. This hasn’t changed in six years and will not be changing anytime soon. Aside from the aesthetics and being an Apple fanboy, OS X is just easier to work with when developing in languages like PHP that are being deployed to *nix servers and depending on things like Git, MySQL, etc. It’s a pretty seamless transition between working in the OS X terminal and an Ubuntu box terminal.
- Code Editor
Sublime Text 3. Once you install Package Control and master the keyboard shortcuts, there’s no looking back. Extremely fast (start-up and searches), lightweight, packages for everything. Multiple selections = awesome. Got rid of Dreamweaver years ago (flaky). The Eclipse-based editors just seem really bloated to me. I used to use Coda, but after waiting for Coda 2, it became apparent that it was trying to do too much and was attracting it’s own bloat.
- PHP Framework
Laravel. It’s just getting bigger, stronger, faster. I’ve deployed 2 apps now using Laravel 4, and though I still have a lot to learn, I’ve had no regrets in moving to PHP and to this still “new” framework.
- CSS Framework
Bootstrap. I’m not a designer and never will be. With bootstrap, I can put something out there that isn’t ugly, is consistent, and is responsive with very little effort.
- MySQL Administration
Sequel Pro. Used to be a little buggy, but has come along nicely. Handles imports/exports every easily. Nice custom query editor.
- Version Control/Deployment
Git. Not an expert by any means, but Git is very powerful, yet pretty simple to use once you get the basics down. Though I do use SourceTree occasionally when I forget how to do certain things in Terminal, most of my interaction with Git is via the CLI:
git status git add . git commit -am 'message' git push test
That’s pretty much it on a daily basis. Projects git pushed up to Bitbucket for safe-keeping and sharing with other team members. I use git hooks to do things like resetting file permissions after a push to test/prod, empty caches, run Laravel migrations, etc. I also use git tags to maintain and display the application versions in the footer of apps.
- Development Environments
Vagrant/Virtualbox. I recently gave up on MAMP after running into several issues with not having identical environments between dev/test/prod. I decided to commit to a simple Vagrant setup using a single shell script to set up each environment.
- FTP client
Transmit. It works. Has a nice sync view between local and remote. Syncs favorites via Dropbox or iCloud.
That’s it. I don’t use anything else enough to warrant a mention.