Software development industry analysis by Larry O'Brien, the former editor of Software Development and Computer Language
Tuesday, June 24, 2003

My colleague Joe Walnes pointed me to a fascinatingly simple tool developed by our colleague Chris Stevenson. TextDox (part of AgileDox) is a tool to automatically generate documentation from JUnit test cases. Sounds ridiculous, but then that's what Wardish ideas are like. via [Martin Fowler's Bliki]

 

Tuesday, June 24, 2003 7:51:04 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Monday, June 23, 2003

The standard answer to the people wanting to really understand how .NET works is to go to the source, i.e. the Rotor source code. Now, there is one step better: these great presentations from the Rotor Conference (scroll to the bottom) from people like Peter, and Jason amongst others. Want to undertand the JIT? The GC? Its all here! via
[Sam Gentile's Blog]

Another great resource is the hyperlinked version of the C# Language Specification.

Monday, June 23, 2003 10:13:40 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Eric Kidd has written an eloquent post dismaying of the future for small ISVs. He sees the future dominated by two forces: Microsoft and Open Source. He laments for a third way, where "30 person companies" can be significant. He has some good points: Microsoft and Open Source are going to be around and they are going to influence the SD world. But small ISVs have a brilliant future. JetBrains  has about 5% marketshare of the Java IDE space. That gives them enough money to expand, build interesting software, and be entirely limited in their growth by finding people talented enough to join their company. Not a bad situation.

The other day I was writing an article about the Tablet PC that will appear in a future issue of SD Times and I wanted to emphasize that innovative hardware always introduce a needs gap, in which the nimbleness and imagination of entrepreneurs is a crucial advantage. And my fingers first wrote, "It's been more than a decade since the widespread introduction of the mouse and the bitmapped display..." and then I wiped that out and tried "It's been more than 5 years since the original Palm..." and then I wiped that out and tried to figure out how I could get people excited with the truth, which is "Well, actually, the Tablet PC is an older piece of hardware than the Smartphone, which isn't even yet released in the US, and which is an entree into a market that's considerably larger than the entire universe of desktop PCs."

Let's take a look at OneNote, Microsoft's forthcoming note-taking system. I think it's safe to assume that in 5 years, Gartner will be able to say something like "80% of all notes taken on the Tablet PC are taken in OneNote." And there's two alternative note-taking systems already in the marketplace: FranklinCovey's TabletPlanner and Mindjet's MindManager. But you know what? I don't like any of them. I'll lay down my credit card instantly for a note-taking system that accords with the way I write; "80% of the note-taking market" is entirely irrelevant to me because notes are central to the way I work, just as "95% of the Java IDE market" is entirely irrelevant to the fact that I can't imagine choosing another Java IDE over IntelliJ.

I have no idea what computers are going to look like in 25 years but I guarantee you that people will still struggle with communication, will still be frustrated that they can't coordinate their activities, will still long for tools that facilitate the expression of their artistic impulses, will still watch projects stall and falter despite the best intentions, will still be frustrated trying to lose weight, will still worry about keeping their kids safe, will still... be busy. And they will still be eager to pay for things that save them time. And if the software is well-written and well-supported and helps them achieve their goals, they won't give a damn if it comes from a company with 30 employees or 30,000.

Monday, June 23, 2003 1:23:30 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Sunday, June 22, 2003

Download new Emulator Images that allow you to test your applications in all available Pocket PC 2003 languages. via [Microsoft Download Center]

Microsoft released the new version of the Pocket PC operating system today. It's called Windows Mobile 2003 and I think its most important features are built-in WiFi and Bluetooth support. Also, it supports Windows Media 9 technologies, which are so good that they might actually convince me to carry around the occasional home movie. (I dunno', though: I've got a 256MB card, am I really going to give up a big chunk of that for the off-chance of showing someone my latest dive video?)

Sunday, June 22, 2003 11:36:44 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Jeff Bezos wants his company to offer mini-Amazons to companies needing a successful Web commerce tool. The technology that runs the popular shopping site may be its most valuable product offering. via [Wired News]

I think this makes a lot of sense. Internal Business Machines and National Cash Register were built on bringing new merchant technologies to small stores. The push to bring Mom & Pop stores onto the Web dried up with no real winners; while there's plenty of technology available to technical people, there are millions of craftspeople who represent a real economic opportunity and force and who do not have a clear solution other than eBay, which isn't quite the same.

Sunday, June 22, 2003 11:18:27 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

PARC researcher Mark Yim builds amazing modular robots that can self-reconfigure from a snake to a loop to a spider without stopping. Check out the videos--very Transformers-esque! For those in the San Francisco Bay Area, Yim is speaking on Monday in a public seminar at the Intel Research Berkeley lablet! Link Discuss (Thanks, Eric!) via [Boing Boing Blog]

Insanely cool. Be sure to check out the fence-climbing video and the one where it transforms from a snake to a loop to a spider.

Sunday, June 22, 2003 1:44:42 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Friday, June 20, 2003

How do people make license-restricted software? You know, 30-day trial edition, but when you enter your name, company, and keycode, the software says "Yeah, that's fine." Do people roll their own (and, if so, are there "best practices"), or is this a commercial market in which there are a few players (a la installers)?

Friday, June 20, 2003 7:33:03 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Thursday, June 19, 2003

I love the Tablet PC as a platform. But in light of some recent postings about it, I have to say one thing: application software that takes advantage of the pen is still extremely rare. There's a current ad from Microsoft showing a literary agent marking up a book proposal on the Tablet PC (actually, it's the book proposal for Carter Beats The Devil, which was already an established hit before the Tablet PC saw the light of day, but maybe hot-shot literary agents are on early access). The ad shows a ho-hum book proposal "beefed up" with standard proof-reading marks, and the implication is clearly that one is editing the original text. The ability to use proofer's marks on a text document is a clear killer app for millions of customers, as is the ability to handwrite long pieces of work. You can't edit text with inked proofmarks on a Tablet PC with existing software. You can't write continuous texts on a Tablet PC with existing software. These limitations are strictly application limitations and I fully expect both abilities to be available within a year or two, but new software will need to be written to exploit it.

