SlideShare a Scribd company logo
RUBY ON RAILS
MITHUN SASIDHARAN
Web Evangelist & Foss Enthusiast
CONTENTS
 INTRODUCTION
 WHAT IS RUBY?
 JAvA vS RUBY
 WHAT IS RAILS?
 RUBY ON RAILS
 CONCLUSION
INTRODUCTION
 Ruby on Rails, sometimes known as "RoR" or just Rails, is an open source
framework for Web development in Ruby, an object-oriented programming
(OOP) language similar to Perl and Python.
 The principle difference between Ruby on Rails and other frameworks for
development lies in the speed and ease of use that developers working within
the environment enjoy.

 Changes made to applications are immediately applied, avoiding the time
consuming steps normally associated with the web development cycle.
NOW, WHAT’S A WEB AppLICATION ??

A web application is an application that is accessed via web browser over
a network such as the Internet or an intranet. The web Application consists
of a browser, an application and a database.

The browser makes a request to the web application, which then interacts
with the database, and produce suitable output and sends it back to the
browser.
WHAT’S RUBY ?
 Ruby is a dynamic, reflective, general purpose object-oriented
programming language that combines syntax inspired by Perl with
Smalltalk-like features.
 Ruby originated in Japan during the mid-1990s and was initially
developed and designed by Yukihiro "Matz" Matsumoto. It is based on
Perl, Smalltalk, Eiffel, Ada, and Lisp.

 Ruby supports multiple programming paradigms, including
functional, object oriented, imperative and reflective. It is similar in
varying respects to Python, Perl, Lisp, Dylan, and CLU.
FEATURES OF RUBY !!
 Objects everywhere! - In Ruby everything is an object including simple
numeric values. Here is an example,

 Blocks - Blocks is a powerful feature in Ruby which simplifies
programming. Blocks are code blocks which can be passed as a parameter
to a method. Using this feature it is easy to build code libraries which can
delegate varying functionality to code blocks to be built later.

Implicit return value in methods - Value of the last expression in a
method becomes the return value of the method. In Ruby return keyword is
optional.
 In Ruby everything is open! - In Ruby you can easily extend classes
and modules. This means that nothing in Ruby (including built in classes and
modules) are closed!. Interestingly additional methods can be added to a
class even at runtime.
 Ruby supports parallel assignment - It is possible to change multiple
variables in a single assignment. The best example is the swapping of two
variable.
 In Ruby strings are mutable - In Ruby it is possible to change a string
variable in place. Hence unlike Java, the same string literal when used
multiple times will point to different object instances.
 True and false in Ruby - In Ruby only nil and false evaluate to false.
This means that everything else evaluates to true! Hence even the value 0
evaluate to true in ruby.
SIMPLE RUBY PROGRAM TO ADD TWO
NUMBERS
# define a function called addtwo with two parameters
def addtwo(a, b)
a + b; # return a + b
end
print "Please enter number 1 : "; # get the input from the console,
val1 = gets;
print "Please enter number 2 : ";
val2 = gets;
# convert the string console inputs to_i (to_integers) and add together
print "Answer : " , (val1.to_i + val2.to_i), "n";
JAvA vS RUBY !!
•Ruby is interpreted, Java is compiled (before being interpreted)
>ruby my_program.rb

• Code can be loaded at runtime
• Code is easily accessible
• Speed performance issues

>javac MyProgram.java
>java MyProgram
RUBY USE DYNAMIc TYPING
• Values have type, variables not
• Decrease language complexity
- No type declaration
- No type casting
• Increase flexibility
• Errors appears at run-time
RUBY SYNTAx IS TERSE
RUBY SUPPORTS cONcEPT Of
BLOckS
JAvA WIN ON PERfORMANcE fIELD
ON A BUSINESS POINT Of vIEW ! !
• Java is a well-known technology
• Lots of developments have been made with it
• Easy to find experts
• Still not that much available Ruby developers
YET, RUBY PICKING UP MOMENTUM !!
WHAT IS RAILS ??
Rails is a web-application framework that includes everything needed to
create database-backed web applications according to the Model-ViewControl pattern.
Ruby on Rails was extracted by David Heinemeier Hansson from his work
on Basecamp, a project management tool by 37signals (now a web
application company).

