Ruby Tien Ho and Brandon Hostetter. Overview ▸ Object-oriented, functional, imperative, and reflective ▸ Interpreted language ▸ Influenced by Perl, Smalltalk,

Slides:



Advertisements
Similar presentations
John Pinney Ruby in 20 minutes John Pinney
Advertisements

Adapted from Scott, Chapter 6:: Control Flow Programming Language Pragmatics Michael L. Scott.
1 OBJECT-ORIENTED CONCEPTS. 2 What is an object?  An object is a software entity that mirrors the real world in some way.  A software object in OOP.
Language of the Month If it’s December, it must be Ruby! Adam Coffman and Brent Beer.
CS ExCo Advanced in Topics Object-Oriented Programming.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Summer Semester 2006.
High-Level Programming Languages
Ruby The Gem of new programming languages. An interpreted scripting language.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Page 1 Ruby by Tim Hanson & Mamadou Seck. Page 2 Philosophy "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming,
C#: Project Cool Arthur Ketchel II Keith Francisco Chris McInnis.
Dylan An Object Oriented Dynamic Language. Dylan Overview Short for “Dynamic Langage” General-purpose Object-oriented Attempts to combine functionality.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
By Logan Phipps Hal student.  This power point explains some common programming languages enjoy  When done click on the home button to return to home.
Peter Juszczyk CS 492/493 - ISGS. // Is this C# or Java? class TestApp { static void Main() { int counter = 0; counter++; } } The answer is C# - In C#
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Lua Matthew Spain | Kerry Zhao. Agenda Overview of Lua Language Details Application Areas Demo Conclusion.
Programming Language Concepts
Introduction to Ruby CSE 413 Autumn 2008 Credit: Dan Grossman, CSE341.
Chair of Software Engineering Beyond Eiffel these slides contain advanced material and are optional.
Comparison of OO Programming Languages © Jason Voegele, 2003.
A TOUR OF RUBY 2011 ACM Class, Dong Xie. What is Ruby?  Dynamic programming language  Complex but expressive grammar  A core class library with rich.
General Purpose Language Ruby Kit Chan COMP3351 Programming Languages November 9, 2007.
By Timothy Sparks. Yukihiro Matsumoto wanted “a scripting language that was more powerful than Perl, and more object- oriented than Python. That's why.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
SCRIPTING IN RUBY By Amber Bennett “Ruby is simple in appearance, but is very complex inside, just like our human body.” --Yukihiro Matsumoto.
1 Perl Perl basics Perl Elements Arrays and Hashes Control statements Operators OOP in Perl.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Ruby! Ronald L. Ramos. What is Ruby? Ruby is a scripting language designed by Yukihiro Matsumoto, also known as Matz. It runs on a variety of platforms,
JavaScript, Fourth Edition
Ruby. Who am I? 1- Bunlong Van 2- Sreyleap Lay, 3- Chhon Meily Blog:
1 Programming Language History and Evolution In Text: Chapter 2.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
A very basic overview of Server-Side Scripting Or what is PHP, Perl, Python, Ruby and what can they do for me?
USING RUBY An Introduction By Evgeny Rahman. About Me Principal Engineer at FirstFuel Software 10+ years in Software Engineering 5 years working with.
C# Language Panithan Chandrapatya Agenda C# History C# Goals C# Fixes C# Contribution C# Features C# Success C# Example.
Chapter 12 Support for Object oriented Programming.
Ruby/Ruby on Rails Yasushi Osonoi Open Dream corporation
Types in programming languages1 What are types, and why do we need them?
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
+ Ruby and other programming Languages Ronald L. Ramos.
Scripting with Ruby What is a scripting language? What is Ruby?
Chapter 8 High-Level Programming Languages. 2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Objective-C Drew Cheng CS420. Overview True superset of ANSI C Object-Oriented methods from SmallTalk There is no formal written standard for the language.
RUBY by Ryan Chase.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
1 Getting Started with Ruby. 2 What’s Ruby? Ruby is an OO, dynamic, agile language –Everything’s an object For example, try puts -1.abs –Derives strengths.
Ruby Duck Typing, Classes & Inheritance CSE 413 Autumn 2008.
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
A Survey of Object-Oriented Concept Oscar Nierstrasz.
Python Programming Language by Vasu Chetty. Origins of Python Created by: Guido van Rossum, a Dutch Programmer Created during: Christmas Break, 1989 Created.
Python Joseph Eckstrom, Benjamin Moore, Willis Kornegay.
Presented By P.SRIVIDYA 085D1A0552 Programming Language.
Language Paradigms CS655.
NetBeans & Ruby David Botterill Software Engineer Global Technology Manager - Campus Ambassador Program Sun Microsystems, Inc.
Programming Language History and Evolution
Programming Languages Dan Grossman 2013
Ruby: An Introduction Created by Yukihiro Matsumoto in 1993 (named after his birthstone) Pure OO language (even the number 1 is an instance of a class)
Scope History of Ruby. Where can you use Ruby? General Features.
Types of Programming Languages
Programming Language History and Evolution
CSE4102/5102 Team Project Ruby & Ruby on Rails
What to do today: Brief history of Ruby General qualities/info
Ruby Testing 2, 11/9/2004.
Programming Languages 2nd edition Tucker and Noonan
Overview of Programming Paradigms
Functional Programming and Haskell
Functional Programming and Haskell
Presentation transcript:

