Welcome!

Machine Learning Authors: William Schmarzo, Pat Romanski, Liz McMillan, Elizabeth White, Jnan Dash

Related Topics: Machine Learning , Java IoT, Open Source Cloud, AJAXWorld RIA Conference & Expo, Agile Computing

Machine Learning : Article

AJAX on Rails: An AJAXWorld Interview

Full Transcript of Dion Hinchcliffe's SYS-CON.TV Interview with David Heinemeier Hansson

View David's AJAXWorld Presentation: AJAX 0n Rails

Dion Hinchcliffe:
Welcome to SYS-CON TV. My name is Dion Hinchcliffe, I'm CTO with Sphere of Influence and editor-in-chief of the Web 2.0 Journal. I have with me today David Heinemeier Hansson of 37signals and creator of Ruby on Rails. David, welcome and let me ask you, Ruby on Rails is one of the most exciting stories in the application AJAX server stack space. Could you tell us a little bit about what it is, why you created it, and what are its advantages?

David Heinemeier Hansson: Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

I started building this about two-and-a-half years ago. I had been doing PHP and Java for about five years and, frankly, I wasn't really enjoying the role of programmer. I wasn't really enjoying the actual programming work.

Hinchcliffe: Why, because you were mired in complexity or -

Hansson: I was mired in complexity, I was mired in stuff that couldn't be maintained, the hassles of ups and downs. Either you went with PHP, which I liked for its immediacy; you could get something done really quickly, but as soon as you tried extracting these things, making a framework, building on top of it, reusing and going back and changing things, this is not the most welcoming language for that. You could certainly do it, and I did it for a good number of years, but it just took more effort than it should. On the other hand, you have something like Java where it's actually possible to create something nice and maintainable if you have a thousand years to do it. I felt that there must be some split between these two things, where you can get something that's neither quick and dirty or slow and clean but perhaps quick and clean. And that's kind of the sweet spot I tried to approach with Ruby on Rails.

    I needed it for my own stuff. I work at a company called 37signals, and about two and a half years ago we were contemplating getting out of the consultancy business and getting into products. So we created our first application, Basecamp, on top of Ruby. At that time Ruby did have some things to do or some libraries and primers that dealt with the Web, but not any that appealed to my aesthetics.

Hinchcliffe:That was kind of my question: you have AJAX and you have application developers who know Perl or PHP or Java, and they have to learn a new application stack, they have to learn a new language, and AJAX on top of it. That's a lot.

Hansson: Right. One of the things we are trying to do with Ruby on Rails is actually make it extremely conventional. Most of the ideas in Ruby on Rails are the same ideas that people have been building Web applications on for the past 10 years; they just hurt a lot less. The actual practice of implementing these patterns that the industry has spent 10 years perfecting, is just a lot less painful in a language like Ruby than it is in a language like PHP or Java simply because Ruby is a better programming language. At the core of that, the core elements of the language just lend themselves better to building the kinds of frameworks that deliver that programmer happiness we are trying to chase with Ruby on Rails.

Hinchcliffe: Doesn't Ruby on Rails make the common task easier and put the complexity out into the edge cases. Isn't that part of it?

Hansson:  A lot of it is definitely making what most people do most of the time extremely easy, but still allowing for the fact that not everybody is doing what everybody else is doing most of the time; you need to jump off track sometimes and just get out of the way when that happens. But 80% of your application is just like 80% of somebody else's application, so that's stuff you can extract. Once you've extracted it, you can make it a lot nicer to deal with; you just don't have to repeat the same mundane details over and over again. That's what we're calling conventional configuration. We have a set of conventions in Rails that if you follow those, you learn the convention once and you never have to configure that again. That really racks up pretty quickly. A lot of these standard things and Web applications are stuff you need to configure over and over again. How does this object layer relate to the database? How do the URLs relate to the controller that's matching it?

Hinchcliffe: Same thing you always go through whenever you develop an application.

