Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

Tuesday, December 21, 2021

Moving fast and going far are not the same thing

There is an old saying: If you want to go fast, go alone; if you want to go far, go in a group.

One significant difference between Apple and Microsoft is that Apple manages product lines and Microsoft manages an ecosystem. This difference is significant. Apple is, essentially, moving alone. It can (now) design its own hardware and software. Apple does still need raw materials, fabrication for its chips, manufacture of its cases and boxes, and assembly of components into finished goods. But Apple deals with two types of entities: suppliers (the companies that supply raw materials, chips, etc.) and customers (the people and companies that purchase computers and services).

Microsoft, in contrast, lives in an ecosystem that includes suppliers, PC manufacturers, developers, and customers (both individual and organizational). While Microsoft does design its Surface tablets and laptops, those tablets and laptops are a small part of the larger market. The laptops and desktops made by Dell, Lenovo, HP, and others are a large portion of the market.

Apple can move quickly, changing its processors from Intel to Apple-designed ARM in less than two years. Microsoft, on the other hand, must move more cautiously. It cannot dictate that Windows will shift from Intel to ARM because Microsoft does not control the manufacturers of PCs.

If Microsoft wants to shift personal computers from the current designs of discrete components to system-on-chip designs (and I believe that they do) then Microsoft must persuade the rest of the ecosystem to move in that direction. Such persuasion is not easy -- PC makers have lots invested in the current designs, and are familiar with gradual changes to improve PCs. For the past three decades, Microsoft has guided PC design through specifications that allow PCs to run Windows, and those specification have changed gradually: faster processors here, faster buss connections there, faster memory at some times, better interfaces to graphics displays at other times. The evolution of personal computers has been a slow, predictable process, with changes that can be absorbed into the manufacturing processes of the PC makers.

The Microsoft "empire" of PC design has been, for all intents and purposes, successful. For thirty years we have benefitted from computers in the office and in the home, and those computers have (for the most part) been usable and reliable.

Apple benefitted from that PC design too. The Intel-based Mac and MacBook computers were designed in the gravity field of Windows. Those Mac computers were Windows PCs, capable of running Windows (and Linux) because they used the same processors, video chips, and buss interfaces as Windows PCs. They had to use those chips; custom chips would be too expensive and risky to make.

Apple has now left that empire. It is free of the "center of gravity" that Windows provides in the market. Apple can now design its own processor, its own video chips, its own memory, its own storage. Apple is free! Free to move in any direction it likes, free to design any computer it wants.

I predict that Apple computers will move in their own direction, away from the standard design for Windows PCs. Each new generation of Apple computers will be less and less "Windows compatible". It will be harder and harder to run Windows (or Linux) on Apple hardware.

Microsoft has a new challenge now. They must answer Apple's latest M1 (and M2) system-on-chip designs. But they cannot upend the ecosystem. Nor can they abandon Intel and shift everything to ARM designs. Apple has leveraged its experience with its 'A' series chips in phones to build the 'M' series chips for computers. Microsoft doesn't have that experience, but it has something Apple doesn't: an ecosystem.

I predict that Microsoft will form alliances with other companies to build system-on-chip designs. Probably with IBM, to leverage virtual machine technology (and patents) and possibly Intel to leverage chip fabrication. (Intel recently announced that it was open to sharing its fabrication plants for non-Intel designs.)

[I hold stock in both Microsoft and IBM. That probably biases my view.]

Microsoft needs to build experience with system-on-chip designs, and alliances can provide that experience. But alliances require time, so I'm not expecting an announcement from Microsoft right away. The first system-on-chip designs may be tablets and simple laptops, possibly competing with Chromebooks. Those first simple laptops may take two years of negotiation, experimentation, design, assembly, and testing before anything is ready for market. (And even then, they may have a few problems.)

I think Microsoft can achieve the goal of system-on-chip designs. I think that they will do it with the combined effort of multiple companies. I think it will take time, and the very first products may be disappointing. But in the long run, I think Microsoft can succeed.

If you want to move fast, go alone; if you want to go far, go in a group.


Sunday, December 5, 2021

Apple all by themselves

Apple is in a unique position. At least for personal computers.

For the first time in the history of personal computers, Apple is designing the entire device, from hardware to software.

The earliest personal computers (the TRS-80, the Commodore PET, and even the Apple I and Apple II) were built with components made by other manufacturers. Processors, memory, displays, disk drives, and even power supplies were assembled into personal computers. The Apple II used the 6502 processor made by MOS Technologies (and second-sourced by others). The TRS-80 used Zilog's Z-80 processor. The original IBM PC used the 8088 processor from Intel, standard memory chips, and floppy disks (when it had them) from Tandem.

