Tag Archives: Ruby

The Productivity Continuum: Ruby for Big Companies

Meeting review/notes from May 2, 2007

On Wednesday, May 2, Joe O'Brien made the trip from Columbus to present a talk on Ruby for the Enterprise, for the Ann Arbor Computer Society.  We first made Joe's acquaintance in the time leading up to CodeMash 2007, when he saw that we were looking for Ruby speakers and he stepped up (and also promoted the heck out of it, so thanks much, Joe!).  Joe helped to found the Columbus Ruby Brigade, and he's recently written a book on domain specific languages (DSLs), which should be available soon.  The book isn't available for order yet (as far as I can tell), but the title is:

Pragmatic DSLs In Ruby: Fluent Interfaces for your Code by Zak Tamsen, Jeremy Stell-Smith, Joe O’Brien, Neal Ford

I had originally thought that the talk was going to be on Ruby on Rails, but Rails was definitely only a small part of it.  Rails is an example of a DSL used for web programming.  Joe focused on integrating Ruby into the enterprise.  He talked about how you can integrate with Java, if your back end is already written in Java.  He said that he gets dirty looks from Ruby programmers for even suggesting a thing, but Joe strikes me as a pragmatic guy.  He wants to use powerful tools to solve problems, but he understands that it doesn't always make good business sense to go in and rip everything out and start over.

Joe talked a lot about Ruby as an "enterprise glue" language, for accomplishing specific tasks.

After hearing horror stories about deploying Ruby apps, I was glad to hear Joe talk about Capistrano, which he says simplifies all of that.  Another developer whose opinion I trust immensely, Barry Hawkins from Atlanta, concurs.

He described a few other tools, including RubyGems (akin to Python's cheeseshop, this is one-stop shopping for Ruby components). Watir is used for web application testing in Ruby.  It looks a lot like twill (written in Python), to me.

Joe is hosting the Enterprise Ruby Conference in Columbus July 16-18.  It looks like a great conference, with some really great speakers.  The cost is discounted to $199 for user groups (AACS members can contact the AACS for a discount code, and other user groups can get one from Joe).  He's heavily promoting this event to user groups, and I think that's a fantastic idea.

This was a great talk and I was really glad that I was able to attend, and that we were able to spirit Joe up to Ann Arbor to speak.  I don't know if I will get down to the Ruby Conference, but I'm sure it will be a great experience for those who can.

Ruby

RubyGems

Watir
Web testing in Ruby
Capistrano
Deploying Ruby apps
Enterprise Ruby Conference
(blog entry description)

Ruby on Rails at the Ann Arbor Computer Society

Featuring Joe O'Brien of the Columbus Ruby Brigade

Joe O'Brien, who helped to found the Columbus Ruby Brigade, is going to be speaking at the next AACS meeting, on May 2.  Meeting starts around 6 pm (well, that's when the pizza arrives; Joe will probably start talking around 6:30).

So, if you're in the Ann Arbor area and want to learn about Ruby on Rails, here's your chance.

AACS meetings are free and open to the public.  Annual memberships (just $20) do qualify you for door prizes and to vote in elections.  The May meeting also happens to be election night.

Meeting will be held on Wednesday, May 2, at 6 pm at the Ann Arbor ITZone/Spark Central, 330 E. Liberty (lower level), Ann Arbor, MI.

AACS

Columbus Ruby Brigade

Ruby on Rails

Dynamic Languages on the CLR

Jim Hugunin and John Lam

Jim created Jython and IronPython.  John is working on Ruby for the CLR, but has only recently transitioned to working for Microsoft.  I get the impression that Ruby for the CLR will be released Really Soon Now.

Just as I was getting grumpy about not having an interactive conversation, Jim and John came on to do the Dynamic Languages on the CLR talk. They turned it into a completely interactive conversation with no Powerpoint. They even turned some of the questions around to the audience, asking for our input. This was SO much more interesting for me, at least, and for the speakers as well, I expect.

The guys took questions:

1.Ruby or Python: Which sucks less? Use the language that fits your mind best. Some people work well in Python. Others have that same experience with Ruby. It’s not necessarily a fundamental difference in languages, but rather a difference in minds. Not a huge argument that one is superior to another. But comparing either to Javascsript is a different question. That language is impoverished. Doing DSL tricks is easy in Ruby and allows people to write closer to the problem domain.

