
What Killed Smalltalk Could Kill Ruby /Robert Martin/ (video) - Robin_Message
http://www.youtube.com/watch?v=YX3iRjKj7C0
======
jhancock
Martin's arguments (summarized well by beilabs and stcredzero) are interesting
and represent various real problems. But none are what killed Smalltalk.

As always, everything points to money...

1 - Smalltalk tech was owned by a small clutch of companies. All had revenue
driven by developer licensing. None were able take seriously the thought of
radical change to their revenue model.

2 - Lack of licensing costs for Javascript enabled it to be dropped into
Netscape with Microsoft following suit. Lack of licensing costs for Java
enabled Sun to give it away during a time when revenue for other Sun products
was able to fuel the Java giveaway.

3 - Corporate decision makers took a wait and see approach to further
engagement with traditional internal IT investment starting around 1996. This
was mainly fueled by drive from within these companies to start focusing on
internet strategy. Up to this point, most IT organizations were internal
focused.

4 - All the major IT companies wanted to try their hand at capturing the
internet technology stack.

It took about a year, maybe less, to kill Smalltalk's momentum. In my
retrospective opinion, the only thing that would have saved Smalltalk is for
the investors at any one of the major Smalltalk vendors to make a radical
shift in their business model and give away the core technology and runtime.
This would have enabled Smalltalk to be dropped into a browser instead of
Javacsript and enabled Smalltalk to make meaningful progress as an "open"
language. Even if this happened, IT companies would have attempted to co-opt
this new free-er Smalltalk in much the same way they did with Java and
Javascript.

------
swombat
Can anyone summarise the main points? I don't feel like watching a 1-hour
video on this topic just to get to the "mystery".

~~~
beilabs
Smalltalk & Ruby are deeply interrelated.

Much of the same syntax between the two languages

From 1970s Smalltalk was the language to watch

Smalltalk epitomized Object Orientated Design

Described C++ as a mans language (need balls to code in it and make it work)

Describes Java as an estrogen type language

Smalltalk had a productivity benefit of a factor of 5. Compared to a C
application.

Refactoring in Smalltalk was a breeze

What killed Smalltalk? ( umm, at this stage I have no idea, he jumps to a new
topic)

Definition of clean code - "when you look at a routine and its pretty much
what you expected"

Best metric for clean code is 0 WTFs per minute

What killed Smalltalk is that it was just too easy to make a mess (Finally, 20
mins in!) Quote from Ward Cunningham

So easy to make an indirect and impenetrable system over time

Companies developing in Smalltalk were screwed up at the time

You can make a mess in Ruby, simple, elegant, wonderful language; still easy
to make a mess

Projects in Ruby start well, but the framework is often violated over time;
making a mess...

Boyscout rule, leave the campground cleaner than when you entered it. (Actual
quote - leave life better than you found it) - apply this to your source code.
Would make code get better and better as time goes by. Most of the time,
cleaning code is hard!

Quote of the presentation - "If you touch it, you will break it. If you break
it, it becomes yours. The best policy is to walk away, run. the messes are
hard to clean"

Test Driven Development is the solution

Rails and Ruby is great for Test Driven Development.

Other languages have TDD, was born in Smalltalk.

Talks about TDD methods; If you follow TDD, regularly write and run tests,
then there is no fear to change code.

Nothing makes a system more maintainable than a suite of tests

He loves Rspec and Cucumber (Behaviour Driven Development BDD)

TDD never really became a part of Smalltalks culture but is integral to the
Ruby community

TDD will keep your code clean

There was an arrogance to the Smalltalk community ( I sometimes can see this
in the Ruby community )

Our tools are so good, our language is so good we don't need to follow the
rules. Smalltalk people didn't want to do regular programming (Enterprise
Applications, etc)

Your language may be powerful, but you must be careful with it. just because
we can do a thing, it does not necessarily mean we must do that thing (Star
Trek quote) Us vs them feeling in the Smalltalk community.

Ruby community is not going to go down this path because: Discipline - TDD
makes you feel good inside

Professionalism - did the doctor wash their hands, did you write your tests?

Acceptance - we need to solve the dirty problems ( Need to adapt to the
enterprises needs - do not solve only the problems you like.)

We have a great tool in Ruby, we can kill it, let's not do that!

My thoughts - Great presentation style, he's quite funny. Very inspirational
lecturer for developers confirming that TDD/BDD are the ways forward for
software engineering.

~~~
stcredzero
I've been working in Smalltalk since 1998. The most important points:

    
    
        - Companies developing in Smalltalk were screwed up at the time
        - There was an arrogance to the Smalltalk community
        - TDD never really became a part of Smalltalks culture
    

I just got a vendor to pay attention to an (admittedly subtle) bug in GUI
event processing that's been around for 12 years, causing mysterious unhanded
exceptions at every company I've worked with since 2003. Their theory before
this: delusional customers.

Heed this man's advice.

Your developer culture is more important than your technology! A good culture
will help maintain good companies and good public relations.

Smalltalk is not dead, just hiding in niches. I plan on starting new projects
soon.

~~~
jf
What are your thoughts on AIDA/Web and Seaside?

~~~
stcredzero
Seaside is pretty slick. Cincom's WebVelocity even more so. I'd stay with open
licensing, though.

If the new projects work out, we will be using Seaside.

~~~
jf
Thanks! I'm really intrigued with Smalltalk by way of Squeak (I've been
working through Squeak by Example). I wasn't sure where I should be looking
regarding web development. Thanks for your sharing!

------
binarray2000
already posted...

<http://news.ycombinator.com/item?id=623823> for the discussion

------
lg
Come on, it's easy to make a mess in any language except the straitjacket ones
nobody uses. Smalltalk is not as well-integrated with Unix as other languages,
and also the syntax and libraries are kind of anal, I think that's what killed
it.

------
MartinMond
This video was uploaded 1 day after the conference. I remember searching and
not finding any videos of railsconf 09 expect dhh's keynote.

Were these videos really available all the time and I just didn't find them?

------
devin
If you like Uncle Bob he was caught yesterday singing Clojure's praises.

<http://twitter.com/unclebobmartin/status/11845284938>

