Monday, February 09, 2015

Backward compatibility of software and files - or not

Casual users of Excel may be unaware of the Developer Toolbar in the Ribbon, because by default it is not there.  It must be installed as a user option.  When it has been installed, it gives the user more functionality for making objects in Excel.  While I don't do VBA programming, which also requires the Developer Toolbar, I do regularly make use of the built in Controls.  See the screen shot below.


The tools I use can be found via the Insert pull-down menu.


As you can see there are two types of controls:  Form Controls and ActiveX Controls.  I've never fully understood why both controls continue to exist.  But my sense of what happened is that the Form Controls were earlier than ActiveX but not as fully functional.  ActiveX was developed in the mid 1990s to provide then spiffy and state of the art function.  However, the ActiveX Controls don't work on a Mac.  So it was decided (by whom?) to keep both types of Controls in Windows versions of Excel.

I understand the issues with that sort of of choice.  Back In 1999 when the Campus first went to commercial learning management systems we confronted a similar decision.  We opted at the time for both CourseInfo and WebCT - different strokes for different folks.  That was my preference, then.  I learned the hard way that it wasn't the best choice to make thinking long term.  Eventually, when the campus went to an enterprise LMS, it consolidated into one offering, what was then called Illinois Compass (now Illinois Compass 2g).

Lets return to the Controls in Excel.  I learned about these tools circa 2000-2001 while I was futzing with Excel.  At first I wanted to make objects in Excel for the Web, but that had too limited functionality for what I wanted to do.  So I started to explore using the full Excel.  I discovered that it was possible to make numerically animated graphs.  For microeconomics, which uses a method known as comparative statics, this was really wonderful, a case where the technology improves over what came before.  Many of the students I was teaching at the time were uncomfortable using calculus.  With the animated graphs, the students could visualize what was going on with the economics without slugging through the algebra.

I became excited by this and made a Web site to demonstrate what I had learned called The Excelets Page.  (You can tell that is a very old page by, among other things, the NetID for me in the url has a hyphen.)  There I gave a definition of Excelets as Graph Movies and provided a bunch of examples.  All the examples were made with the ActiveX Controls.  The main control I used was a button to increase the value in a cell by a fixed increment, if you pushed the button at the right.  (If you pushed it at the left, it would decrease the value in the cell by the same increment.) You could click it once and the value would change by the increment.  Or you could hold the button down and the value in the cell would keep changing.

I don't understand why this is true, but for the ActiveX Control, the graph, which had functions in it that depended on the value in the cell you were changing, would also change in real time in a seemingly continuous way.  This is what gave the sense that you were viewing a movie.  In contrast, with the Form Control of the button, the graph would stay fixed until you let go of the button.  Then it would move in a discontinuous way to what the then current value of the cell specified.  Via rapid clicking of the button on and off, you can get some semblance of the movie even with the Form Control, but that functionality isn't quite as nice as with the ActiveX Control.

At the time I made the Excelets page, Mac usage was quite low compared to PC usage, so it seemed a no-brainer to rely on the ActiveX Control.  A year or two later I made Excelets for an intermediate microeconomics textbook by Besanko and Braeutigam, published by Wiley.  A decision needed to be made about whether to use ActiveX or Form Controls.  We mutually agreed then to use the ActiveX Controls, the reasoning at the time was that most students then taking this course would be using a PC.

Nowadays the biggest proponent of Excelets is Scott Sinex, who maintains this page for developers.  He advises developers to use the Form Controls, because the fraction of audience on a Mac is substantial.  When I made Excelets for a course I taught in spring 2011, I followed Scott's advice and used the Form Controls.  Similarly, I found there were problems with the .xlsm file type on Macs, after making this demonstration of a Simple Model of Streaks, which uses macros instead of the built in Controls.  So I would say nowadays that Scott's way is the way to have the fewest number of headaches with the use by others post development.

What of legacy content designed with ActiveX Controls?  Here is the kicker, something I learned about over the weekend when I received a query about some of my Excelets for the Besanko and Brauetigam book.  An update to MS Office from last December broke the Activex Controls.  There does appear to be a work around, so if you are a power use of ActiveX you can make that function again with some effort.  But for a casual user, such as a student who is looking at my Excelets, this is more trouble than it's worth.

What then should be done about it?  Let me consider this question both from Microsoft's point of view and from my point of view as a developer with legacy content.  Microsoft clearly didn't intend to break ActiveX.  The company looks bad, in retrospect, for not fully testing that December update to Office.  But the real problem may be that Microsoft feels an obligation to sustain functionality that it once delivered on rather than limiting what it supports because users who rely on that functionality will feel betrayed.  I note here that Google periodically cancels a service, even if there is a decent sized installed base, when that service no longer seems to fit into future plans.  Examples include iGoogle and Google Reader. Users may get upset about it at the time.  But they get over it.  As a general principle, if the company is providing reasonably good functionality on its core set of tools, dropping peripheral functionality from time to time to keep the core stuff in good shape should be how the game is played.  So I, for one, would be fine if Microsoft announced it was abandoning ActiveX altogether, even if in a future office update it fixes the immediate problem.

Were Microsoft to go cold turkey on ActiveX, that would render my legacy content much less useful than it had been.  What would I do about that?  The answer is, not much at all.  Last spring I made a tutorial that can be seen in YouTube, about how to make Excelets.   With a little effort, anybody can be a creator.  The old Excelets I made had the model quite explicit, so the viewer can readily see those cells that generate a particular curve as well as to see the formula that produces the values within those cells.  So the information needed to update the Excelets is readily available.  If the need is great enough, somebody can do it.  Wiley owns the copyright to the ones attached to the B&B textbook.  Whether you can legally replace the ActiveX Controls with Form Controls in a file where you don't own the copyright, I will leave for somebody else to determine. I made that stuff as work for hire, so I really don't have an interest in seeing it sustain now. 

For the files I made at the original Excelets Page, where I hold the copyright, I've updated just one of them.  It's called BowlingExample. You can find the Form Control in cells G1 and G2.  (You must download the file.  It won't work in preview  mode.)  The ActiveX Control is to the right of the Form Control and on my computer it is frozen.  This particular Excelet was a cutesy, if not brilliant, demonstration of numerical animation for other than economics.  It worked better back in 2001 than it does now, though as I reported above, if you click the button rapidly it does appear that the ball is rolling down the lane.  Otherwise, it looks pretty amateurish to me.  My more recent content is done better in the design. It's nice that archive.org preserves the original Excelets Page.  But I don't expect anyone to use the content there.  So if it never gets updated, that would be okay with me.

No comments: