Digital Economy in South Africa
- solving the Internet "last mile" problem: coworking spaces
- solving the knowledge "last mile" problem: self-education
We'll talk about:
- What is Ruby on Rails?
- Why use Ruby on Rails?
- Compare Ruby on Rails to other platforms
- Making money with Ruby on Rails
Web application development
- static websites (HTML)
- web applications (databases and programming)
- mobile apps (iOS and Objective C, Android and Java)
- desktop apps
- C? no
- PHP/Symfony
- Java/Struts
- C++/.Net
- Python/Django
- Ruby/Rails
- JavaScript/Ember
Who, When, Where
- DHH (David Heinemeier Hansson)
- 2004
- 37 Signals, a design firm in Chicago
Base Camp 2005
- PHP or Java?
- PHP: messy
- Java: cumbersome
- DHH writes Rails in Ruby and builds in testing
Why Ruby?
- PHP: lack of abstraction, too much repetitive code, unstructured
- Java: too much ceremony, too much configuration
- Ruby: metaprogramming for a "domain specific language" (DSL)
- Ruby: elegant and pleasurable
- Ruby: "package libraries" (RubyGems)
Ruby Drawbacks
- Slow
- Poor parallel processing
Rails Virtues
- opinionated and omakase ("the chef chooses")
- convention over configuration
- DRY ("Don’t Repeat Yourself")
Rails Drawbacks
- sometimes Rails has no opinion
- omakase but "substitutions are allowed"
- conventions = magic
- DRY = obscure
What is Rails?
- a "software package library" (RubyGem) for Ruby
- an API ("application programming interface")
- an open source community
- an economic community (marketplace)
Six Blind Men and an Elephant
- Web Browser
- Coder
- Software Architect
- Time Traveler
- Gem Hunter
- Tester
Web Browser's Perspective
- HTML, CSS, and JavaScript files
- generated by a Rails application
Coder's Perspective
- folders
- files
- specific and standard structure
Software Architect's Perspective
- software design patterns
- model–view–controller
- Rails API
Time Traveler's Perspective
- version control system (Git)
- GitHub (collaboration)
Gem Hunter's Perspective
- Gemfile
- gems for... everything
- gems for code reuse
Tester's Perspective
- Test Driven Development (TDD)
- test first
- test always
Why Ruby on Rails for startups?
- conventions mean Rails developers get started quickly
- gems mean much code is already written
- testing enforces code quality
Making money with Ruby on Rails
- learn to code, build your MVP, launch a business
- learn to code, change your career, earn more money
- learn to code, start freelancing or join a consulting firm
Next steps
- weekend accelerator training (1095 R)
- download the book ‘Learn Ruby on Rails’
- build applications!