Showing posts with label enthusiasts. Show all posts
Showing posts with label enthusiasts. Show all posts

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.

Tuesday, June 21, 2016

Compilers and interpreters

Programming languages (with a few exceptions) fall into one of two categories: compiled or interpreted.

Compilers are the natural descendants of assemblers. Assemblers convert text representations of processor-specific operation codes into machine-readable form; compilers convert high-level programs into machine-readable form. Interpreters, on the other hand, read high-level programs and process them, without producing an "executable".

Both forms have advantages. Compiled programs execute faster, and the source code can remain hidden from users, who need only the executable form. Interpreted programs may be slower, but the process of writing (and debugging) tends to be faster and interpreted languages have flexibilities not available in compiled languages.

Programming languages are sometimes created by individuals working without specific sponsorship and direction from a corporation (I call them "enthusiasts"). Other languages are created by corporations, in large, well-planned and well-justified projects.

But is one technique more popular than another? Let's look at the list of popular (according to tiobe.com) languages. Here are the top languages, who created them, whether they are compiled or interpreted, and when they were created:

Java: corporation (Sun); compiled; 1990s
C: enthusiasts (Kernighan and Ritchie); compiled; 1970s
C++: enthusiast (Stroustrup); compiled, derived from C; 1980s
Python: enthusiast (van Rossum); interpreted; 1990s
C#: corporation (Microsoft); compiled; 2000s
PHP: enthusiast (Lerdorf); interpreted; 1990s
JavaScript: individual (Eich); interpreted; 1990s
Perl: enthusiast (Larry Wall); interpreted; 1980s
VB.NET: corporation (Microsoft); compiled; 2000s
Ruby: enthusiast (Matsumoto); interpreted; 1990s
Delphi: corporation (Borland); compiled, derived from Pascal; 1990s
Swift: corporation (Apple); compiled; 2010s
Objective-C: enthusiasts (Cox and Love); compiled, derived from C; 1980s
R: enthusiasts (Ihaka and Gentleman); interpreted, derived from S; 1990s
Matlab: enthusiast (Moler); interpreted; 1970s
SQL: enthusiast (Codd); interpreted; 1970s
D: corporation (Digital Mars); compiled; 2000s
COBOL: government consortium; compiled; 1950s

From this list, a few things are obvious. First, we've invented both compiled and interpreted languages. Second, we've invented both over the age of computers, and continue to do so. It's not that a particular type of language was a fad or has fallen out of favor.

Look at the relationship between the type of creator and the language. Enthusiasts create interpreted languages and corporations to create compiled languages. The list above would match this rule perfectly, except for C. (C++ and Objective-C, derived from C, would naturally be compiled.)

But this is a short list, and small sample sizes may be deceptive. Let's look at some more:

APL: enthusiast (Iverson); interpreted; 1950s
BASIC: enthusiasts (Kemeny and Kurtz); interpreted; 1960s
S: enthusiasts (Becker, Wilks, Chambers); interpreted; 1970s
Fortran: corporation (IBM): compiled, derived from assembly language; 1950s
Pascal: enthusiast (Wirth); compiled; 1960s
Eiffel: enthusiast (Meyer); compiled; 1990s
Forth: enthusiast (Moore); interpreted; 1960s
dBase: enthusiast (Ratliff); interpreted; 1970s
Ada: government agency: compiled; 1970s
PL/I: corporation (IBM); compiled; 1960s
Prolog: enthusiasts (Colmerauer, et al.); interpreted; 1970s
AWK: enthusiasts (Aho, Weinberger, and Kernighan); interpreted; 1970s
DIBOL: corporation (DEC); compiled; 1970s
FOCAL: enthusiast (Merrill); interpreted; 1960s

This expanded shows that enthusiasts *tend* to create interpreted languages but not always. Corporations create compiled languages, though. The only interpreted language created by a corporation might be SQL, created by IBM but I've assigned it to E.F. Codd as an enthusiast.

I'm not sure why enthusiasts would create interpreted languages. Perhaps its more fun that way. Perhaps its easier. Interpreted languages let you stop a running program, examine the innards of your interpreter, adjust things, and continue running, all useful when debugging the interpreter.

Astute readers will note that my assignment of "enthusiast" or "corporation" to languages may be a bit loose. The designation is sometimes difficult. Kernighan and Ritchie, when creating C, were working for AT&T's Bell Labs. Are they corporation employees or enthusiasts? E.F. Codd worked for IBM when publishing his thoughts on relational databases. Is he an employee or an enthusiast? Wayne Ratliff was working for NASA's JPL when he wrote the first version of dBase and was part of Ashton-Tate when he wrote dBase II. Does that make him an employee? In all of these cases, I feel the individuals involved were doing what they did more as enthusiasts than employees.

On the flip side, I've placed Java and C# in the "corporation" side. Neither of these languages have individuals strongly associated with their origins. Java was a thing presented to us by Sun; C# was presented by Microsoft. Did the creation of these languages involve passionate individuals? Certainly. Were those individuals working on these projects independent of the corporation's needs? I see no evidence of that. (Yet I can easily see Kernighan and Ritchie working late at night to add features to their C compiler.)

I don't know if the assignment of "corporation" or "enthusiast" to a language's origin is important -- but I don't know that it isn't. It may be that enthusiasts will continue to create interpreted languages, and corporations will continue to create compiled languages.

I do think it significant that Java and C# live in between, Java with its JVM and C# with its CLR. Perl and Python have moved in that direction, too. They gain some benefits of interpreted languages and retain some benefits of compiled languages. I expect we will see more languages that use these techniques.

One more thing. Two other recently developed languages:

Go: corporation (Google); compiler; 2010s
Checked C: corporation (Microsoft); compiled, derived from C; 2010s

So maybe everyone isn't jumping on the "semi-interpreted" wagon.