The manufacturers of personal computers was always about using "off the shelf" components to build a PC. It made sense, as it allowed a small company to sell computers and let other companies specialize in components.

Now, Apple is building their own system-on-a-chip that contains processor, memory, graphics processor, and storage. Apple designs the all of the electronics, the case, the power supply, and the display screen. Apple writes their own operating system and application programs.

Such a thing has never been seen with personal computers.

Which is not to day that such a thing has never been seen in computing. It has.

Prior to personal computers, the "we build everything" model was prevalent in computing. IBM used it for their mainframes. DEC used it for their minicomputers.

We cannot make comparisons between the mainframe age and the current age of computing. The markets are too different, the customers are too different, and the computers are too different. The fact that Apple designs everything about its computers is a happy correspondence to that earlier age.

But perhaps we can make some guesses about what Apple will do next.

For starters, they have a lot of control over the design of new products. In the old system, Apple had to use whatever processors or GPUs were available. The designs offered by "specialists" acted as a center of gravity for the market -- anyone using AMD's GPUs was working in a similar space.

Apple is no longer dependent on the designs of others. They do not have to use processors from Intel, or GPUs from AMD, or memory from another maker. Thus, Apple is able to implement its own designs. Those designs, we can reasonably expect, will deviate from the "center of gravity" of the old system. Apple can chart its own path.

Secondly, we can expect that Apple will design its products to help Apple. In particular, Apple will probably add diagnostics to its products, diagnostics that only Apple software will be able to access. The recent M1 MacBook Pro computers are suffering from memory allocation problems; we can expect that Apple will resolve this, at first with software, and later with enhancements to hardware to assist the software in identifying and reporting such issues.

Third, Apple can introduce new products on their schedule. Rather than wait for Intel or AMD to introduce new hardware, Apple can work on new hardware and release products when they are ready. I expect that Apple will release new Mac and MacBook computers every year -- although not every model. Perhaps Apple will use a three-year cycle, with updates to MacBook Air and iMac in one year, MacBook Pro and iMac Pro in a second year, and MacBook Mini and MacBook Max in the third year. (In the fourth year, Apple repeats with updates to MacBook Air and iMac.)

