What tools do web developers use with PHP, Ruby on Rails, Python, etc? What tools do web developers use with PHP, Ruby on Rails, Python, etc? ruby ruby

What tools do web developers use with PHP, Ruby on Rails, Python, etc?


  • svn or a modern dvcs (git, mercurial or bazaar)
  • Generally not an IDE. Instead, TextMate on Mac, Notepad++ on Windows, or the one true editor (emacs or vim) on Linux.
  • MySQL and SQL in general is worth understanding as a separate item.


Ruby on Rails actually has an implicit default stack. This is mostly defined by what the contributing community use, and some components have shifted over time, but there is surprisingly little divergence on some items compared to other communities, which is probably both a good and a bad thing. It's definitely helpful for learners, though.

  • Programming language: Ruby, for both application development and system administration
  • Version control system: Git
  • Application framework: Ruby on Rails (obviously)
  • Deployment system: Capistrano
  • SQL database: MySQL
  • Web server: Currently Apache with Passenger, though older alternatives are still in common use
  • Server OS: A Linux distribution (Ubuntu is probably the most popular)

Many professional Rails developers uses Mac OS X desktops, and TextMate as the text editor. Most of the remainder use Linux (again, often Ubuntu), and a variety of text editors. Developing for Rails on Windows is currently a bit problematic, and not something that many developers do by choice.

IDEs don't have much take up ATM, but Netbeans is a strong choice. One benefit of using Netbeans for teaching is that you can get a complete Rails development stack in a single installation. Another is that it runs well on Windows.


I use TextMate for Rails, PHP and Python development and I love it.

After seeing other answers I feel like I should elaborate. I use MySQL currently as my primary database and Apache for a web server. When coding in PHP I prefer to use CodeIgniter rather than "vanilla" php.

However, most importantly I use SVN which you should use from the start (or any versioning tool), SVN lets me keep track of all the different versions of my code. So, for example if I break something which was working in revision 10, I can go back to revision 10 see what I changed and fix it, etc.