Like many contemporary web frameworks, Rails uses the Model-ViewController (MVC) architecture pattern to organize application programming.
WHAT IS A WEB FRAMEWORK ??
 A web application framework is a software framework that is
designed to support the development of dynamic websites, Web applications
and Web services. The framework aims to alleviate the overhead associated
with common activities performed in Web development.

 For example, many frameworks provide libraries for database access,
templating frameworks and session management, and often promote code
reuse.

 Some of the main features of web framework is that they provide
security,database access and mapping,URL mapping,Web template
system,caching,AJAX ,Automatic Configurations and so on.
MVC ARCHITECTURE
Model–view–controller (MVC) is an architectural pattern used in
software engineering. The pattern isolates business logic from input and
presentation, permitting independent development, testing and maintenance
of each.

These frameworks use actions that do the required processing, and then
"push" the data to the view layer to render the results. These frameworks
start with the view layer, which can then "pull" results from multiple
controllers as needed.
MODEL- Used for persistence and relationships.

VIEW- Used for displaying the data.

CONTROLLER- The logic of the application.
FEATURES OF RUBY ON RAILS
Ruby on Rails is separated into various packages, namely ActiveRecord(an
object-relational mapping system for database access), ActiveResource
(provides web services), ActionPack , ActiveSupport and ActionMailer.

Prior to version 2.0, Rails also included the Action Web Service package
which is now replaced by Active Resource.

Apart from standard packages, developers can make plugins to extend
existing packages.
RAILS VS C#/.NET
RAILS VS J2EE
Both have a learning curve.

RAILS has the edge in productivity by a significant margin.

J2EE currently has an edge in scalability. If it’s a client facing system for
millions of concurrent users – use J2EE.

If it’s an internal web application, definitely take a look at this technology as
a possible way of shortcutting the long development time for a J2EE web
application.
OR AnOthER wAy tO put It ……
AppLICAtIOnS OF ROR !!
Ruby On Rails have been in use now by over 500 websites.

Some of the leading websites using
yellowpages.com, lumosity.com and so on.

RoR

are

43things.com,

Ruby on Rails is Picking up the pace and have become more and more
viable in the business scenario.
COnCLuSIOn
RoR an evolving Toolset.

Ruby is what makes Rails special, the interest in general Ruby
programming will continue to expand rapidly

RoR can be best used for small web based applications requring
parallel development.
REFEREnCE
www.rubyonrails.org

www.wikipedia.org

www.37signals.com

The Rails Way- OBIE FERNANDEZ

From Java To Ruby – BRUCE TATE
thAnK yOu !!

More Related Content

What's hot

Belajar Postman test runner
Belajar Postman test runnerBelajar Postman test runner
Belajar Postman test runner
Fachrul Choliluddin
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
Tessa Mero
 
MERN PPT
MERN PPTMERN PPT
Spring boot
Spring bootSpring boot
Spring boot
sdeeg
 
Introduction to MERN
Introduction to MERNIntroduction to MERN
Introduction to MERN
ShyamMohanKunwar
 
Java & advanced java
Java & advanced javaJava & advanced java
Java & advanced java
BASAVARAJ HUNSHAL
 
Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method Invocation
Paul Pajo
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
Prem Sanil
 
Configuration as Code in Bamboo
Configuration as Code in BambooConfiguration as Code in Bamboo
Configuration as Code in Bamboo
Atlassian
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
Postman
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
Pradeep Patel, PMP®
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
Pedro J. Molina
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to API
rajnishjha29
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
kim.mens
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
Sura Gonzalez
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Simplilearn
 
Express js
Express jsExpress js
Express js
Manav Prasad
 
android sqlite
android sqliteandroid sqlite
android sqliteDeepa Rani
 
Ruby On Rails Basics
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails Basics
Amit Solanki
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
async_io
 

What's hot (20)

Belajar Postman test runner
Belajar Postman test runnerBelajar Postman test runner
Belajar Postman test runner
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
MERN PPT
MERN PPTMERN PPT
MERN PPT
 
Spring boot
Spring bootSpring boot
Spring boot
 
