4 ms·
Smalltalk & Ruby are deeply interrelated. Much of the same syntax between the two languages From 1970s Smalltalk was the language to watch Smalltalk epitomiz
by beilabs 17y ago
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 17y agoI'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 17y agoWhat are your thoughts on AIDA/Web and Seaside?
- stcredzero 17y agoSeaside 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 17y agoThanks! 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!