BottomFeeder

BottomFeeder Progress

April 19, 2003 0:22:36.120

I got a few things fixed in BottomFeeder, and posted the new parcel up to the dev download area. There were a few odd things with marking items read/unread in the new views - code that made assumptions that were no longer true. That's fixed now, and the tool should behave in a much more reasonable fashion now

 Share Tweet This

news

Appearances do matter...

April 19, 2003 10:41:23.664

I have a ton of miles on American Airlines, so this news affects me. Not nearly as much as it affects all the people working for the airline though. This whole fiasco points out something interesting to me:

FORT WORTH, Texas (CNN) -- Outraged by news that troubled American Airlines had planned to give its executives bonuses, flight attendants rescinded their approval of wage cuts and plan to vote again, a union official said late Friday.

It seems that senior management often forgets that the fate of their company rests on "the little people" who do the day to day work. If they forget too much, it can lead to ugly spats like the one we see being played out in public at AA. Always a good idea to reflect on how decisions will play with the rank and file, I think. This doesn't mean that every decision has to be poll tested; it does mean that corporate leaders should be aware of the possibility of blowback...

 Share Tweet This

BottomFeeder

The little things you forget...

April 19, 2003 14:13:49.763

One of the great things about having Rich Demers help out on BottomFeeder is all the "small stuff" that I miss, but he picks up on. Things like bad tab order, shortcut keys that don't work right - all the things that a developer can easily miss, but an end user is going to be extremely frustrated by. I fixed a bunch of things this afternoon that had been broken - some for quite awhile - because of Rich's prodding. Thanks Rich!

 Share Tweet This

general

My gardening postulate

April 19, 2003 19:55:04.640

Grass grows everywhere you don't want it, and nowhere you do want it

I spent the afternoon pulling weeds out of our gardens - tomorrow we'll plant flowers. I came to the above conclusion in my back yard - there are bare spots here and there where I've been trying to coax grass to grow for three years. Meanwhile, my gardens were filling up with the stuff. Maybe this is a metaphor for life I'm not getting :)

 Share Tweet This

rss

When techies get ugly...

April 20, 2003 12:06:49.737

Wow. If you didn't think that technical arguments could get ugly, then you haven't been following this little dustup over on Sam Ruby's blog. It looks like it got started with this post from Mark Pilgrim. You have to read all the way back to the beginning of the thread to figure out what it's about - it devolved into a huge pissing match almost immediately. I guess you don't need politics or religion in an argument to get the fur flying :)

 Share Tweet This

rss

Re that fur flying...

April 20, 2003 12:29:22.199

The previous post here mentioned the big fur fight over here. Going back to the original post, there's some good points that I think have been missed - by everyone in that thread except Mark.

Here's the deal. The end users of an aggregator are the important part of the equation. Yes, the producer of the content does have a responsibility to create valid content - they should not purposely create bad XML. However, the producer of the aggregator has a responsibility as well - the end user doesn't care one way or the other. Valid XML? All required fields present? They don't care. What they care about is being able to subscribe to the content they are interested in. What does that mean for the aggregator? It means that you have to bend over backwards to accept bad content. This is where the real world goes, btw - look at what web browsers do in order to display HTML.

You can argue all you want that XML is supposed to be different, and cry about how it makes your life as a developer harder - but none of that matters. The end users could not care less about your problems on the development side. If your tool doesn't show the content they want, they'll find someone else's tool. Aha! It seems we've stumbled on a valid commercial reason for being liberal in what you accept...

 Share Tweet This

smalltalk

More Smalltalk News

April 21, 2003 10:34:35.878

I periodically see people make the claim that Cincom and IBM are the only major Smalltalk dialects, or the only Enterprise Ready Smalltalk dialects. Now obviously, I'm of the opinion that VisualWorks is the best choice for development, regardless. However, there are other things out there, and they are progressing quite nicely. The Dolphin Smalltalk guys just pushed out an update to their major release 5, for instance. Unlike Java, where you get Sun - or Sun - or Sun - in Smalltalk, we have a wide variety of dialects meeting the diverse development needs of the market. Go visit Why Smalltalk to see what I mean.

 Share Tweet This

news

Hey, this is cool!

April 21, 2003 10:44:01.227

