team corpsegrinder victor romero calvin chan christian hericks vamsi rapaka robert viramontes

Download Team Corpsegrinder Victor Romero Calvin Chan Christian Hericks Vamsi Rapaka Robert Viramontes

If you can't read please download the document

Upload: eileen-flora-mills

Post on 24-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

  • Slide 1
  • Team Corpsegrinder Victor Romero Calvin Chan Christian Hericks Vamsi Rapaka Robert Viramontes
  • Slide 2
  • Outline Where Ruby was conceived What makes Ruby's philosophy so unique What are the criteria for creating a computer language What Matsumoto wanted to achieve What Ruby is used for today
  • Slide 3
  • Where Ruby was conceived
  • Slide 4
  • Ruby was created by Yukihiro Matz Matsumoto. He was born on April 14, 1965. He was born in the Osaka Prefecture and later raised in Tottori Prefecture. He received an information science degree from the University of Tsukuba in Tokyo, Japan.
  • Slide 5
  • He was employed by the Network Applied Communication Laboratory. It specializes in systems consulting and the development of web sites and open source software. He has worked as a computer scientist, a programmer and his current occupation is author. Matsumoto named Ruby after the birthstone of one of his colleagues.
  • Slide 6
  • The Timeline of Ruby Ruby 0.95 was the first version of Ruby. Matsumoto began creating Ruby in 1993. In December 1995, Ruby 0.95 was released, and over the next few days from that date, three other versions were released with minor improvements and changes. Ruby 1.0 was the first version of Ruby that was released to the public in December 1996. Ruby 1.3 was released in 1999. This was the first version that started to be used outside of Japan.
  • Slide 7
  • The Timeline of Ruby In 2006, Ruby on Rails was released. Ruby on Rails is a web application framework written entirely in Ruby. With its release, Ruby on Rails helped the Ruby programming language become very widely known around the globe. Ruby is now one of the top ten programming languages. The first versions of Ruby included garbage collection, classes with inheritance, iterators, object oriented design, closures, exception handling, and mixins. All of these features are still in the latest version of Ruby.
  • Slide 8
  • The Timeline of Ruby Ruby 1.9.1 is the latest stable version of Ruby, which was released in January 2009. Ruby 1.9.3 is the latest version of ruby, which was released in 2011. Ruby is also free, not only free of charge, but also free to use, copy, modify, and distribute.
  • Slide 9
  • What makes Ruby's philosophy so unique
  • Slide 10
  • Programming Philosophy Principle of Least Astonishment (POLA) We are the masters, they are the slaves Matsumoto More attention to the programmer than the machines
  • Slide 11
  • Flexibility of Ruby Essential parts can be removed or redefined at anytime For example: The readable word plus can be used instead of the usual (+) sign if one adds the word to Rubys built-in- Numeric class. Language does not set many restrictions to its users. Rubys blocks
  • Slide 12
  • Features -Ruby is highly portable: it is developed mostly on GNU/Linux, but works on many types of UNIX, Mac OS X, Windows, etc. -Writing C extensions in Ruby is easier than in Perl or Python because of the API for calling Ruby from C. -Ruby features a true mark-and- sweep garbage collector for all Ruby objects. There is no need to maintain reference counts in extension libraries.
  • Slide 13
  • What are the criteria for creating a computer language What Matsumoto wanted to achieve
  • Slide 14
  • Language Design Criteria Clarity Orthogonality Natural Use Support for Abstraction Easy of Program Verification Programming Environment Portability Cost of use
  • Slide 15
  • Matsumotos Goal more powerful than Pearl, and more object- oriented than Python Simplicity/Power Balance functional Programming with Imperative Programming
  • Slide 16
  • 3 Goals: Minimum code necessary Follow common conventions No limitation on layout flexibility
  • Slide 17
  • Paradigms Multi-Paradigm Object-Oriented Imperative Reflective Functional Programming
  • Slide 18
  • Reflection: Computer observes, and modifies its own behavior at runtime Allows the computer to treat instructions as data Higher Level Quality Meta-programming
  • Slide 19
  • Functionality Treats computation as the evaluation of mathematical functions Avoids state/mutable data Prevents blind factors
  • Slide 20
  • Imperative Programming Describes computation in terms of statements that choose a program state Ruby seeks balance.
  • Slide 21
  • Object-Oriented Data structures containing data fields and methods. Modern Default
  • Slide 22
  • Orthogonality Small primitive constructs, combines to build control and data structures Harmony Debate
  • Slide 23
  • Expressions Functional Programming Enhances simplicity, seamlessness, and base understandings
  • Slide 24
  • Ultimate Goals Productivity Prevent performance hang-ups Succinct, compact and ease of use.
  • Slide 25
  • Uses of Ruby Text processing Prototypes Bulky, drawn out applications CGI programming
  • Slide 26
  • What Ruby is used for today
  • Slide 27
  • 5 Major Applications using Ruby Famous Web-Applications Twitter Hulu White Pages Justin.TV Basecamp
  • Slide 28
  • One could change the world with 140 characters, @Jack co-founder of Twitter. Twitter was created in March 2006 by Jack Dorsey, first known as Twttr. Twttr was changed to twitter after the founding group acquired Twitter.com Twitter has drastically grown in members during a short period of time consequently this has led to many problems with their server crashing. Ruby has been the scapegoat for the crashes and downtime twitter has suffered. I has been said Ruby has problems being the environment for long lived processes because it has a poor garbage collector which leaks memory over time. As a result, Twitter is being transitioned into other languages such as Scala and Java Twitter
  • Slide 29
  • Hulu Hulu was launched to the public on March 12, 2008. Hulu was part of a collaboration between Facebook, Yahoo, MSN and AOL. Hulu had a total of 30 developers 15 took care of the software while the other 15 did the promoting and business. Ruby was chosen for Hulu because it is easier to program with. This would mean fewer programmers and future technicians fixing problems. (Lower maintenance costs)
  • Slide 30
  • White Pages White pages, the people search engine, was first published online in 1996. In the year 2009 White pages announced it would invest 2.5 million dollars to remodel itself including its whole website. From here White pages adopted Ruby to its platform. Within two weeks of testing the new Ruby platform White Pages saw a 51% performance increase in their website traffic and membership.
  • Slide 31
  • Justin.TV Justin.TV was created in 2007 by Justin Ferrer, Melinie Wu and Kyle Vogt. At first it was used by Justin Ferrer to broadcast his life but he eventually made the website public and allowed people to create channels. Justin.TV was designed with Ruby on Rails as its platform The platform is designed to scale by measuring real- time demand and replicating the streams into additional servers This is to prevent one server from having too much traffic and overloading
  • Slide 32
  • Basecamp Developed by a company called 37 Tools for their own personal use Ruby was the language chosen by David Hansson Basecamp was used for project management and it was so well built that other companies started asking 37 Tools to sell it to them. Basecamp is a web-application This is to some better than a desktop application because desktop applications can only run on certain operating systems while Web-apps can run on most web browsers. From Basecamp Ruby on Rails was extracted by David Hansson Ruby on rails is a web framework in which most of the websites previously mentioned run on.