Ruby Tien Ho and Brandon Hostetter

Overview ▸ Object-oriented, functional, imperative, and reflective ▸ Interpreted language ▸ Influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp ▸ Used mostly for web development (Ruby on Rails) “ I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. ” ~ Yukihiro “ Matz ” Matsumoto

History ▸ Developed by Yukihiro Matsumoto in Japan during the mid-1990s ▸ Ruby 0.95 (1995): included garbage collection, inheritance, iterators, object-oriented design, closures, exception handlings, and mixins. ▸ Ruby 1.3 (1999): made its way to English speaking countries ▸ Ruby on Rails (2005): ignited Ruby’s popularity ▸ Ruby (2014): most current stable version

History ▸ Currently 9th in the TIOBE Index ▸ Syntactically simple like Lisp ▸ Influenced by the object system in Smalltalk ▸ Follows Perl’s principle of there is more than one way to do it (TIMTOWTDI).

Language Concepts ▸ Everything is an object (even classes and integers). ▸ Everything is true except false and nil. ▸ Classes are open. ▸ Blocks are used as in higher-order functions. ▹ Can be passed as an argument to a method ▸ Single inheritance only ▹ Modules ▹ Mixins ~ multiple inheritance

Language Concepts ▸ Use sigils to denote variable scope ▹ var - Local variable Instance variable ▹ - Class variable ▹ $var- Global variable ▸ Dynamic Type Checking ▹ Type checking is performed at run-time instead of compile-time

Language Concepts ▸ Metaclasses ▹ Class is an instance of a class. ▸ Duck typing ▹ Concerned with how an object behaves as opposed to the type of an object ▸ Reflection ▹ Ability to observe and modify code at run-time ▸ Garbage collection

Example - Objects

Example - Blocks

Example - Modules & Mixins

Comparison PerlRubyJava Object Orientedprimitive types are not objects everything is represented as an object primitive types are not objects Garbage Collection yes Data-typingdynamicduckstrong Interpreted / Compiled interpreted compiled

References ▸ Cooper, Peter. "The Ruby Ecosystem." Beginning Ruby: From Novice to Professional. 2nd ed. New York: Apress, Print. ▸ Halmagean, Cezar. "Mastering Ruby Blocks In Less Than 5 Minutes." Mix & Go: Ideas Brought to Life. 20 Jan Web. 21 Nov ▸ "Ruby Modules and Mixins." Tutorials Point. Web. 22 Nov ▸ "The History of Ruby." Gunner Technology. Gunner Technology, 29 Nov Web. 21 Nov ▸ "TIOBE Index for November 2015." TIOBE Software: The Software Quality Company. TIOBE Software BV, 1 Nov Web. 21 Nov