Tuesday, June 29, 2021

Windows 11 is for the enterprise

Microsoft's recent announcement of Windows 11 has gotten a lot of people asking questions? Why now? Why the change for minimum requirements? And why was the announcement so plain and unassuming?

I think the answer lies in Microsoft's customers for Windows. So let's look at the different types of customers. We can see that there are a few different types of customers for Windows.

Enterprises: Large companies with lots of computers. They authenticate with Exchange. They use Microsoft Office, SQL Server, and other Microsoft products. They buy lots of licenses. They pay for support. And -- importantly -- they depreciate computers over a three year schedule, and they frequently replace computers every three years. They have dedicated IT support teams (possibly outsourced or contractors) and they have discussions and plans for IT.

We can consider large non-profit organizations and large government agencies in this group, as long as they replace their computers every three years.

Small businesses: Companies with fewer computers (probably less than 100). They don't use Exchange for authentication; they assign everyone a computer with a password and share data via workgroups. They use the software that comes with the computer (Windows and Office). And they don't replace their computers every three years; they keep them longer.

Small business do not (typically) have plans for IT, other than "keep things running and replace computers when they fail". They let their computers age in place, with no specific plans to upgrade Windows or applications.

We can consider small non-profit organizations and small government agencies in this group, as long as they don't have formal plans to replace computers every three years.

Typical individuals: Like small businesses, they have few computers, they use the software that comes with the computer (possibly Office 365), and they keep their computers for longer than three years. They, too, let their computers age in place.

Enthusiasts: These are individuals who enjoy tinkering with hardware or software. Like the typical individual, they have a few computers. Unlike the typical individual, they take a more active interest in IT. They probably have more computers than the typical individual, and they tend to have some computers with the latest versions of Windows. (They may also have older computers with older versions of Windows, just for fun.)

Enthusiasts were important in the early days of Windows. They downloaded beta versions, showed Windows to their friends, and learned how to make Windows work on different types of hardware. The were an important part of the "Windows revolution" over DOS.

Gamers: These individuals have few computers. They take an interest in hardware, and software when it helps their gaming experience. They use powerful computers, either built by themselves or off-the-shelf with custom video and replaced disk. They may replace equipment every three years; the time is driven not by depreciation schedules but by hardware and game software.

Browsers: Individuals who use Windows like a Chromebook. That is, they have a computer running Windows but they use only web apps. They don't use local applications (not even Office). Like typical users, they have no plans for upgrades and tend to use computers for a long time.

With these different groups in mind, we can gain some insight into Microsoft's motivations.

Microsoft's announcement for Windows 11, and specifically the requirements for 64-bit, and TPM 2.0, limit Windows 11 to recent computers. This is going to cause some problems for some users, because the equipment they currently have will not support Windows 11. But look at the groups, and see which will be affected:

Small businesses, typical individuals, and browsers will not be affected by Windows 11. They probably do not run the latest version of Windows 10, and may be running Windows 8.1 or even Windows 7. (The latter is unlikely due to the lack of support for Internet Explorer.)

Enterprise businesses will not be affected (much) by Windows 11. They will have equipment that is ready to run Windows 11 (thanks to their policy of replacing computers every three years) and they have an IT support team who can coordinate the installation of the new version. (That IT group may not be happy about a new version of Windows, but they can handle the task.)

The groups most affected by Windows 11 will be gamers and enthusiasts. Gamers will have to review the benefits of Windows 11, and will probably replace older PCs when games come out that are for Windows 11 only. Enthusiasts will be the hardest hit: their curated older hardware that is running Windows 10 (because it can) will not be able to run Windows 11. They will have to pony up for new hardware (and find space for it, while keeping their older PCs).

So my conclusion is this: Windows 11 is for the enterprise. Microsoft is targeting enterprise customers (the ones who pay lots of licensing fees) and keeping them happy. (Enterprises love security!)

The other types of users are going along for the ride. Small businesses and typical individuals won't be affected (they already have hardware, and when they buy new PCs they will come with Windows 11).

The folks most affected will be the enthusiasts who won't be able to install Windows 11 on their old hardware. (And probably won't be able to install Windows 10 after its end-of-life in 2025.) That's a small crowd, and they are less important today than they were in the early days of Windows.

Microsoft cannot support old hardware forever. The advantages of increased security are obvious and necessary. A special version of Windows 11 ("Windows 11 minus"? "Windows for the tinkerers"?) that supports older (less secure) hardware would require a lot of time and effort, and the return for that time and effort would be very small.

The enthusiasts and tinkerers need another home, one that is not dominated by the concerns (and economics) of the enterprise.

Thursday, June 24, 2021