With NASA grounded after the shuttle thing, this news is very interesting:

A private manned spaceflight program was unveiled Friday at a desert airport where it has been in secret development by famed aircraft designer Burt Rutan for two years.

A rocket plane, dubbed SpaceShipOne, and the White Knight, an exotic jet designed to carry it aloft for a high-altitude air launch, were shown off in a hangar at Mojave Airport, where Rutan developed Voyager, the airplane that made the first nonstop, unrefueled flight around the world in 1986.

The stubby-winged SpaceShipOne, built by Rutan's Scaled Composites LLC, is designed to carry three people on a suborbital flight to an altitude of 62.5 miles. Rutan set no date for the first attempt, which will come after captive-carry flights and drop tests.

As a big sci-fi and space program fan, I'm always interested in news that looks like progress on that front

 Share Tweet This

BottomFeeder

BottomFeeder UI stuff

April 21, 2003 14:07:17.520

I wasn't entirely happy with the real estate the button layout took in the latest BottomFeeder builds. So i rearranged the buttons to the top, and it got a lot better. However, the 'New' and 'Alerts' buttons really shouldn't always be enabled; they should only be enabled if there new or alert items available. That took a little bit of work in terms of state tracking, but it's done now. I think the end result is a cleaner UI. Now, if I get around to finishing the blogger API work, I could send out a general blog posting tool with BottomFeeder as a plugin....

 Share Tweet This

general

Coffee menace

April 21, 2003 14:16:37.907

This could be me during the work week....

 Share Tweet This

BottomFeeder

Better Intl support in BottomFeeder

April 21, 2003 18:26:36.568

BottomFeeder now has slightly better international support. It turns out that displaying non-English characters had some basic problems straight from the Http query - the mime code in VW was not getting the character encodings right. That's fixed. Which means that, if your current locale (as set in the OS) has a font matching the one coming in, it will display properly. Unfortunately, if your Locale contains no matching font, it won't. I intend to solve this problem, but have run out of steam for the day. It's a start.

 Share Tweet This

itNews

Has it only been 10 years?

April 21, 2003 21:09:00.141

It's only been 10 years since Mosaic came out. Hard to believe....

 Share Tweet This

blog

This is morbid

April 22, 2003 8:26:29.694

Deathblogs? Here's a trend I didn't see coming

Finding such weblogs is a challenge, since there's rarely any warning that entries are about to cease. Because idle and abandoned blogs are more the rule than the exception, it's impossible to tell if a site is simply being ignored or its creator has, in fact, died.

But deathblogs, to coin a term, do seem to offer comfort to those left behind, whether the sites are visited regularly or not.

Weblogger Rebecca Kris, a Carnegie Mellon University student, was killed in a car accident last year, leaving her blog behind. The posts call out to her by the dozens -- "Thank you for touching my life" -- hoping, perhaps, that even in the afterlife, we all might have Internet access.

shudder. Who knew?

 Share Tweet This

development

Why not both?

April 22, 2003 8:42:55.149

I saw this comment about EJB on one of the Java advocacy groups:

Question: Someone have a clue how many companies are really using EJB ?

Answer: Only the ones that want to hear the big iron groan under the load

To that I spotted this quick rejoinder:

And .NET is for those that want to hear the small iron groan under the load

lol

 Share Tweet This

rss

Tim Bray is not amused

April 22, 2003 14:33:28.302

Tim Bray is not amused about the current state of RSS. in particular, he complains about two things:

  • HTML in the <description> tag
  • Relative URLS not working in RSS

Relative urls have been a headache for me in BottomFeeder - based on the information in the data you get, it's sometimes hard to impossible to guess where a link belongs. The HTML thing has been less of an issue for me; maybe I'm just not paying attention, I don't know. Go read Tim's rant in full - it's worth some thought.

 Share Tweet This

xp

off to a new XP group

April 22, 2003 18:08:50.723

I'm off to a new XP group forming up - I'll have news later

 Share Tweet This

xp

off to a new XP group

April 22, 2003 18:08:50.723

I'm off to a new XP group forming up - I'll have news later

 Share Tweet This

xp

Maryland XP - first meeting

April 22, 2003 23:55:28.291

