Revue des techniques de programmation en shell

Posté par  (site web personnel) . Édité par Benoît Sibaud, Nils Ratusznik, palm123, Nÿco, Yves Bourguignon et Pierre Jarillon. Modéré par Nils Ratusznik. Licence CC By‑SA.
114
22
sept.
2014
Ligne de commande

L'été est fini, c'est la rentrée ! Pour se remettre en forme, rien de tel qu'une revue des techniques de programmation en shell — ces techniques sont pour le shell de Bourne /bin/sh mais peuvent être utilisées avec les shells compatibles qui permettent parfois des solutions plus faciles.

Journal La recherche en langages de programmation au quotidien

Posté par  . Licence CC By‑SA.
81
6
fév.
2018

Dans le cadre de mon travail j'ai été amené à écrire un petit texte qui explique mon quotidien fait de "recherche (scientifique) en langages de programmation". Je me permets de le diffuser ici au cas où ça intéresse des gens.

Ma recherche

Je travaille à l'INRIA, un institut public français de recherche en informatique. Je fais de la programmation et de la recherche sur les langages de programmation.

Mon rôle est d’étudier ces langages, de mieux les comprendre (…)

Journal Introduction pratique aux grands modèles de langage / LLM

73
3
mar.
2024

Dans cet article je me propose de faire une introduction aux grands modèles de langage, et en particulier à leur utilisation en local (i.e., hors ligne). Si vous ne souhaitez pas vous inscrire sur des plateformes en ligne, que vous êtes soucieux de l'utilisation qui est faite de vos données, que vous ne souhaitez pas débourser le prix d'un abonnement, mais que toutefois ces technologies suscitent votre intérêt, alors cet article est peut-être pour vous. Je n'aborderai (…)

Journal ADM42 - L'aventure de mon clavier pour développeur jusqu'au crowfunding

Posté par  . Licence CC By‑SA.
72
17
fév.
2022

Bonjour Nal,

Il y a a peu près 2 ans, je me suis lancé dans une galère grande aventure: faire un clavier pour «développeurs» basé sur le firmware libre QMK et tout le hardware qui va avec bien sûr, sinon ce serait bien trop simple.

Ma passion pour les claviers mécaniques à commencée il y a quelques années (d'ailleurs on retrouve mes commentaires ici à ce sujet).

Au début c'était pour mon propre confort, j'hackais QMK sur du hardware existant (…)

Journal int *(*(*foo[])(int))(float*);

Posté par  . Licence CC By‑SA.
70
13
sept.
2014

Salut,

J'ai profité de mes vacances pour rédiger un petit article sur la lecture des déclarations complexes (dans le sens "obscures") en C. Ces "monstres" comme celui du titre, ne sont pas forcément fréquents, mais il peut-être utile de savoir les lire et de manière symétrique de pouvoir les construire.

Un petit rappel des déclarations est proposé autour de quelques éléments clés :

  • déclaration vs définition,
  • décomposition d'une déclaration : storage class, type qualifier, type specifier, declarator
  • les opérateurs (…)

Journal Retour d'expérience sur Go

Posté par  (site web personnel) . Licence CC By‑SA.
65
16
mai
2012

Sommaire

NdM : Ce journal a été promu en dépêche

Bonjour au journal et à la famille.

Je viens de (…)

Pourquoi les développeurs n'utilisent pas plus de machines à état ?

Posté par  (site web personnel) . Édité par baud123, rootix et NeoX. Modéré par rootix. Licence CC By‑SA.
Étiquettes :
63
1
fév.
2013
Technologie

Les langages de programmations, de quelques paradigmes qu'ils soient (bien qu'un peu moins pour le paradigme logique), sont basés sur le concept de liste d'instructions exécutées à la suite par la machine. La machine exécutant ce code est une machine à état, mais le programme n'est pas formellement pensé comme tel.

Les machines à état semblent pourtant un bon outil pour la programmation des logiciels que nous avons l'habitude de développer : facile à dessiner sur papier, permettant un découpage clair du fonctionnement de l'application.
Sans compter qu'une machine à état se patche plus facilement qu'un code classique où l'effet spaghetti peut vite impliquer des effets indésirables.
Les designers de Qt l'ont bien compris en permettant de définir des machines à état pour décrire le comportement du contrôleur.

