Category Archives: software development

Visual Programming is back: PopFly, Pipes, Scratch

The first true visual programming environment I used was IBM’s VisualAge Smalltalk. I liked it and thought it was a shame when IBM reverted to pure code-based development with Eclipse. Admittedly, complex applications got fairly confusing, with lines everywhere.

Now it seems visual programming is back. The other day Scratch hit the news, a cool visual programming environment for kids. I like the way that jigsaw-like shapes are used to indicate whether or not two blocks can be fitted together.

Yahoo has Pipes, drag-and-drop RSS feed combination and transformation.

Now here comes Microsoft PopFly, online visual programming for Silverlight. Is it programming? I think so:

Underneath the covers, blocks are just chunks of code that wrap complex operations, like retrieving data from a Web site or displaying an animated slideshow so that others can easily reuse that block.

PopFly looks interesting, easy to use and visually appealing, though I’ve not got an account yet. I’ve only watched the demo video.

Of course the visual bit only takes you so far. If you want to create your own blocks, or customize them, you have to write your own Javascript. I guess that will always be the case. It’s still good to see development being made more accessible for non-technical users.

 

Eclipse, WebSphere winners in latest Java survey

BZ Research has released its latest survey of Java tools. Let’s start with the caveats:

  • The survey is based only on subscribers to SD Times.
  • Out of 19,623 subscribers invited to take part, only 758 (3.9%) completed the questionnaire.

I’m not surprised: I get bombarded with requests to take part in surveys, and rarely do so. Even so the results are interesting, and the year-on-year comparisons may be indicative of trends.

On to the results (note that percentages are non-exclusive so sum to more than 100):

  • Eclipse increased its usage slightly to 69.6%; NetBeans climbed to 2nd place with 23.3% (up from 17.9%).
  • Oracle’s JDeveloper is up from 15% to 19%.
  • IBM RAD has a decent showing, up from 10.8% to 19.5%, not far behind its WSAD at 22.1%.

The survey also covers app servers. Here, all the shares are down, implying more diverse usage than last year. WebSphere is first with 36.9%, then JBoss with 32 %, then BEA WebLogic at 23.7%. Oracle and Sun are 4th and 5th.

Overall, nothing dramatic to report, though the gain for NetBeans shows that Sun’s investment in this IDE is having some success.

CodeGear’s JBuilder doesn’t feature in the top 5, nor does the excellent IntelliJ IDEA.

 

Office Open XML needs wrapper classes

I’ve been writing a hands-on style article on using the Packaging API and Office Open XML. It all works smoothly, but its glaringly apparent that Microsoft needs to provide some wrapper classes for Open XML documents to make the API more usable. You can download some code snippets, which is a start, but these only scratch the surface. After all, Office developers are used to the COM automation API which makes it relatively easy to create and manipulate documents. By contrast, to get anywhere with Open XML you have to understand the raw XML. It is still miles better than working with RTF, or with the binary Office formats, but more difficult than it should be.

By way of illustration, look no further than the official code snippet for XLInsertStringIntoCell, which does what its name suggests: writes a string into the specified cell of an Excel spreadsheet. It is over 200 lines of code and comment (in fairness, more comment than code). That would be just 2 or 3 lines in VBA. Of course, once you have the wrapper function, it is just as easy. Unfortuntely there is a lot to wrap, but it is not necessary to be comprehensive. A simplified DOM that enabled the creation of basic formatted documents and spreadsheets without having to write thousands of lines of code would meet most needs.

I realise that you can write a “Hello world” document fairly easily; I’ve done it myself. But “Hello World” is not particularly useful. After all, you could output plain text or CSV, and Word and Excel will open them happily enough. The point of Open XML is to enable documents that have a little more to them: headers and footers, specified margins, rich formatting with fonts and paragraph styles, tables and graphics. Doing all that in Open XML is not trivial.

I am not the first to think along these lines. For example, here’s some code posted to CodePlex for working with Excel. Good stuff, but personally I’d like to see some official libraries, or even a well-run (WIX-style) officially endorsed open source project for this. It’s badly needed.

 

Technorati tags: , ,

Developers still miss VB6

A couple of years ago I wrote a piece on why Visual Basic 6 was frozen.