Hansson: That's the stuff that in Java we call XML sit-ups, the fact that you usually can produce just as much XML configuration as application code and that's just insane in online. Instead, get rid of that configuration, replace it mostly with conventions where you can learn the conventions once, reap the benefits over and over again, and then allow configuration for the edge cases.

Hinchcliffe:  Interesting. Some people who were used to traditional application development, they may even have heard Don Box say, "I wish .NET had a Ruby implementation," so they might start taking that seriously, but does it really scale? What is your experience with Ruby on Rails and Ruby in particular?

Hansson: "Does it scale?" is an interesting question, because just put like that with no metrics and specificity it doesn't really mean anything. But let's take the public perception of scaling, meaning you can add more hardware and then you can handle more clients. Is Ruby capable of doing that? The answer is unquestionably yes, simply because Ruby doesn't invent a new architecture. We use exactly the same architecture as people who have been building the biggest sites the Internet has used for the last decade, which is something called shared nothing, where you don't have state in the application or in the Web layer. You have pushed all the state out to the database, and if there's anybody who spent time figuring out how to scale, it's the database guys. Basically we're saying it's not our problem; it's the problem of the database guys, or NFS file stores or mem cache or any of these other technologies for managing large amounts of data fast. Once you have a Web layer and an application layer that doesn't contain state, you can add an unlimited number of application servers with no effort at all except a low balancer.

Hinchcliffe: Has it been your experience at 37signals? You guys actually host very large-scale applications using exactly this, right?

Hansson:  We started out building Basecamp, our first application, on a single server. We had a database, Web server, application server, all in one box. Today I think we have 13 boxes in our cluster that handle five applications and more than 400,000 people using our application in one form or another.

More Stories By RIA News Desk

Ever since Google popularized a smarter, more responsive and interactive Web experience by using AJAX (Asynchronous JavaScript + XML) for its Google Maps & Gmail applications, SYS-CON's RIA News Desk has been covering every aspect of Rich Internet Applications and those creating and deploying them. If you have breaking RIA news, please send it to [email protected] to share your product and company news coverage with AJAXWorld readers.

Comments (14) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
j j 09/29/06 01:28:52 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

SYS-CON Italy News Desk 08/23/06 04:13:13 PM EDT

AJAXWorld Interview with David Heinemeier Hansson

n d 08/22/06 04:56:40 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

n d 08/21/06 11:53:08 AM EDT

AJAXWorld Interview with David Heinemeier Hansson

brazil 08/20/06 08:52:07 PM EDT

Hanson interview

n d 08/20/06 04:23:28 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

n d 08/20/06 03:29:38 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

AJAXWorld News Desk 08/20/06 02:34:13 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

n d 08/20/06 02:13:09 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

SYS-CON Italy News Desk 07/11/06 06:00:52 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

AJAXWorld News Desk 07/11/06 05:25:20 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

SYS-CON India News Desk 04/05/06 05:19:15 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

SYS-CON Italy News Desk 04/05/06 04:49:59 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

SYS-CON Australia News Desk 04/05/06 04:48:52 PM EDT

Ruby on Rails is what we call a full stack. A full stack meaning that it has all the components built in for doing most Web applications. Unlike a lot of other open source software, you don't have to cherry pick a lot of different packages. We try to deliver one solution in the sense of Apple delivering one solution that spans across multiple layers. We like to think of ourselves as the Apple of open source Web application development, in the sense of dealing with the database, wrapping data objects, dealing with the controller and the control flow, and getting requests coming in and dealing with template languages, and of late also dealing with AJAX on the client side, and tying all of these things together seamlessly with knowledge of each other.