A Tale of Three Spreadsheets

I recently compared online spreadsheets. The three were Google Sheets, Microsoft Online Excel, and Apple iCloud Numbers. For this column, I will use the short names "Sheets", "Excel", and "Numbers" to refer to these online services. When I want to refer to a desktop version of an application, I will use the adjective "desktop".

Of the three, Sheets and Excel were easy for me to use, and Numbers was a disappointment.

All three online spreadsheets provide the same basic capabilities: a workbook with one or multiple sheets, each sheet having a grid of cells, each cell able to hold a number, a text value, or a formula. All three allow for formatting, letting the user select typeface, font size, italic or bold, and colors for text or background.

All three work in any of the major browsers. One can use Chrome, Edge, Firefox, or Safari, and I suspect many other browsers. I was half-expecting each to work in the company's browser (Numbers in Safari, Sheets in Chrome, and Excel in Edge) and not in other browsers. But I saw no difference in performance, and no warning messages along the lines of "Works best in ___ browser".

Excel is very similar to the desktop version. The major change is the "ribbon", Microsoft's menu system for its desktop office applications. Instead of a ribbon, Excel provides a search bar that leads you to the desired command.

A big item missing from Excel is macros. Desktop Excel allows for macros with the VBA language. VBA is built on top of COM, and in the web space, COM does not exist. Therefore, VBA does not exist for Excel. I assume it is absent from other online applications from Microsoft, and I further assume that Microsoft is working on a replacement macro language for online spreadsheets.

Numbers is, I presume, an online version of its desktop version of Numbers. I haven't used desktop Numbers, so I cannot compare the iCloud version to the desktop version. I can say that the iCloud version is a basic spreadsheet with the features that I expected.

Sheets is an online version of... no other product. Google never supplied a desktop spreadsheet. With no legacy desktop application, Google was free to design their online spreadsheet as they saw fit. Much of the design is quite similar to desktop Excel. So similar, I suspect, that in the 1980s Microsoft would have sued Google for copying the "look and feel" of desktop Excel.

All three online offerings are limited compared to desktop versions. All did some things well, some things poorly, and some things not at all. Of the three, Numbers was the most problematic for me.

Numbers relies on the mouse for many operations, and that design choice made for a frustrating experience. I understand Apple's intent -- to make things easy for those who are familiar with the desktop Numbers application -- but it did not help me. (I suspect that moving from desktop Excel to desktop Numbers is also challenging.)

Numbers is not the only spreadsheet with issues. Excel would not let me split text fields into multiple cells (a task easily performed in desktop Excel, and in Sheets). Nor would it let me create a chart with two separate columns from the spreadsheet. Excel and Numbers can handle only a single block of data; Sheets allowed me to create a chart from separate columns.

There are some differences in behavior when loading spreadsheets. Excel remembers the active cell between sessions, so when I reload a spreadsheet, the active cell is the one from the previous session. Sheets, when it loads a file, always sets the active cell to A1 of the first sheet. I suppose that either behavior can be desired (or annoying).

The differences in spreadsheets got me to thinking. Why did Microsoft choose to implement some features and not others? What was Google's motivation for an online spreadsheet? And why did Apple make an online spreadsheet?

Google's motivations are clear: They want people to use the Chrome browsers (and Chromebooks) as much as possible (to feed information to their advertising business). People rely on spreadsheets (and word processors) for a lot of their work, and a Chrome browser without a spreadsheet would be of little use to people. Therefore, Google must provide a spreadsheet that can be used within Chrome. (And a word processor, and an e-mail client, and a bunch of other applications.)

Microsoft's motivations are less clear, but I'm willing to guess: Provide examples of applications that run on Microsoft's cloud infrastructure (Azure) and provide competition to Google's online offerings.

Apple's motivations are the murkiest of the three. Apple relies little on Safari; it generates revenue from sales of hardware and services and not from advertising. It doesn't sell cloud infrastructure or services. It offers Numbers and Pages as apps for the iPhone and iPad, and as applications for Macintosh computers. I see no advantage to Apple to offer the web versions, other than to say that Apple is in the cool kids club and can do the same things Google and Microsoft can do.

What can these motivations tell us about the future of these cloud-based spreadsheets?

Google needs its online spreadsheet, so it will support it and expand it. But Google, I think, we expand it judiciously, adding features gradually. I expect that Sheets will never match Microsoft's desktop Excel, which is the result of years of competition and expansion. When competing with other desktop spreadsheets, features were a benefit, and Microsoft added many features. Now, desktop Excel is a collection of features, some of which that do not work well with others. Google doesn't have the pressure to add features, and I think Google wants a spreadsheet that offers a balance of features and ease-of-use.

