Benefits
Modern
Modern that mean : the mobility with connected/disconnected modes, a wide IT diffusion, “Internet of Things” (IoT), a selection of state of the art practices, powerful processors (Moore law), a large amount of memories (RAM and storage), high speed networks.
But do not includes practices coming from the IT stratification, and neither the over-complex approaches, nor the simplistic ones. Of course any techno fashion, or issued of lobby group, though recent, have also to be excluded. This implies establishing a separation between these practices and the really effective ones.
Modern practices includes major Design Patterns and principles like separation of concerns or low coupling. These patterns should be incorporated in ISA as much as possible.
Performant
The performance is mandatory. In order for ISA to be applicable in a wide range of applications and platforms, it has to be intrinsically as powerful as possible. The recent example of mobile developments, that have gone back to the good old C language to be efficient, is very indicative. So this ideal architecture must be designed to have highest performances, the closest as possible to assembly, C and C++ languages.
It is important to take into account of the current evolution of hardware and of what it could be in the future (Moore law, frequency stagnation, instruction set stagnation, etc.). And also of the trajectory of the base layers software (Operating Systems, Database) : functional inflation, conceptual stagnation or even regressions.
ISA is freed of the legacy : therefore it should not limit itself in changes that it can elaborate to have good performances. And this in both dimensions hardware and software.
The performance must not be sacrificed because of ease of any stakeholder of our industry. Over ease of use or extend the usual uses are definitely not receivable arguments if it is at performance detriment.
I'm always stupefied of the very high speed of Microsoft Visual Studio 2005 when it is launched and of it's reaction speed. It contrasts with the slow motion of versions 2010/2013/… of this software. On the same computer of course. That's just unacceptable, because most of the features are the same. And moreover that there is no reason the new ones should be slowest. I have not looked at it, but I'm quite sure the occupied memory space is lowest on the 2005 version.I can't say the same thing about Eclipse, because it is slow and fat from the beginning…This leads me to try to stay away from any kind of over sophisticated runtimes. And in consequence to just stay native : this is the condition to do the best possible. |
Durable
By durable, I mean (1) defining something up to date and (2) that can reasonably evolve during a few decades.
The item (1) has already been seen thru this wish and of previous ones. The durability has to be added to these requirements. It highlight the importance to not be a fashion victim. And also to stick to well established paradigms, to their induced concepts and to experienced practices.
In a sense, ISA is not there to innovate in all dimensions, but only on those that fulfill all wishes exposed in this blog.
The second aspect of the durability (2) is about flexibility and extensibility. Before studying this aspect, remember that this software architecture should “only” address 80% of the IT scope. The remaining 20% have to be set by other actors of our industry, in theirs ways.
Another warning : Predict the future is difficult. So it is superflux to try this kind of exercice.
It is just possible to define a solid base and then incorporate an extension mechanism. This mechanism should be both powerful and well defined to avoid specificities proliferation that could break the ISA compatibility. For instance extensions could be supported thru something similar to UML profile or some kind of Attribute/Annotation.
At last, it is necessary to extrapolate on some tendencies, to take options that would seem obvious tomorrow while they are not today. Like the generalisation of 64 bits CPU, the expansion of RAM and storage capacities, the freeze of clock speed around 2-3GHz, the pursuit of Moore law, etc.
Benefits list :
- state of the art and more.
- Wide range of targeted plaforms.
- Insensitive to fashion.
- Near of the best possible performances.
- Extendable in a compatible way.
Challenges
Establishing a separation between IT present practices and really effective ones could be difficult. It should be done in comparing conceptual principles and experience of what work well on the field. These choices have also to be challenged facing to other ISA whishes and in particular the wish N°5 Simple and freed of experts.
Objectivate this pick must be a goal, however it seems that a part of subjectivation remains unavoidable here.
The performance and the simplicity are somewhere contradictory wishes. To reach these targets, a compromise have also to be done in order to reach an “optimal” point that treat both at best. However, put in ISA basic mechanisms and design patterns should have most often a positive impact on both the simplicity and performance. So, this kind of approach should be followed as much as possible.
Remain realistic in the major changes on basic hardware and software in order to have at least one chance to be followed some day…
Stay native, simple et widely deployable.
Define a durable and interoperable extensibility mechanism.