2.How are you going to lock us into your platform? IronPython has always been about being completely compliant implementation of Python and completely integrated with .NET. To do both is a lot of work. So, in Python “strip()” removes whitespace, but in .NET “Trim()” removes whitespace but is illegal in Python. But if you import clr, then for that file ONLY it is allowed to run s.Trim(). So the parts of your code that are doing pure data structures or pure algorithms can ignore whether you’re working in IronPython. Being up front about wanting people to lock into .NET. By providing really cool libraries, they will lock programmers into .NET? Strength is that you can write Mac-specific or .NET-specific code. Pure Python code works everywhere. Python has a huge wealth of pre-existing modules. Those written in Python will work (or it’s a bug in IronPython). Those that are written in C are more problematic. FePy project is a community based project that includes a lot of modules that fill in these gaps.

3.What is the plan for PHP? Would PHP running on .NET, would that be convincing to switch. Not really, so it doesn’t really look like there’s interest. Microsoft is doing dynamic languages because it’s interesting to a group of developers.

4.What is it going to take for Rails to run on top of .NET? Imagine it happens. Is it a good idea? Deployment is a pain in Rails. Want to sell into .NET companies in the enterprise. What it’s going to take is a good business reason to want to use it. Developers need to want it.

5.When is the veil of silence going to be limited? Jim went dark for 8 months after coming to work at Microsoft. IronPython is being run as an open source project with an open mailing list. IronPython 1.1 was just released. Incremental releases were driven by user bug reports in an open, interactive way. Python 2.0 more modules, end of year. John’s only been at Microsoft for 2 months, so he will start becoming more open soon.

6.Why dynamic languages? There are millions of programmers who clearly love dynamic languages. It works for them. Let them program in a way that they enjoy and can be productive. More expressive. First refactoring tool written for Smalltalk. First unit testing framework written for Smalltalk. Good ideas have come out of the dynamic language community.

7.Do we want to run the CLR in IE? Killer fast Javascript and Ruby in the browser would be compelling. Performance is the big thing. Testing, running javascript on IE. As we create more sophisticated apps, there’s no visibility in the CLR. But, would you put it in Firefox too?

8.Mono? Mono doesn’t work well. Winforms and GTK# and supposedly it’s compatible. Some say it runs beautifully and some say it doesn’t run at all. Mono regularly runs IronPython.

9.Should dynamic languages be an Intro CS100 language? Yes, dramatically lower barrier to entry. Number of things you need to know to write a program in a static language: classes, methods, static method calls. In dynamic languages only need a function call or statement to write Hello World. If you want to talk about the essence of programming, it’s about control flow and data structures, not types. But the lower concept count means that people with less programming experience can write in dynamic languages. Means that it might have an impact in terms of nonprogrammers writing code. Introducing patterns on top of the language adds a different level of complexity. Malleable syntax in Ruby allows for custom languages like Rails DSL. The ability to create DSLs in Ruby is interesting.