@CloudExpo Stories
"Infoblox does DNS, DHCP and IP address management for not only enterprise networks but cloud networks as well. Customers are looking for a single platform that can extend not only in their private enterprise environment but private cloud, public cloud, tracking all the IP space and everything that is going on in that environment," explained Steve Salo, Principal Systems Engineer at Infoblox, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventio...
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
The question before companies today is not whether to become intelligent, it’s a question of how and how fast. The key is to adopt and deploy an intelligent application strategy while simultaneously preparing to scale that intelligence. In her session at 21st Cloud Expo, Sangeeta Chakraborty, Chief Customer Officer at Ayasdi, provided a tactical framework to become a truly intelligent enterprise, including how to identify the right applications for AI, how to build a Center of Excellence to oper...
"IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
In his session at 21st Cloud Expo, James Henry, Co-CEO/CTO of Calgary Scientific Inc., introduced you to the challenges, solutions and benefits of training AI systems to solve visual problems with an emphasis on improving AIs with continuous training in the field. He explored applications in several industries and discussed technologies that allow the deployment of advanced visualization solutions to the cloud.
Agile has finally jumped the technology shark, expanding outside the software world. Enterprises are now increasingly adopting Agile practices across their organizations in order to successfully navigate the disruptive waters that threaten to drown them. In our quest for establishing change as a core competency in our organizations, this business-centric notion of Agile is an essential component of Agile Digital Transformation. In the years since the publication of the Agile Manifesto, the conn...
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Large industrial manufacturing organizations are adopting the agile principles of cloud software companies. The industrial manufacturing development process has not scaled over time. Now that design CAD teams are geographically distributed, centralizing their work is key. With large multi-gigabyte projects, outdated tools have stifled industrial team agility, time-to-market milestones, and impacted P&L stakeholders.
"ZeroStack is a startup in Silicon Valley. We're solving a very interesting problem around bringing public cloud convenience with private cloud control for enterprises and mid-size companies," explained Kamesh Pemmaraju, VP of Product Management at ZeroStack, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Enterprises are adopting Kubernetes to accelerate the development and the delivery of cloud-native applications. However, sharing a Kubernetes cluster between members of the same team can be challenging. And, sharing clusters across multiple teams is even harder. Kubernetes offers several constructs to help implement segmentation and isolation. However, these primitives can be complex to understand and apply. As a result, it’s becoming common for enterprises to end up with several clusters. Thi...
"Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"Codigm is based on the cloud and we are here to explore marketing opportunities in America. Our mission is to make an ecosystem of the SW environment that anyone can understand, learn, teach, and develop the SW on the cloud," explained Sung Tae Ryu, CEO of Codigm, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
High-velocity engineering teams are applying not only continuous delivery processes, but also lessons in experimentation from established leaders like Amazon, Netflix, and Facebook. These companies have made experimentation a foundation for their release processes, allowing them to try out major feature releases and redesigns within smaller groups before making them broadly available. In his session at 21st Cloud Expo, Brian Lucas, Senior Staff Engineer at Optimizely, discussed how by using ne...
Vulnerability management is vital for large companies that need to secure containers across thousands of hosts, but many struggle to understand how exposed they are when they discover a new high security vulnerability. In his session at 21st Cloud Expo, John Morello, CTO of Twistlock, addressed this pressing concern by introducing the concept of the “Vulnerability Risk Tree API,” which brings all the data together in a simple REST endpoint, allowing companies to easily grasp the severity of the ...
While some developers care passionately about how data centers and clouds are architected, for most, it is only the end result that matters. To the majority of companies, technology exists to solve a business problem, and only delivers value when it is solving that problem. 2017 brings the mainstream adoption of containers for production workloads. In his session at 21st Cloud Expo, Ben McCormack, VP of Operations at Evernote, discussed how data centers of the future will be managed, how the p...
"NetApp is known as a data management leader but we do a lot more than just data management on-prem with the data centers of our customers. We're also big in the hybrid cloud," explained Wes Talbert, Principal Architect at NetApp, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
"We're focused on how to get some of the attributes that you would expect from an Amazon, Azure, Google, and doing that on-prem. We believe today that you can actually get those types of things done with certain architectures available in the market today," explained Steve Conner, VP of Sales at Cloudistics, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.