So here I am at the first meeting of the Maryland XP group - first thing was organizational stuff - who's here, when to meet, all of that kind of stuff. Hey, I got Smalltalk out there as one of the Productive Events ideas :)

The DC group is a little too far a drive to be convenient for me on an ongoing basis - weekly codefests are a long haul. The Baltimore beltway isn't nearly the hassle that the DC beltway is - so even though this is about as far away mile-wise, it's a lot closer time-wise.

So what's the plan? Next time, it looks like an Extreme Hour is going to be organized. I've never actually been involved in one, so that should be interesting.

So on with the meeting itself - Chris Davies reports on attending an ObjectMentor XP class. The class was taught with both C++ and Java. Sounds like they had a good time - listening to Bob Martin hold forth was probably worth the trip all by itself - agree with him or disagree with him (I've done both), he's a very good speaker.

Now I'm paying. I have to look at C++ code..... Looks like if you're doing C++ development with the MS Visual C++ tools, you're still in hell from a refactoring standpoint. Gads, how to people put up with this stuff?

Interesting conversation with the group though. A lot of smart people showed up, with some interesting viewpoints on XP, how to start using XP, how to advocate for XP.

Hmmm. I'm going to have to take a look at this FitNesse stuff that Ward has been working on....

 Share Tweet This

xp

Maryland XP - first meeting

April 22, 2003 23:55:28.291

So here I am at the first meeting of the Maryland XP group - first thing was organizational stuff - who's here, when to meet, all of that kind of stuff. Hey, I got Smalltalk out there as one of the Productive Events ideas :)

The DC group is a little too far a drive to be convenient for me on an ongoing basis - weekly codefests are a long haul. The Baltimore beltway isn't nearly the hassle that the DC beltway is - so even though this is about as far away mile-wise, it's a lot closer time-wise.

So what's the plan? Next time, it looks like an Extreme Hour is going to be organized. I've never actually been involved in one, so that should be interesting.

So on with the meeting itself - Chris Davies reports on attending an ObjectMentor XP class. The class was taught with both C++ and Java. Sounds like they had a good time - listening to Bob Martin hold forth was probably worth the trip all by itself - agree with him or disagree with him (I've done both), he's a very good speaker.

Now I'm paying. I have to look at C++ code..... Looks like if you're doing C++ development with the MS Visual C++ tools, you're still in hell from a refactoring standpoint. Gads, how to people put up with this stuff?

Interesting conversation with the group though. A lot of smart people showed up, with some interesting viewpoints on XP, how to start using XP, how to advocate for XP.

Hmmm. I'm going to have to take a look at this FitNesse stuff that Ward has been working on....

 Share Tweet This

itNews

Scary DMCA extensions

April 23, 2003 1:02:42.415

I read this story in Eweek - and it fits with other stuff I've read recently:

As of this moment, the security level of the Internet has taken a big hit. And it's not because of a new worm or some nefarious hacker collective; it's because of a set of badly conceived laws that have been passed by several states.

These measures, referred to as Super DMCA laws (see Freedom-to-Tinker's Super DMCA page) are badly designed laws promoted by the Motion Picture Association of America. Super DMCA legislation has already been passed in Colorado, Delaware, Illinois, Michigan, Oregon, Pennsylvania and Wyoming.

One of the common aspects of these laws is that they make illegal any device or program that can "conceal or to assist another to conceal from any communication service provider or from any lawful authority the existence or place of origin or destination of any communication." Aside from LaBrea, this makes a whole set of common IT programs and hardware illegal, from firewalls to VPNs to privacy applications.

So if you live in one of these states, you are now breaking the law if you run a firewall. And if you're an IT admin that has all of your internal systems running on NAT, you could face as much as five years in prison and up to a quarter-million-dollar fine.

Wow. Cluelessness and venality know no bounds....

 Share Tweet This

smalltalk

Smalltalk on .NET

April 23, 2003 8:07:28.490

Slashdot has a story on Don and John's Smalltalk implementation for .NET. Hat tip to David Buck for pointing this out.

 Share Tweet This

rss

Inside Baseball for RSS

April 23, 2003 10:51:36.862

This is just too precious for words. In the RSS/blogging universe, there's this sharp divide between RDF (RSS 1.0) and RSS (every other version). This is part of the whole "David Winer vs. the world" thing going on. I actually have some sympathy with both points of view - I look at RDF, and see needless complexity - it fails the whole XP YAGNI as far as I'm concerned - it was designed based on presumed future needs, something that I always wonder about. On the other hand, it's not as if I've studied the issue in anything like a comprehensive form, and a fair number of otherwise intelligent people sem to think it's useful.

 Share Tweet This

general

What tools are hitting my site?

April 24, 2003 0:42:03.587

I read this post on the usage of browsers with interest - IE is not at the same level of dominance (at least with the technical user population) that one might think. So I decided to analyze my site logs a bit, and came up with some interesting numbers. I just sliced and diced on things I recognized in the logs. One interesting thing - no one hit the site with Safari today. Here's what I got:

AgentPercentage of Hits
Internet Explorer31.8%
Mozilla/Netscape20.7%
Opera0.5%

Now, you'll see that there's way less than 100% there. It turns out that a significant proportion of the daily hits on my site are with RSS Agents and Bots. I threw bots into 'other'; here are the RSS stats:

AgentPercentage of Hits
BottomFeeder23.1%%
SharpReader4.1%
Radio Userland2.7%
Other17%

Now, the BottomFeeder statistics are elevated for this site, but it's still interesting that about 30% of the site's hits are for the RSS feed. It's also fascinating that Mozilla, rather than being insignificant (as it's often reported), is a sizable chunk. Looks like IE may actually have competition.

 Share Tweet This

rss

More RSS talk

April 24, 2003 9:24:42.754

There's more ranting about RSS this morning. Ted Leung cites Bill Kearney's post on "bad" RSS readers. What's a bad reader, you ask? According to Bill:

How about we all start mining our server logs and start 'outing' the bad RSS readers? Ones that don't:

  • honor scheduling instructions
  • use gzip to save bandwidth
  • follow and learn from redirects
  • use eTags
  • understand HTTP headers

Now, BottomFeeder does the big ones there - etags and gzip. I'm not sure what he means by "understand HTTP headers" - too vague. As to schedule - well, that's harder than he seems to think. For non-blogs, there may well be a regular update schedule. For blogs though - they tend to be "as the blogger decides to post". Heck, I've noticed that many of the news sites I read have updates more frequently than their schedule claims - so I'm not sure how much value that tag has in the real world. Supporting it wouldn't be hard; I'm just not sure it buys a lot.

Earlier, I posted support for another Bill Kearney rant on RSS feed bloat. However, I don't fully agree with him. He wants RSS feeds to be headlines only, and have the end user follow the links to full content. That works for news - but I hate that posting mode for blogs. When I said I don't want full content, I meant that I don't want a whole HTML page buried in the description. Headlines only I find irritating.

There's another interesting trend starting to pop up in this conversation thread over on Sam Ruby's Blog. Reading all the way through, I get the distinct impression that these people haven't seen NNTP. Why do I get that impression? Because the whole direction of the comment API, embedding RSS in other contexts, etc. - the direction that's heading is threaded conversations. Well, we have that already, in a non-bloated format - it's called NNTP. I suggest that these guys set up a moderated news group on one of their servers, because it will save them a whole lot of time and effort....

 Share Tweet This

development

Power Programmers and development

April 24, 2003 12:38:52.507

John Parkinson has an interesting article on development:

Back in the late seventies and early eighties, when I managed large, complex software projects for a living, I kept track of which programmers were contributing the most to the code we delivered to our customers. A typical development team consisted of eight to ten programmers writing and testing code for three months or so. We usually had about a dozen teams contributing to a development release, so each year I accumulated 40 to 50 sets of productivity data on both teams and individual programmers, covering the efforts of about 100 people. Between 1978 and 1983, I built up a pretty decent performance database.

The results were hugely skewed. Although the productivity of the teams didn't vary much (and everyone worked about as hard as everyone else), almost 75 percent of the final code came from just 5 percent of the programmers. And just about 100 percent of the "best" code (few initial defects, excellent efficiency) came from this same small group.

I think everyone's seen this - large projects tend to get pulled forward by the efforts of a relatively small subset of the entire development population. On some of thos projects, I was completely convinced that (literally) hundreds of developers could be replaced by a team of 1-2 dozen good people. It would certainly be cheaper than outsourcing. John goes on:

Just this year, I've come across a couple of software products that suggest Power Programmers are coming back into the mainstream. The first is Squeak, a sort of grown-up version of Smalltalk, which a few people will remember as the first real object-oriented development environment. Squeak encompasses an operating system, interactive GUI, development environment and tools that can run on anything (including a chip without a built-in operating system) with minimal porting effort (think a couple of weeks by a couple of people). The Squeak kernel code is only a few hundred "objects," which is why it is so easy to port. Squeak was developed entirely by Power Programmers, led by Alan Kay. It's an amazing example of what Power Programming can achieve. Take a look at www.squeak.org.(Squeak is open source too, and it will be interesting to see how, or if, it survives broader exposure.)

I strongly suspect that most open source projects work this way - out of the large body of people allegedly working on them, it's likely the case that a relative handful do most of the heavy lifting. No reason Open Source would be that dramatically different than any other form of development. Another set of interesting points:

With developer productivity and development process effectiveness high on a lot of CIO agendas these days, I'm starting to think again about applying the practices of Power Programmers more widely. I started by going back to my original data from the Seventies and Eighties. If just a few people were writing most of the code, what did the others do? Maybe if I could just identify the right people, I could get by without the rest.

As you might imagine, things were not that simple. Very few of the people on my teams contributed nothing at all, but a lot of them didn't contribute very much. I would have gotten a few additional points of productivity by eliminating a few people who were, in effect, "defect generators" - just no good at writing code.

I also discovered that although experience mattered, several of the Power Programmers were actually quite junior. And there was some work Power Programmers just wouldn't do - testing, documentation, release management and so on - that needs to get done if projects are to be commercially successful. The less accomplished programmers often ended up with in these roles.

I wonder how XP plays into that testing assumption. I suspect that John's Power Programmers wouldn't do large scale (after development) testing - but based on the people I see involved at the top of XP, I suspect that it's the way it's done, not the actual act. Interesting points anyway - well worth reading in full

 Share Tweet This

smalltalk

Alan Kay getting some more press

April 24, 2003 18:22:25.324

Clarence Westberg points out that Alan Kay gave an interesting talk on software and Squeak via this page:

Alan Kay gave a keynote about how much better 1960s software is than today's software, and he gave an awesome demo of Squeak; it's come a long way and it just plain looks fun to use.

Not sure what conference though :)

 Share Tweet This

rss

so about rss and update frequency....

April 24, 2003 19:11:35.142

I spent awhile exchanging email with Bill Kearney today. This was all in reference to this earlier post of mine where I said that there's little point in supporting a feed's stated update interval - and that was the point Bill objected to. Well, there was a reason I said there wasn't much point - very, very few feeds actually tell you what their update frequency is. RSS 0.9x support skipHours and skipDays - hard to deal with, IMHO, and unused by any feed I looked at (including Bill's 0.91>http://www.ideaspace.net/users/wkearney/xml/index.xml] feed, I might add). Then there's RSS 1.0, the overly complex atrocity committed by a bunch of people with way too much time on their hands - no, nothing in the spec to indicate an update interval. I suppose individual feeds could extend their 1.0 feeds with infomration - not that anyone would agree on what that is.... That takes us to RSS 2.0, which has a simple tag - <ttl> (time to live) - that would be easy to support. In fact, BottomFeeder does support it - has since the very first version. But guess what?

I see no one using it

So sure, BottomFeeder supports update frequency - but none of the feeds bother with it....

 Share Tweet This

development

The disconnect with UML (etc) based development

April 25, 2003 8:21:12.660

Matt Croyden cites Ara Abrahamian on visual development in this post:

This Visually Explicit Programming thread is so interesting.

Imho the biggest problem of UML and MDA-based software development is that, well, the code isn't even close to what you've diagrammed! I mean take a look at buildings around you. It's easy to map what the architect drew on his board to the real tangible building. With UML the diagrams are something the designer guy draws and understands but the real program has very little resemblance to it! The designer prefers to speak a more engineering-oriented language, UML, while the masons (developers) don't like or understand it because they have to build the damn building and the architecture they are given by the modeling guy is so different from what they build. They speak two different languages. That said there is value in a engineering-oriented bureaucratic approach too, after all the civilization is built by architects rather than masons, right? So fix the gap otherwise just shut up and don't preach it :-)

That matches every encounter I've ever had with modeling tool driven development. Worse, some team members tend to become mesmerized by the design tools, and get overly focused on things like the placement of boxes in the diagrams....

 Share Tweet This

news

Publishers are noticing blogs

April 25, 2003 10:57:55.398

Publishers are taking notice of blogs, but necessarily in a positive light. Via Doc Searls and jd's blog comes this tidbit:

Horgan is a former columnist for the paper who was transferred to the travel writing position earlier this year.

After losing his column, Horgan decided to set up his own Web page, where he has commented on everything from baseball to the Iraqi information minister to same-sex unions. "It kept me happy and gave me a chance to keep doing things that I wanted to do," Horgan told E&P Online. "I do it on my own time, from my own house. I'm not competing with the Courant. I'm not looking for advertisers."

But Toolan sees it differently. "Denis Horgan's entire professional profile is a result of his attachment to The Hartford Courant, yet he has unilaterally created for himself a parallel journalistic universe where he'll do commentary on the institutions that the paper has to cover without any editing oversight by the Courant," Toolan said. "That makes the paper vulnerable."

The editor added that allowing an employee to set up his own opinion blog was a bad precedent. "There are 325 other people here who could create similar [Web sites] for themselves," Toolan said.

So what's next as an employee - soul checks at the door? Sheesh....

 Share Tweet This

development

David Buck on domino effects

April 25, 2003 11:36:50.669

Why Smalltalk has an article by David Buck on the effects of changing code. He has some damning things to say about cross dependencies, and how they are worse in C++ and Java, where the static typing is "helping" you:

I get a knee-jerk reaction, therefore, when I see language designs that require wide-sweeping propagation of changes just to make one simple design change in the system. Often, these changes have a domino effect where one change requires other changes and those in turn require others. The end result could be a tremendous amount of work.

I ran into one such case when developing C++ code. I had flagged one method (member function in C++) as const. This means that the method doesn't change any instance variables of the receiver. Over time, I had refactored the member function into several member functions that called each other several levels deep and all declared as const.

I then noticed that the lowest-level function was performing a calculation time after time. I decided that it would be more efficient to calculate it once and cache the answer in the object. By doing this, however, I changed the "const" nature of the function and I had to remove the const declaration. When I did this, the callers of this function failed to compile because const functions are not allowed to call non-const functions. I had to follow the whole tree of calls removing const declarations.

In theory, this propagation could have had a domino effect through the whole system. On large systems, this kind of propagation could make it impractical to change the code.

A similar problem exists in Java's exception handling. Java requires that the programmer specially declare methods that raise exceptions by using a "throws" clause. In addition, any callers of those methods must either handle the exception or declare that they throw it.

Now, consider what happens when you need to change low-level code to throw an exception. Typically, these exceptions are caught at a high level by the application. In order to add the throw at the low level, all methods called between the throw and the catch must be changed to state that they throw the exception. To make matters worse, it's not only that one chain from the throw to the catch that must be changed. The changes branch out into trees of callers and could span many classes throughout the system. If any of those classes happen to be general utility classes or belong to other development teams, it may be impractical to change all users and it would therefore make the addition of the exception infeasible.

and here's the money quote:

Why is Smalltalk with its dynamic typing less susceptible to these problems? Dynamic typing allows the programmer to do the right thing without trying to convince the compiler that it's the right thing. Static typing requires the programmer to provide additional information to the compiler so it can double check the code. This additional information gets in the way when the programmer needs to make changes to the system.

It's a thoughtful, well written article, well worth your time.

 Share Tweet This

smalltalk

Maybe persistence does pay off

April 25, 2003 20:58:15.730

Alan Kay's talk at ETCon (link via ted Leung seems to be getting a lot of notice. I think what's going on is that the Java wave has come and gone, and things just aren't that different. Development is still hard; the tools are still not as good as what Lisp and Smalltalk had to offer 20 years ago. Sure, Eclipse is cool - if you come at it from a C language guy's POV. For a Smalltalker, it's just a pale reflection.

So along those lines, I was heartened to see this:

Squeak has been jumping on and off my radar for a few years now. It has a number of desirable qualities: small, totally portable, open-source. From the demos that Cory describes, it seems like there's a lot of functionality. James Robertson from Cincom has been gently persistent at trying to get folks to pay attention to Smalltalk again. My big beef has been the lack of an open source Smalltalk -- but Squeak persistently slipped my mind. Perhaps it's time to go have a look at Squeak...

I'm sure that people who know me will be astonished to see gently used to describe me :) Having more people looking at Squeak can only help the entire Smalltalk community - some of those people will decide to do commercial development with it, and they'll likely have a look at VisualWorks, or Dolphin, or VisualAge when they do.

 Share Tweet This

development

Static typing: The problem

April 26, 2003 1:39:24.080

People are starting to grope towards the idea that static typing is the problem. Take a look here - Ajeru is moving toward a Smalltalk point of view, whether he realizes it or not. For instance:

In mainstream OO languages, objects are associated with classes (types, interfaces, etc) at the time they are created. In the real world, this is not how it works. For example in a customer relationship management application, there will be different types of customers depending on the probability that they spend lots of money. To simplify things, say we have A, B and C customers. Business people talk about A, B and C customers and they specify different rules that apply to A, B and C customers respectively. But we cannot easily have classes for these types of customers because the type of a customer is a dynamic property that changes at runtime. The result is, we cannot capture these business rules in the same way that domain experts do. What we do in our designs is to introduce methods like isAdult() or getCustomerType(). But neither can we use this kind of "typing" to specify constraints, nor can we organise method dispatching based on such types. No polymorphism, just switch statements.

public class A extends Customer {
   definedby {
      getRecentPurchases() > CUSTOMER_A_THRESHOLD;
   }
}

public class B extends Customer {
   definedby {
      getRecentPurchases() > CUSTOMER_B_THRESHOLD;
   }
}

public class C extends Customer {
   definedby {
      getRecentPurchases() > CUSTOMER_C_THRESHOLD;
   }
}

No, it would not be easy, because among other things it contradicts static typing. A pity we must accept the fact that we have been betrayed.

Ok, that's interesting. I think he wants the decorator pattern, not the state pattern anyway - it seems that static typing has already clouded his mind. I found this reference on the fishbowl, where Charles attempts to deal with this. His explanation comes from the Java is all I, or anyone would ever have school of thought:

In Java at least, an object's type represents three different things:

  1. The messages that the object will respond to. This defines the object's interface.
  2. The code that the object will use to respond to these messages. This defines the object's implementation.
  3. An attribute of the object, of type Class.

Sometimes, people get stuck on the third one, and give it far more importance than is really necessary. There is nothing magical about the identity of an object's class. It's just another attribute of the object. Its primary value is as a way of determining which messages we can send to an object, something that is done often enough that Java gives us the short-hand operator instanceof instead of making us call Class.isAssignableFrom(). However, the existance of this operator shouldn't make us feel that the class attribute as an attribute is any more or less important than any other.

Yes, Java is the end all.... All this verbiage spilled because the crowd can't see that static typing is the problem - let go of it, and these artificial constraints disappear. As David Buck said brilliantly:

Dynamic typing allows the programmer to do the right thing without trying to convince the compiler that it's the right thing.

 Share Tweet This

BottomFeeder

BottomFeeder 2.9 news

April 26, 2003 1:59:19.241

The 2.9 release is getting closer. There are a few UI issues to resolve, but I think those will be easy. I re-did the downloads again - if you look at the dev builds page, you'll see that I've gone back to zip files. The entire directory structure is still being saved, so this change should be minor, and my hope is that it will make it easier to deal with the downloads.

 Share Tweet This

humor

I've been there

April 26, 2003 2:02:26.158

I have so been in this meeting

 Share Tweet This

BottomFeeder

arghhh - subcanvas heck

April 26, 2003 22:42:43.896

One more problem to overcome. Say I have a subcanvas, and widgetA is invisible in it. Now say I make the subcanvas invisible, then make it visible again. Is widgetA visible or invisible? The sad answer is that it is visible - the state is not maintained. I'm not sure whether this qualifies as a bug in VW, but it sure is irksome...

 Share Tweet This
-->