1 / 15

5.0.0.1 .1 Hello Ruby A scrumptiously delicious intro

5.0.0.1 .1 Hello Ruby A scrumptiously delicious intro. Why Ruby? What’s it look like? So how is it different than Perl? Make it go! dealing with variables. Hi, I’m edwardo@bcgsc.ca I am not a Perl programmer.

leanna
Download Presentation

5.0.0.1 .1 Hello Ruby A scrumptiously delicious intro

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. 5.0.0.1.1 Hello Ruby A scrumptiously delicious intro • Why Ruby? • What’s it look like? • So how is it different than Perl? • Make it go! • dealing with variables 5.0.0.1.1 - Hello Ruby

  2. Hi, I’m edwardo@bcgsc.caI am not a Perl programmer. 5.0.0.1.1 - Hello Ruby

  3. Things I don’t like to do when programming, but find myself sometimes doing anyway: Spoon-feeding compilers Sifting through stack trace vomit Sifting through other people’s less-than-elegant code, searching for what should be obvious Typing like crazy to do something trivial I don’t want to be surprised anymore 5.0.0.1.1 - Hello Ruby

  4. Things I want out of a programming experience: Minimize time it takes to get into my head Minimize time it takes to get out of my head Minimize frustration -> minimize effort -> conventional things are easy code colleague machine 5.0.0.1.1 - Hello Ruby

  5. Most important thing I want when programming: Happiness 5.0.0.1.1 - Hello Ruby

  6. Why Ruby? Easy to read Easy to learn Great for string processing and system call…calling Full toolbox (CPAN-like package manager, built-in debugger, built-in interactive session, batteries included) Designed with programmer joy in mind 5.0.0.1.1 - Hello Ruby

  7. What’s it look like? # Perl equivalent @food_list = (qw(gelato chicken garlic beans lobster)); print qq(I’m thinking of $#food_list foods.); if (grep($_ eq “chicken”, @food_list)) { $feels_like_chicken_tonight = 1; } elsif (@food_list) { # we know food_list is an array # can test references using ref($x) eq "ARRAY" push @food_list, “broccoli”; } else { print “There’s no chicken.”; } print sort @food_list; 5.0.0.1.1 - Hello Ruby

  8. Let’s write a simple function # Perl equivalent sub sort_by_length { @list = @_; for $i reverse(0 .. @list-1) { for $j (0 .. $i-1) { if(length($list[$j]) > length($list[$j+1])) { @list[$j,$j+1] = @list[$j+1,$j]; } } return @list; } 0..list.size-1 0..i-1 5.0.0.1.1 - Hello Ruby

  9. A Ruby approach # Perl equivalent sub sort_by_length { sort {length($a)  length($b)} @_; } Ruby's iterator list do |x| CODE is like Perl's map map { CODE } @list except Ruby defines the local iterator explicitly (|x|, |var|, etc) whereas Perl uses $_ 5.0.0.1.1 - Hello Ruby

  10. What can it do? # Perl equivalent $fh = open(">sorted_food_list.txt"); for $food (sort @food_list) { print $fh $food; } close($fh); use LWP::Simple; my $html = get("http://www.bcgsc.ca"); if($html =~ /Gene/) { print index($html,"Gene"); } 5.0.0.1.1 - Hello Ruby

  11. Why should I care? People are irrational and the world outside changes: dealing with requirement changes and getting help if you need it is easy. 5.0.0.1.1 - Hello Ruby

  12. Pretty graphs are nice (and easy) 5.0.0.1.1 - Hello Ruby

  13. Hitting the fan (debugging) $ ruby -rdebug broken_program.rb 5.0.0.1.1 - Hello Ruby

  14. When not to use Ruby Machine speed (write in C and call it from Ruby) Sadomasochism 5.0.0.1.1 - Hello Ruby

  15. Same programming time, same programming room Code jams and an open problem 5.0.0.1.1 - Hello Ruby

More Related