Introduction to MERN
Introduction to MERNIntroduction to MERN
Introduction to MERN
 
Java & advanced java
Java & advanced javaJava & advanced java
Java & advanced java
 
Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method Invocation
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Configuration as Code in Bamboo
Configuration as Code in BambooConfiguration as Code in Bamboo
Configuration as Code in Bamboo
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to API
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
Express js
Express jsExpress js
Express js
 
android sqlite
android sqliteandroid sqlite
android sqlite
 
Ruby On Rails Basics
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails Basics
 
Practical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
 

Viewers also liked

2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
Prof. Wim Van Criekinge
 
Intro to java programming
Intro to java programmingIntro to java programming
Intro to java programmingEugene Stephens
 
R Programming Overview
R Programming Overview R Programming Overview
R Programming Overview
dlamb3244
 
Overview HTML, HTML5 and Validations
Overview HTML, HTML5 and Validations Overview HTML, HTML5 and Validations
Overview HTML, HTML5 and Validations
Yaowaluck Promdee
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Marakana Inc.
 
What is Python? An overview of Python for science.
What is Python? An overview of Python for science.What is Python? An overview of Python for science.
What is Python? An overview of Python for science.
Nicholas Pringle
 
A brief overview of java frameworks
A brief overview of java frameworksA brief overview of java frameworks
A brief overview of java frameworks
MD Sayem Ahmed
 
Overview of c++
Overview of c++Overview of c++
Overview of c++geeeeeet
 
C++ Overview PPT
C++ Overview PPTC++ Overview PPT
C++ Overview PPT
Thooyavan Venkatachalam
 
Ruby Rails Overview
Ruby Rails OverviewRuby Rails Overview
Ruby Rails Overview
Netguru
 
Python overview
Python   overviewPython   overview
Python overview
Hemant Kumar Tiwary
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
Veerabadra Badra
 

Viewers also liked (12)

2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
 
Intro to java programming
Intro to java programmingIntro to java programming
Intro to java programming
 
R Programming Overview
R Programming Overview R Programming Overview
R Programming Overview
 
Overview HTML, HTML5 and Validations
Overview HTML, HTML5 and Validations Overview HTML, HTML5 and Validations
Overview HTML, HTML5 and Validations
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
What is Python? An overview of Python for science.
What is Python? An overview of Python for science.What is Python? An overview of Python for science.
What is Python? An overview of Python for science.
 
A brief overview of java frameworks
A brief overview of java frameworksA brief overview of java frameworks
A brief overview of java frameworks
 
Overview of c++
Overview of c++Overview of c++
Overview of c++
 
C++ Overview PPT
C++ Overview PPTC++ Overview PPT
C++ Overview PPT
 
Ruby Rails Overview
Ruby Rails OverviewRuby Rails Overview
Ruby Rails Overview
 
Python overview
Python   overviewPython   overview
Python overview
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 

Similar to Introduction to Ruby on Rails

Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
iradarji
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
Ayesha Siddika
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on railspmashchak
 
Ruby on rails backend development preferred choice for product owners
Ruby on rails backend development preferred choice for product ownersRuby on rails backend development preferred choice for product owners
Ruby on rails backend development preferred choice for product owners
Katy Slemon
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
Gourab Mitra
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
 
TorqueBox
TorqueBoxTorqueBox
TorqueBox
bobmcwhirter
 
Ruby Rails Web Development
Ruby Rails Web DevelopmentRuby Rails Web Development
Ruby Rails Web Development
Sonia Simi
 
Why Use Ruby On Rails.pdf
Why Use Ruby On Rails.pdfWhy Use Ruby On Rails.pdf
Why Use Ruby On Rails.pdf
Katy Slemon
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
Jim Jones
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
Shaer Hassan
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On Rails
David Keener
 
Ruby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdfRuby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdf
lubnayasminsebl
 
8 awesome benefits of ruby on rails application development
8 awesome benefits of ruby on rails application development 8 awesome benefits of ruby on rails application development
8 awesome benefits of ruby on rails application development
rorbitssoftware
 
