x86 is a very old technology that started with the 8086 family of processors. It has now evolved into the x86-32 version which is the most common version and its successor the x86-64 or more commonly known as x64. The move gradual shift to x64 has started quite early while there were still no major drawbacks seen in the pc market. This is because the first market to experience the problems related to x86 was those who run high end servers.
Running a system that has 32bit architecture means that you are always limited to what 32bits can point to. In this case, the problem stemmed from memory. A 32bit long pointer could only point to a maximum of 4.2billion addresses which is just about 4GB of memory. As such, it can only allocate up to 4GB of memory to a certain program even if it has 16GB of memory available. This limitation may never be a problem for a home setup but in a server environment, it presents a huge problem. That’s why x64 processors appeared very early for the consumers.
The x64 architecture still follows what x86 has but it improves on it by having 64bits in every address. This means that the memory capacity of the x64 architecture is the square of 4.2billion, which for now is an unimaginable amount of memory. That coupled with certain enhancements makes the x64 architecture a certainly great processor to replace its predecessor.
The problem with x64 is that the software for it isn’t really there yet. Although there are already operating systems that try to take advantage of the x64 architecture, most do not and there are even some that won’t run on an x64 OS. Eventually, the software meant for x64 architecture would arrive and all the 32bit hardware and software would become obsolete. But for now, the x64 architecture is still haunted by software incompatibilities that limit its appeal to the general public.