First Impressions of Expression Web 4

A trial version of Expression Web 4 is available from Microsoft as a free download of Expression Studio 4. For (licensed) users of Expression Studio 3, this trial version automatically becomes an upgrade. Otherwise, upgrading to version 4 attracts a fee of several hundred dollars.

Regular readers of this website may know that I regard Expression Web as such defective software that an upgrade ought to come free with Microsoft’s apology for having presented this rubbish as commercial software. That I could within hours of purchasing Expression Web 3 find a way to make it crash reliably and easily (from just six mouse clicks) gives some idea of what I mean by defective. I burden you with all this history because you should know up-front that my first impressions of Expression Web 4 are not really first impressions. I come to this software deeply prejudiced by its earlier versions.

Suite Setup

My very first impression about Expression Web 4 was that I must have missed the option about where to install it. This, of course, was my oversight or inattention. The days of being offered large buttons to choose a custom setup instead of a default or express setup are clearly long gone, as are the days when you might easily find out how much space is still wanted on drive C if you choose to install on drive H (or whatever), but no large software manufacturer would yet presume to install hundreds of megabytes wherever it decides. Of course Microsoft asks, not with nearly as much prominence as for whether you want to participate in the Customer Experience Improvement Program, but it does ask:

Expression Studio 4 Installation

Because I missed the Options, it happens that my first impressions of Expression Web 4 were not of using the software but of uninstalling it (in order to reinstall it where I wanted), and I therefore describe this first. Some clue to the trouble in store is given by what happens when you click on Install. If only for me, the four programs suddenly became so many that they needed a scrollbar:

Setup is installing the following programs

The 13 programs that Setup suddenly wanted to install each end up with their own entry in “Programs and Features”. Should you later have the temerity to uninstall the suite, it will not be enough to click Uninstall for the one entry named Microsoft Expression Studio 4. No, it seems you are expected to repeat the exercise for each of the following:

Not only are half the names not obviously associated with Microsoft Expression (and not all the others obviously with version 4), but having to uninstall so many components individually is tedious beyond reason. Until they are all uninstalled, an attempted reinstallation will not permit you to change the installation directory.

It doesn’t seem too much to expect that if programs are installed as a suite, they should be uninstallable as a suite. That the Expression Studio components are installed together but are left to be uninstalled separately, in such number, is symptomatic of the disregard that I have become convinced pervades the Expression team at Microsoft. Too much of this software seems designed for immediate appearance without caring very much for what trouble it is to use.

Basic Functionality

It has been that way since the original version. On several pages beginning with Expression Web Bugs, I describe numerous shortcomings in basic functionality. User-interface features that have been well established over two decades not just in word processors but in FrontPage (which Expression Web replaced) are either absent from the original Expression Web or are crippled in one way or another. Four major versions later, has any of this been attended to?

Does Expression Web 4 yet let you move rows or columns in a table by dragging and dropping? No, you can’t even begin to drag the selection: when you move the cursor over a selected row or column, it changes to an I-beam as if for editing text, not that you’ll be able to edit text while it remains selected.

Does Expression Web 4 yet provide an easy means in Design View to copy a style from one word to another, i.e., without needing to care what the style is named or what its CSS properties are? You might hope that’s what the Format Painter does, especially if you were used to it for this purpose in FrontPage, but no, it is still worse than useless in Expression Web 4. Instead of copying the style, it copies some of the applicable CSS properties, possibly applying them as a new style but possibly also adding HTML tags such as <strong>. What a mess Expression Web makes of what used to be a valuable tool!

Does Expression Web 4 yet provide a reliable means in Design View to find what style applies to a given character? No, the answer you get in the Apply Styles pane or the Class box on the Styles toolbar depends on whether you select the character from left to right or right to left. How silly is that?

And so it goes. Hardly any of the demonstrations I have prepared for testing on the blank untitled page of a newly installed Expression Web work any better for Expression Web 4 than for the original. The wonder, I suppose, is that I can be disappointed. After four major versions, it ought to be plain by now that the Expression Web programmers have their sights set permanently on grander things than basic functionality.

Yet there is more going on than a determined ignorance of the software’s deficiencies in basic functionality. Consider the following silliness that seems to date from the new-look user interface of Expression Web 3. On the initial page, write a line of text and copy it enough times so that the page acquires a vertical scrollbar. Now click on the scrollbar’s up arrow but hold the button down. In any Windows program, you would expect the text to keep scrolling. In Expression Web 3, it does not. In Expression Web 4, holding down a scrollbar button does keep the text scrolling, but it doesn’t really work: the scrollbar does not move with the text but jumps into place only after the scrolling is finished. The effect itself is bizarre, but what does it tell us of the coding practices and attitudes? It’s not as if the code is left alone, more that nobody checks to see if the changes are right or cares that they’re not yet right. Foist a new look-and-feel onto your users, and let them wait a few versions while you try half-heartedly to get it working as well as what they were used to for decades. As I say, disregard.

