Who I Am Keith Bennett, keithrbennett at gmail.com
Software Developer living near Washington, DC, USA
Original hometown is New York City
25+ years experience, focusing on Ruby and Java, currently studying Android development
Technical Interests: Ruby, Android, Clojure
Other Interests: Travel, Music, Study of Massage and Asian and European Languages
Obligatory Joke, Part 1 A DBA walks into a bar, steps in front of two tables and says...
Obligatory Joke, Part 2 ...may I join you?
Please... ...ask me to slow down if I speak too quickly.
...ask me again if I forget.
...ask questions if anything I say is not clear.
...feel free to share your own observations and experiences.
What I Love About Ruby: Overview Conciseness and Clarity, Not Ceremony (high signal to noise ratio)
Expressive Syntax
Powerful Enumerable Processing
Code Blocks and Closures
Everything’s an Object, even 1 and nil
Ranges
Regular Expressions
JRuby
IRB
OS Scripting Support
Metaprogramming
Conciseness and Clarity, Not Ceremony: Main Program Java: public class HelloWorld { public static void main(String args) { System.out.println("Hello world!"); } } Ruby: puts “Hello world!”
Conciseness and Clarity, Not Ceremony: Instance Variable Access Java: private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } Ruby: attr_accessor :name
Conciseness and Clarity, Not Ceremony: List/Array Subtraction Java: public static List subtractList(List minuendList, List subtrahendList) { List differenceList = new ArrayList(); for (Object o : minuendList) { if (! subtrahendList.contains(o)) { differenceList.add(o); } } return differenceList; } Ruby minuendList – subtrahendList
Conciseness and Clarity, Not Ceremony: List Manipulation Java: public static List<Integer> calcDoubles(List<Integer> inputList) { List<Integer> outputList = new ArrayList<Integer>(); for (Integer n : inputList) { outputList.add(2 * n); } return outputList;  } Ruby: def calc_doubles(input_list) input_list.map { |n| 2 * n } end

What I Love About Ruby