Real World Rails 5 Programming for Web Developers
Real World Rails 5 Programming for Web DevelopersReal World Rails 5 Programming for Web Developers
Real World Rails 5 Programming for Web Developers
prshant navgrha
 
Ruby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User GroupRuby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User Group
Jose de Leon
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
ijtsrd
 
8 Common Ruby on Rails Development Mistakes to Avoid
8 Common Ruby on Rails Development Mistakes to Avoid8 Common Ruby on Rails Development Mistakes to Avoid
8 Common Ruby on Rails Development Mistakes to Avoid
rorbitssoftware
 
Lecture #5 Introduction to rails
Lecture #5 Introduction to railsLecture #5 Introduction to rails
Lecture #5 Introduction to rails
Evgeniy Hinyuk
 

Similar to Introduction to Ruby on Rails (20)

Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
 
Ruby on rails backend development preferred choice for product owners
Ruby on rails backend development preferred choice for product ownersRuby on rails backend development preferred choice for product owners
Ruby on rails backend development preferred choice for product owners
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
TorqueBox
TorqueBoxTorqueBox
TorqueBox
 
Ruby Rails Web Development
Ruby Rails Web DevelopmentRuby Rails Web Development
Ruby Rails Web Development
 
Why Use Ruby On Rails.pdf
Why Use Ruby On Rails.pdfWhy Use Ruby On Rails.pdf
Why Use Ruby On Rails.pdf
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Rails Concept
Rails ConceptRails Concept
Rails Concept
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On Rails
 
Ruby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdfRuby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdf
 
8 awesome benefits of ruby on rails application development
8 awesome benefits of ruby on rails application development 8 awesome benefits of ruby on rails application development
8 awesome benefits of ruby on rails application development
 
Real World Rails 5 Programming for Web Developers
Real World Rails 5 Programming for Web DevelopersReal World Rails 5 Programming for Web Developers
Real World Rails 5 Programming for Web Developers
 
Ruby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User GroupRuby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User Group
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
 
8 Common Ruby on Rails Development Mistakes to Avoid
8 Common Ruby on Rails Development Mistakes to Avoid8 Common Ruby on Rails Development Mistakes to Avoid
8 Common Ruby on Rails Development Mistakes to Avoid
 