C'est pourquoi certains se sont demandés si la programmation en machine à état ne devrait pas être plus pratiquée et aimée des programmeurs. C'est, par exemple, ce que se demande Willem van Bergen, carrément enthousiaste.
Celui-ci pense que c'est le stockage de l'historique qui est essentiel.

Plus circonspect, Alan Skorkin étudie la problématique de reprise de code, afin de comparer les approches, pour conclure que si les machines à états ne sont pas la panacée, elles sont très intéressantes si on conçoit le code avec.

Un très intéressant débat est né de cette polémique sur Hacker News.

Rust s’oxyde en version 0.10

Posté par  . Édité par olivierweb, BAud, sebcrozet, Fabien, Leo, Bruno Michel, Nÿco, jcr83, reno, stiffux, Ontologia et bubar🦥. Modéré par patrick_g. Licence CC By‑SA.
63
8
avr.
2014
Rust

Mozilla et la communauté Rust ont annoncé la version 0.10 de Rust le 3 avril. Rust est un langage de programmation développé par Mozilla. La version 0.1 a été annoncée par Mozilla le 20 janvier 2012. Pour découvrir le langage, on peut se référer au nouveau site web sur lequel on peut lire :

Rust est un langage de programmation système qui est extrêmement rapide, empêche presque tous les plantages et élimine les accès concurrent.

Logo de Rust

