Le langage Rust en version 1.0 alpha, on arrête de tout casser !

Posté par  . Édité par olivierweb, reno, bubar🦥, BAud, patrick_g, palm123, Nÿco, Bruno Michel et Nicolas Boulay. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
44
24
jan.
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é, le contrôle de la mémoire et la parallélisation.

Comme le rappelle la rétrospective 2014, Rust est un sujet qui a été beaucoup traité l’année précédente. N’oublions pas non plus l’expérimentation avec Rust et ibus qui a fait l’objet d’une dépêche en octobre dernier.

Avec un peu de retard par rapport au communiqué lors de la sortie de la version 0.12, mais comme annoncé le 12 décembre, c'est près de 3 ans après la version 0.1 que l'équipe de Rust publie la version alpha de la version 1.0 du langage ce 9 janvier.

Journal Fins de tabulation élastiques: la bonne manière d'indenter et d'aligner le code

Posté par  . Licence CC By‑SA.
43
29
juil.
2018

Il y a des débats sans fin sur l'usage de tabulations ou d'espaces pour indenter et aligner son code. Chaque approche a ses avantages et des inconvénients, ses fidèles et ses ennemis.

(Indenter, c'est mettre de l'espace au début des lignes pour montrer visuellement les relations d'emboîtement logique des différentes lignes de code. Aligner, c'est mettre de l'espace avant un morceau de texte, pas forcément en début de ligne, pour créer un lien visuel entre plusieurs morceaux sur des lignes (…)

Sortie du livre « Parallel and Concurrent Programming in Haskell »

Posté par  . Édité par tuiu pol, NeoX et patrick_g. Modéré par tuiu pol. Licence CC By‑SA.
Étiquettes :
42
25
juil.
2013
Doc

Le livre Parallel and Concurrent Programming in Haskell de Simon Marlow est enfin disponible !

Pour ceux qui ne le connaîtraient pas encore, le langage Haskell est un langage de programmation fonctionnel, fortement typé, paresseux et concis. Haskell est issu de l’initiative d’une communauté de chercheurs en langages fonctionnels qui ont décidé, à la fin des années 80, de mettre en commun leurs compétences en utilisant tous un seul langage, qui devrait rester libre. Depuis, le langage est en constante évolution, la dernière version stable est définie dans le rapport Haskell 2010, mais de multiples extensions existent dans le compilateur GHC, dont les plus courantes viendront s’ajouter à la prochaine version du langage.

Pour avoir une idée de sa syntaxe très particulière, voilà l’une des innombrables façons de définir la factorielle :

fac 0 = 1
fac n = n * fac (n-1)

En espérant que cela vous laisse sur votre faim, vous pourrez en apprendre plus dans les livres classiques Learn You a Haskell for Great Good qui est aussi librement accessible en version HTML, y compris en français, et le plus vieux, mais plus développé et appliqué, Real World Haskell, lui aussi accessible en ligne.

Le code source de Colobot rendu public

Posté par  . Édité par Nÿco, tuiu pol et Benoît Sibaud. Modéré par claudex. Licence CC By‑SA.
42
7
juin
2012
Jeu

Vous vous souvenez de Colobot ? Ce jeu est un OVNI sorti en novembre 2001 (eh oui) uniquement sur plateforme Windows. La trame de fond (un scénario de colonisation spatiale) n'est qu'un prétexte. Ce jeu propose de se familiariser avec la programmation de divers robots, pour déléguer des tâches cruciales à votre survie lorsque vous arrivez sur une nouvelle planète.

Le sujet avait été brièvement abordé sur LinuxFR il y a quelques années. L'important est qu'apparemment le code source de ce programme a été rendu public par l'éditeur sous licence GNU GPL à la demande de fans de Colobot en Pologne (Polski Portal Colobot).

Le but est de rendre le jeu portable dans un premier temps (en intégrant SDL et OpenGL) et de l'améliorer par la suite. Avis aux amateurs qui veulent participer à ce projet. Il y a un forum en anglais sur le site du Portail Polonais Colobot !

Publication de la nouvelle norme Ada 2012

42
17
déc.
2012
Ada

Après plusieurs années passées à parlementer, la nouvelle norme Ada 2012 vient enfin d'être publiée par l'ISO sous le numéro ISO/IEC 8652:2012. Il s'agit donc de la quatrième révision du langage ajoutant ainsi différentes fonctionnalités par rapport à la version 2005.

N. D. M. : GNAT est le compilateur Ada du projet GNU, faisant partie de GNU Compiler Collection (GCC). Toujours en logiciel libre, on peut citer MaRTE OS un système d'exploitation libre temps-réel en Ada.

OCaml 4.00.0 est sorti

Posté par  (site web personnel) . Édité par Lucas Bonnet, Xavier Teyssier, rootix et Bruno Michel. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
42
11
août
2012
Programmation fonctionnelle

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.

Journal Résolution naïve d'un jeu de société

Posté par  . Licence CC By‑SA.
41
20
juil.
2015

Bonjour nal,
Aujourd'hui je vais te parler de résolution naïve d'un problème combinatoire, en explorant un arbre. Le problème vient d'un jeu de société, et la résolution se fera en Haskell, illustrant des notions intéressantes : Anamorphisme et Deforestation_(computer_science).

Explication du jeu

Le jeu du Ricochet Robots est un jeu de société constitué d'une grille de jeu, comportant des cases, avec des murs certains côtés, et certaines cases ayant un symbole d'une certaine couleur.

Quatre Robots (chacun d'une (…)

Les nouvelles fonctionnalités de PHP 8

41
28
nov.
2020
PHP

La version 8 de PHP est sortie le 26 novembre 2020, nous allons donc voir ensemble les nouvelles fonctionnalités qui ont été intégrées dans cette version.

Pour ne pas faire trop long, on se limitera aux choses nouvelles par rapport à PHP 7.4, et on regardera les nouvelles fonctionnalités principales, pour une liste exhaustive consultez le journal des modifications officiel.

Sortie de la version 0.1 de Rust

Posté par  (site web personnel) . Édité par claudex et Lucas Bonnet. Modéré par baud123. Licence CC By‑SA.
Étiquettes :
36
22
jan.
2012
Rust

Mozilla a annoncé le 20 janvier la sortie de la version 0.1 du compilateur pour Rust, sous une licence de type MIT. Rust est un langage de programmation système fortement typé. L'accent est mis sur la sûreté des accès mémoire et la concurrence. Il fonctionne actuellement sur les plateformes GNU/Linux, OSX et Windows.

Voici un exemple d'Hello World :

use std;
import std::io;

fn main() {
    for i in [1, 2, 3] {
        io::println(#fmt("hello %d\n", i));
    }
}

Rust est un langage proche de Go, il partage d'ailleurs une inspiration commune venant de Newsqueak, Alef et Limbo. Toutefois, les développeurs de Rust ont commencé leur travail avant l'annonce de Go et ne sont pas satisfaits par la sémantique adoptée par Go (état partagé mutable, Ramasse-miettes global, pointeurs NULL, absence de destructeurs).

Plus d'informations en seconde partie.

MicroAlg: langage et environnements pour l’algorithmique

Posté par  (site web personnel) . Édité par Benoît Sibaud, BAud, Xavier Teyssier, NeoX et tuiu pol. Modéré par Benoît Sibaud. Licence CC By‑SA.
36
23
oct.
2014
Éducation

Professeur de mathématiques et d’informatique, n’étant pas pleinement satisfait par les outils pédagogiques du moment, j’ai décidé de créer MicroAlg. Une des forces de MicroAlg est qu’il est utilisable dans un navigateur (voir la page d’accueil du site officiel ou la galerie).

MicroAlg est un langage de programmation en « français » dédié à l’algorithmique et à son enseignement. Jeune (commencé fin mars 2014) et simple (des parenthèses pour seule syntaxe), il permet l’apprentissage des concepts les plus importants de l’algorithmique et de la programmation impérative.

La licence retenue est la GPL2. Des bibliothèques sont sous MIT, LGPLv3, BSD et Apache2. Le site est sous CC By Sa 3.0.

Exemple :

(Afficher "Quel âge as-tu ?")
(Si (< (Nombre (Demander)) 18)
 Alors (Afficher "Tu es mineur.")
 Sinon (Afficher "Tu prétends être majeur.")
)

Avis aux testeurs et aux contributeurs !

Journal C'est décidé, j'apprends Common Lisp!

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
36
6
oct.
2017

Il y a trois semaines j'ai décidé d'apprendre Common Lisp, motivé principalement par la curiosité et attiré par l'approche assez différente de la programmation qu'a Common Lisp par rapport à des langages d'autres familles. Je vous raconte ma vie, des fois que vous ayiez aussi envie d'apprendre ce langage et vouliez gagner du temps avec les premier pas.

Mon profil. Je suis mathématicien de formation (cursus math/info, calcul scientifique puis géométrie algébrique) et je travaille depuis 6 ans avec (…)

Journal Retour vers le futur !

Posté par  (site web personnel) . Licence CC By‑SA.
35
24
avr.
2015

L'autre jour, je découvrais, via la dépêche sur neovim, un format « comme JSON mais rapide et petit » : MessagePack.
 
Sérialiser des données est le fait de coder des données depuis un format applicatif interne à un format utilisé pour les communiquer ou les stocker. De fait, on pourrait préférer sérialiser les données dans un format générique afin de les partager avec un maximum d'applications.
Une méthode qui marche bien pour sérialiser, c'est des séquences TLV, soit Type-Length-Value (…)

Sortie de Rust en version 0.3

35
23
juil.
2012
Rust

Rust est un langage développé par la fondation Mozilla qui implémente les paradigmes procédural, orienté objet, concurrent et fonctionnel. C'est un langage compilé plutôt orienté bas-niveau et qui concurrence le C ou le C++. Il est multiplates-formes et tourne sous Linux, Mac OS X et Windows. Pour rappel, Rust est un langage de programmation système fortement typé. L'accent est mis sur la sûreté des accès mémoire et la concurrence.

Vu les orientations de la fondation Mozilla, le but est de pouvoir développer un navigateur Web avec ce langage et les travaux ont déjà commencé, ce navigateur alternatif s'appelle Servo.

logo

Rust 0.12 : non, pas le jeu vidéo, le langage !

35
3
nov.
2014
Rust

Le langage de programmation Rust continue son bonhomme de chemin et se prépare à une version bêta 1.0 avant la fin de l'année.

En attendant, Rust 0.12 est sorti le 9 octobre 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 expérimental de rendu de pages web écrit en Rust : Servo.

Rust

Rust est open source au sens de l'OSI et libre. 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.

Pour une meilleure compréhension des détails techniques de cette dépêche et des évolutions de Rust, il est conseillé de se référer à la dépêche sur Rust 0.8 (ainsi qu’aux suivantes que vous trouverez via les tags rust et langage_rust).

Journal Python en Action, PDF Libre

Posté par  (site web personnel) . Licence CC By‑SA.
34
19
sept.
2011

dlfpiennes, dlfpiens, trolls.

Je viens vers vous, en écrivant ce journal, pour présenter mon PDF Libre.
Pour les plus pressé d'entre vous :

Je tiens un blog depuis quelques temps maintenant, où se côtoie deux de mes passions, programmation et monde Libre. J'ai eu l'occasion de m'intéresser plus récemment au langage Python, en y écrivant une vingtaine de billets. J'ai voulu prendre le temps de les rassembler sous un format PDF, d'un (…)