10.What about IDE support? Today, for IronPython, Visual Studio SDK shows people how to extend Visual Studio. It includes IronPython integration (all written in C#). Minimal intellisense support, ships as a sample. Left to developers to extend. The lightweight solution to an IDE is a real challenge. Can use the debugger today. The best part of IronPython/.NET integration is availability of the debugger. Profiler works poorly. Infrastructure issue that needs to be solved fairly soon. RubyCLR: John demo’ed an IDE that he worked on before he came to Microsoft. He was running on a Mac, running RubyCLR. He used WPF with Ruby, using Ruby metaprogramming stuff. This enabled him to reduce the number of things he had to type.

Java Posse Roundup Day 1

The conference officially begins!

 

The Java Posse Roundup officially started today.  About 25-30 people have gathered here in Crested Butte, Colorado.  Bruce Eckel and the Java Posse together organized this open spaces event, and I’m really enjoying myself so far.   I won’t try to transcribe the sessions here, since the Java Posse will be putting them out in podcast format, assuming the audio is all fine.  It’s a great experiment, and I hope that it comes out great.  

 

The day started out at the event location, with Bruce describing the structure of Open Spaces.  I’ve blogged about that before, and I’m a total convert.  The ability to be able to put up ideas for discussion while at the event, thereby shaping your own experience, has totally ruined me for the eyes-forward (eyelids dropping) conferences.  

 

It always seems a bit strange to newcomers, but those of us who have done this before eagerly rushed over to the board to grab post-it notes and write down ideas for discussions.  We egged on the others, and soon the boards for all 4 days were pretty full, with 4 concurrent sessions. 

 

The first session of the day offered many choices, all difficult to choose from.  I went to a talk on Dynamic Languages on the JVM.  It started out with a discussion about dynamic languages, but quickly headed toward Domain Specific Languages (easy to build with dynamic languages).  At one point, we realized we had diverged, but everyone voted to keep going.  We had a great 1 hour talk that included mention of Jython, Groovy, Spring, Scala, CLOS, LISP, Ruby, tuples in Java, Domain Driven Design, performance of exceptions, and many many more topics. 

 

And, as always a huge number of book references came out of the discussion.  Some were technical, others fun but also offering some perspective to technical things.  I’ll list them here, just for fun (and so that I have a place to look when I want to read a new book):

 

Poignant Guide to Ruby (online book)

Innovation Games (by Luke Hohmann)

The Design of Everyday Things (by Donald A. Norman)

 

That was it for the first part of the first day.  We all headed off to ski, and planned to meet up later at Bruce’s house for a BBQ.  While most people downhill ski at these events, I had a hard time ignoring the Nordic trails, so off I went with another attendee and we skied the “Town Loop” (a free, flat loop in town).  It was great, just what I needed while I was adjusting to the altitude.

 

And yes, after skiing, everyone headed over to Bruce’s, where geek talk went on well into the night.  I finally left around 9:30 pm or so … it had been a long day.

 

 

CodeMash early bird deadline

CodeMash, a developer conference organized by volunteer developers, is to be held January 18-19 in Sandusky, OH. Drawing from national talent as well as regional experts, this conference provides a unique opportunity for a diverse set of people to get to

CodeMash deadline is TODAY!

Today is the last day to get in on the $99 registration for CodeMash. Tomorrow, it goes up to $149 (still incredibly reasonable). CodeMash is January 18-19, 2007 at the Kalahari Resort (www.kalahariresort.com) in Sandusky, OH, and will bring together developers from all worlds … Java, .NET, Python, PHP, Ruby, TurboGears … you name it! We’ll all learn from one another in a cool and fun environment.

Engaging keynotes by Bruce Eckel, Scott Guthrie, and Neal Ford. Talks by Brian Goetz, Mary Poppendieck, Jay Pipes, David Stanek, Kevin Dangoor, Ted Neward and more!

Don’t miss out on early bird pricing. But even more importantly, don’t miss out … space is limited, so sign up soon!

I’m promoting CodeMash heavily because not only am I on the organizing committee, but also because this is a conference with a theme that I believe in, strongly. SRT Solutions, with diverse knowledge among its staff, definitely benefits from the cross-pollination of ideas. One friend asked me if I thought that the “generic developer” would get much out of this sort of a conference. My response? Any time you learn something, you’re benefiting. You may not use any more than one of these languages in your job, but knowing about the others, and their strengths and weaknesses, makes you a better developer.

CodeMash Registration

Digg story on CodeMash and other events

Kalahari Resort
Conference Venue

Announcing CodeMash 2007

Ohio … where you need to be January 18-19

What? January in Ohio?! That’s always the first reaction. But … once I tell them what’s going on (and that it’s at an indoor water park), the tune changes to, “Really? Cool!”.

I’ve been involved with the planning of CodeMash, a 2-day conference for developers, to be held in Sandusky, Ohio January 18-19. 2007. It’s a conference for developers of all flavors: Java, .NET, Python, PHP, Perl … you name it! We’ll have some Ruby on Rails and some TurboGears, some Oracle and MySQL. The goal is to all get together and learn from one another. We all benefit from advances in other languages and platforms.

We’ve scheduled some really cool keynotes. Bruce Eckel is going to talk about issues of design in software development, from a philosophical standpoint. Neal Ford is planning a talk about the evolving programming paradigm. Scott Guthrie will also be doing a keynote.

We’re accepting abstracts right now, and conference registration will be open really soon (you can reserve a spot now, though!). The pricing is phenomenal … early bird price of $99 for the 2 day conference, if you stay at the Kalahari Resort (conference hotel, discounted room rate of $88/night). The regular price for registration (after Nov 30) is $149.

I think it’s going to be an amazing event.

CodeMash – I'll be there!

Code Mash Conference Page