The topic is still of interest, and some reason reddit.com picked this link up recently, so the article has thousands of new readers.

If nothing else, it proves that developers still miss the old Visual Basic. Perhaps not so surprising; as I pointed out, it once had a reasonable claim to be the most popular programming language. That would not be true now; C# seems to be more popular than VB.NET, certainly among professionals, and I suspect Java is the number one overall (though these things are hard to measure intelligently).

Would I write the same article today? More or less, though the arrival of Vista and Office 2007 would make me state more forcibly that neither COM nor the Win32 API is dead. I still think that maintaining old-style VB would not have been feasible for Microsoft, except like FoxPro as a legacy thing and sadly now a dead end.

It’s also worth noting that VBA lives on, even though Microsoft is focusing on VSTO in its place. Except on the Mac, which is another story.

PS: I’ve fixed the comment feature on the article, so you can now have your say.

Technorati tags: , , , , ,

JBuilder 2007 comes to the Mac

Codegear has announced a new JBuilder 2007 release which includes Mac, Vista and RedHat support (the earlier release only ran on Windows). It is to be made available later this month (May 2007).

There are three editions, Turbo (free), standard and Enterprise. Enterprise has “Team Server” features, with tracking and source code management; it’s not clear from the release how this ties in with existing team offerings from Codegear/Borland. The standard edition replaces both Developer and Professional editions in the previous range; the release says there is: 

Special upgrade pricing of $250 and new user pricing of $499

You would have thought this would be a free upgrade for existing JBuilder 2007 users, since cross-platform support should have been there from the beginning, but the release doesn’t say that it is. I’d like clarification.

This of course is the “JBuilder” based on Eclipse. I was interested in a discussion on one of the JBuilder newsgroups about Eclipse updates. Eclipse is a platform for add-ins, each of which is constantly being updated. The idea is that you run the update manager from time to time to get the latest version of each add–in, or perhaps install new ones. There are multiple dependencies with obvious potential for conflict. Borland’s JBuilder is a tailored build of Eclipse, and in consequence it is apparently dangerous to use the update manager. One user complained about this and drew the following comment from JBuilder expert David Orriss:

Do not try to use the Eclipse updater in JBuilder 2007. It can lead to problems, as you have seen. I’ll agree that it could have been documented better, but to try to effectively block the updater [which] (via plugins or code modifications) causes problems in the Eclipse platform.

It is a significant point. On the plus side, one of the attractions of JBuilder 2007 is that it offers a consistent, supported build of Eclipse unlike an uncontrollable open-source installation. On the minus side, blocking the update manager blocks the key Eclipse benefit: its extensibility and continuous improvement.

 

Mix Unmixed

Microsoft had a good Mix07. Let’s start with the provisos. Silverlight with .NET may have been announced, but it’s a long way from delivery, with alpha code just posted and no date set. Adobe already has a widely deployed cross-platform runtime with an embedded Javascript engine, complete with JIT compiler.

Next, Microsoft is miles behind its rival in the design world; it’s Expression tools are just now appearing, while products like Illustrator, Photoshop and Dreamweaver are de facto industry standards.

Third, Mix07 had its share of hiccups, not least the bizarre closing plenary. The theme seemed to be the future of advertising: XBox maestro Robbie Bach entertained us for a short time with clips of in-game advertising, following which came a lengthy and less than sparkling panel debate, only redeemed by pithy comments from Economist Publisher and Managing Director Andrew Rashbash who reminded us that editorial independence still matters, which is a relief.

That wasn’t enough for most delegates. A little way into the debate I became aware of a distracting bonging noise from somewhere behind me. It was the doors clanging as attendees headed for the exit.

I have never seen so many people leave a Microsoft plenary, and I can’t shake off the suspicion that something else was planned for this slot, but pulled at a late hour.

Never mind, this was nevertheless a good conference for Microsoft. It is all about a one-two Silverlight punch. Punch one is online video. You know the story: streaming internet video used to belong to Real, Apple and Microsoft until Adobe sneaked in with a marvellous “it just works” implementation in the Flash runtime. How can Microsoft now compete? Two ways: price and quality. On the price front, it is giving away space on its streaming servers, a more than generous offer that is likely to be widely taken up.

