Aspie in a IT perspective

Neurotypical programming

Aspie programming

Analysis methods

Flow-charts or top-down analysis is neurotypicals favorite method. Those fit very well with neurotypicals limited ability to remember what they did 5 minutes ago, but gives inflexible solutions. Conditional programming (often by spreading IFDEFs all over), is neurotypicals way of "curing" programs that have become chaotic because of this design method. The methods aim is to resemble the normal thought process of neurotypicals that is based on whole scenarios.

Object-oriented analysis aims to find objects (details) in a system is the aspie's favorite method. The industry didn't want to use the negative term bottom-up, which violated the original ideas of software design, and therefore gave it a new name. The system is built from components, and if correctly designed, they can be reused. The aim of the method is to resemble the normal thought process of aspies, which is based on details.

State-machines / sequential programs versus object-oriented programs

In the infancy of the software industry, all programs where sequences. They where therefore neurotypcial. This led to inflexible programs, that often needed total rewrite for every application (compare with inflexible neurotypicals). 

State-machines are many neurotypicals favorite. The whole idea is that you know the system can only be in a certain number of states. Conflicts often arise when programmers try to force the system into some state they "know" it must be in, regardless of empirical evidence. This resembles prejudices. State-machines are neurotypicals prejudices. Variables with only certain states is built on the same concept, and therefore on prejudices, that some things only can have certain states. If this precondition is changed, the whole program often must be rewritten. Another frequent method is to export the whole internal structure of the state-machine in the interface to other parts of the system. Even a minor change in the state-machine, leads to serious problems throughout the system.

The aspie alternative to state-machines are classes and objects, with a number of properties, a number of methods and a number of events. Another important thing about objects is encapsulation. With object-oriented programming we got flexibility and reusability. The main problem is to educate neurotypicals to teach them to think like aspies. This work still continues. It's common that neurotypicals misunderstands methods and properties. The main misunderstanding is that all properties should have to access methods named Setxxx and Getxxx. I've also myself seen examples of neurotypicals exporting the whole internal structure of a class.

Real-time programming and events

Most modern GUIs depends heavily on events. Now neurotypicals had to be re-educated again and make them stop thinking in sequences and instead think in events. This work still continues, and many neurotypicals still are stubborn and use polling instead of events, if given this alternative.

Multithreaded programming is the latest. Now the last possibility for neurotypical programmers to use sequences efficiently, disappeared. Now you must think in terms of synchronization and do everything in small pieces where every instruction can be run in any order with other instructions in other threads. Polling here leads to fatal inefficiency.

Planning in computer programs

Neurotypicals favorite planning method is to repeatedly read the state of all variables that might change (polling) and of time-planned actions. This worked fine in yesterdays computer-systems that only did one task at a time. In today's computer-systems it leads to catastrophic inefficiency.

An aspie's planning method is different. He acts on impulse. In the computer world this means events. Time-planned actions are implemented with a hardware timer in the operating system kernel. This works very well in today's computer-systems.

Conclusions

From this perspective of neurotypical / aspie, it's possible to draw some conclusions.

  1. Big demands on planning ability causes problems for aspies. This is because aspies lack the hardware timer most operating systems have. Too many planned actions also causes inefficiency in a real-time operating system.
  2. Too many events causes overload in a real-time operating system. Too much input also causes overload for aspies.
  3. Lack of events at low load causes inefficiency for neurotypicals.
  4. Simultaneous handling of many tasks becomes inflexible and inefficient for neurotypicals, unless it's automated.
  5. Impulse-driven conversation causes problems for neurotypicals
  6. Scenario analysis is problematic for aspies, while detail analysis is problematic for neurotypicals.
  7. Fast response to individual stimuli is problematic for neurotypicals, while handling long sequences is problematic for aspies.
  8. Aspies have a hard time finishing things, since only the start has an event. Often there is no natural end in a event-driven system.
  9. Neurotypicals easily accepts prejudices and becomes inflexible.

Reflections

In the computer industry one often wonders about the incredible difference in productivity between different programmers. A factor 100 is not uncommon. When viewed from this perspective, it's not hard to understand this.