On only one point of basic functionality can I see immediately that Expression Web 4 finally corrects a problem from the original. I would actually be very glad of this one improvement were it not made moot by a more serious problem that I’ll get to shortly. Much information at this website is naturally presented in tables. Perhaps less naturally, I apply borders to all tables by default, as a CSS property of what Expression Web calls an element-based style. Though doing so seems to me to be obvious and natural for the visual effect I want, it has a high cost in earlier versions of Expression Web: all tables lose almost all user-interface support. For instance, graphical tools for selecting or resizing rows or columns are gone. Even when rows or columns are selected from the Table menu, they do not show as selected. As far as I can tell, there is no way at all to select vertically adjacent cells that don’t make a whole column, nor to delete the contents of selected cells, as opposed to deleting the cells themselves. How it happens that you lose all this just because of the way you choose to have borders applied by default, I don’t know. Whether Microsoft looked at this for Expression Web 4 and explicitly corrected it, I also don’t know, but the user-interface support that was lost seems now to have been found.

Disappearing Text

Unfortunately, tables have an entirely new problem in Expression Web 4. I did not discover this until I proceeded to try the program on real-world web pages. As noted above, many pages at this website have tables. For as many as I have opened from my local site using Expression Web 4, two simple steps make nonsense of the page in Design View:

  1. type some text, even just one character, in an empty cell in the page’s first table;
  2. press Ctrl-Z to undo the preceding step (or click the Undo button on a toolbar or click Undo Typing on the Edit menu).

The text before the table disappears! The table itself typically looks a mess, as well, but it’s enough for present purposes to concentrate just on the missing text. It is not merely scrolled away. Pressing Ctrl-Home to get to the beginning of the page does not get you out of the table. The text is present in Code View, but returning to Design View does not bring the text back. As far as Design View seems to know, there is no longer anything to show before the table.

Now, I don’t know about you, but to me, even the apparent loss of potentially significant tracts of text is a show-stopper. Who can have any confidence in supposedly commercial-grade software that presents such a problem, at all, let alone so readily?

A little experimentation confirms that this problem has nothing to do with where the file comes from or how it was loaded. The problem can be reproduced, albeit with a little contrivance, for the blank untitled unsaved page of a newly installed Expression Web 4:

  1. type some text, e.g., the word “Text”, and press Enter to end a first paragraph;
  2. call up the Page Properties dialog, click on the Language tab, select <none> for the page language, and click OK;
  3. insert a table, e.g., by accepting the defaults from Insert Table on the Table menu;
  4. change to Code View;
  5. perform some valid edit of the code, even as trivial as typing a space and then a backspace;
  6. return to Design View;
  7. type some text, even just one character, in an empty cell of the table;
  8. press Ctrl-Z or click the Undo button on a toolbar or click Undo Typing on the Edit menu.

In effect, steps 1 to 3 prepare a page such as may be saved already as a file, steps 4 to 6 simulate the loading of the page from a file, and steps 7 and 8 are editing operations that are very nearly the simplest imaginable but are evidently too much for Expression Web 4. You can shorten the experiment by skipping step 2 and changing step 5 so that the edit in Code View is specifically to delete the <meta> tag that specifies the language.

For me, steps 1 to 8 reliably reproduce the problem, but since I have not deduced them from inspecting the software but have merely induced them by experimenting with the software, I cannot say they will reproduce the problem for you. Of particular concern for reproducibility is the apparent dependence on the page language, as cleared at step 2. I do not begin to understand Expression Web’s treatment of the page language. To me, it seems capricious. For instance, for the new page before step 1, the Page Properties dialog already shows <none> for the page language. Type any text, as for step 1, and then look at the Page Properties dialog, and suddenly “English (Australia)” has become the page language. Is the page language something to keep checking in case Expression Web thinks to change it? Perhaps it all works differently, and even well, if you’re in the United States.

That at least might pass as some sort of excuse for Microsoft. After all, I can’t be the first to see so obvious a problem. There must be something that causes it not to be so readily reproducible for Microsoft’s developers and testers and an army of pre-release and post-release reviewers. Against this, look at my immediate experiences with several versions of Expression Web as an ordinary user:

And those are just the worst of what I found straightaway. I am not a software tester. Microsoft would not pay me to test its software. Instead, Microsoft’s attitude is, if anything, that I pay Microsoft. Yet when I can so easily induce this software to misbehave badly, I must wonder whether Microsoft actually does test this software with a view to breaking it. Something is seriously defective with how Microsoft is writing and testing Expression Web. It’s either that or—and, though logical as a possibility, this is much too cynical—Microsoft’s experience is not very different from mine but isn’t allowed to stop the product from being peddled as commercial-grade work.

Short of someone with authority at Microsoft contacting me to account for this product’s problems, my only second impression of Expression Web 4 will be a repeat of what I observed nearer to the start as I work through nine uninstalls to rid myself of this rubbish.