What Is Ruby?

Total Page:16

File Type:pdf, Size:1020Kb

What Is Ruby? 3/27/2015 Ruby and Ruby on Rails Today’s Presentation • What is Ruby? • What is Rails? • What are Ruby and Rails used for? • The Need for a Rails Framework • The Rails Framework • The Ruby Language • Ruby and Rails Resources What is Ruby? A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. -- ruby-lang.org Ruby User’s Group Website CSCI Seminar Series Ruby and Ruby on Rails 2 1 3/27/2015 What is Ruby? Ruby was developed: • By Yukihiro Matsumoto (“Matz”) • In japan starting in 1993 (first release 1995) I was talking with my colleague about the possibility of an object-oriented scripting language. … [Perl] had the smell of a toy language … I didn't think [Python] was a true object-oriented language — OO features appeared to be add-on to the language. …so I decided to make it. CSCI Seminar Series Ruby and Ruby on Rails 3 Yukihiro Matsumoto • Known as “Matz” • born in Osaka in 1965 • Self taught in programming from an early age through high school • information science degree from Univ. of Tsukuba, Ikuo Nakata’s languages and compilers research team • Open source advocate (worked for netlab.jp) • Lisp aficionado CSCI Seminar Series Ruby and Ruby on Rails 4 2 3/27/2015 Yukihiro Matsumoto • Worked for open source companies • Most recently the head of the research and development dept. at the Network Applied Communication Laboratory • Was a Mormon missionary • Recently released mruby as an open source project – minimal implementation of Ruby – Based on a minimal virtual machine CSCI Seminar Series Ruby and Ruby on Rails 5 What is Ruby? According to Matz: I was talking with my colleague about the possibility of an object-oriented scripting language. … [Perl] had the smell of a toy language … I didn't think [Python] was a true object-oriented language — OO features appeared to be add-on to the language. …So I decided to make it. CSCI Seminar Series Ruby and Ruby on Rails 6 3 3/27/2015 What is Ruby? Ruby is a language of careful balance. “Matz” said he blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming. …natural, not simple …simple in appearance, but is very complex inside, just like our human body. CSCI Seminar Series Ruby and Ruby on Rails 7 What is Ruby? • intended for use as a scripting language • interpreted • dynamic and reflexive • multi-paradigm – imperative – functional – object-oriented • not Algol-derived CSCI Seminar Series Ruby and Ruby on Rails 8 4 3/27/2015 What is Ruby? Ruby can be • executed directly irb • Embedded in Web-page code erb • Run directly as an interpreted program CSCI Seminar Series Ruby and Ruby on Rails 9 What is Ruby? The reference implementation of Ruby is: Matz's Ruby Interpreter, Ruby MRI, CRuby The Ruby license is a 2-clause FreeBSD License verified as GPL-compatible free by the Free Software Foundation and The Open Source Initiative. CSCI Seminar Series Ruby and Ruby on Rails 10 5 3/27/2015 2-Clause FreeBSD License Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. “as is…” CSCI Seminar Series Ruby and Ruby on Rails 11 What is Ruby? class Numeric puts “Hello, World!” def plus(x) self.+(x) end for ss in 1...10 puts ss end end y = 5.plus 6 # prints 1 to 9 # y is now equal to 11 for ss in 1..10 puts ss end # prints 1 to 10 CSCI Seminar Series Ruby and Ruby on Rails 12 6 3/27/2015 What is Rails? Ruby on Rails® is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. -- http://rubyonrails.org CSCI Seminar Series Ruby and Ruby on Rails 13 What is Rails? Web Application Framework • developed by David Heinemeier Hansson • open source (first released in 2004) • web application framework • written in Ruby • based on software engineering paradigms • popular for streamlining Web development CSCI Seminar Series Ruby and Ruby on Rails 14 7 3/27/2015 David Heinemeier Hansson • born in 1979 in Copenhagen • degree from Copenhagen Business School • successful race car driver (LeMans) • after graduation, hired by 37 Signals to work on Basecamp project management software • developed Rails as part of Basecamp project • currently CTO for Basecamp, living in Chicago CSCI Seminar Series Ruby and Ruby on Rails 15 David Heinemeier Hansson • born in 1979 in Copenhagen • degree from Copenhagen Business School • successful Race Driver (LeMans) • after graduation, hired by 37 Signals to work on Basecamp project management software • developed Rails as part of Basecamp project • currently CTO for Basecamp, living in Chicago CSCI Seminar Series Ruby and Ruby on Rails 16 8 3/27/2015 What is Rails? The Rails name, logo, etc. are still “owned” by David Heinemeier Hansson. open source – MIT License CSCI Seminar Series Ruby and Ruby on Rails 17 MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. …as-is… CSCI Seminar Series Ruby and Ruby on Rails 18 9 3/27/2015 What is Rails? Web Application Framework • software framework basis for development of software applications customizable generic software platform • Web services • Web applications • Web resources • dynamic Web pages CSCI Seminar Series Ruby and Ruby on Rails 19 What is Rails? Based on software engineering paradigms: • DRY programming Don’t Repeat Yourself • CoC Convention over Configuration • M-V-C Model – View – Controller • Active Record Pattern (see Wikipedia) CSCI Seminar Series Ruby and Ruby on Rails 20 10 3/27/2015 What are Ruby and Rails used for? Rails is used to develop a software stack for Web applications. Ruby is used to customize the framework created by rails for an application. Rails appeared in 2003. Interest in Ruby and Rails rose quickly but has levelled off. Twitter Effect (2006) SXSWi (2007) 8/16/13 CSCI Seminar Series Ruby and Ruby on Rails 21 What are Ruby and Rails used for? Rails is used to develop a software stack for Web applications. A stack includes: • Operating Systems • Web Servers • Database server • Middleware • Language Interpreters, and more CSCI Seminar Series Ruby and Ruby on Rails 22 11 3/27/2015 The Need for a Rails Framework Elements of a software stack are typically Developed by specialists. Consider an MVC based active record pattern In a typical three-tiered system. Front end Middleware Basck end user server-side DBMS Web browser programming DBMS server CSCI Seminar Series Ruby and Ruby on Rails 23 Front end Middleware Basck end user server-side DBMS Web browser programming DBMS server Web page developers database professionals HTML design Web page scripting administration data entry forms & processing server management SQL programmers Middleware professionals Web server management DBMS connectivity embedded SQL dynamic HTML ORM Object Relational Modeling CSCI Seminar Series Ruby and Ruby on Rails 24 12 3/27/2015 Ruby and Rails Resources Installing Ruby • download source code and build or • download and run a Ruby Installer Ruby Installer Page: http://rubyinstaller.org CSCI Seminar Series Ruby and Ruby on Rails 25 Ruby and Rails Resources Ruby Resources Ruby Language Website https://www.ruby-lang.org/en Ruby Documentation https://www.ruby-lang.org/en/documentation Interactive Ruby Introduction http://tryruby.org CSCI Seminar Series Ruby and Ruby on Rails 26 13 3/27/2015 Ruby and Rails Resources Ruby IDEs Aptana Studio RadRails http://www.aptana.com/products/radrails.html Komodo IDE http://komodoide.com RubyMine from JetBrains http://www.jetbrains.com/ruby/index.html NotePad++ and Ruby http://www.rubytips.org/2011/12/22/using-notepad-for-writing-ruby-programs-in-windows CSCI Seminar Series Ruby and Ruby on Rails 27 Ruby and Rails Resources Rails Resources Rails Website http://rubyonrails.org Ruby on Rails Guide http://guides.rubyonrails.org Ruby on Rails tutorial (free online ebook, 3rd ed.) https://www.railstutorial.org CSCI Seminar Series Ruby and Ruby on Rails 28 14.
Recommended publications
  • Ruby Course --- an Immersive Programming Course ---0.5Em
    Ruby Course — an immersive programming course — Sommercampus 2005 - Albert Ludwigs Universität Freiburg Brian Schröder [email protected] Licence Copyright c 2004-2006 Brian Schroeder Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Part I Introduction Brian Schröder Ruby Course 2004 Simple hello world example This is a must 1 #!/usr/bin/ruby 2 3 puts ’Hello World’ 1 Hello World Brian Schröder Ruby Course 2004 Function definition Functions are defined using the def keyword 1 #!/usr/bin/ruby 2 3 def hello(programmer) 4 puts "Hello #{programmer}" 5 end 6 7 hello(’Brian’) 1 Hello Brian Brian Schröder Ruby Course 2004 In ruby everything is an object Everything is an object, so get used to the “.method” notation. 1 (5.6).round » 6 2 (5.6).class » Float 3 (5.6).round.class » Fixnum 4 5 ’a string’.length » 8 6 ’a string’.class » String 7 ’tim tells’.gsub(’t’, ’j’) »"jim jells" 8 9 ’abc’.gsub(’b’, ’xxx’).length » 5 10 11 [’some’, ’things’, ’in’, ’an’, ’array’].length » 5 12 [’some’, ’things’, ’in’, ’an’, ’array’].reverse » ["array", "an", "in", "things", "some"] 13 14 # You can even write 15 1.+(2) » 3 16 17 # but there is some sugar for cases like this 18 1 + 2 » 3 Brian Schröder Ruby Course 2004 Class definition and inheritance Base Class Sub Class 1 class Person 13 class Matz < Person 2 def initialize(name) 14 def initialize 3 @name = name 15 super(’Yukihiro Matsumoto’) 4 end 16 end 5 17 end 6 def greet 18 7 "Hello, my name is #{@name}." 19 puts Matz.new.greet 8 end 9 end 1 Hello, my name is Yukihiro Matsumoto.
    [Show full text]
  • Ruby on Rails™ Tutorial: Learn Web Developments with Rails
    ptg8286261 www.it-ebooks.info Praise for Michael Hartl’s Books and Videos on Ruby on RailsTM ‘‘My former company (CD Baby) was one of the first to loudly switch to Ruby on ptg8286261 Rails, and then even more loudly switch back to PHP (Google me to read about the drama). This book by Michael Hartl came so highly recommended that I had to try it, and the Ruby on RailsTM Tutorial is what I used to switch back to Rails again.’’ —From the Foreword by Derek Sivers (sivers.org) Formerly: Founder, CD Baby Currently: Founder, Thoughts Ltd. ‘‘Michael Hartl’s Rails Tutorial book is the #1 (and only, in my opinion) place to start when it comes to books about learning Rails. It’s an amazing piece of work and, unusually, walks you through building a Rails app from start to finish with testing. If you want to read just one book and feel like a Rails master by the end of it, pick the Ruby on RailsTM Tutorial.’’ —Peter Cooper Editor, Ruby Inside www.it-ebooks.info ‘‘Grounded in the real world.’’ —I Programmer (www.i-programmer.info), by Ian Elliot ‘‘The book gives you the theory and practice, while the videos focus on showing you in person how its done. Highly recommended combo.’’ —Antonio Cangiano, Software Engineer, IBM ‘‘The author is clearly an expert at the Ruby language and the Rails framework, but more than that, he is a working software engineer who introduces best practices throughout the text.’’ —Greg Charles, Senior Software Developer, Fairway Technologies ‘‘Overall, these video tutorials should be a great resource for anyone new to Rails.’’ —Michael Morin, ruby.about.com ‘‘Hands-down, I would recommend this book to anyone wanting to get into Ruby on Rails development.’’ —Michael Crump, Microsoft MVP ptg8286261 www.it-ebooks.info RUBY ON RAILSTM TUTORIAL Second Edition ptg8286261 www.it-ebooks.info Visit informit.com/ruby for a complete list of available products.
    [Show full text]
  • Ruby Best Practices.Pdf
    Ruby Best Practices Ruby Best Practices Gregory Brown foreword by Yukihiro “Matz” Matsumoto Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Ruby Best Practices by Gregory Brown Copyright © 2009 Gregory Brown. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or [email protected]. Editor: Mike Loukides Indexer: Ellen Troutman Zaig Production Editor: Sarah Schneider Cover Designer: Karen Montgomery Copyeditor: Nancy Kotary Interior Designer: David Futato Proofreader: Sada Preisch Illustrator: Robert Romano Printing History: June 2009: First Edition. O’Reilly and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Ruby Best Practices, the image of a green crab, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. In March 2010, this work will be released under the Creative Commons Attribution- Noncommercial-Share Alike 3.0 License.
    [Show full text]
  • Sistema De Gestión De Información De Usuarios Y Resultados Para El Paquete Informático Genecodis
    Proyecto de Sistemas Informáticos Curso académico 2008 / 2009 Sistema de gestión de información de usuarios y resultados para el paquete informático GeneCodis Autores Victor Acón Aceña Eva García Vega Profesor Director Alberto Pascual-Montano Dpto. de Arquitectura de Computadores y Automática Facultad de Informática. Universidad Complutense de Madrid Sistema de gestión de información de usuarios y resultados para el paquete 2008/09 informático GeneCodis Página 2 Sistema de gestión de información de usuarios y resultados para el paquete 2008/09 informático GeneCodis Resumen GeneCodis cuenta en la actualidad con una media de 500 trabajos reales provenientes de distintas partes del mundo, en especial de Europa, USA y Japón. Así mismo, el número de procesos realizados por el mismo usuario es también alto y la tendencia es aumentar. Este número elevado de procesos por usuario hace que la gestión de la información sea imprecisa poco fiable y prácticamente imposible de gestionar de una manera organizada ya que la manera de notificación existente en la actualidad está basada en el correo electrónico o en el almacenamiento manual de las URL con los resultados, por lo tanto, este proyecto pretende minimizar estos problemas mediante la realización de una gestión de los trabajos. Palabras Claves • GeneCodis • Ruby • Rails • Camping • Bioinformática • Análisis funcional • Bases de datos • HTML Página 3 Sistema de gestión de información de usuarios y resultados para el paquete 2008/09 informático GeneCodis Abstract Nowadays, Genecodis has about 500 real works which come from different places of the world, especially from Europe, USA and Japan. Moreover, the number of process which is realized by the same user is usually large and it normally goes on increasing.
    [Show full text]
  • Realización De Un Sistema Web Complejo Para Uso Didáctico
    Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros de Telecomunicación REALIZACIÓN DE UN SISTEMA WEB COMPLEJO PARA USO DIDÁCTICO TRABAJO FIN DE MÁSTER Daniel Benítez Águila 2014 Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros de Telecomunicación Máster Universitario en Ingeniería de Redes y Servicios Telemáticos TRABAJO FIN DE MÁSTER REALIZACIÓN DE UN SISTEMA WEB COMPLEJO PARA USO DIDÁCTICO Autor Daniel Benítez Águila Director Joaquín Salvachúa Rodríguez Departamento de Ingeniería de Sistemas Telemáticos 2014 Resumen El desarrollo de aplicaciones web está sufriendo grandes cambios en los últimos años. El crecimiento de servicios en la nube es una de las principales razones de esos cambios así como el incremento del número de tecnologías y soluciones asociadas a ello. Este Trabajo Fin de Máster se centra en la creación de un sistema web complejo para uso didáctico. Esto es un sistema web que pueda servir de ayuda para aquellos principiantes que deseen iniciarse en el desarrollo web actual. Se hará una breve introducción, donde se expondrá el contexto bajo el cual se va a desarrollar el trabajo y se definirán qué objetivos quieren alcanzarse con la realización del mismo. La principal meta de este trabajo es el diseño, desarrollo e implementación del sistema web. Para llevar a cabo dicha tarea, se analizarán las diferentes tecnologías que se estiman más novedosas y significativas en el ámbito del desarrollo de aplicaciones web, ya que se considera de vital importancia tener una panorámica de qué hay a día de hoy para poder elegir aquello que se más se ajuste a nuestras necesidades. Estas tecnologías serán lenguajes de programación, frameworks, motores de plantillas, bases de datos y plataformas de despliegue.
    [Show full text]
  • James Reynolds What Is a Ruby on Rails Why Is It So Cool Major Rails Features Web Framework
    Ruby On Rails James Reynolds What is a Ruby on Rails Why is it so cool Major Rails features Web framework Code and tools for web development A webapp skeleton Developers plug in their unique code Platforms Windows Mac OS X Linux Installation Mac OS X 10.5 will include Rails Mac OS X 10.4 includes Ruby Most people reinstall it anyway From scratch Drag and drop Locomotive Databases Mysql Oracle SQLite Firebird PostgreSQL SQL Server DB2 more Webservers Apache w/ FastCGI or Mongrel LightTPD WEBrick "IDE's" TextMate and Terminal (preferred) RadRails jEdit Komodo Arachno Ruby Has "inspired" Grails CakePHP Trails PHP on TRAX Sails MonoRail Catalyst TrimPath Junction Pylons WASP ColdFusion on Wheels And perhaps more... Why is it so cool? Using the right tool for the job y = x^2 vs y = x^0.5 Right tool Rails is the most well thought-out web development framework I've ever used. And that's in a decade of doing web applications for a living. I've built my own frameworks, helped develop the Servlet API, and have created more than a few web servers from scratch. Nobody has done it like this before. James Duncan Davidson, Creator of Tomcat and Ant y = x ^ 2 vs y = x ^ 0.5 Features Features Work Work Typical Rare y = x ^ 2 vs y = x ^ 0.5 Feature ceiling Features Features Work Work This is a no-brainer... Ruby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.
    [Show full text]
  • Software Package Licenses
    DAVIX 1.0.0 Licenses Package Version Platform License Type Package Origin Operating System SLAX 6.0.4 Linux GPLv2 SLAX component DAVIX 0.x.x Linux GPLv2 - DAVIX Manual 0.x.x PDF GNU FDLv1.2 - Standard Packages Font Adobe 100 dpi 1.0.0 X Adobe license: redistribution possible. Slackware Font Misc Misc 1.0.0 X Public domain Slackware Firefox 2.0.0.16 C Mozilla Public License (MPL), chapter 3.6 and Slackware 3.7 Apache httpd 2.2.8 C Apache License 2.0 Slackware apr 1.2.8 C Apache License 2.0 Slackware apr-util 1.2.8 C Apache License 2.0 Slackware MySQL Client & Server 5.0.37 C GPLv2 Slackware Wireshark 1.0.2 C GPLv2, pidl util GPLv3 Built from source KRB5 N/A C Several licenses: redistribution permitted dropline GNOME: Copied single libraries libgcrypt 1.2.4 C GPLv2 or LGPLv2.1 Slackware: Copied single libraries gnutls 1.6.2 C GPLv2 or LGPLv2.1 Slackware: Copied single libraries libgpg-error 1.5 C GPLv2 or LGPLv2.1 Slackware: Copied single libraries Perl 5.8.8 C, Perl GPL or Artistic License SLAX component Python 2.5.1 C, PythonPython License (GPL compatible) Slackware Ruby 1.8.6 C, Ruby GPL or Ruby License Slackware tcpdump 3.9.7 C BSD License SLAX component libpcap 0.9.7 C BSD License SLAX component telnet 0.17 C BSD License Slackware socat 1.6.0.0 C GPLv2 Built from source netcat 1.10 C Free giveaway with no restrictions Slackware GNU Awk 3.1.5 C GPLv2 SLAX component GNU grep / egrep 2.5 C GPLv2 SLAX component geoip 1.4.4 C LGPL 2.1 Built from source Geo::IPfree 0.2 Perl This program is free software; you can Built from source redistribute it and/or modify it under the same terms as Perl itself.
    [Show full text]
  • The Ruby Programming Language... It's Really Fun and It Feels Good!
    The Ruby Programming Language... it's really fun and it feels good! Dr. John Pagonis Pragmaticomm Limited, Athens Ruby Meetup #9, March 31st 2012 twitter: @greekrubymeetup @johnpagonis 1 1 Menu Why I got into Ruby? In search of a better way to code Ruby in twenty minutes (or thereabouts:-)‏ Why we should all have a look at it? 2 2 Before we start… a word ! A reminder from Fred. P. Brooks ‘’ No Silver Bullet - essence and accidents of software engineering’’,1986 ! ! There is NO silver bullet! 3 3 My experience with Ruby (mostly First got involved in 'Skunkworks' while at Symbian :-)‏ Ported with Pragmaticomm the Ruby 1.9.0.0 and Ruby 1.9.1p1 VM and some extensions to Symbian OS v9.1 (for Nokia's Symbian Research dept.)‏ I've used it for mobile programming, text filtering, classification, Web apps, machine learning, database access and Genetic Algorithm related work 4 4 Lately in my life (does it look familiar to you?)‏ There is a a lot of stuff I need to automate There are a lot of stuff I want to develop There are a lot of platforms I need to be using I need to be more efficient when coding. I have realised that my time and memory is MUCH more expensive than my CPUs’ time and RAM. I haven’t been getting any younger I haven’t been getting much smarter :-)‏ I think faster than I code! I am running out of time…. 5 5 Consequently Life is too short, to not have fun… !! ! I have to cheat! !There must be a better way to program… there must be!! 6 6 There must be a better way to program… there must be!! ..to clarify that !There must be a much better
    [Show full text]
  • Load Testing of Containerised Web Services
    UPTEC IT 16003 Examensarbete 30 hp Mars 2016 Load Testing of Containerised Web Services Christoffer Hamberg Abstract Load Testing of Containerised Web Services Christoffer Hamberg Teknisk- naturvetenskaplig fakultet UTH-enheten Load testing web services requires a great deal of environment configuration and setup. Besöksadress: This is especially apparent in an environment Ångströmlaboratoriet Lägerhyddsvägen 1 where virtualisation by containerisation is Hus 4, Plan 0 used with many moving and volatile parts. However, containerisation tools like Docker Postadress: offer several properties, such as; application Box 536 751 21 Uppsala image creation and distribution, network interconnectivity and application isolation that Telefon: could be used to support the load testing 018 – 471 30 03 process. Telefax: 018 – 471 30 00 In this thesis, a tool named Bencher, which goal is to aid the process of load testing Hemsida: containerised (with Docker) HTTP services, is http://www.teknat.uu.se/student designed and implemented. To reach its goal Bencher automates some of the tedious steps of load testing, including connecting and scaling containers, collecting system metrics and load testing results to name a few. Bencher’s usability is verified by testing a number of hypotheses formed around different architecture characteristics of web servers in the programming language Ruby. With a minimal environment setup cost and a rapid test iteration process, Bencher proved its usability by being successfully used to verify the hypotheses in this thesis. However, there is still need for future work and improvements, including for example functionality for measuring network bandwidth and latency, that could be added to enhance process even further. To conclude, Bencher fulfilled its goal and scope that were set for it in this thesis.
    [Show full text]
  • An Introduction to Ruby and Rails
    An Introduction to Ruby and Rails This paper was originally presented at the Southwest Fox conference in Gilbert, Arizona in October, 2010. http://www.swfox.net An Introduction to Ruby and Rails Rick Borup Information Technology Associates 701 Devonshire Dr, Suite 127 Champaign, IL 61820 Voice: (217) 359-0918 Fax: (217) 398-0413 Email: [email protected] Ruby is a powerful, object-oriented, open-source language with a clean and easily understandable syntax. Originally released to the public in 1995, wide-spread interest in the Ruby language really began to take off in 2003 with the release of the Ruby on Rails® framework. Also known as "RoR" or simply "Rails", Ruby on Rails is an open-source Web framework that makes it possible to quickly and easily create data-based Web applications. Together, the Ruby language and the Ruby on Rails framework can become an exciting and powerful addition to any developer's toolbox. This session introduces both the Ruby language and the Rails framework, focusing on their installation and use on a Windows® platform with a perspective geared toward experienced Visual FoxPro® developers. © 2010 Rick Borup Page 1 of 64 An Introduction to Ruby and Rails Table of Contents Introduction............................................................................................................................................................ 4 Installing Ruby and Rails on Windows......................................................................................................... 4 Installing Instant Rails
    [Show full text]
  • An Empirical Study of Static Typing in Ruby
    Work In Progress: an Empirical Study of Static Typing in Ruby Mark T. Daly Vibha Sazawal Jeffrey S. Foster University of Maryland, College Park fmdaly,vibha,[email protected] Abstract tural object types, and optional and variable type lists for In this paper, we present an empirical pilot study of four method signatures. Prior experience shows that DRuby finds skilled programmers as they develop programs in Ruby, a errors in a range of existing Ruby programs, when used by popular, dynamically typed, object-oriented scripting lan- DRuby’s authors [Furr et al. 2009b,a]. In our study, we aim guage. Our study compares programmer behavior under the to understand whether DRuby’s static type system actually standard Ruby interpreter versus using Diamondback Ruby helps typical Ruby programmers find and fix errors—if not, (DRuby), which adds static type inference to Ruby. The aim why not, and if so, how could we improve DRuby’s type of our study is to understand whether DRuby’s static typing system to better serve programmers’ needs? is beneficial to programmers. We found that DRuby’s warn- Based on qualitative analysis of participant experiences, ings rarely provided information about potential errors not we made three tentative findings. First, using an open coding already evident from Ruby’s own error messages or from technique [Strauss 1987] to classify DRuby error messages presumed prior knowledge. We hypothesize that program- produced during participant trials, we found that under 20% mers have ways of reasoning about types that compensate of DRuby’s error messages were informative. Second, in in- for the lack of static type information, possibly limiting terviews, participants reported that they did use types as part DRuby’s usefulness when used on small programs.
    [Show full text]
  • Ruby Programming
    Ruby Programming Wikibooks.org December 1, 2012 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike 3.0 Unported license. An URI to this license is given in the list of figures on page 249. If this document is a derived work from the contents of one of these projects and the content was still licensed by the project under this license at the time of derivation this document has to be licensed under the same, a similar or a compatible license, as stated in section 4b of the license. The list of contributors is included in chapter Contributors on page 243. The licenses GPL, LGPL and GFDL are included in chapter Licenses on page 253, since this book and/or parts of it may or may not be licensed under one or more of these licenses, and thus require inclusion of these licenses. The licenses of the figures are given in the list of figures on page 249. This PDF was generated by the LATEX typesetting software. The LATEX source code is included as an attachment (source.7z.txt) in this PDF file. To extract the source from the PDF file, we recommend the use of http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ utility or clicking the paper clip attachment symbol on the lower left of your PDF Viewer, selecting Save Attachment. After extracting it from the PDF file you have to rename it to source.7z. To uncompress the resulting archive we recommend the use of http://www.7-zip.org/.
    [Show full text]