Another factor is codecs. Flash has two, H263+ and VP6. H263+ is cheap to implement, thanks to to support in FFMPEG, but the quality is poor. The newer VP6 codec, from 0n2, is equally high quality but according to Microsoft’s Forest Key, less efficient:

We are 20% better. At constrained data rates, or at HD data rates, because it’s computationally more effective, we can do a significantly better job . We can do HD on a significant number of machines. You will be able to do HD video with Silverlight. That is something that Flash can’t claim.

On2 may dispute this, judging from the claims on its site; but even if Microsoft is only on a par, that might be good enough, bearing in mind the low cost of encoding and delivering:

Expression Media Encoder is a batch processing tool for delivering media to Silverlight. It’s an enterprise scale product. We have a streaming server that is part of Windows server. It is very cost effective. By comparison Flash has a very expensive SKU.

says Key. Another plus for Silverlight video is ease of development. Program Manager Wayne Smith closed his demo with a jigsaw puzzle video, by which I mean a jigsaw image, pieces strewn everywhere, with each piece playing a segment of video. This is not useful in itself, but it nicely illustrates that in WPF video is just another graphics brush. This makes it easy to integrate video into an interactive application, with overlays, user configuration options, multiple simultaneous videos playing, and so on. Welcome to interactive broadcasting.

I am not personally a video person; I’m more interested in the programming side. The second Silverlight punch is the announcement of official cross-platform .NET, something I’ve speculated about for a long time, since before .NET 1.0 was released. Why is Microsoft doing it now? In one sense it’s an admission of failure: there will never be a Windows-only internet, thank goodness. For the rest of us it is good news.

Will Microsoft compromise Silverlight to keep the full WPF better? That must be a risk; but Key insists not:

That’s not our concern. We’re going to make Silverlight as good as possible. We shouldn’t artificially sabotage Silverlight to keep differentiation.

Overall it’s a good story, and accounts for the generally enthusiastic reception which Mix delegates gave to the opening keynote, which was as good as the closing plenary was bad. Pay special attention to what the guys from Major League Baseball talked about, as this is where it comes together into a compelling deliverable.

With Silverlight and Expression, I now think Microsoft will make real impact.

Technorati tags: , , , , , ,

Mono may implement Silverlight for Linux

Mono lead Miguel de Icaza likes Silverlight. He says:

It makes tons of sense for us to start looking at an implementation of Silverlight on Linux with Mono. There is already a XAML loader, it is the perfect excuse to use Antigrain for high-speed graphics and that only leaves the pesky media issue to be solved.

In fact, am kind of happy that Microsoft did not do the port themselves as implementing this sounds incredibly fun and interesting.

Microsoft should grab this offer, if it is serious about cross-platform. Although Linux currently only forms a small proportion of desktop operating systems, it is nevertheless significant; Ubuntu in particular is making a big impact. Mac/Windows only may be kind-of good enough for the USA, but that’s not the case worldwide.

 

Technorati tags: , ,

Times Reader and offline Silverlight at Mix07

I’m attending a panel discussion on the WPF-based Times Reader, with Tom Bodkin, Assistant Managing Editor and Design Director at the New York Times, and media designers Roger Black, and Filipe Fortes.

Bodkin is talking about the Times Reader, which is sees as offering the best of both worlds – print and web. He is an enthusiast for the tablet PC, but prefers the smaller ones like the Fujitsu P1610 [I agree 100%, I’m on a Toshiba Portege M400 now, but still miss my old, smaller Acer C110]. He thinks that multi-purpose tablets have more future than dedicated devices like Sony’s reader.

He likes the fact that Times Reader publications feel like a publication – “it’s not webby”, he says. He’s showing off some of the features of Reader, including newer features like “news in pictures”, which is a slideshow of images, and the ability to add ink notes to stories when using a Tablet PC. “It’s a print publication plus”, he says. He demonstrates the intelligent reformatting that Reader provides. There’s also a great new search feature, which includes word search and a graphical topic map that shows related stories.

I asked about the cross-platform issue. According to Bodkin a Silverlight implementation is on the way, which includes most of the features in the full version, in “a matter of months.”

