Seaside Does Not Have a Marketing Problem!

Seaside does not have a marketing problem!

Everyone I know in this business knows about Seaside and its super productive powers. We’ve all seen the demos and the screencasts and the awesomeness that is DabbleDB. For god’s sake, Avi gave a keynote at RailsConf this year.

I think it’s safe to say that people know about Seaside.

The problem at this point isn’t a marketing one. It’s the same problem that Squeak has always had. Namely that when you download Squeak and start it up, you’re presented with this:

Squeak

When most programmers I know see this, they have the same reaction, “What the fuck?”

This is usually followed quickly by the question of, “Can I edit this using Vi or Emacs?”

Let me answer this now. No and No.

If you’re the type of person that can’t imagine giving up writing code at the command line, then Squeak isn’t for you. (Although there are Vi and Emacs keybindings.)

And that’s usually the end of it. People play with Squeak for a few minutes and then go back to doing their real work in Ruby or Python or Java or C#. A lot of the power and magic of using Seaside is directly derived from the power and magic of using Smalltalk, which unfortunately (or fortunately, depending on your point of view) means that you’re going to have to learn Smalltalk if you want to use it .

And Smalltalk is, at least in the case of Squeak, a whole different world. You have to unlearn a lot of what you know in order to use it. Editing is different, class creation is different, version control is different. Basically everything you know as a programmer gets thrown out the window.

But you know what? At some point, once you do that and really start to immerse yourself in Smalltalk, you’ll suddenly realize that it’s hard to go back to the old way of doing things.

You’ll realize how much easier it is to just ask the system what method you should use to get something done instead of going to a PDF document somewhere to look it up. (Yes, in Squeak you can just type “‘class’. 3. ‘cla’” into the the method finder and tells you that “contractTo” and “truncateTo” are the two messages in the system that give you that result.)

You’ll suddenly come to the realization that this is simply better.

That this is how things are supposed to work.

Unfortunately for most of us at this point, we’ll have to go back to our real jobs, (I asked Avi after his keynote how many people in the world are actually making money using Seaside and he said that he figures about 20) but even if you get this far you’ll learn enough to to have a whole new outlook on how coding should work.

It’s not a marketing problem, it’s the the same old problem that people are scared of things that are different then what they’re used to. Hopefully someday we will be able to overcome this fear, and then Seaside and Smalltalk will finally take over the world. But for now this new outlook on development will have to be good enough.

  • "But you know what? At some point, once you do that and really start to immerse yourself in Smalltalk, you'll suddenly realize that it's hard to go back to the old way of doing things.

    You'll realize how much easier it is to just ask the system what method you should use to get something done instead of going to a PDF document somewhere to look it up. (Yes, in Squeak you can just type "'class'. 3. 'cla'" into the the method finder and tells you that "contractTo" and "truncateTo" are the two messages in the system that give you that result.)

    You'll suddenly come to the realization that this is simply better.

    That this is how things are supposed to work."

    EXACTLY, people just don't know what they're missing, and aren't willing to put in the effort required to learn it. That's OK, it'll remain a secret weapon for those who are willing.
  • Tyler Prete
    I think you're exactly right. I've a Rails programmer by profession, and I have been getting into Squeak/Smalltalk, and the learning curve has been very large. Took me an hour or so to even figure out I had to use the browser to write classes and methods... I was trying to define them in the workspace. I haven't made a final judgement yet, but as I get used to it, it doesn't seem to be a good way to do things. We'll see, though. I'm strongly considering making a start-up app in it; I find digging in on a project the best way to learn something.
  • Joao
    Currently I program Ruby and JavaScript, but I once installed Squeak as well, inspired by a colleague. I saw those little boxes with texts in them after opening Squeak, and I probably saw some methods listed somewhere or something. It wasn't long before I gave up on it! Also, not every body does Web programming all the time to want to use Seaside, besides, I don't remember having heard of Seaside when I tried Squeak, and at the time, I wasn't much immersed into Web apps anyway.

    Nowadays, I have my own Web framework in Ruby and it flies and all. No need for Squeak/Seaside.
  • In Avi's Ruby on Rails podcast interview he said something very interesting that I've been thinking a lot about lately. He was speaking of the fact that there's still a good smalltalk community out there, but people still wonder why it never took off like Java. His answer was that smalltalk developers didn't want anyone else using it, because then they'd loose their competitive advantage. A developer would create a badass framework for his own projects, and keep it to himself.

    As long as there's enough of a community to keep the language alive and create decent libraries for it, then why turn your competitors on to it?

    While Avi was saying that he's going against that a little and sharing his work, it doesn't seem like he has any interest in going on a world wide Seaside promotional tour.

    I'm starting to ramble, but there was also a post on DHH's blog a while ago about how the Rails community is big enough already. Why should we bloat it when we have enough passionate people out there solving the right problems?
  • Alan Shutko
    From my perspective in in-house enterprise development, everyone I talk to has heard about Ruby on Rails, but nobody besides me has heard of Seaside. (And I admit, I've heard of it but haven't tried it, but I'm a Lisp weenie.)

    I've mentioned it when interviewing architect candidates, and I get the blank stare.

    None of my coworkers has experienced the unique Smalltalk interface, and honestly it wouldn't bother most because they're used to IDEs anyway and would never consider coding in a text editor. But they haven't tried it, because they've never heard of it.
  • Yuname
    Don't use Squeak then. There are other Smalltalks out there (Cincom Smalltalk is very fast and runs Seaside nicely, Dolphin Smalltalk is incredible, etc.) that do not look like someone just ate crayons and threw up on the screen.

    I gotta say, I've used Smalltalk and grokked it, and dig it, but I like my files and OS better.
  • Jason Yip
    What you've just described *is* a marketing problem. It's not a marketing problem related to perceived value; it's a marketing problem related to identity. People are telling themselves "Seaside is great... but I'm not a Smalltalker."

    That's a marketing problem.
  • Dustin Withers
    The Squeak interface sucks. I worked with it for awhile after the Smalltalk BoF at RailsConf and while the *system* has quite a few things going for it, mousing around sucks. As I've learned Common Lisp and use it for small things every now and again I've learned what it's like to have a real text editor (like Emacs or Vi). And it's extremely irritating to be bouncing around windows that are hidden behind one another. I suspect the commercial Smalltalks are not this irritating in interface design...
  • David Mitchell
    Great post. Right on.

    I think most developers think Squeak UI sucks. But, like Smalltalk, once they get used to it, it can be hard to go back.

    My first week of all-day, all-night Squeak was really painful. I'd done IBM VA Smalltalk (several years), Dolphin, and a little VisualWorks. My comment at the end of the week was anyone who thought the Squeak UI was the greatest coding environment had never used any other Smalltalk.

    That is a huge hill to climb.

    Chris Muller, creator of the Magma DB, told me it took him several weeks before the Squeak UI really clicked for him. I've watched him fly through the UI on the keyboard, so I know you can get really fast and keyboard centric.

    There are things about Squeak that I haven't seen in other tools, so it is great for expanding your horizons. You mention the Method Finder, which is really cool. Another favorite is that you can dissect running GUIs (open inspectors, browse and change the code for the tool while it is still open).

    Of course, this is another reason why there aren't great tutorials for Squeak. The system is alive, can be taken apart as it runs, and put back together.

    I also think you are right that many in the Smalltalk community are fine with its adoption rate.
  • Philippe Marschall
    For a real WTF use a 3.8 image.
blog comments powered by Disqus