Rust se veut donc une alternative à C/C++, comme D et Go, et possède tout comme ces derniers un ramasse-miettes, mais qui est optionnel. Sa syntaxe est proche de celle du C/C++/Java tout en étant beaucoup plus expressif. Sa force est de mélanger les fonctionnalités de différents paradigmes, beaucoup venant du fonctionnel (immuabilité par défaut, modèle objet proche de celui d'Haskell, fermetures, etc). Il met l'accent sur la sûreté d'exécution, notamment grâce à son système élaboré de pointeurs intelligents et son système de types forts, sans sacrifier les performances.

Depuis la version 0.9, qui a fait l’objet d’une dépêche, les efforts ont notamment porté au cours des 1500 changements sur la simplification du langage. Le langage Rust n'est pas stabilisé, cela viendra avec la version 1.0.

Cette itération de développement a apporté le découpage de la bibliothèque libextra, introduit des extensions de syntaxe inter crate, amélioré la manipulation des pointeurs avec le trait Deref et la gestion des erreurs des entrées/sorties.
En dehors du compilateur, cette nouvelle version a vu l'introduction d'un nouveau processus de RFC ainsi que la construction quotidienne des installateurs binaires.

Des améliorations ont été données à l'infrastructure de tests et aux scripts de construction. Des installeurs sont désormais disponibles pour Linux, MacOS et Windows. Même si certains font tourner Rust sur ARM, ce n'est pas une architecture proposée dans la documentation.

Comme pour les précédentes versions, cette version 0.10 doit être considérée comme une version alpha, appropriée pour les adopteurs précoces et les amateurs de langages.

Journal Pourquoi la recherche en langages de programmation ?

Posté par  . Licence CC By‑SA.
62
17
oct.
2017

Je fais de la recherche en langages de programmation. Dans le journal ci-dessus, j'explique pourquoi et comment, en essayant d'être accessible pour des gens qui connaissent peu (ou mal) la programmation et/ou la recherche.

Pourquoi la recherche en langages de programmation ?

Les programmeurs et programmeuses ont inventé de nombreuses représentations symboliques des programmes qui sont exécutés par un ordinateur, représentations que l'on appelle langages de programmation. On peut les voir comme des langages utilisés pour parler avec l'ordinateur, un programme (…)

Journal Adopter un style de programmation fonctionnel

61
14
nov.
2012

John Carmack, c'est ce développeur de renom chez IdSoftware, qui a participé à la création de titres phares du jeu vidéo PC avec la série des Doom, des Wolfenstein et des Quake. Bien que n'étant pas des logiciels libres, leurs moteurs sont régulièrement libérés et LinuxFR se fait l'écho de ces libérations depuis sa création (ici, et par exemple). Bref tout ça pour dire que je sais bien qu'il ne fait pas du logiciel libre, (…)

Sortie de Gambas 3.12

Posté par  (site web personnel) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, claudex et palm123. Modéré par ZeroHeure. Licence CC By‑SA.
59
31
déc.
2018
Technologie

Gambas est un langage de programmation orienté objet, basé sur un interpréteur BASIC, et une plate‐forme de développement complète comportant, entre autres, un compilateur, un interpréteur, un ensemble de modules complémentaires (appelés composants) et un environnement de développement intégré. Le tout est distribué sous licence GNU GPL v2 ou supérieure.

Il neige

La précédente dépêche datant de septembre 2012, profitons de la sortie de la version 3.12 pour présenter comment le langage a évolué depuis six ans.

Nous invitons ceux qui ne connaîtraient pas Gambas à lire préalablement la présentation du logiciel sur le site Web, ainsi que la dépêche précédente.


Comme dans la dépêche précédente, il y a quelques coups de gueules, mais ils sont cette fois répartis dans le texte (et partiellement édulcorés en modération).

Le langage Go fête ses 4 ans

Posté par  . Édité par Florent Zara, claudex, Benoît Sibaud et Bruno Michel. Modéré par patrick_g. Licence CC By‑SA.
57
13
nov.
2013
Golang

Le langage Go, parfois nommé Golang et créé principalement par Robert Griesemer, Rob Pike et Ken Thompson (des grands noms, que dis-je, des légendes du monde UNIX), chez Google, vient de fêter ses 4 ans. Le langage semble commencer à trouver des applications dans des projets de grande envergure, au delà de projets internes à Google. Pour un langage relativement jeune, c'est encourageant.

logo Go

NdM : 2 composants de LinuxFr.org sont codés en Go, img et epub.

À la découverte du langage V

Posté par  . Édité par BAud, palm123, Ysabeau 🧶 🧦, Stéphane Bortzmeyer, Aldebaran et Jona. Modéré par Julien Jorge. Licence CC By‑SA.
Étiquettes :
54
5
sept.
2023
Programmation

V est un langage récent (première version libre sortie en 2019) développé initialement par Alex Medvednikov pour ses propres besoins sur le logiciel volt.

Dans cette dépêche, j'aimerais vous le faire découvrir, et, je l'espère, vous donner le goût d'en découvrir d'avantage.

le logo du langage V

Rust 1.0, entrée dans la période stable

54
16
mai
2015
Rust

Rust est un langage de programmation conçu pour répondre aux problématiques modernes des gros logiciels clients et serveurs utilisant Internet, en particulier la sécurité, la gestion de la mémoire et la parallélisation. Il concurrence donc directement les langages C et C++.

Logo officiel de Rust

Vendredi 15 mai 2015, trois ans et demi après la sortie de la version 0.1, Rust sort en version 1.0 ! Il y a eu beaucoup de changements depuis : le langage a très fortement évolué, une communauté de développeurs/euses s’est formée, de nombreuses bibliothèques et un guide d’apprentissage du langage ont été créés, et la documentation a été améliorée.

L’arrivée d’une version stable est un évènement bienvenu puisqu’elle permet de pouvoir utiliser le langage plus sereinement. Le langage s’ouvre donc un peu à un public plus large que l’enthousiaste et aventureuse équipe de développement de Servo ou autres pionniers/ères dans l’utilisation de Rust. Que ce soit dans des contextes personnels ou professionnels, les changements réguliers dans le langage repoussaient de nombreux/ses utilisateurs/trices potentiel·le·s.

Encore une couche de rouille avec Rust 0.11

Posté par  . Édité par olivierweb, Leo, ariasuni, Nils Ratusznik, Nÿco, BAud, Sylvestre Ledru, claudex, Fabien, palm123, Bruno Michel, Dareg et thargos. Modéré par bubar🦥. Licence CC By‑SA.
53
14
juil.
2014
Rust

Rust 0.11 est sorti le 2 juillet 2014 ! Pour rappel, Rust est un langage de programmation système qui vise la performance et la sûreté. Il est développé par Mozilla, en parallèle d'un nouveau moteur de rendu expérimental écrit en Rust, Servo.

Rust est open source. Son développement est fait de façon ouverte sur GitHub et le code source est publié sous double licence Apache 2.0 et licence MIT.

Rust