Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
La philosophie d'Unix est un ensemble de normes et une approche du développement de logiciels basée sur l'expérience des principaux développeurs du système d'exploitation Unix. Douglas McIlroy, l'inventeur des tuyaux Unix (Unix pipes en anglais) et l’un des fondateurs de la tradition d'Unix, résume la philosophie comme suit : Ce qui est souvent résumé par : « Ne faire qu'une seule chose, et la faire bien. ». Rob Pike propose les règles suivantes sur Notes on Programming in C en tant que maximes sur la programmation, même si elles peuvent être aisément considérées comme étant des éléments d'une philosophie Unix : Règle 1 : Vous ne pouvez pas prévoir quelle partie d’un programme consommera le plus de temps. Les goulots d’étranglements se produisent en des parties surprenantes, alors n’essayez pas de deviner à l’avance où, et n’essayez pas d’optimiser le temps d’exécution avant d’avoir prouvé que le goulot d’étranglement se trouve là. Règle 2 : Mesurez. N’optimisez pas la vitesse avant d'avoir mesuré, et quand bien même, abstenez-vous de le faire tant qu’une partie du code prédomine sur le reste. Règle 3 : Les algorithmes élaborés sont lents si est petit, et est petit la plupart du temps. Les algorithmes élaborés comportent de grandes constantes. À moins d'être certains que sera grand la plupart du temps, n'essayez pas de faire élaboré. (Même si devient réellement grand, utilisez d'abord la règle 2.) Par exemple, les arbres binaires sont toujours plus rapides que les arbres splay pour les problèmes courants. Règle 4 : Les algorithmes élaborés comportent plus d'erreurs que ceux qui sont plus simples, et ils sont plus difficiles à appliquer. Utilisez des algorithmes simples ainsi que des structures de données simples. Règle 5 : Les données prévalent sur le code. Si vous avez conçu la structure des données appropriée et bien organisé le tout, les algorithmes viendront d'eux-mêmes. La structure des données est le cœur de la programmation, et non pas les algorithmes. Règle 6 : Il n'y a pas de règle 6.
Sanidhya Kashyap, Ankit Bhardwaj
Alessandro Barchiesi, Simone Campana
Jean-Yves Le Boudec, Slavisa Sarafijanovic, Raphaël Naefen, Luis Hernández