SEATTLE, Washington (Reuters) -- The city that spawned America's obsession with strong, dark coffee is giving locals a popular new coffee-flavored steak, even while the mad cow scare that started in Washington state is putting some people off beef.
Rippe's, a local waterfront steak and seafood restaurant, began serving filet mignon steaks dusted with Starbucks Corp.'s dark espresso blend a few weeks ago and now has a runaway hit on its hands.
Blaine Buxton hears the sound of lost productivity, and doesn't fall for it again.
And this is why I don't miss Java: Joy Of Java. While you're at it, read the rest of the blog for a lot of fun reads. This guy knows what he's talking about and is very entertaining to read. But, I remember pain like this when I was doing Java. I tell ya I don't miss the 10 minute start-up time of a Tomcat servlet so I could find out in less than 2 seconds that I had to restart it because I found my problem. Wash. Rinse. Repeat. It's nice not to have to restart the web server everytime you want to debug new code (yeah, I know about hot swap, but it only works on simple method changes....). Lots of languages can keep their web services up and running while you're programming in them though (think scripting, lisp, smalltalk, etc)...
That sound you hear? It's the rest of us busy being productive while you restart your services....
It seems that MS gets it on blogging. In a post describing a meeting with various bloggers at MS, and with a marketing manager, Chris Sells relates this story:
And then Adam Sohn from marketing talked about the need to police ourselves, describing some of the downsides in regards to blowing some group's launch plans or unconstructively criticizing another group. He preached caution when approaching the line between what was good for the customer and what was good for Microsoft. After listening to what I began to interpret as a message of self-censorship, I asked Adam a warm up, "Isn't it true that a lot of the stuff close to the 'line' is what our customers find most valuable?" He agreed that it was. And then I asked Adam my real question, "So, when we get close to that line, do we err on the side of our customer or ourselves?"
Now, you have to remember that I've been a contributing member of the Windows development community for a lot of years. I've seen how aggressive Microsoft is in everything it does to always be on top. So when I asked on what side of the line I should come down, I fully expected to be told to keep the shareholders in mind.
I think there's a simple reason that MS understands how and why blogging works - above all else, MS is a marketing machine. They are all about getting the message out to customers and prospects. They seem to have realized that blogging is (or can be) another marketing channel. Sure, a less controlled, more chaotic one - but a channel for information nevertheless. Additionally, they seem to have figured out that a lot of developers and IT managers are tired of the perfectly processed messages they get fed every day from vendor marketing machines. Blogging allows them to get that same message out, but in a more authentic voice.
This is the point where you should be asking yourself how many bloggers your company has...
Charles Miller writes on a topic I've touched on more than once, and makes a lot of sense in the process. Go read the whole thing.
Dare Obasanjo talks about products that are so good that communities organize around them and advocate - without the help of the vendor's marketing department:
The interesting thing is that I find myself to be one of these people. Whenever I start talking to someone who doesn't have a TiVo about owning one the conversation eventually a sales pitch. I've found that talking to people about the iPod to be the same way. Halfway through the conversation there's the frustration that washes over me because I can't seem to find the words to truly express to the person I'm talking to about how much the iPod or TiVo would change that aspect of their lives.
To some extent, the Smalltalk community is like that - but that isn't enough. At least in the IT world, you need some level of backup from the vendor(s) in order to convince your management...
I'll be speaking to the NY STUG in New York City on January 28th:
James Robertson, lead developer for the BottomFeeder project and whom has an uncanny resemblance to the Cincom Smalltalk Product mananger, will be demonstrating BottomFeeder and discussing technical issues such as the use of Web services, http based communications and so forth. BottomFeeder is an open source RSS viewer which provides for viewing of BLOGS. BottomFeeder is built using VisualWorks Smalltalk.
Date Jan 28th, 2004 Location Suite LLC offices Address 440 9th Avenue, 8th Floor Time 6:30pm to 7:00pm -- Open house Time 7:00 to 8:30 pm -- BottomFeeder presentation.
Take E or C train to 34th (Penn Station) walk to corner of 34th and 8th. Walk up one block to 9th. RSVP is requested. Please send mail to: firstname.lastname@example.org with subject line of: NYC Smalltalk Jan 28, 2004. Our meetings are opened to the general public. Invite a friend !
To join our mailing list simply send mail to email@example.com. Joining our list will give members access to all of the presentations and articles maintained on our site.
Any questions send mail to firstname.lastname@example.org
See you there!
Greg Reinacker says his aggregator will continue to accept bad feeds. This may make his competitors look like idealistic dreamers for thinking it would serve users' interests if they spend more time designing and coding new features and less time working around bugs in content. With all due respect, I think Greg is wrong about users. They do care about quality.
That all depends on the user in question. Technical users - like, say, the ones involved in this discussion - care. Non-technical users might well care, but not in the way you might think. I think of my neighbors, in sales and teaching. They use computers, but are not the least bit technical. Last year, after they got a PC back from their vendor support, it couldn't print. They had no idea how to fix the problem. Likewise, if they start using an aggregator, and it throws some error message at them for a feed, they won't have any idea what it means, nor will they care. They may stop using the feed; the may try another aggregator; they may get turned off on the whole notion of news aggregators. Rest assured, notifying the producer of the bad content will not be something they would do.
Now, consider - are most software users like us, or like my neighbors? I think the answer is clear, unless you aren't thinking very hard. This explains why non-technical users like Windows and Mac, and don't really like Linux - because it's too hard. End users want software that works like their TiVo or their ReplayTV. Minimal setup, easy to interact with, and - outside of absolutely critical errors - doesn't bother them with trivia. To an end user, having a non-compliant character in a feed item is trivia. Ask yourself this - would you want your stereo to inform you explicitly everytime it comes across a flaw on the CD you are trying to play? or do you want it to compensate and move on?
So what if Nicole Ritchie were a developer?. Heh
This accident happened maybe 15 miles from where I live. Sounds like a tanker trailer carrying gas fell off an overpass, onto I 95, and then blew up when a truck on 95 plowed into it at highway speeds. Video footage from the scene showed the highway had melted. Matt Croyden has a picture on his site
Mark Pilgrim explains in complete detail why insisting that clients reject invalid xml out of hand is a bad idea. The best part is, as I write this, he has four perfect examples:
Norman Walsh (invalid XML), Danny Ayers (invalid XML), Brent Simmons (invalid XML), Nick Bradbury (invalid XML), and Joe Gregorio (invalid XML claiming to be HTML) have all denounced me as a heretic for pointing out that, perhaps, rejecting invalid XML on the client side is a bad idea. The reason I know that they have denounced me is that I read what they had to say, and the reason I was able to read what they had to say is that my browser is very forgiving of all their various XML wellformedness and validity errors.
All of those folks have been extremely insistent that aggregators should reject bad content out of hand. All of those folks have invalid feeds on that basis right now. The lot of them need to read the rest of Mark's post; they should consider what he has to say carefully. Here's how I checked the validity myself:
I used this code to check whether a feed was valid xml - it just grabs the source xml, and tries to parse it - without handling any errors
source := 'http://inessential.com/xml/rss.xml'. parser := XMLParser new. parser validate: false. doc := (HttpClient new get: source) contents. ^parser parse: doc
I used this snippet of BottomFeeder code to make sure that the invalid xml was getting handled:
doc := Constructor documentFromURL: 'http://bitworking.org/index.rss' forceUpdate: true useMaskedAgent: false. cls := Constructor determineClassToHandle: doc. target := cls objectForData. feed := cls processDocument: doc from: 'http://bitworking.org/index.rss' into: target.
In each case, the simple parse fails with an error, while the BottomFeeder framework deals with the error and produces the content I want to see.
Joe Hewitt hasn't been paying attention to development trends much:
What I'd prefer instead is if I could purchase the features of these apps on a more granular level, and plug them into my workspace for working with photos. I want Photoshop for its drawing tools and filters, Picasa for it's slideshow, AOL for sharing and publishing, and ACDSee for thumbnail browsing. I'm tired of dealing with Picasa's bizarre UI for selecting photos, AOL's weird way of retouching them, Photoshop's image browser which knows nothing about my Picasa collection, and ACDSee's awkward zooming and panning tools.
MS has tried that (more than once) - DDE, COM, now .NET. All make that idea (some more, some less) possible. Sun tried it in Java - Beans (client) and EJB (server). Heck, it was tried long before that (Lisp machines, Smalltalk machines, Lisp systems, Smalltalk systems). The problem is, it's not really feasible - it's non-trivial technically speaking (having multiple components from multiple sources that don't communicate beforehand be able to snap together and agree on basic domain issues), and the economics is even harder. If I'm going to write a component for one part of that, I need a whole application to test it with - and I may as well sell the whole application. The only place this has really taken off is at the UI widget level. At the business component level, I have doubts whether it ever will
"24" seems incapable of discarding old characters - the show has moved the ball three years out (I still wonder about last season's cliffhanger) - and still, old characters pop up. Can't the writers think of something new? Now I see that Joss Whedon plans on bringing back more of them on Angel. At least with Joss, there's a chance of threads being tied up, but still - move the ball forward!
I do some pre-processing of incoming feed items in BottomFeeder, for a variety of reasons. Unfortunately, there was a bug in my pre-processing code that hosed off pre tags - making code snippets appear very badly. I just fixed that, and pushed out an update - both for the upcoming 3.3 dev version, and for the existing 3.2 release. That should make posts with pre tags appear properly.
So it's not enough that SCO is torqueing off their customers, and not enough that they can't respond to the judge's demands in their case; now they have to send out referer spam? Good gosh, just how stupid can this outfit get?
Alphaville's a tough town, the sort of place where even the street-smart are rarely safe and newcomers are often eaten alive. You can call the cops, but they usually don't arrive in time. That's why so many Alphaville residents seek justice by hiring guys like Jeremy Chase. He runs a band of thugs who'll gladly deal out ugly punishments for the right price. Chase, a 26-year-old resident of Sacramento, runs the Sim Mafia
Art imitates life...
Randy says that tools that handle bad feeds (like, say, his earlier today) are broken, and tools that reject bad feeds are good. In other news, war is peace, white is black, dead is alive....
The comments feeds for the community blogs have actually been broken for about a week - I made a change, putting the descriptions into a CDATA block - and forget to modify the generator appropriately for comments. It's fixed now, and all should be well again.
This post sums up the issue quite well:
So, what's all this have to do with the controversy over the handling of badly formed XML? A simple observation: people will write forgiving XML parsers because they can.
Did Nielsen ever offer more than a gross proxy for the real television audience? No, but that was okay, as long as that stand-in was big and growing (and the one with the most buying power). Were media planners ever blind to the implications of magazines inflating circulation numbers with cheap subscription drives? Even in the days of the two-martini lunch, everyone knew that the value of the impression had to decline. It's just that nobody much cared to do anything about it. Certainly, nobody from the agencies would; and even advertisers blithely ignored it because there was no alternative to TV other than print. Those four-color spreads were so beautiful.
I've often wondered about the actual value of print ads. Sure, you can target an audience by picking the right magazine (or program, or even website). But can you get them to pay attention to the ads? I know that I blip over the ads, and pretty much always have. The dirty secret about TiVo and ReplayTV is how little they've changed things. Sure, they allow us to flit right past commercials - but how many of us actually paid attention anyway? Pre-DVR, there was the fridge, the newspaper, the magazine, the person next to us on the couch. How many people actually watched the ads? Heck, how many were ever convinced by them?
Take cars - Do we actually buy them based on ads, or based on some level of individual research (even if it's only a brief look into Consumer Reports?) This actually points to a partial answer to the problem - content. You can get people to pay attention to marketing (advertising) if the content is useful and interesting. If all you have is glossy ads with pictures, I don't think you'll get very far. If, on the other hand, you have content that explains what your product or service actually does, and why it would be useful - then you've got something. Now, I'm not going to state that the creation of meaningful and rich content is simple - it's not. I do think that it's more valuable than the concept ad you pay mega-bucks to a high priced advertising firms for though.
An example in the software world - have you seen those absolutely stupid IBM Linux ads running on TV? Sure, they look good - but do they actually tell me anything? There's a confused looking kid sitting in a chair, with a bunch of adults periodically talking to him. Is there any point at which I'm told what problems are solved? Heck, is there any point at which I'm told what products or services are being talked about? Contrast that with the old Chaplin PC ads from the early 80's - they were cute, and interesting - and also showed us what kinds of problems a PC was likely to solve. What do these new Linux ads tell me? Absolutely nothing. The only winner is the advertising agency - and I'm sure that all the folks there behind the ad are patting themselves on the back over how terribly clever they are. Meanwhile, those of us actually watching the ad have no idea what it means, or what product/service we should inquire about. That's the kind of advertising that will be on the way out. Content is becoming king, and high concept art isn't content - at least not in any marketing sense
This looks interesting - a webcast conference, where many of the 'attendees' are joining remotely. I've registered, and intend to listen in. It will be interesting to see whether this kind of thing works or not.
Well, we now know that MS engineers know that OS X is Unix. The trouble is, they seem to have used a really old Unix reference manual when they built Word for OS X - Arcterex noticed that Word on OS X enforces a 31 character limit on filenames - and I just got verification on that from another OS X user, Alan Knight. Amazing, simply amazing....
Spotted in Sean McGrath says that Java (the language) is going to subside, with the JVM itself being targeted:
Groovy adds more grist to the dynamic typing mill. Java the language is on its way to becoming the assembler of the 21st century.
- Its there for a reason and does its job well.
- It can be programmed directly if push comes to shove
- Day-to-day work targeting the JVM is best done in something more productive.
It's really a pity that the JVM sucks so hard for dynamic languages - this would be a great way for Sun to add value over .NET, if they actually had a clue
Blogging Roller links to a very interesting paper on blogging and markets. The thing is, this paper has value whether you buy into blogs or not; some of the main thrusts are valuable insights in any case:
There are certain issues to be stressed here. First, it is obvious that unless the weblog is unique, it 19s not going to work. Weblogs are an attempt to break free from the dehumanised, standardised, conformant with corporate guidelines on how to address an audience PR speak. This is why they work and Macromedia 19s Tom Hale gets it when he says 1Creaders should perceive the weblogs as the thoughts of community managers instead of corporate shills 1D. No doubt. But then he says that they wouldn 19t have been true blogs if they had put them on Macromedia.com. Why? Is it OK for employees to speak with a real voice but it 19s not OK for companies to do so? Primarily, it 19s a matter of mindset. Organisations have been stuck with rigid frameworks for way too long. It 19s only because of these mind frames that companies are compelled to traffic their voice to press conferences, press releases, investors and shareholders reports. Channelling one company 19s voice into routes more dialectic than traditional corporate outlets has been frowned upon as a mere illusion. But there is no illusion here. It all depends on your definition of a company and corporate (or marketing) communications.
This is perhaps the biggest issue that many organizations face - no one wants to read another breezy press release, and few believe the claims anyway. Even if you have useful information to convey. Think about restaurants - what claims do you put more value on:
- The ones from an ad?
- The ones from a restaurant reviewer in the newspaper?
- The ones from people you actually know who ate there?
I'd guess you put weight on those from the bottom up - and that points out the issue with most corporate websites - the information is top down, and that's the least persuasive form of information for an awful lot of people. The nice thing about a weblog is that it puts a face and a voice on the corporation, which puts it at the level of the reviewer (at least) - and possibly at the personal level eventually. That can only be helpful - look at the reviews at Amazon, for instance - sure, there are bogus ones there. But I look at them when I cruise Amazon for books on "counterfactuals" (like this one by Harry Turtledove, for instance). I don't always go with the reviews, but they do help me out - and I put more weight on them than I do in the publisher's blurb. Likewise, the thoughts of your lead developers and project managers - and the commentary provided back from actual users - are going to be given more weight than the product announcement.
In any case, I recommend the article. There's a lot there, and I don't agree with all of it - but it's a thought provoking read
US Senators are starting to syndicate content - here's hoping we see more of this sort of thing.
The Register reports that a couple of bozos have patented a naming convention:
The Net's two biggest registrars of domain names are being sued for infringing an email and domain name patent granted last month.
The lawsuit, filed yesterday in California, claims Network Solutions and Register.com are liable for selling, specifically, .name domains. It claims undisclosed monetary damages and an injunction against the sale of any more domains.
US patent 6,671,714 - "Method, apparatus and business system for online communications with online and offline recipients" - is owned by Frank Weyer and Troy Javaher, both of Beverly Hills in California, was filed in November 1999 and approved on 30 December 2003.
What's next? Patenting surnames?
Joi Ito goes on and on and on about the 'power law' of web (and blog) linking - the power law being, more or less, that the earlier you get in, the more linkage you get:
I think we are going to see an explosion in work designed to alter the construction and effects of this inevitable inequality (viz Sifry's experiments on moving recent blogs up the Technorati list) and I am optimistic about this change, as I believe the concentration of real thought and energy on what is actually possible, as opposed to cycles wasted on utopian declations, will be tremendously productive.So I'm glad Clay is willing to consider what we might do about the fact that the most influential blogs are by people in positions of privilege
It's all about content. Post interesting stuff that people want to read, and you get noticed. Post boring stuff no one cares about, and you don't get linked. It's really that simple. The 'top bloggers' may have had a first mover advantage, but they only stay at the top by being interesting. The main limiting factor I see in coming into contact with new stuff is the sheer volume limitation - for me, there's only so much stuff I can track, even using an aggregator. On the other hand, I have dropped stuff that has gotten stale, and added stuff that looked interesting as time has gone by. Meanwhile, Joi is worrying about how Technorati lists stuff. That is so not the problem. You want readers? Be interesting....
Apparently, candle wax could be the next big thing in rocket fuel. Not an application I would have guessed at :)
On the xml-dev mailing list, I came across an interesting message from Michael Champion - makes a lot of points about why corporations tend to favor expensive solutions over cheaper ones:
I've had inquiries along these lines from the sales force of my employer (whose customers tend to be conservative, mainframe-centric shops). My newbie-to-the-mainframe-world response was something like "why would they want to buy something they can get for free?" The answer was basically that they want someone take responsibility for evaluating and testing code, who they can call when something breaks and be sure of an immediate response.
Not to get too far off topic, but "free" software is only free if you have the people with the time and expertise to exploit it effectively for your organization. There are plenty of companies out there who find it cheaper to license software for $50K/year (knowing that they can call someone on New Years Eve if it breaks) than to hire developers at $100K/year who will turn off their pagers on New Years Eve :-) This is one reason why mainframes still do the heavy lifting, years after a paper and pencil cost/benefit analysis of the hardware and systems software licensing costs would indicate that it makes no sense. This probably applies to all sorts of expensive DBMS, ERP, and app server software, not just mainframe shops.
The need for support is (and will continue to be) a big, big thing. This is one of the reasons we see stories like this - where IBM is offering some level of support to open source users.
My daughter is subscribed to this neat thing called "Spy University" - every month, they send out a package of 'spy' materials - some of it pretty cool. She's gotten listening devices, spyglasses, lots of neat stuff. This month they sent along a cipher wheel for encrypting and decrypting simple messages. She had a lot of fun having me decrypt her messages, and having me send her messages. Eventually, I got lazy enough to whip up a simple single letter substitution tool. It's a simple UI that lets me look at the cipher text and have it replace (printing above the letter in question) the presumed plain. Took me less than an hour to do, and it sure is simpler than messing with that wheel :) Maybe I'll go back to doing the newspaper cryptograms....
Gordon Weakliem has a cunning plan for his daughter. Now why didn't I think of that?
This week, a fat package of correspondence was couriered to Rowe's home, which claimed that all along his intention was to extract "a large cash settlement."
Customers of Microsoft could also be confused by the mikerowsoft Web page, the letter said.
Yeah, right - I'm going to visit this kid's site and confuse it for Microsoft's? Just how stupid does MS think people are, anyway? MS is making great strides at looking softer with all the bloggers - like Scoble - and then they go out and act like a bunch of ill mannered 6th graders going after a 2nd graders lunch money. Hey Scoble - why don't you clue in your management as to how stupid this makes MS look?
Update: Microsoft realizes that they look stupid
However, after the case received widespread coverage on the Internet, Microsoft has acknowledged that it may have taken things too far and has promised to treat Rowe fairly. A representative of the software company told ZDNet UK: "We appreciate that Mike Rowe is a young entrepreneur who came up with a creative domain name. We take our trademark seriously, but maybe a little too seriously in this case."
Sometimes, pointing out the insanity helps...
In Incipient, I read this bit on someone's desire's when using C :
I had an interesting conversation over a French-language programming newsgroup the other day. This person was inquiring about "Edit and Continue", tool support which would let him do simple, one-line changes to his C/C system from within a debugger session, and have the new code execute without needing to exit the program, recompile, rebuild, and start his session all over again.
My suggestion was to write small test programs to test bits of the program in isolation, which would obviate the need for debugger sessions as well as lengthy recompile/rebuild cycles. But, said my interlocutor, the programs I work on are "plugins" which fit within a larger architecture; I have to load the whole thing before I can test my own code. Even better, I replied. There should be a clean and well-defined interface between plugins and core, which will assist you in writing drivers and stubs enabling the above strategy. No, he told me, the "plugin architecture" mostly exists on paper. The program is actually a mess of tightly coupled spaghetti code. At which point I suggested that maybe that should be remedied.
Yes, writing small bits of code and testing are useful. Yes, having a cleaner base system is useful. But also - the limitations of C were his main problem. Had he done this using productive software - say Smalltalk, Lisp, Python, or Ruby - he wouldn't have had this problem at all, would have had edit and continue (only in an actual working state), and probably would have been able to diagnose the issues of the base system more easily. Instead, he got his productivity shot down, and a mass of confusion to boot. As well, that base system isn't really that poor student's problem either, and if my brother in law's Phd process was any indication, it's not as if he had time to deal with it anyway...
Nu Cardboard relates some first impression thoughts, pointing out how off the mark they often are. I do like the "Smalltalk" references though:
The name Smalltalk: Is it for women? They're supposed to be better at small-talk than men.
The language Java: Looks like a C 'ers interpretation of Smalltalk
Over on QLOD, a new Smalltalker asks:
What makes me wonder though: Are Smalltalkers really that much more productive. In contrast to C or C with a bad ide and without libraries maybe, but in contrast to a more modern language ? (Think about something like AS1 with additional runtime typechecking and a big library like java, probably a bad example :)) Can anyone provide some pointers ?
A large part of the productivity comes from consistency. In Smalltalk, everything is an object. No primitive data types, no special rules on certain types of methods - which means you spend more time focused on the actual problem, instead of on how to fight the system to allow you to solve the problem. Another big thing is extensibility. We can extend any class in Smalltalk - need a new method in String? Go ahead and add it. No need to start wrapping all your string references with a new class, and wondering how to get third party libraries to play ball. Blocks add some capabilities that neither Java nor any CLR language have as well. Anyone else have answers?
BottomFeeder 3.3 is out. If you have 3.2, you'll have to grab the new runtime - here are the install steps:
- delete all files in the 'app' directory
- delete all files in the 'plugins' directory
- replace bottomFeeder.im and bottomFeeder (nonWindows) or bottomFeeder.exe (Windows)
Here's a summary of what's new:
- Upgraded BottomFeeder to the VisualWorks 7.2 runtime. Users must download the new runtime.
- Initial Startup time has been greatly speeded up
- A complete overhaul of the posting tool. Thanks to Michael Lucas-Smith for all of his work and suggestions!
- How many items to cache can be set on a per-feed level now
- Feeds can be set to auto-browse individually, as opposed to the global setting
- Fixed a number of bugs and limitations in the feed auto-discovery module
- Improved the update tool
- Added two new feed builders - one for the Headline news service, one for the Yahoo news service
- On Windows, we now have better support for Unicode character display
- Added Support for Atom 0.3 syndication format
- Added support for the wfw comments module - Bf now follows per item comment feeds, inlining the comments (as per the includedComments support)
- Improved the Http package's handling of cookies
- Added a 'Flag for followup' property to items. Items may be marked as being flagged, and all flagged items can be viewed as a group
- Feeds may be marked as active or inactive (inactive feeds will not be checked for updates)
- Some minor UI layout tweaks in the main UI
See the Help About box for all the people who helped make this release possible. Thanks!
The Iowa caucus results are interesting to me for marketing reasons. The Dean campaign has been getting loads and loads of press on their innovative usage of the internet - here's an example of something that popped up this morning, for instance.
In the end, the innovation didn't matter. I'm not going to get into the whys and wherefores of Dean's message, or anyone else's for that matter - it's not the point. The point is, all the innovation in the world wasn't enough. It's the same way with product marketing - you can have clever ads, and you can have interesting product placement (etc) - but in the end, your product has to be perceived as solving real problems. I'm also fairly well convinced that anger doesn't work - in politics or in products. People don't want to hear why the other guy's product stinks - they want to hear about what your stuff can do for them. Anger tends to gear up the faithful, and turn off the undecideds. There's a lesson in that for us Smalltalkers - and likely for Lispers as well
There is no main. Rather than writing programs, you construct objects. Rather than running programs, you test objects. A Smalltalk environment will have several browsers up at a time. Some for browsing, others for editing. Another typical scenario is to have several *workspaces* up at the same time. A little code here, a few tests there.
I think Patrick's right - not having main() is a large part of the productivity question. Ironically, it's also one of the things that make Smalltalk hard to introduce to people - a common complaint from experienced developers, after their first encounter with Smalltalk is Where's my program? Once you get beyond that - and realize that you are holding clay - clay that you can mold into any shape you want - is when you really start to become productive.
ISerializable asks some questions about Smalltalk. I was going to leave a long comment, but decided to post my response here, and point to it from there:
Well, the server I'm posting too is an example Cincom Smalltalk application, as is BottomFeeder
To get to your specific questions:
- Enterprise space - we have a number of customers using the product in that capacity - from Penn State with their online student information system, to JP Morgan for derivatives tracking, to AMD for managing wafer fabs
- Web services - supported for a number of versions now. There's a loadable component that supports SOAP, UDDI, WSDL (etc)
- Talking to other applications - Mostly the same as Java here - we have C level interfacing, things like web services or CORBA
- How widespread is it? TO be fair, not nearly so much as Java or .NET. There's Smalltalk work around (I get calls on a regular basis), and learning Smalltalk will, IMHO, make you a better OO developer regardless
- There are two Smalltalk implementations for .NET - #Smalltalk and S#
There's also a very nice set of online tutorials for learning Smalltalk on our website - I'd suggest having a look there. Another good tip is to check out comp.lang.smalltalk, or join the Smalltalk IRC channel - with questions. It's a friendly community, very open to questions
My advice to people trying to learn Smalltalk is pretty much the same advice I'd give for learning any new language - try something out. My own "aha" moment came a decade ago, when I redid my standard "learning app" in Smalltalk. I wrote this same application in Basic, Pascal, Imp (don't ask :) ), and Smalltalk. The application was a simple aid to solving simple cryptograms (like the puzzles they post in some newspapars on the comics page). I was astonished at how fast I got that done in Smalltalk, before I really even knew Smalltalk! The point is, trying to solve a simple programming problem I already understood was valuable - it taught me how Smalltalk worked.
Derek questions a non-IT VP specifying technology that will be used:
A lot of organizations fall into this trap, that is someone dictating the solution who has no business doing so, instead of asking the IT department to find a solution that delivers his needs and meets the demands of the IT staff as well.
The problem also comes from the other end - especially in organizations with software development groups. IT will say "Here's the corporate standard" - without any regard as to whether the engineering group might need something that falls outside the standard (like, say, to support customers?) There's insanity on all sides of this issue, and way more than enough to go around. The way it ought to work:
- IT Guy - what do you need to be able to do? If talking to a development group, add "what do you need in order to support your customers?
- Non IT Guy - Here's what I need to do, can you support me in that area?
Instead, what we often get is IT shoving a 'standard' solution out, or in cases where someone else has more power than IT, IT being mandated to do things without regard to actual business needs. What we need is more communication, and less specification...
Patrick Logan has some good things to say about Cincom Smalltalk:
There are a surprising number of new web applications running Gemstone Smalltalk too. I would probably choose Cincom's VisualWorks over Gemstone today since it now has a lot of server capabilities, better web tools and objects, as well as better product support.
You can use both as well - VisualWorks to handle the web and server side functionality, and Gemstone for seamless object persistence. It's a lot simpler than hooking (insert RDBMS here) up on the back end...
CNET News reports that Eclipse will be leaving IBM soon:
Eclipse, an open source development tools organization backed by IBM, plans to transition to an independent foundation by next month, a representative said on Tuesday.
The Eclipse consortium has filed papers to change its corporate status and expects to complete the process by the first week of February, said Eclipse chairman Skip McGaughey. The long expected change is timed to coincide with an Eclipse technical conference, EclipseCon 2004, to be held in Anaheim, California from February 2-5.
This is likely what will happen to Java when Sun spirals all the way down
On comp.lang.smalltalk, there was a post lamenting the lack of support for .NET events in the .NET Connect for VisualWorks. I wasn't sure how to respond, so I asked the engineers working on the project - here's the answer:
Don't know about outgoing events (calling events from Smalltalk). But registering for events in .NET was not part of the version 1 plan. It is extremely difficult and there is no solution whatsoever at the moment (AFAIK for any *-.NET bridge).
The problem is that you need to give .NET a delegate object to call (type safe callback) and that has to be part of the managed world. We are thinking about synthesizing such objects (their classes) and having an extra callback mechanism with dedicated marshaling and ...
Calling the .NET-connect useless because of missing events is a result of an expectation mismatch. Events are heavily used in the UI part but rarely in the domain layer. Same as with Smalltalk. So at the moment we can use external domain functionality but embedding UI components is a different story altogether. Even with Event support today, we still have no concept for the emulated Windows.Forms widgets. These need a special wrapper environment that we very likely have to synthesize as well. For each Windows.Forms subform in an application. You get the picture.
.NET Events will be supported, but I'd rather not commit to a date until the engineers have had a better look