Programming efficient and reliable code can be considered a non-trivial task, as it requires deep understanding of the problem to be solved along with good programming skills. However, software frameworks and programming paradigms can provide a dependable infrastructure upon which better programs can be written and deployed. This allows engineers to focus mainly on their task, while relying on the underlying run-time environment for taking care of low-level programming issues, such as memory allocation and disposal, typing consistency and interface compliance. In this paper, we argue that strong-typed programming languages and paradigms offer a valid support for the production of reliable programs. Aware of the challenges of formal measurement metrics for code quality, we present the benefits of strong-typing by considering a practical application: the design and implementation of RoboX, a tour-guide robot for the Swiss National Exhibition Expo.02. The example is extremely well suited for such a discussion, since complex mechatronic applications can be considered critical systems - i.e., systems whose failure may endanger missions, lives and society - thus their reliability has to be made a prime concern.
The Desktop metaphor has repeatedly been declared antiquated in various ways. It nevertheless continues existing. Despite the widely pronounced critique, it is still not clear what functional requirements have to be met by a new none-desktop interface. In this context, we define and explain the functional requirements (paradigms) we think fundamental for upcoming generations of non-desktop user interfaces. In close collaboration with users, we have also developed a graphical user interface (GUI) that illustrates these new paradigms and which is at the same time a concrete proposition for a new metaphor.
User interaction with computers is centred on the file system and most user information is organised, retrieved, managed and shared via files. While the last two decades have seen major changes in tools to visualise and navigate file systems, the fundamental concepts in terms of structure and purpose have remained unchanged:Basically , file systems are still single-user, single-location and single-structure.
A software system can be called a safe-system with respect to memory, when it supports only strong-typing and it does not allow for the manual disposal of dynamic memory [2]. The first aspect guarantees that untyped, potentially dangerous operations are caught by the compiler or by run-time checks. The second issue is solved by the utilisation of an automatic memory reclamation scheme, i.e. a garbage collector. In this paper we argue that the careful choice of the programming language, along with an automatic memory reclamation scheme can optimise memory usage, while ensuring that many of the logical errors related to memory can be avoided.