Most people bought the first half and rejected the second. They agreed segmentation was a clever 1978 compromise for a chip that had to stay cheap, stay mostly 16-bit, and make
8080 source ports easy while still reaching beyond 64 KB. That framing got reinforced repeatedly. Segmentation let small programs keep compact pointers and gave code, data, and stack separate working regions without paying for a full 32-bit design or an
MMU. Several commenters also stressed that IBM’s eventual choice of the
8088 was driven as much by availability and time-to-market as by any architectural preference, with the
Motorola 68000 often praised as cleaner but not equally ready for IBM’s schedule.
Where the conversation landed was harsher on the lived experience. The pain showed up the moment data stopped fitting the model. Arrays or image buffers larger than 64 KB turned pointer arithmetic, comparisons, allocation, and compiler code generation into special cases. That is why many people called segmentation tolerable in assembly for small programs, but a bad fit for compilers and a terrible default abstraction for general software. Some defended protected-mode segmentation on the 286 and later as more flexible than the 8086 version, because descriptor tables could map non-contiguous physical memory and add permissions. Even then, the practical verdict was that
paging won for a reason. It preserved the flat model software wanted while moving placement, protection, and fragmentation handling into hardware and the OS.
A useful side thread clarified terminology. 8086 segments were not quite the same as cartridge
bank switching or later expanded memory. They acted more like several simultaneously active, overlapping 64 KB windows that could slide in 16-byte steps, not one fixed slot that swaps banks in and out. Another modern analogy that got traction was
WebAssembly with multiple linear memories, which some saw as a security-friendly form of segmentation when the boundaries are explicit and the tooling owns the complexity.
The mood was split between historical sympathy and visceral dislike. Many people who had actually built
DOS software remembered segment models, near and far pointers, DOS extenders, and huge-pointer tricks as wasted time. The strongest consensus was that segmentation was a reasonable market hack for its moment, but not a model programmers were ever going to treat as opaque. Once software needed a flat address space, the abstraction had already leaked too deeply to evolve cleanly.