B2 · Episode 3 · 5:11

What Is Software? Five Key Dimensions

Computer scientist Jean-Marc Jézéquel explains what software is by breaking it down into five essential dimensions: algorithm, information, language, machine, and purpose—illustrating how each contributes to the nature and limitations of software.

Source:Université de Rennes / Wikimedia Commons · License:CC BY 3.0

Transcript

  1. Je m'appelle Jean- Marc Jézéquel,

    My name is Jean-Marc Jézéquel,

  2. je suis professeur à l'Université de Rennes 1 et je dirige actuellement l'IRISA qui

    a professor at Université de Rennes 1, and currently head of IRISA—a

  3. est un grand laboratoire d'informatique

    major computer science laboratory in Brittany—

  4. en Bretagne qui rassemble environ 750 personnes.

    which brings together around 750 people.

  5. Je suis tombé dans l'informatique quasiment depuis tout petit,

    I fell into computing almost from childhood,

  6. ou plus exactement quand j'étais adolescent, vers la fin des années 70,

    or more precisely, as a teenager, toward the end of the 1970s,

  7. où on a eu la chance de voir apparaître les premiers ordinateurs personnels

    when we were lucky enough to see the first personal computers appear—at friends’ homes or in our high school’s computer club.

  8. chez des copains ou au club informatique du lycée.

    That’s how they entered our lives.

  9. Et rapidement, j'ai acquis moi- même un petit ordinateur qui était un

    Soon, I myself acquired a small computer—

  10. Zénith 80 à l'époque.

    a Zénith 80, back then.

  11. Et pour moi, ça a été absolument révélateur, ça a été vraiment un déclencheur,

    For me, it was absolutely revelatory—a true trigger—

  12. parce que j'avais envie de créer des choses.

    because I’d always wanted to create things.

  13. Et il se trouve que je suis pas manuel, j'ai quasiment deux mains gauches,

    Yet I’m not manual—practically ambidextrous-left-handed—

  14. je suis pas non plus très littéraire, et donc j'avais une certaine frustration.

    nor very literary—so I felt a certain frustration.

  15. Et là, tout d'un coup, j'avais un outil qui me permettait de créer des choses,

    Then, all of a sudden, I had a tool that let me create things—

  16. alors des choses simples au début, des logiciels

    simple programs at first—

  17. de jeu, des petites choses comme ça,

    like games or little applications—

  18. mais qui permettaient aux gens qui les utilisaient de dire: " Wow,

    yet users would try them and say, “Wow—someone actually made this!”

  19. il y a quelque chose qui a été créé." Donc dès le début,

    So right from the start,

  20. j'ai appris à programmer par moi- même.

    I taught myself programming.

  21. Puis il n'y avait pas internet à cette époque- là,

    There was no internet back then,

  22. donc il fallait regarder dans les bouquins, avec les copains,

    so we had to look up information in books—with friends—

  23. dans les magazines, comment...

    or in magazines—to learn…

  24. Alors au début, on commençait par recopier des programmes, aller modifier.

    At first, we copied programs by hand, then tried modifying them—

  25. à voir ce qu'on pouvait faire avec.

    to see what we could do with them.

  26. Et rapidement, je me suis trouvé dans la situation où je devais écrire des

    Soon, I found myself having to write programs,

  27. programmes, pas seulement pour jouer, mais aussi pour faire des choses sérieuses,

    not just for playing games, but also for doing serious work,

  28. y compris des programmes qui écrivaient des programmes.

    including programs that themselves wrote other programs.

  29. J'ai commencé sur la partie logiciel machine en faisant en sorte que les machines

    I started at the software–hardware interface,

  30. complexes de l'époque, au début des années 90,

    making the complex machines of the early 1990s,

  31. qui étaient les superordinateurs massivement parallèles,

    which were massively parallel supercomputers at the time,

  32. fournissent des abstractions et des langages de programmation plus aisés pour les

    provide easier abstractions and programming languages for developers,

  33. programmer de manière plus simple.

    so programming became simpler.

  34. Et puis de l'autre côté, plus vers les humains,

    On the other hand, moving toward human needs,

  35. à partir de logiciels et formés de. Beaucoup de parties qui sont indépendantes.

    software consists of many independent components.

  36. L'idée, c'était de bâtir sur la notion de contrat pour capturer les droits et les

    The idea was to build on the notion of ‘contract’ to capture rights and,

  37. obligations, si on veut, des

    if you like, obligations,

  38. éléments de logiciels mutuellement entre eux,

    between mutually interacting software components—and even between them and humans.

  39. et y compris avec les humains. Clairement, l'informatique serait pendant,

    Clearly, computing should serve everyone;

  40. tout le monde n'a pas besoin d'être un programmeur, et donc ce qu'on fait,

    not everyone needs to be a programmer,

  41. c'est qu'on fait des logiciels qui aident les gens à programmer les ordinateurs.

    so what we do is create software that helps people program computers.

  42. Donc c'est le contexte qu'on connaît dans l'industrie sous le nom de lignes de

    This is the context known in industry as ‘generative programming product lines’,

  43. produits de programmation générative,

    a concept aimed at ultimately democratizing the creation of languages that enable,

  44. et qui consiste à démocratiser finalement la création de langage qui permet à des

    people with less technical training or less passion for computing,

  45. gens moins armés, moins passionnés d'informatique,

    or, put another way, people whose profession lies outside using computers.

  46. ou disons qui ont un métier en dehors d'utiliser ces ordinateurs.

    So it’s about empowering non-programmers.

  47. Alors qu'est- ce que c'est qu'un logiciel?

    So, what exactly is software?

  48. C'est effectivement un mot que tout le monde emploie.

    It’s a word everyone uses.

  49. À mon sens, il recouvre cinq aspects différents: un aspect algorithmique,

    In my view, it covers five distinct aspects: an algorithmic aspect,

  50. un aspect information, un aspect langage,

    an information aspect, a language aspect,

  51. un aspect machine et un aspect but utilisation de ce logiciel.

    a machine aspect, and a purpose—or usage—aspect.

  52. Je vais développer un petit peu ça.

    I’ll elaborate on this a bit.

  53. Donc un algorithme, les gens voient à peu près ce que c'est,

    An algorithm—people generally have a rough idea of what it is—

  54. c'est essentiellement une recette de cuisine ou bien quelque chose qui permet,

    is essentially a cooking recipe, or a method that

  55. compte tenu d'un problème, d'arriver à une solution.

    leads to a solution for a given problem.

  56. Donc c'est décrit de manière formelle ou informelle.

    It can be described formally or informally.

  57. Ensuite, on a la notion d'information.

    Next comes the concept of ‘information.’

  58. La notion d'information, ce sont les données qui sont manipulées par les ordinateurs

    Information refers to the data processed by computers,

  59. et donc qui doivent être décrites,

    so these data must be described,

  60. la structure de ces données doit être décrite à un moment donné.

    and their structure must be specified at some point.

  61. Pour faire ça, on a besoin de langages.

    To do this, we need languages.

  62. Donc les langages, ce sont les langages de programmation: Java,

    These languages are programming languages—such as Java,

  63. C++, JavaScript, PHP,

    C++, JavaScript, PHP,

  64. R, etc. , sont des exemples de langages qui permettent d'exprimer des algorithmes et

    R, etc.—all examples of languages that express algorithms and data structures.

  65. des structures de données.

    (continuing)

  66. Mais tout ça n'existe pas de manière éthérée.

    Yet none of this exists in an abstract, ethereal way.

  67. Pour pouvoir s'exécuter, un logiciel a besoin d'une machine.

    For software to run, it needs a machine.

  68. Alors une machine, c'est un terme générique pour désigner des réalités extrêmement

    ‘Machine’ is a generic term referring to vastly different real-world devices:

  69. différentes. Ça va de très petites choses comme par exemple un Raspberry Pi,

    from very small ones, like a Raspberry Pi,

  70. cette chose- là, qui est un processeur avec finalement un mini ordinateur qui tient

    a tiny computer with a processor,

  71. sur une petite carte.

    all fitted onto a small circuit board.

  72. Une machine, c'est aussi un téléphone portable.

    A ‘machine’ also includes smartphones.

  73. Ce qu'il faut voir, c'est que le téléphone portable, ce n'est pas juste lui,

    What’s important to understand is that a smartphone isn’t just the device itself;

  74. il est connecté par le réseau à tout un ensemble et toute une infrastructure,

    it connects via networks to large-scale systems and infrastructure,

  75. et quand vous lui demandez un service, par exemple vous demandez une

    and when you request a service—say, voice recognition—

  76. reconnaissance vocale, en général ça va

    the request usually travels far away,

  77. jusqu'aux ordinateurs de Google ou d'Apple qui sont localisés quelque part et qui

    to servers operated by Google or Apple, located somewhere,

  78. vous retournent la réponse.

    which then send the response back to you.

  79. Donc la machine, ce n'est pas juste lui qui est un terminal et une passerelle,

    So the machine isn’t just him—a terminal and a gateway—

  80. c'est tout un ensemble de choses bien compliqué qui sont ce qu'on appelle le cloud,

    but rather an entire complex set of components we call ‘the cloud’,

  81. mais c'est aussi des machines qui existent dans notre monde,

    and it also includes machines that physically exist in our world,

  82. des robots, des drones, des choses comme ça sont des machines,

    such as robots, drones, and similar devices—all of which are machines,

  83. et le réseau qui permet de communiquer est de ce point de vue- là fait partie de la

    and the network enabling communication is, from this perspective, part of the machine.

  84. machine. Donc ça c'est le quatrième aspect.

    That’s the fourth aspect.

  85. Et puis le dernier aspect, c'est quand on fait un logiciel,

    And the final aspect is that when we build software,

  86. c'est qu'on a un but, dans

    we always have a specific purpose in mind,

  87. l'idée on a des utilisateurs, c'est- à- dire on a des humains en général qui vont

    and users—generally human beings—who will,

  88. utiliser ce logiciel- là

    use this software,

  89. dans le cadre de leur métier, de leur activité, de leurs loisirs,

    in their jobs, daily activities, or leisure pursuits,

  90. pour une raison X ou Y, et ça fait le cinquième aspect de ce qu'est un logiciel.

    for one reason or another—making this the fifth aspect of what software is.

  91. Même sur un petit morceau de logiciel pas très gros,

    Even for a small piece of software—not very large,

  92. il y a des propriétés qui sont considérées comme indécidables,

    there are properties considered ‘undecidable’,

  93. c'est- à- dire dont on ne peut pas prouver qu'elles sont vraies ni qu'elles sont

    meaning we cannot prove them either true or false.

  94. fausses, et des choses très simples comme savoir si une variable a une certaine

    Very simple questions—like whether a variable holds a certain value,

  95. valeur ou si on va passer par une certaine instruction ou si on va faire une

    whether a certain instruction will be executed, or whether a division-by-zero will occur at some point,

  96. division par zéro à un moment donné ne sont dans le cas général tout simplement pas

    are simply unprovable in the general case.

  97. prouvables. D'accord, donc c'est une limitation intrinsèque de ce qu'est un

    Okay, so this is an intrinsic limitation of software itself.

  98. logiciel.

    (a limitation inherent to what software fundamentally is.)