Questions de réflexion

Questions de réflexion

1 .
Vous travaillez sur un projet en tant qu'ingénieur logiciel principal. Votre équipe est chargée de développer une application web et un capteur qui collectera et rapportera la température d'une pièce sur une semaine avec une seule charge de batterie. Votre équipe maîtrise bien JavaScript et C. Quel langage choisiriez-vous pour écrire l'interface graphique de l'application web et le code pour faire fonctionner le capteur ? Expliquez le choix du langage en établissant un lien avec le niveau de chaque langage.
2 .
TechWorks a décidé d'implémenter son logiciel de contrôle de prothèse avec un CPU à faible spécification (par exemple, un jeu d'instructions réduit) et le langage de programmation C. Alternativement, ils auraient pu utiliser le langage de haut niveau Java et un CPU plus puissant qui consomme plus d'énergie. Comment cette décision de conception impacte-t-elle l'expérience de l'utilisateur ?
3 .
L'index TIOBE est un classement de la popularité des langages de programmation. Comment se compare la popularité de C, Java et Python ? Pourquoi, selon vous ?
4 .
TechWorks est une petite startup en croissance et compte quatre programmeurs stagiaires travaillant sur son produit prothétique. Supposons que vous soyez leur responsable. Jusqu'à présent, ils se sont débrouillés sans utiliser de système de gestion de versions. L'une des programmeuses stagiaires, Alice, suggère qu'ils devraient installer et utiliser Git comme le font les autres programmeurs de l'entreprise. Elle estime qu'elle devrait passer une journée à configurer le serveur, et que les quatre programmeurs stagiaires devraient passer une journée à apprendre à utiliser Git. Est-ce une utilisation justifiée du temps ? Pourquoi ou pourquoi pas ?
5 .
Le CPU prothétique de TechWorks a deux cœurs, et le logiciel de contrôle est écrit en C. Actuellement, le code n'utilise aucune programmation parallèle. L'un des programmeurs de l'équipe, Bob, suggère que le logiciel devrait utiliser des fils d'exécution afin que la fonction qui déplace la prothèse et la fonction qui applique les mises à jour logicielles puissent s'exécuter simultanément. Quels sont les avantages et les inconvénients de cette approche ?
6 .
Lorsque la Mozilla Foundation a créé Rust, C était déjà un langage de niveau intermédiaire établi. Pourquoi valait-il la peine pour eux de créer un langage entièrement nouveau ? Vous pouvez consulter des sources en ligne ; si vous le faites, citez-les.