Testing
Rails Development on Windows. Seriously.
Summarized using AI

Rails Development on Windows. Seriously.

by Evan Machnic

The video titled 'Rails Development on Windows. Seriously.' by Evan Machnic at Aloha RubyConf 2012 focuses on the intricacies and best practices of developing Ruby on Rails applications on a Windows platform. Despite Windows not being the preferred environment for Ruby development, Machnic illustrates how significant improvements have been made to create a smoother experience for Windows developers. He shares his journey starting from his initial challenges with Windows in 2008 to the advancement of tools like RailsInstaller by 2012. The main topics covered include:

  • Introduction to Rails on Windows: Machnic highlights his background in Ruby on Rails and his current role at Engine Yard. He notes that while Rails development traditionally favors Unix-like systems, many users on Windows are eager to learn and create with Ruby on Rails.

  • Setting Up a Development Environment: He discusses the ease of setting up Rails on Windows with RailsInstaller, which simplifies installation of necessary components compared to the more complex process on Mac OS X. He also emphasizes the need for essential tools like Ruby, Rails, SQLite, Git, and a method for building native extensions.

  • Workflow Adjustments: Machnic shares his experience with Vim and the subsequent re-evaluation of his tools due to cross-platform challenges. He ultimately moved towards using an IDE, specifically Aptana, while acknowledging the balance between convenience and personal preferences for command-line tools.

  • Testing Challenges: He discusses the significant performance issues with testing on Windows, particularly with MRI Ruby. Solutions include utilizing community tools like CodeShop for environment improvements and switching to simpler automation tools such as AutoTest, which streamlined his testing process.

  • Collaboration using Git: The importance of managing SSH keys for GitHub collaboration is mentioned, as well as how Rails Installer and RubyPick assist in transitioning between Ruby environments efficiently.

In conclusion, Machnic reassures his audience that while Windows presents challenges for Rails development, the community's efforts and tools like RailsInstaller have made it increasingly feasible for developers to thrive in this environment. Machnic invites engagement, encouraging those interested to explore Rails on Windows, enhancing their development experience.

00:00:14.740 Welcome to Aloha RubyConf! My name is Evan Machnic, and we're going to embark on a little journey, perhaps a conversation. This talk will primarily focus on Rails development on Windows.
00:00:32.660 Before we dive in, let's do a brief introduction. I've heard that it's customary to start with a cat picture because, you know, people love cats! My name is Evan Machnic, and I've been working with Ruby and Ruby on Rails since around 2008.
00:00:46.219 I initially got my start in college, which was an interesting experience since many programs offer poor web development education, especially concerning Ruby on Rails. Currently, I'm an Application Support Engineer for Engine Yard, which involves helping people deploy or utilize our platform.
00:01:37.700 You can also find me at broadmagnetin, which is a blog I write occasionally. But let’s address the elephant in the room: Windows development does not typically receive much love. However, that's not entirely accurate. Many individuals have worked hard to make Windows a first-class citizen for Ruby developers.
00:01:58.340 Still, there's undeniably a Unix-like feel to Ruby, and those who have tried using it on Windows have noticed issues, like gems not working as expected or just strange behaviors that are hard to explain.
00:02:56.090 Interestingly, about 25% of Engine Yard's trial users are on Windows, which really underscores how significant this group is. Many of these users may not have substantial programming experience, yet they are diving into Ruby on Rails as their first language. While I might not have started with it, we’ve made it relatively easy to get up and running.
00:04:18.260 Instead of fostering an attitude of discouragement towards Windows users, several community members were motivated to create tools that simplify the setup process. For instance, RailsInstaller installs various components, making it just about the only thing needed to start building applications, apart from a proper text editor.
00:05:13.170 Interestingly, it's easier to get set up on Windows with RailsInstaller than on Mac OS X 10. Installing Rails on a Mac requires additional steps, like installing Xcode or GCC, which Apple makes cumbersome.
00:06:02.050 With RailsInstaller, you can have everything installed in about 20 minutes. While that’s fantastic for quick setups, many customers still feel overwhelmed or frustrated, as I did when I first started exploring this topic.
00:07:01.290 I remember beginning with a virtualized environment, wanting to truly understand the Windows experience, and quickly learned that there are mainly two ways to achieve this. You could either run Windows inside a Mac using virtualization software or opt for Boot Camp. Boot Camp makes it easy to set up Windows on a separate partition and fully immerse yourself in the Windows experience.
00:08:10.200 After getting my Windows environment running, the next step was setting up Ruby on Rails. It’s essential to have Ruby and Rails installed, along with SQLite for database management. It's also imperative to have Git for version control since everyone wants to collaborate easily.
00:09:08.320 Additionally, you'll require a way to build native extensions since Ruby on Windows can get a little tricky in that department. On Unix, building with a C compiler is standard, but Windows adds complexity.
00:09:43.170 As I mentioned earlier, I work for Engine Yard, and we sponsor RailsInstaller, which simplifies the setup for users who are on our platform. This ensures that those experimenting with Rails are having a smoother experience right from the start.
00:10:55.610 Now, regarding my workflow, I've realized that on the Mac, command-line usage can be quite efficient. I primarily use Vim as my editor, which allows for quick edits and file navigation without the overhead of a GUI. However, Vim presents challenges on Windows, as it doesn't operate as seamlessly.
00:12:01.940 On Windows, editing and switching between files in Vim can become cumbersome due to its cross-platform issues. To solve this, I had to rethink my approach to Ruby on Rails development on Windows and succumb to using an Integrated Development Environment (IDE), which makes sense given the Windows environment.
00:13:44.880 Despite my love-hate relationship with IDEs, they do offer convenience, and I eventually settled on Aptana as my editor. However, the integration with a web browser for development remains a preference.
00:14:07.550 While IDEs combine everything into one window and can streamline workflows for many, I still prefer lightweight command-line tools for quick edits and tests. Yet, on Windows, I found myself constantly re-evaluating how to best organize my workflow.
00:15:07.610 The topic of testing quickly emerged as one of the challenges when developing Rails applications on Windows. When I first tried writing tests, the performance was abysmal, with tests taking nearly 30 to 45 seconds just to run.
00:16:20.620 After some trial and error with Google, I discovered that the MRI Ruby interpreter is notably slow on Windows and that there are improvements that can be made to speed this up.
00:17:39.060 A solution is to use the CodeShop project. This community aims to enhance the Ruby experience on Windows. Adjustments in the environment variables and paths can facilitate transitions, making test completion roughly half as fast.
00:18:45.700 With the implementation of a guard program, we see increased efficiency in automated testing. However, guard's functionality can be subpar on Windows, leading to issues with repeated failed tests.
00:20:00.290 Eventually, I switched over to a simpler automation tool — AutoTest. This tool managed my test runs effectively without causing issues for every failure.
00:21:12.130 Now, after discussing tests, let’s move on to collaboration, specifically with GitHub. As my team collaborated on software, I recognized the importance of managing SSH keys.
00:22:10.080 Ultimately, using a Rails Installer aligns with GitHub collaboration, providing support for any Ruby version needs. The RubyPick tool assists in transitioning between various Ruby environments on Windows effortlessly.
00:23:05.019 That brings me to the conclusion of my talk. While there are still growing pains associated with Rails development on Windows, I assure you it's not an insurmountable challenge.
00:23:13.090 We can henceforth make our commitments to aiding others in their Ruby on Rails journey on Windows, contributing to the gems and libraries that support this platform.
00:23:31.860 Thank you for your attention! If you have questions, I’m here to assist!
Explore all talks recorded at Aloha RubyConf 2012
+13