Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Août 2012 -
La nouvelle version 4.00.0 du langage OCaml est disponible en ligne depuis le 26 juillet 2012. Aussi, la réunion des développeurs OCaml (OUD'2012) aura lieu cette années à Copenhague le 14 septembre. Venez nombreux !
Parmi les dernières nouveautés disponibles dans cette version 4.00.0 :
- l'introduction des types de données algébriques généralisés (Generalized Algebraic Data Types - GADTs), qui permettent de détecter encore plus de bugs dès la compilation ;
- le générateur de code pour ARM a été complètement réécrit ;
- les types des modules de première classe sont maintenant inférés quand cela est possible, et les modules peuvent eux-mêmes être extraits par filtrage ;
- le compilateur est disponible sous forme de bibliothèque, et une nouvelle option -bin-annot permet de sauver l'arbre de syntaxe typé, ce qui devrait permettre l'apparition de nouveaux outils de développement plus évolués (refactoring, etc.) ;
- optimisation des fonctions partielles ;
- détection de code mort ou inutile (variables, open, champs, constructeurs, labels, etc.) ;
- émission de directives CFI pour améliorer le debuggage sous GDB.
Pour ceux qui ne connaissent pas, OCaml est un langage à mi-chemin entre C et Python, avec des performances proches de C avec la concision de Python. Mais contrairement à ces deux langages, OCaml appartient à la famille des langages à typage très fort, ce qui permet de détecter la plupart des bugs à la compilation, raccourcissant encore plus le temps de développement ! Rien d'étonnant à ce qu'OCaml ait gagné à plusieurs reprises la ICFP Programming Contest, compétition très sélective de programmation sur trois jours organisée tous les ans.
OCaml permet aussi un mélange des styles impératifs, fonctionnels et objets. Par exemple, une fonction transformant un fichier en une liste de chaînes peut s'écrire :
(* val lines_of_file : string -> string list *)
let lines_of_file filename =
let ic = open_in filename in
let lines = ref [] in
try
while true do
lines := (input_line ic) :: !lines
done;
assert false
with End_of_file ->
close_in ic;
List.rev !lines
On y voit à la fois l'utilisation des exceptions (try…with), une boucle (while…do…done), mais la même fonction aurait pu être écrite sous forme complètement récursive par un partisan de la programmation fonctionnelle !
Pour la prochaine version majeure, l'apparition des namespaces, de foncteurs multi-modules et la possibilité de profiler en utilisant le nouvel outil 'perf' sous Linux, sont sur les bancs, et on entend même parler de support des multicœurs dans les couloirs…
Lire les commentaires