Ayende @ Rahien

Refunds available at head office

JAOO - Day I

Started the day in a presentation from Robert C. Martin, which was very good, both in content and delivery. Moved on to give a talk about building DSL with Boo. It went well, as far as I can tell, but I was the one giving it.

After that I was at the Erlang talk, which is quite probably the best one that will be here. Joe has created the language and wrote the book about it, so he certainly knows his stuff, and he is a Character with a capital C. I am not sure if it is a show or not, but it was amazingly amusing.

From my point of view, the major advantage of Erlang oer anything else is the ability to wait without blocking an os thread. That is something that I don't think that we can do (externally) on .Net, which is a shame.

Bought the Erlang book, it is a weird language compare to those I know, but I really need to learn a new language this year, and Erlang gets me both functional and concurrent aspects for the "price" of one.

After that I sat in a couple of talks in the Ruby track, "Ruby in the Enterpise" and "Ruby and the art of building DSLs".

I like the ideas being evolved in Ruby, but I have reservation about doing development there. I know that I say this as a person who didn't do any real project there, but I have the feeling that Ruby isn't for me. Basically doesn't provide a significant advantage over what I already have in .Net

The reason that I say that it is not for me is because development is actually a small part of a software project, and there is a lot of other things that I don't think that Ruby does as well as other platforms (profiling, debugging, deployment, monitoring, etc).

To be rather more precise, I think that .Net has much better tooling surrounding it than those for Ruby. That, coupled with the fact that I don't see a Killer Feature of working on Ruby itself, means that I am not really interested in it as a platform.

I am very interested in Ruby as a place to harvest a lot of interesting and efficent approaches. It is certainly one of the fastest moving communities around, and it is rich in smart people.

Right now I am at the Spring.NET talk, wihch is interesting, not because of the technology concepts (I mostly know them), but because of the different design decisions that were made, and the different "culture" that afected it.

Comments

shawn
09/24/2007 05:20 PM by
shawn

Speaking of functional languages, what's your take on F#?

shawn
09/24/2007 05:20 PM by
shawn

Speaking of functional languages, what's your take on F#?

Troy Tuttle
09/24/2007 05:25 PM by
Troy Tuttle

"...development is actually a small part of a software project, and there is a lot of other things that I don't think that Ruby does as well as other platforms (profiling, debugging, deployment, monitoring, etc)."

I agree. If you have worked as a team lead in a corporate environment for any significant amount of time, you realize language concerns are usually secondary to the tool stack, team dynamics, technical leadership, and developer expertise geared toward maintaining existing applications. That’s not to say software languages are not important. They are just a small part of the overall development environment.

Avish
09/24/2007 08:32 PM by
Avish

Regarding "wait without blocking an OS thread" - could you elaborate? How is that different from ThreadPool.RegisterWaitOnSingleObject, for example? (I know that one does block a thread, but it's just one thread no matter how many times you use it...)

Ayende Rahien
09/24/2007 08:55 PM by
Ayende Rahien

No take, haven't looked at it.

Ayende Rahien
09/24/2007 09:06 PM by
Ayende Rahien

Avi,

I wasn't aware of RegisterWaitOnSingleObject, that changes thing, I'm going to check this out, but I am going to assume that several millions waits is going to put some strain on the system.

Joe
09/25/2007 12:35 PM by
Joe

While I agree that .NET has a killer tool stack, so far I've been fairly impressed with Netbeans for Ruby. I can't speak much on profiling or monitoring, but debugging in Netbeans from the little I've seen is very similar to debugging in .NET. Also, Capistrano for deployment is easier to configure than NAnt, although I'm still working on getting it implemented. And best of all, the tools are always improving. Free helps too, but I understand that in the enterprise space free is less important.

Comments have been closed on this topic.