This entry is here to give you a sense of what I will be focusing about. Since I believe that sharing assumptions is the best way to share and exchange views and ideas.
First assumption: multi threading is beneficial, at least for a significant portion of use cases. This is a major one!
My current use cases are server-based, more than client/desktop based. This is also important as a server application manages many simultaneous clients, offering a clear opportunity to leverage on multithreading. Nonetheless sever oriented approaches are often usable on the desktop.
Second assumption: those systems will be build and/or maintained by average developer with or without expert support! This one is also strong and this is a very debatable point: do we need less developer with strong skill sets or more developers at the expense of a lower average experience/skills? I favor the latter because we lack naturally born developer and that current development task still have part that are considered as mundane/not interesting by skilled experts.
Third assumption, virtual machine platforms (.net, Java,…) are the way to go. They offer both portability and (near) hassle free memory management that benefit to developer, allowing them to deliver more for less