Thursday, June 19, 2003 10:48:10 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Tim Bray: Of course, if we need to do some extension work to fit this out for financial applications, that can be done, right? via [Sam Ruby]

RSS was, I think, the very first XML format I ever saw (I may be repressing VRML, but that's not surprising). And remember Active Desktop in Windows 98 (?). I guess if you're Microsoft, it isn't such a bitter pill to be ahead of the game, but wouldn't you hate to be a former PointCast employee? Here's a relevant link to Marc Canter's speech at Reboot, in which he says "Things need to be small and modular: programmers working nights, little companies. The VCs pushed us to head for IPO, so entire companies were based on one feature. " (link via Boing Boing)

Thursday, June 19, 2003 10:17:26 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Praise for books by Fritz Onion, Shawn Wildermuth, Don Box and Chris Sells, Jeffrey Richter, and others in my latest .NET and Windows Watch column in SD Times.

Thursday, June 19, 2003 10:00:11 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Eric finally hits the world of blogs via [Sam Gentile's Blog]
 

Eric Gunnerson is the most publicly vocal member of Microsoft's C# team and his blog is likely (I hope) to be a primary source for early word on Microsoft's take on C# directions, rumors, etc. If you're interested in the future of the C# language, this should definitely be on your blogroll.

When I tried to RSS subscribe, I got an error message, but replacing USERNAME with ERICGU in the URL of the RSS feed fixed it up. (Here's the correct URL for the RSS feed.)

Thursday, June 19, 2003 9:54:10 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

http://www.twelve71.com/archives/000125.html A Web Server in PostScript !!!!!... via [TWELVE|71 : dull. dull. dull.]

The mind boggles. The mind, em-boggled, tries to conceive of a way to top the stunt. Even a Web Server written in Visual Basic for Applications would not be as wonderfully absurd. Perhaps a Web Server embedded in a refrigerator magnet?

Thursday, June 19, 2003 1:44:06 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Wednesday, June 18, 2003

 

A couple of years ago at OOPSLA I saw a wonderful panel format. On stage there was a table, short side facing the audience. People sitting on one side of the table had to support the motion, those on the other had to oppose it. At any time, anyone could stand up, walk to the other side of the table, and tap someone on the shoulder. Those two people then swapped places: the one arguing for then had to argue against. After a while, they let members of the audience come up and tap on shoulders too.

At last night’s Pragmatic Practitioner dinner here in Dallas we tried the same thing. After the meal was cleared away, we used our left-over knives to indicate the position we were taking: a knife lying in the customary end-on position meant you were supporting the statement "statically typed languages are better than dynamically types ones." A knife lying crossways meant you were opposing the motion. We started with knives alternating around the table, and tried to maintain a kind of parity: you could only swap your knife’s position if someone else did. Every now and then we had a group swap, where every knife switched.

The result was a fun and not too serious debate. It was good to be able to argue both sides of a position; very few things are black and white, and it’s nice to be able to acknowledge opposing points of view.

Now I’m wondering if the same technique could work in a business setting. Could it take the heat out of the discussions we have about architectures, design, timescales, and so on?


[PragDave]
Wednesday, June 18, 2003 6:59:10 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Tuesday, June 17, 2003

Even though Radio Userland, my blogging software, has a built-in aggregator, I recently paid to register my copy of NewsGator. Even though NewsGator goes out of its way to make it easy to export subscriptions to be reintegrated with the Userland aggregator. My ear infection is too bothersome for me to analyze what this could mean in terms of ease-of-use, "Outlook as the Operating System," or a growing general annoyance at Radio Userland. But, for the moment, I have placed NewsGator in my Tool Roll

Tuesday, June 17, 2003 8:20:19 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Monday, June 16, 2003
Monday, June 16, 2003 3:52:49 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Sunday, June 15, 2003

Jakob Nielsen's latest AlertBox makes a point about Web publishing that may not be obvious: your influence has very little to do with your ranking in the overall media universe, your influence is based on how coherent your readership is within the niche you target. Game Developer, a magazine I founded almost 10 years ago, has a small circulation by trade industry standards (and a trivial circulation compared to mass-market magazines), but that circulation includes programmers at every game software company in the world.

The same rules apply to Web sites and blogs. It should not be your goal to be parodied, it should be your goal to reach people whose readership means something to you. In my case, that means readers who know that the gaps between the possibilities, perceptions, and common practices of software development will determine the success or failure of a programming technology. My goal isn't to improve the state-of-the-art, it's to improve the state-of-the-practice. I can't post like Chris Brumme on CLR internals , but I know from the people that I talk to that many programmers have not fully internalized the concepts of object-oriented programming, much less the Common Type System. My goal is to be a link (hopefully, with some influence in both directions) between people who are making .NET the platform for enhancing productivity for software developers and the people seeking those gains, while working full-time just trying to do their job.

So, if you think some of my posts are too obvious and some my posts are too theoretical, you're my audience!

Sunday, June 15, 2003 11:46:54 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
InfoWorld is reporting a second year of wages essentially flat, with "Developer"s making a median of $84,146. Software Development reports a huge post-2000 slowdown, with current compensation of $78,000 compared to 2000's $95K. (SD's survey goes to a much larger sample size than InfoWorld's, but I'm not prepared to criticize anyone's methodology.)

Meanwhile, the United States Bureau of Labor Statistics says that being a computer programmer is going to be the fastest growing profession of the decade. According to an article at http://www.bls.gov/oco/ocos267.htm, there were about 697,000 "computer software engineer" jobs in 2000 (note that this probably represented the peak year of dot-com employment), of which 380,000 were application programmers and 317,000 systems programmers. A total of 49,000 were self-employed. Median salary was $67,670.

On the Dot-NET jobs list (http://discuss.develop.com) there have been some ridiculous postings lately, notably one for a Manhattan-based Tech Lead with salary "to $50K." That triggered a discussion as to whether salaries are just soft or whether there's a genuine salary collapse. Everyone agreed that off-shore development has rapidly become viable in the minds of technical managers and is definitely beginning to have an effect on the domestic market.

Sunday, June 15, 2003 10:59:01 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

"IDEs are very powerful but..... (From Rahul Chaudhary's Weblog) " via [Artima Weblogs]

One of the more controversial things in The Book Formerly Known As Thinking In C# is my "strong recommendation" not to use an IDE (specifically, Visual Studio) until at least one has reached the chapters on GUI programming, which are 3/4 of the way through the book. Although there's a lot to be said for bare-bones code, the downside is that the sample programs are generally simple console programs that seem far removed from "real programs."

I have been considering ways to bridge that gap: I have thought of building training material based on Terrarium but keep returning to an ever more radical thought: Wouldn't it be interesting to teach programming manipulating the world's most commonly used programs?

Sunday, June 15, 2003 4:08:30 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

"Dumbing down the language by not providing more powerfulexpressions is a way of promoting to a wider audience. However, is it the only way of supporting communites?" (From Carlos Perez's Weblog) via [Artima Weblogs]

Carlos is talking about Java, and a comment by Gilad Bracha that "[In designing a language, one] one can contrast the Scheme-like philosophy of using a small number of very general constructs, with the more mainstream approach of having a great many highly specialized constructs, as in C or Modula style languages." And the contrast is made very well in Paul Graham's Hundred-Year Language essay. There's a real language-design buzz going on in the industry right now; my brain melted last week during a 3-hour conversation with Sergei Dmitriev of JetBrains (makers of IDEA). If I were smarter, I would have learned something about "universal grammars for describing domain languages."

Sunday, June 15, 2003 3:53:57 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Check it out

Sunday, June 15, 2003 3:01:09 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Tuesday, June 10, 2003

Getting ASP.NET to work in Radio Userland-generated pages.

http://radio.userland.com/stories/storyReader$8979 tells you how to change the file extension to .aspx

The problem is that Radio Userland generates pages on the client-side, which are then FTP'ed up to the site, but you can't configure Radio Userland's file-naming conventions, so the site goes up as index.html, etc. So if you want to, say, integrate an ASP.NET Trackback mechanism, it's somewhat challenging, since IIS doesn't process files with .html extensions through ASP.NET. However, if you create a file called, say, index.aspx whose content is <!-- #include "index.html" -->, your .html file gets processed via the handler designated for the .aspx file extension. That's halfway there.

Unfortunately, Radio Userland uses ASP-like <%  tag %> tags, and so you can't just write an ASP.NET page and make it your Radio Userland template (as Radio Userland will attempt to interpret the ASP.NET tags, get confused, and generate static error messages where you desire server-side ASP.NET tags). However, you can use SSI's once again: by placing your ASP.NET code in separate server-side files and including code along the lines of <!-- #include file="myaspcomponent.ascx" --> in your Radio Userland template....

Well, you can do stuff like add 2 and 2 together. After that, it's a small step to a Trackback mechanism. Well, maybe not a small step, but the route seems clear.

 

Tuesday, June 10, 2003 4:30:18 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

"He asked me what I had learned [in a five-month initial experience with Agile Programming]. Wow, so many things. I learned...

  • that without a full-time Coach experienced in ATG, TDD was destined for failure.
  • that architects need to be in the trenches on Agile projects.
  • that pair programming and open workspaces are extremely powerful.
  • that I can't be a full-time developer and an effective XP Coach at the same time.
  • that we need to get a better handle on testing web applications in an early and automated way.
  • that continual customer involvement can maximize the amount of work not done. "

Dave Hoover has kept a journal of his experiences introducing agile practices such as pair programming and test-driven design into his workgroup. (via MemoRanda)

Tuesday, June 10, 2003 1:47:33 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

"The software titan says it is joining a venture to help develop standards for radio frequency tags intended for use in tracking retail goods." via [CNET News.com]

Point-of-sale stuff is only one small application of RFID or, for that matter, any technology having to do with location. I recently had a quiet talk with a company that had a brilliant idea for which RFID was the key enabling technology. We have mobile processing power, wireless connectivity is well established on the hype curve, but few people are yet talking about location, which is the crucial third leg for the coming wave of mobility software.