Lecture #5 Introduction to rails
Lecture #5 Introduction to railsLecture #5 Introduction to rails
Lecture #5 Introduction to rails
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Introduction to Ruby on Rails

  • 1. RUBY ON RAILS MITHUN SASIDHARAN Web Evangelist & Foss Enthusiast
  • 2. CONTENTS  INTRODUCTION  WHAT IS RUBY?  JAvA vS RUBY  WHAT IS RAILS?  RUBY ON RAILS  CONCLUSION
  • 3. INTRODUCTION  Ruby on Rails, sometimes known as "RoR" or just Rails, is an open source framework for Web development in Ruby, an object-oriented programming (OOP) language similar to Perl and Python.  The principle difference between Ruby on Rails and other frameworks for development lies in the speed and ease of use that developers working within the environment enjoy.  Changes made to applications are immediately applied, avoiding the time consuming steps normally associated with the web development cycle.
  • 4. NOW, WHAT’S A WEB AppLICATION ?? A web application is an application that is accessed via web browser over a network such as the Internet or an intranet. The web Application consists of a browser, an application and a database. The browser makes a request to the web application, which then interacts with the database, and produce suitable output and sends it back to the browser.
  • 5. WHAT’S RUBY ?  Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features.  Ruby originated in Japan during the mid-1990s and was initially developed and designed by Yukihiro "Matz" Matsumoto. It is based on Perl, Smalltalk, Eiffel, Ada, and Lisp.  Ruby supports multiple programming paradigms, including functional, object oriented, imperative and reflective. It is similar in varying respects to Python, Perl, Lisp, Dylan, and CLU.
  • 6. FEATURES OF RUBY !!  Objects everywhere! - In Ruby everything is an object including simple numeric values. Here is an example,  Blocks - Blocks is a powerful feature in Ruby which simplifies programming. Blocks are code blocks which can be passed as a parameter to a method. Using this feature it is easy to build code libraries which can delegate varying functionality to code blocks to be built later. Implicit return value in methods - Value of the last expression in a method becomes the return value of the method. In Ruby return keyword is optional.
  • 7.  In Ruby everything is open! - In Ruby you can easily extend classes and modules. This means that nothing in Ruby (including built in classes and modules) are closed!. Interestingly additional methods can be added to a class even at runtime.  Ruby supports parallel assignment - It is possible to change multiple variables in a single assignment. The best example is the swapping of two variable.  In Ruby strings are mutable - In Ruby it is possible to change a string variable in place. Hence unlike Java, the same string literal when used multiple times will point to different object instances.  True and false in Ruby - In Ruby only nil and false evaluate to false. This means that everything else evaluates to true! Hence even the value 0 evaluate to true in ruby.
  • 8. SIMPLE RUBY PROGRAM TO ADD TWO NUMBERS # define a function called addtwo with two parameters def addtwo(a, b) a + b; # return a + b end print "Please enter number 1 : "; # get the input from the console, val1 = gets; print "Please enter number 2 : "; val2 = gets; # convert the string console inputs to_i (to_integers) and add together print "Answer : " , (val1.to_i + val2.to_i), "n";
  • 9. JAvA vS RUBY !! •Ruby is interpreted, Java is compiled (before being interpreted) >ruby my_program.rb • Code can be loaded at runtime • Code is easily accessible • Speed performance issues >javac MyProgram.java >java MyProgram
  • 10. RUBY USE DYNAMIc TYPING • Values have type, variables not • Decrease language complexity - No type declaration - No type casting • Increase flexibility • Errors appears at run-time
  • 11. RUBY SYNTAx IS TERSE
  • 13. JAvA WIN ON PERfORMANcE fIELD
  • 14. ON A BUSINESS POINT Of vIEW ! ! • Java is a well-known technology • Lots of developments have been made with it • Easy to find experts • Still not that much available Ruby developers
  • 15. YET, RUBY PICKING UP MOMENTUM !!
  • 16. WHAT IS RAILS ?? Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-ViewControl pattern. Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals (now a web application company). Like many contemporary web frameworks, Rails uses the Model-ViewController (MVC) architecture pattern to organize application programming.
  • 17. WHAT IS A WEB FRAMEWORK ??  A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. The framework aims to alleviate the overhead associated with common activities performed in Web development.  For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code reuse.  Some of the main features of web framework is that they provide security,database access and mapping,URL mapping,Web template system,caching,AJAX ,Automatic Configurations and so on.
  • 18. MVC ARCHITECTURE Model–view–controller (MVC) is an architectural pattern used in software engineering. The pattern isolates business logic from input and presentation, permitting independent development, testing and maintenance of each. These frameworks use actions that do the required processing, and then "push" the data to the view layer to render the results. These frameworks start with the view layer, which can then "pull" results from multiple controllers as needed.
  • 19. MODEL- Used for persistence and relationships. VIEW- Used for displaying the data. CONTROLLER- The logic of the application.
  • 20. FEATURES OF RUBY ON RAILS Ruby on Rails is separated into various packages, namely ActiveRecord(an object-relational mapping system for database access), ActiveResource (provides web services), ActionPack , ActiveSupport and ActionMailer. Prior to version 2.0, Rails also included the Action Web Service package which is now replaced by Active Resource. Apart from standard packages, developers can make plugins to extend existing packages.
  • 22. RAILS VS J2EE Both have a learning curve. RAILS has the edge in productivity by a significant margin. J2EE currently has an edge in scalability. If it’s a client facing system for millions of concurrent users – use J2EE. If it’s an internal web application, definitely take a look at this technology as a possible way of shortcutting the long development time for a J2EE web application.
  • 23. OR AnOthER wAy tO put It ……
  • 24. AppLICAtIOnS OF ROR !! Ruby On Rails have been in use now by over 500 websites. Some of the leading websites using yellowpages.com, lumosity.com and so on. RoR are 43things.com, Ruby on Rails is Picking up the pace and have become more and more viable in the business scenario.
  • 25. COnCLuSIOn RoR an evolving Toolset. Ruby is what makes Rails special, the interest in general Ruby programming will continue to expand rapidly RoR can be best used for small web based applications requring parallel development.