This intrigues me, as I had been told by some Microsoft people that Reader would be difficult to implement in Silverlight. Two obvious issues are the limited text features, and the lack of offline storage. There is isolated storage coming in Silverlight 1.1 (far more than a matter of months away), but this will be inadequate for Reader.

It turns out that Nick Thuesen is here, the lead developer for Times Reader. I spoke to him afterwards. He has a neat solution for Silverlight’s limitations. The plan is to use an embedded browser (Safari web kit) and to host Silverlight within that. This way, the native desktop app can handle offline storage; Silverlight becomes more like Adobe’s Apollo, a desktop rich internet application.     

Why not Adobe PDF? “There’s no reflowing, PDFs are really limited,” says Bodkin. “We had an electronic New York Times in PDF, but to read anything… it’s just impractical.” “And this can update,” adds Roger Black, “But the big thing to me is the type. How this will work in Silverlight is not completely worked out.”

Fortes talks about magazine publishing through a WPF Reader, with a more intensively visual appearance, embedded video, and community features like most popular articles, most popular ads. He is also saying that typical web content still lacks the sophistication that print provides (think fashion images, carefully designed text). I find this thought-provoking: is the Web really so bad for this? Clearly this is impossible for naked HTML, but when supplemented by Flash and/or clever CSS?

There’s discussion about the continuing bias towards metaphors that work in the print world but not in the web world. The suggestion is that we still have a lot to learn about how to present content electronically.

Bodkin says that the NY Times writes two sets of headlines; web headlines are more literal than print in order to work well for search engines. This reminds me of a post I made three years ago called Google edits the internet:

…how much of what we read on the Web is influenced by Google’s search and advertising algorithms?

Black talks about a problem with the Reader, which is its dependence on templates into which XML content is poured. Good though they are, this is restrictive in design terms, compared to the complete flexibility of print.

What’s coming in Times Reader? Bodkin mentions plans for video, downloaded on demand, and the possibility of interactive features such as those Fortes has described.

Finally the panel considers some of the business issues. Income from web sites such as nytimes.com remains only a tiny fraction of what is needed to run a newsroom with a global network of reporters; armies bloggers do not remove the need for professional journalists. If print is slowly declining (and I think it is – Thuessen mentions that he has never bought a newspaper), then the question of “who pays” is important and largely unanswered.

Sadly, I stopped using the Times Reader when it went pay-only.

 

Pay and play: how the Silverlight .Net runtime is kept small

Silverlight 1.1, currently in Alpha, will include a cross-platform version of the .NET runtime. The desktop version of this runtime is over 22MB, yet Microsoft is promising to keep Silverlight at around 4MB. How is this size reduction achieved? In part by stripping down the libraries to a minimal core, but Microsoft is also using another technique which it calls pay and play. This means that further class libraries are downloaded as needed, increasing the effective range of available libraries without impacting the size of the core runtime. Sleight of hand perhaps, but it does make sense for online apps.

Developers coding for Silverlight will need to know which of the libraries available in desktop .NET are also in the Silverlight framework. Because of pay and play, some will be in the core, some will be available on demand, and others will never be available. Apparently Visual Studio will give you a visual indication of which is which.

How big will the Silverlight runtime be if you include all the pay and play libraries? Here at Mix07, Microsoft’s Joe Stegman would not say, but I got the impression it will be substantially larger. Of course this is still Alpha; everything can change, and final decisions about what is core and what is pay and play are yet to come. Stegman was also uncertain about some aspects of delivery. You would imagine that pay and play DLLs would be downloaded from Microsoft’s servers, and that once downloaded they would be persisted and shared so that other applications can use them without a further download. Stegman says this is probably what will happen, but there seems to be some doubt.

The Silverlight 1.1 runtime will not be as small as it first appears.

 

Technorati tags: , , ,

Silverlight on the Mac: picture

Here at Mix07 we’ve seen some impressive demos of Silverlight running on the Mac. All the demos worked; the applications looked the same on the Mac as on Windows. Scott Guthrie showed “Silverlight Airlines”, which uses .NET code to call an ASP.NET web service. You draw a line between cities to show where you want to travel, select a date, and a grid populates with the available flights. Here’s my fuzzy picture, though I imagine the demo itself may be put online soon:

 

Technorati tags: , , ,