Seminar of the “Data Science and Scientific Computing” cycle

WEDNESDAY, NOVEMBER 8, 2017, 16.00, classroom 3B, DMG, H2bis, 3rd floor.
Speaker: Henri Lesourd 
Title: What Software Is Made Of  ...


Abstract: In this talk, we tell you about a number of things about software that are worth considering, and which in our opinion, are not mentioned very often.


We first speak about software design, and about the importance of elegance in design: elegant designs are on the one hand easier to implement, and on the other hand, easier to understand by their users.
Next, we discuss a number of great software designs, and we give an overview of the software history. From there, we conclude that most of the key concepts which up to now, underpin the design of modern software, are in fact very old: to believe that in computing technology, "innovations" bring true revolutions every six months or even every two years, amounts to ignore the actual historical perspective.
We then observe that over the last 20 years, there has been a tremendous increase in the complexity of software, and we examine the consequences of this, especially:

* the best practices and the state of the art tend to become misunderstood (e.g. Bjarne Stroustrup, designer of the C++ programming language, complains that "For many, programming has become a strange combination of unprincipled hacking and invoking other people's libraries. The notions of maintenance and code quality are typically forgotten or poorly understood");

* in the software industry, there is a desire to be able to operate with minimally skilled and interchangeable developers ; also, a number of discriminatory and/or  anticompetitive practices are in existence today, which can strongly limit the freedom of software engineers, depending on the circumstances ;

Thus, we are led to conclude that too often today, the software industry does not provide a reliable career path that an individual can follow to develop herself as an experienced engineer.
How to overcome this state of affairs, this is what the last part of this talk will finally examine. In short, our experience in this respect is that the current situation also creates opportunities for those who want to create well designed, and well implemented software.