We should note that Apple is not completely independent. While they design the hardware, they do not manufacture it. Apple relies on outside companies to fabricate chips, build components, and assemble those components into complete units. Will Apple build its own fabrication plants? Or buy existing ones? I suspect not. Said plants are large and expensive (event for Apple's budget) and come with lots of environment issues. I expect Apple to leave that work to specialists.

All in all, Apple is in a good position to design its computers and sell them on its schedule.

The important question is: Will those computers be useful to their customers?

That's an idea for another time.

Wednesday, April 28, 2021

Be wary of Apple's M2 processor

The success of Apple's new M1 processor in Mac, MacBook, and iMac computers sent shockwaves through the industry. Performance of the M1 is much better than most processors from Intel. Apple (and its fans) are gleeful; Intel (and its fans, if it has any) are glum.

We now have news that Apple is readying a successor processor. Pundits predict the name will either be 'M1X' or 'M2', depending on the increase in capabilities over the M1 processor.

An M1X processor will see a modest set of improvements: an increased number of cores, and some minor improvements overall.

An M2 processor, on the other hand, will see a significant number of improvements. Certainly more cores, and faster memory (DDR5?) and a better GPU.

My guess -- and this is a pure, wild guess -- is that an M2 processor will have a design flaw. I do not work with Apple or its suppliers. And, I could be wrong.

My guess is that if Apple releases an 'M2' processor (an M1 with lots of changes) then there will be some nontrivial problem that surfaces after its introduction. A problem that is not detected by Apple's quality assurance efforts, yet a problem that is not insignificant and renders the processor unusable.

The culprit here is the "second system effect" which occurs after the first system is a success. In brief, after its success with the M1 processor, Apple becomes overconfident -- or over-ambitious -- with the M2 processor, and misses a flaw in the design.

What that flaw will be I do not know. It could be insufficient heat dissipation, leading to overheating in some circumstances. It could be a flaw in floating-point arithmetic. It could be a problem in the security between different processes, allowing one process to see the data of a different process.

Should Apple release new computers with a new 'M2' processor, my advice is: Wait. Don't be the first to use them -- at least not for critical applications. Let others test them, for at least a few months.

If you want to try a few as a research project, go ahead. I'm okay with that. You may find that they perform well for you. Or you may find that they don't. Testing new equipment before committing to production is a reasonable and responsible activity.

I will say here that I am biased. I think Apple has stayed too long with the 1970s model of computing, with all computing being local and nothing in the cloud. I also think that it designs products for appearance and not function. (It's displays are designed to be touched and its keyboards are designed to be visually appealing, which in my mind is backwards.) I respect it's performance with ARM chips in iPhones, iPads, and Macintosh computers. But Apple is not infallible.

Sunday, October 15, 2017

Don't make things worse

We make many compromises in IT.

Don't make things worse. Don't break more things to accommodate one broken thing.

On one project in my history, we had an elderly Windows application that used some data files. The design of the application was such that the data files had to reside within the same directory as the executable. This design varies from the typical design for a Windows application, which sees data files stored in a user-writeable location. Writing to C:\Program Files should be done only by install programs, and only with elevated privileges.

Fortunately, the data files were read by the application but not written, so we did not have to grant the application write access to a location under C:\Program Files. The program could run, with its unusual configuration, and no harm was done.

But things change, and there came a time when this application had to share data with another application, and that application *did* write to its data files.

The choices were to violate generally-accepted security configurations, or modify the offending application. We could grant the second application write permissions into C:\Program Files (actually, a subdirectory, but still a variance from good security).

Or, we could install the original application in a different location, one in which the second application could write to files. This, too, is a variance from good security. Executables are locked away in C:\Program Files for a reason -- they are the targets of malware, and Windows guards that directory. (True, Windows does look for malware in all directories, but its better for executables to be locked away until needed.)

Our third option was to modify the original application. This we could do; we had the source code and we had built it in the past. The code was not in the best of shape, and small changes could break things, but we did have experience with changes and a battery of tests to back us up.

In the end, we selected the third option. This was the best option, for a number of reasons.

First, it moved the original application closer to the standard model for Windows. (There were other things we did not fix, so the application is not perfect.)

Second, it allowed us to follow accepted procedures for our Windows systems.

Finally, it prevented the spread of bad practices. Compromising security to accommodate a poorly-written application is a dangerous path. It expands the "mess" of one application into the configuration of the operating system. Better to contain the mess and not let it grow.

We were lucky. We had an option to fix the problem application and maintain security. We had the source code for the application and knowledge about the program. Sometimes the situation is not so nice, and a compromise is necessary.

But whenever possible, don't make things worse.

Sunday, July 5, 2015

Apple wins the race for laptops -- now what?

Apple is successful, in part, due to its hardware design. Its products are lovely to look at and comfortable to hold. Its portable devices are thinner and lighter than the competition. Apple has defined the concept of laptop for the last several years -- perhaps the last decade. Apple has set the standard and other manufacturers have followed.

The latest MacBook design is light, sleek, and capable. It is the ultimate in laptop design. And by "ultimate", I mean "ultimate". Apple has won the laptop competition. And now, they have a challenge: what to do next?

Apple's advantage of the MacBook will last for only a short time. Already other manufacturers are creating laptops that are just as thin and sleek as the MacBook. But Apple cannot develop a thinner, sleeker MacBook. The problem is that there are limits to physical size. There are certain things that make a laptop a laptop. You need a display screen and a keyboard, along with processor, memory, and I/O ports. While the processor, memory, and I/O ports can be reduced in size (or in number), the screen and keyboard must be a certain size, due to human physiology.

So how will Apple maintain its lead in the laptop market?

They can use faster processors, more memory, and higher resolution displays.

They can add features to Mac OS X.

They can attempt thinner and sleeker designs.

They may add hardware features, such as wireless charging and 3G/4G connections.

But there is only so much room left for improvement.

I think the laptop market is about to change. I think that laptops have gotten good enough -- and that there are lots of improvements in other markets. I expect manufacturers will look for improvements in tablets, phones, and cloud technologies.

Such a change is not unprecedented. It happened in the desktop PC market. After the initial IBM PC was released, and after Compaq made the first clone, desktop PCs underwent an evolution that lead to the PC units we have today -- and have had for the past decade. Desktop PCs became "good enough" and manufacturers moved on to other markets.

Now that laptops have become good enough, look for the design of laptops to stabilize, the market to fragment among several manufacturers with no leader, prices to fall, and innovation to occur in other markets.

Which doesn't mean that laptops will become unimportant. Just as PCs had a long life after they became "good enough" and their design stabilized, laptops will have a long life. They will be an important part of the IT world.