why ruby (on rails)? -...

25
Why Ruby (on Rails)? Motivations Luigi De Russis

Upload: others

Post on 03-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Why Ruby (on Rails)?

Motivations Luigi De Russis

Page 2: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Disclaimer

06/03/2014

2

Why Ruby (on Rails)?

Page 3: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

06/03/2014 Why Ruby (on Rails)? 3

NO general value

extremism

YES course-specific value

open mind

Page 4: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Course requirements

06/03/2014

4

Why Ruby (on Rails)?

Page 5: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Goal and context

06/03/2014 Why Ruby (on Rails)?

5

Goal

design and implement a Social Network site

6 credits (course) module

Diverse students’ background

no previous web programming course, here

all (?) of you know Java

not everybody “loves” programming

this year, few of you already knows PHP

Page 6: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

What we are looking for...

06/03/2014

6

Why Ruby (on Rails)?

Good documentation

A main web framework

Active and compact community

Rapid development/prototyping

Object-oriented language

Usage of modern technologies (REST, Ajax, ...)

Page 7: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Languages to consider

06/03/2014

7

Why Ruby (on Rails)?

Python PHP

Ruby Java

Page 8: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

When Java meets the web…

Why not Java?

06/03/2014

8

Why Ruby (on Rails)?

Page 9: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

06/03/2014 Why Ruby (on Rails)?

9

“JSP technologies is considered to be a

deprecated presentation technology for

Java Server Faces 2.0”

- The Java EE 6 Tutorial (http://docs.oracle.com/javaee/6/tutorial/doc/giepx.html)

Java Server Pages (JSP)

Page 10: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Java Server Faces (JSF)

06/03/2014

10

Why Ruby (on Rails)?

Sparse documentation

A lot of jars to download and install manually Java

Available framework not yet fully “compatible”

Page 11: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Java Server Faces (JSF)

06/03/2014

11

Why Ruby (on Rails)?

Good documentation

A main web framework

Active and compact community

Rapid development/prototyping

Object-oriented language

Usage of modern technologies (REST, Ajax, ...)

Page 12: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Why not PHP?

06/03/2014

12

Why Ruby (on Rails)?

Page 13: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

PHP

06/03/2014

13

Why Ruby (on Rails)?

Fragmented communities (for frameworks)

A lot of web framework (18 and growing)

A lot of dilectantism (bad for docs and problems)

Very spread

Little real-world usage of OOP

Very flexible

Page 14: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

PHP

06/03/2014

14

Why Ruby (on Rails)?

Good documentation

A main web framework

Active and compact community

Rapid development/prototyping

Object-oriented language

Usage of modern technologies (REST, Ajax, ...)

Page 15: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

When Python meets the Web…

Why not Python?

06/03/2014

15

Why Ruby (on Rails)?

Page 16: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Django

06/03/2014

16

Why Ruby (on Rails)?

Speed and agility in building applications

Usage of conventions (DRY, ORM, sort of MVC)

Big community

Good documentation

Structured code

Neat markup

Open Source

Admin built-in

Do not include any modern Web technologies

No DB Schema Migration included

Caching included

One of the web framework for Python

Functions a little bit “technical”

Page 17: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Django in the real world...

06/03/2014 Why Ruby (on Rails)?

17

Page 18: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Python/Django

06/03/2014

18

Why Ruby (on Rails)?

Good documentation

A main web framework

Active and compact community

Rapid development/prototyping

Object-oriented language

Usage of modern technologies (REST, Ajax, ...)

Page 19: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

So... Why Rails?

06/03/2014

19

Why Ruby (on Rails)?

Page 20: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Ruby on Rails

06/03/2014

20

Why Ruby (on Rails)?

Speed and agility in building applications

Large usage of conventions (DRY, CoC, MCV, ORM)

Predefined file structure

Big community

Good documentation

Increasing efficiency

Neat markup and structured code

Open Source

No admin built-in

Include various modern Web technologies

DB Schema Migration

Caching included

The main web framework for Ruby

Page 21: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Ruby on Rails in the real world...

06/03/2014 Why Ruby (on Rails)?

21

Page 22: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Ruby/Ruby on Rails

06/03/2014

22

Why Ruby (on Rails)?

Good documentation

A main web framework

Active and compact community

Rapid development/prototyping

Object-oriented language

Usage of modern technologies (REST, Ajax, ...)

Page 23: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

Final thought...

06/03/2014

23

Why Ruby (on Rails)?

Page 24: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

06/03/2014 Why Ruby (on Rails)? 24

NO general value

extremism

YES course-specific value

open mind

Page 25: Why Ruby (on Rails)? - polito.itelite.polito.it/.../02NPYPD/2013-2014/lucidi/moduloA/01-why-rails.pdf · License Why Ruby (on Rails)? 06/03/2014 25 This work is licensed under the

License

06/03/2014 Why Ruby (on Rails)?

25

This work is licensed under the Creative Commons “Attribution-NonCommercial-ShareAlike Unported (CC BY-NC-SA 3,0)” License.

You are free:

to Share - to copy, distribute and transmit the work

to Remix - to adapt the work

Under the following conditions:

Attribution - You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).

Noncommercial - You may not use this work for commercial purposes.

Share Alike - If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/