1 / 32

Ruby

Victor Romero Calvin Chan Christian Hericks Vamsi Rapaka Robert Viramontes. Team Corpsegrinder. Ruby. Outline. Where Ruby was conceived What makes Ruby's philosophy so unique What are the criteria for creating a computer language W hat Matsumoto wanted to achieve

stew
Download Presentation

Ruby

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Victor Romero Calvin Chan Christian Hericks VamsiRapaka Robert Viramontes Team Corpsegrinder Ruby

  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

  3. Where Ruby was conceived

  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.

  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.

  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.

  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 it’s 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.

  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.

  9. What makes Ruby's philosophy so unique

  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

  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 Ruby’s “built-in- Numeric” class. • Language does not set many restrictions to its users. • Ruby’s blocks

  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.

  13. What Matsumoto wanted to achieve What are the criteria for creating a computer language

  14. Language Design Criteria • Clarity • Orthogonality • Natural Use • Support for Abstraction • Easy of Program Verification • Programming Environment • Portability • Cost of use

  15. Matsumoto’s Goal • “more powerful than Pearl, and more object-oriented than Python” • Simplicity/Power • Balance functional Programming with Imperative Programming

  16. 3 Goals: • Minimum code necessary • Follow common conventions • No limitation on layout flexibility

  17. Paradigms • Multi-Paradigm • Object-Oriented • Imperative • Reflective • Functional Programming

  18. Reflection: • Computer observes, and modifies its own behavior at runtime • Allows the computer to treat instructions as data • Higher Level Quality • Meta-programming

  19. Functionality • Treats computation as the evaluation of mathematical functions • Avoids state/mutable data • Prevents blind factors

  20. Imperative Programming • Describes computation in terms of statements that choose a program state • Ruby seeks balance.

  21. Object-Oriented • Data structures containing data fields and methods. • Modern Default

  22. Orthogonality • Small primitive constructs, combines to build control and data structures • Harmony Debate

  23. Expressions • Functional Programming • Enhances simplicity, seamlessness, and base understandings

  24. Ultimate Goals • Productivity • Prevent performance hang-ups • Succinct, compact and ease of use.

  25. Uses of Ruby • Text processing • Prototypes • Bulky, drawn out applications • CGI programming

  26. What Ruby is used for today

  27. 5 Major Applications using Ruby Famous Web-Applications • Twitter • Hulu • White Pages • Justin .TV • Basecamp

  28. “One could change the world with 140 characters,” @Jack co-founder of Twitter. 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

  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)

  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.

  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

  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.

More Related