[Seaside] Should I become a Seasider?

Daniel Lyons fusion at storytotell.org
Sat Apr 9 10:30:16 UTC 2011


There's little for me to add either, except for my personal experience launching a failed business in 2007. Two friends of mine and I set out to change the world, we just weren't sure how or why. :) I did the back end stuff: system administration, database design, and most of the programming. One of my friends did marketing and design, the other did more programming and video. One year later, we abandoned one of my friends, the next year I left voluntarily because I was tired of being broke all the time. I hope you'll let me share some of my "wisdom" with you.

If you just want to get employed quickly, you should learn Java. That's what I did, and now I have a job I dislike, but at least I'm caught up on the rent. We both know that learning a language is not a huge deal yet for some idiotic reason programmers are hired based on language knowledge. Playing this game is not terribly difficult. If you're not a web developer now and you get a job doing it with Java, you'll probably be regarded by other web developers as a "real programmer" higher on the ladder. So that's nice.

If you really do want to launch a business, it's going to suck. Be prepared to be broke for a lot longer. My business failed after two years; I think we were in the black for two months during that whole time. I have another friend whose web dev business languished for three or four years, but he stuck it out and makes a tidy living at it now. It's a personality thing, I think, more than anything.

My clients didn't really care what was going on in the back end. It's not totally true; they expected to hear about our Microsoft servers and got suspicious when we didn't have them. But when they defected to the competition, it wasn't because Microsoft was in the back end; it wasn't. It was because the interface was nicer. Every client we got was because our app or our site or something in our portfolio was prettier than the other ones that client looked at. If the client is giving you trouble about you being irreplaceable or your technology being obscure, they're probably just trying to get a discount. Otherwise they just need to be emotionally placated. If you quit or die, they're going to have to get someone else no matter what you're using. Do they want to go through a hundred Java developers to find the 1% that can do anything? I'd much rather build my stuff on an obscure but open platform where I can be almost certain that any programmer I hire is activated, excited about the project, and probably willing to work for less money. People who get into Smalltalk do it out of love. People who get into Java do it for the money. It's counter-intuitive, but being obscure makes hiring easier and better.

> I know very little about Seaside.  My impression is that websites
> developed using
> Seaside are somewhat slower than with other web development tools and that
> Seaside uses more memory (I assume on the server side) than other web
> development tools.  Nevertheless there are web developers using
> Seaside successfully.
> Are these impressions correct?

You know, it's true to a degree, but it's not all that important. The clients believe they're going to be the next Facebook, but they really aren't. Not even close. We had one almost-client that was building an auction site for heavy equipment. It never occurred to them that people were already buying and selling heavy equipment on eBay. They really felt like their system needed to be "web scale," but the truth is that there aren't going to be a million registrations on a site for buying and selling heavy equipment, let alone millions of requests per day or hour.

Seaside is slower than PHP. However, developing and debugging is faster, and the code is more reusable. Seaside is slower than PHP, but it's not slower than Drupal, Joomla or Magento. Seaside could certainly run laps around JSF, which is what we use at work. But my job is a perfect example of a place Seaside should be used: it's a small team of programmers (3) supporting a small group of users (<1000 world-wide). ICEfaces is at best 1/10th the speed of Seaside for this scenario, but it's irrelevant; my real problem is that JSF wastes vast quantities of developer time and makes easy things hard. Speed is relative, and not necessarily relevant.

> What I am wondering is should I learn Seaside and then attempt to sell my web
> development services in Calgary?  My impression is that:
> 1)  No one in Calgary has ever heard of Seaside so selling my services
> would be difficult.

Your premise is right, but I'm not sure your conclusion is. Most of your clients are going to have trouble with the distinction between an IP address and an email address. They don't expect to understand these things. They just need to know why they should choose you over your competition. I think you're focusing on the negative aspect here. You need to sell them on the positives rather than placate them on the negatives. Your competition is going to be using PHP. You don't need to convince them that Seaside is right or PHP is wrong, you need to convince them that you're right for tangible reasons—tangible *to them*, the non-technical business people who make these decisions.

> 2)  Since I should be able to develop web sites faster using Seaside I
> should be able to
>     offer my services at a discount and hopefully be able to find
> business that way.  But
>     since no one but myself (at least locally) would be able to
> maintain the web sites,
>     potential customers are going to be very shy.
> Are these impressions correct?

I didn't have much luck being the low price leader. You're not competing with other web dev shops for the bottom end, you're competing with high schoolers, hobbyists and "my friend's nephew who's real good with computers." You can't win against them on price, because they don't know what their services are worth, they are eager to please and will work ridiculous hours and not ask hard questions and so forth.

If you're competing on price, you are by definition competing as a commodity. I wouldn't go down this road (again), but if you do, you will have to consider your own replaceability fairly high on the list of your customer's priorities. I find this both difficult and depressing.

> Lets assume I decide to become a web developer (something I know
> almost nothing about)
> using Seaside as my competitive edge. To my knowledge I would be the
> only Seaside
> web developer in Calgary.
> 1)  How long (starting basically from scratch) is it going to take
> before I am competent;
>     or at least competent enough to seek clients?  Assume I am a
> competent Squeak developer.

In the two months I've been dabbling, I already feel competent enough to build the kinds of things I build for friends and as hobbies on other systems. In four years I never got that far with Haskell (their web frameworks are pretty young though). On the other hand, if you don't know HTML, CSS, Javascript, HTTP, etc., you have a much longer road ahead.

> 2)  Which version(s) of Smalltalk should I use?
>     I know Squeak and have used Visualworks in the distant past.

Use Pharo.

> 3)  How screwed will my clients be if my ticker stops unexpectedly.
> Can Seaside developers
>     from outside Calgary pick up the slack for my hypothetical clients?

I think this is mostly a function of how you write your code. You're here, so it's probably not that bad. On the other hand, if your clients aren't going to be willing to hire outside city, state or country, they're going to have a rough time. But in general, the more obscure the platform is, the more zealous the developers are, the less they're going to demand to do the work and the more they're going to like it and be productive, impassioned and involved. I think it's almost always a net win, but I haven't managed to convince a business person of this fact yet.

> 4)  Is there any areas within the web development would that I should
> concentrate on or avoid?

Absolutely concentrate the bulk of your effort into design and presentation. The prettier app wins, hands-down. Functionality is almost irrelevant to non-technical types, and on the bottom end maybe one out of fifty potential clients is going to look past the interface and ask questions about the backend. If I had to do it all over again I would concentrate more effort here.

> 5)  Is there any additional software/hardware that I would need other than my
>     home computer (running Ubuntu) and Squeak/Seaside?
>     My resources for investments is very limited.

Well, you're going to need a website. I recommend using a VPS; I spent $20/month on my business's. Avoid the cloud.

> Are there other questions that I should have asked?
> Starting a business is generally a tough deal so please don't butter me up
> with glowing reviews of Seaside.

Based on just the flavor of your email, I'm sensing that this is not a career direction you're particularly jazzed about. Are you sure this is what you want to do? I've heard there are people who make a lot of money in web development, but I haven't met those people in real life. I suspect they all live together in San Francisco in some sort of communal bubble. I'm not here for the money and I don't know anyone who is both here for the money and happy. Launching a business is a very tough deal; I don't think I have a second run in me. If you're seeing this primarily as a way out of unemployment, I'd consider some other options first.

Daniel Lyons

More information about the seaside mailing list