Microsoft doesn't need an online spreadsheet (not in the sense that Google needs it) but it wants an online spreadsheet. It probably views Excel as a entry point to desktop Excel -- and desktop Excel's subscription fees. Therefore, Microsoft wants Excel to be capable enough for people to use, but without some features that are in desktop Excel.

Apple doesn't need an online spreadsheet, and I'm not sure that it wants an online spreadsheet (although someone inside of Apple does want it). Apple's revenue from app license fees is minimal (and often waived), so I don't see revenue as a driver for Apple. I also don't see customers starting with the online version and then moving to the desktop version; I suspect the majority of Numbers users already have Apple computers or phones and therefore already have the desktop version. And Apple doesn't have to use it as a showpiece for their cloud infrastructure. (Apple doesn't sell cloud infrastructure.) Which leaves... no reason for Numbers and Pages in the cloud.

Unless Apple is using Numbers and Pages as a way to develop its internal expertise for cloud-based apps. That could be a reason for Apple to provide an online spreadsheet. Until they get enough expertise that don't need cloud-based apps to build expertise.

If my analysis is right (and keep in mind that I am often not right) then Microsoft's and Google's online spreadsheets will be with us for some time, and Apple's online spreadsheet is in rather precarious position. Apple may decide, either tomorrow or two years from now, that it doesn't need these online apps.

Wednesday, June 16, 2021

Swift Playgrounds is just beginning

Apple made a lot of announcements recently. Something that got little attention was Swift Playgrounds for iPad. Swift Playgrounds are environments for building simple programs for children, a kindergarten version of an IDE.

I find this announcement interesting. I think that Swift Playgrounds is a first step in a revolution for coding on the Apple platform. I think that Apple is planning to make Swift Playgrounds (or something derived from it) the standard tool for developing apps.

Some of you may be thinking "Tosh! Swift Playgrounds is for children who are learning to code, not for serious developers" and you would be correct. That's what they are.

Today.

Swift Playground is, essentially, an IDE. It lets one create and run (and debug) an app. It automates these activities more than the traditional IDE, which already integrated those activities. (Hence the "I" in IDE for "integrated development environment".)

I think that Apple will expand Swift Playgrounds and make it more capable. They may create multiple layers: Swift Elementary, Swift High School, Swift University. (I'm using names from a school motif; Apple may choose different names.) Each level will be more sophisticated and more powerful than the previous, yet each level will be able to develop working apps and deploy them to Apple's App Store.

Such a plan has several ramifications.

First, Swift Playgrounds (et alia) may replace Xcode for most app developers. If one can do everything necessary to design and build an app in Swift Playgrounds, do we need Xcode?

Second, it may allow Apple to revamp its entire product line.

Once we can develop apps on an iPad, do we need the Macintosh line? Apple could easily drop the Macbook line in favor of iPads. The iPad has the same processor and can (theoretically) do anything a Macbook can do. 

Apple may also replace the iMac line with a new, very large iPad-on-a-stand. Apple could produce a 24-inch iPad, place it on a desk stand, and let users run keyboards and mice on it just like an iMac. Would it be much different from today's iPad?

Another question is: How does Apple develop new versions of its operating systems? I assume today Apple uses Mac Pros for that development work. Could Apple shift that work to super-sized iPads? The development of operating systems is possibly the most complex task for Macintosh computers. If Apple can do that work on an iPad, do they need any of the Macintosh computers?

These changes do take time. Shifting development work from Xcode to a new series of Swift schools and will take at least five years (assuming one year each to develop the additional Swift schools) and possibly longer. I'm guessing that Apple will develop all of the schools before dropping the Macintosh line, so that means that Mac computers will be with use for at least the next decade.

But it may be that Apple is planning that far ahead. It may be that Apple is planning to kill off the Macintosh computers. It may be that Apple wants its customers to use iPhones and iPads (and the Apple App Store on those devices).

Thursday, June 10, 2021

A lament for individual developers

We in IT admire (or perhaps worship) the great individual developers of yore. We talk of John Backus and FORTRAN, and Grace Murray Hopper and COBOL, Dan Bricklin and VisiCalc, Anders Hejlsberg and Turbo Pascal (and C# and TypeScript), Linus Torvalds and Linux, Larry Wall and Perl, and others. But those stories we tell ourselves are just that -- stories. John Backus had a team at IBM. Grace Murray Hopper was part of the committee that designed COBOL. Dan Bricklin, Anders Hejlsberg, Linux Torvalds, and Larry Wall were probably the solo developers for the first versions of their products, but others joined for the later -- and more successful -- versions.

Yet we still hold the notion of the independent developer, someone working late at night on a "little side project" that can become successful.

The world has changed. I posit that individuals can no longer exist (profitably) in the computing world. The ecosystems of Apple, Google, and Microsoft, (and Amazon, and Facebook, etc.) are not made for individuals.

The problem, as I see it, has two parts.

The first part is complexity. Developing an app for one Apple device is not easy. One needs a significant amount of time and expertise to design the user interface that will work well. One needs quite a bit more to design an app (or multiple versions of the app, one for each device) that will work on multiple devices. The challenges are similar for Google (phone, tablet, and Chromebook) and somewhat less for Microsoft (desktop PC, laptop PC, and touchscreen tablet), but the challenges are there. The work of acquiring and learning the tools, and designing, building, testing, and deploying an app are daunting.

Add to those tasks the branding of the app, and support, and advertising (assuming one wants more than just the host app store). Don't forget legal text for terms of service and a disclaimer of warranty.

Also keep in mind that the platforms change. Apple releases new versions of its operating systems frequently. Those new versions require additional testing, and additional equipment (although Apple's new "Xcode in the cloud" may help reduce that expense). Google releases new versions of Android less frequently, but still often enough. Microsoft releases new versions of Windows annually, with multiple updates each year. On any platform, it is a lot to keep up with.

Those are the technical challenges.

The second part is bureaucratic. Dealing with the host company (Apple, Google, Microsoft) is not always easy, and the host companies can (and have) shut down accounts with little notice and even less explanation. Google seems the worst offender, with an appeals process that seems to consist of a query from the developer ("hey, my account is disabled, can you tell me why?") and the typical response ("for violation of one of our policies, and we have reviewed you case and our decision stands"). The stories about problems with Apple show an organization with some response, albeit slow. The stories about Microsoft... I haven't seen any stories about Microsoft disabling accounts. (Which isn't to say that it hasn't happened.)

Both problems (technical and bureaucratic) are, well, problems. And both problems show an impedance mismatch between a sole developer and the world of computing.

Large development shops have teams of people to handle different aspects of their apps, including design, coding, testing, and deployment. They can divide the work across teams, and different teams can keep up with the changes in platforms and technologies. (Not that such a task is easy in a large shop, but it is possible.)

I suspect that the large development shops have better relations with the hosts. If Apple or Google disabled the developer accounts for Netflix or Bank of America, those companies probably have a team of people who can reach out to counterparts at Apple or Google to resolve the problem, and quickly. They don't have to wait weeks (as at least one Apple user did) or face a wall of rejection (as multiple Google users have done).

Large shops stand a chance; individual developers do not.

There are two aspects of this situation that I find especially disturbing.

First, there are no medium-size alternatives. For phone apps, you deal with Google or Apple (or both) and that is the entire market. There are no small companies. There are no medium-sized companies. For desktop apps, you deal with Apple or Microsoft, and both of them are tightening the requirements for applications. (This process has been occurring since the mid 1990s with Microsoft's "Ready for Windows 95" requirements.)

Second, the messages from the host companies (Apple, Google, Microsoft) are enthusiastic about the capabilities of the platforms, and filled with phrases such as "with this new API, you can do [some task] easier than before". They rely on the vagaries of the English language; the word "you" can refer to an individual, an individual who is part of a team, or a large team of people as a collective. That vagueness lets the statements be true, but it is only true in the same sense as "yes, with our hiking shoes you can climb Mount Everest". Not exactly false, but not a complete description.

Large shops stand a chance; individual developers do not.

The notion of the determined individual developer probably has roots earlier than IT. One can certainly point to inventors of the past (Edison, Newton, Galileo) as examples of "the great individual". Or even further back, to the Roman and Greek philosophers. Perhaps even to some Egyptian or Babylonian individuals who are reputed to have done great things (by themselves).

I think that there was a time when individual developers could have made an impact in IT. Certainly in the years before the IBM PC, when the market was small and fractured among multiple manufacturers. After the IBM PC when DOS ruled. Even in the first age of Windows, when Visual Basic was popular.

But after the introduction of .NET (with its hundreds of packages and classes) and OSX (with its complexities) and especially after iOS and Android (in which Apple and Google, respectively, can close a person's account without notice) the individual developer is no longer able to compete.

This is not to say that we will have Google and Apple forever. The automotive world has been "corporate only" for decades, with complexity and regulation requiring the effort of dozens (thousands) of people to introduce a new model car, yet Elon Musk was able to form Tesla and make it viable. But just as Tesla is a corporate newcomer to the auto field, so will new entrants in the IT field be corporate.

Large shops stand a chance; individual developers do not.