Go : Un nouveau langage chez Google

Posté par  (site web personnel, Mastodon) . Modéré par Florent Zara.
29
12
nov.
2009
Golang
Le langage Go (sous une licence de type BSD) est issu d'une discussion entre Ken Thompson (un des auteurs d'Unix et d'UTF8) et Rob Pike (un des auteurs de Plan9 et d'UTF8). Nous avons donc affaire a de vrais barbus, des légendes de la communauté des codeurs ce qui explique la curiosité qui entoure ce projet de nouveau langage. Comme Rob Pike travaille chez Google c'est donc avec le puissant soutien de son employeur que le langage Go a été développé avec les contraintes suivantes :
  • Go doit pouvoir être utilisé pour de la programmation système donc c'est un langage compilé et pas interprété ;
  • La compilation doit être très rapide pour faciliter le développement des projets (l'analyse des dépendances permet une compilation en quelques secondes) ;
  • La syntaxe doit être assez proche du C tout en corrigeant ses défauts les plus criants ;
  • La gestion de la mémoire doit être automatique (garbage collector) ;
  • Le typage doit être statique mais il n'y a pas de hiérarchie des types pour simplifier le langage ;
  • La programmation concurrente (pour exploiter les multicores) doit être intégrée au cœur du langage ; cela se fait par l'intermédiaire des « goroutines » qui sont plus légères que les threads ;
Go est le résultat de la très longue expérience de Thompson et Pike et les auteurs semblent assez fiers de leur rejeton :
« Go has fast builds, clean syntax, garbage collection, methods for any type, and run-time reflection. It feels like a dynamic language but has the speed and safety of a static language. It's a joy to use. »

La FAQ du projet évoque les questions générales et une FAQ spécifique est dédiée au langage lui-même. Un tutoriel est aussi disponible avec, pour mettre en évidence le support d'UTF8, un assez inhabituel « Hello, world; or Καλημέρα κόσμε; or こんにちは 世界 ».

Pour l'instant les remarques sur le web se concentrent sur des points de détail : la syntaxe qui ne plaît pas à tous le monde, l'absence de telle ou telle fonction (comme les exceptions), etc.
Il faut attendre un peu pour que la poussière retombe et pour avoir des analyses qui se concentrent sur les apports spécifiques du langage : les goroutines, la segmentation de la pile d'exécution, la compilation rapide, etc. Il sera également intéressant de lire des comparaisons détaillées avec les autres langages qui veulent s'attaquer au C en apportant des innovations techniques (comme par exemple le langage D).

NdM : Merci à patrick_g pour son journal à l'origine de la dépêche.

GNOME Census : qui crée GNOME ?

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
28
4
août
2010
Gnome
La société Neary Consulting, spécialisée dans l'étude des relations au sein des communautés des logiciels libres, a publié le rapport GNOME Census détaillant qui fait quoi pour le développement de cet environnement de bureau. Autrement dit, ce rapport analyse comment les développeurs participent au projet et comment ce dernier fonctionne en général.

Les personnes de Neary Consulting ont cherché à répondre aux questions suivantes : « Quelle est la taille de la communauté GNOME ? », « Combien de personnes y participant sont salariées ? », « Qui crée toutes ces applications et pourquoi ? ». Le rapport est disponible en libre consultation sur le site web de l'agence et est sous licence CC-by-SA 3.0.

On peut y lire un bref historique du projet GNOME clarifiant par ailleurs comment les spécifications sont définies. Ainsi, la GNOME Foundation a été créée en 2001 pour s'occuper de l'infrastructure et de la gestion administrative du projet, donc de tout ce qui concerne les interactions avec divers partenaires et la recherche de financements. La GNOME Foundation est élue par les membres du projet et toute personne active peut faire partie de son Conseil d'Administration ; depuis 2008, Stormy Peters en est la présidente. Cela étant, ce sont les développeurs et mainteneurs qui définissent le cahier des charges technique. Enfin, au sein de cette fondation, il existe un organe appelé advisory board (une commission consultative, on dirait en français) où siègent des représentants d'organisations et entreprises en lien avec le projet ; parmi les participants actuels, on trouve des membres de la FSF, Debian, Canonical, etc.

xbindkeys : appel à mainteneur.

Posté par  (site web personnel) . Modéré par Mouns.
Étiquettes :
28
17
mai
2009
Serveurs d’affichage
Il y a bientôt huit ans, xbindkeys sortait en version 1.0.

Pour rappel, xbindkeys permet d'associer une action ou un script à une touche ou un clic de bouton de souris.
À l'époque, j'avais écrit ce petit bout de code parce que je cherchais un gestionnaire de fenêtres qui me convenait et plutôt que de refaire à chaque fois l'association des touches du clavier, xbindkeys me permettait de garder les mêmes associations de touches avec différents gestionnaires de fenêtres. Il permettait également de faire ces associations avec les gestionnaires qui ne le permettaient pas.

Il a d'abord été écrit entièrement en C puis le besoin s'est fait sentir de pouvoir le modifier sans toucher au code en C ni appeler des scripts externes et un contributeur (Marcello Mathias Herreshoff) a rajouté la possibilité de le configurer en Scheme.
Au fil du temps, je me suis rendu compte que je refaisais un gestionnaire de fenêtres en rajoutant tout un tas de petits programmes appelés depuis xbindkeys (comme movemouse, xstickwin...) et quitte à faire quelque chose, je me suis lancé dans l'écriture d'un gestionnaire de fenêtres qui me convenait écrit, de manière homogène, en Common Lisp (clfswm).

Depuis, je n'utilise plus xbindkeys mais certains semblent continuer à s'en servir (voir l'annonce d'Uzbl par exemple).
Je continue à corriger les éventuels bugs, mais si quelqu'un veux reprendre le flambeau et créer un site plus moderne avec un wiki par exemple, une mailing-liste et utiliser un gestionnaire de versions, n'hésitez pas a me contacter. Dans tous les cas je continue à suivre xbindkeys mais - je le crains - d'un oeil de plus en plus distant.

Voilà, si vous avez envie de donner une nouvelle jeunesse à xbindkeys, ce sera avec plaisir que je passerai le flambeau.

Tendances de la semaine pour les développeurs

Posté par  (site web personnel) . Édité par palm123 et Benoît Sibaud. Modéré par Pierre Jarillon. Licence CC By‑SA.
27
21
déc.
2013
Presse

Cet article est une petite liste d'outils et d'actualités pour le développement d'application.

N'hésitez pas à partager vos découvertes pour la prochaine version la semaine suivante. Cette première semaine est orienté web, mais tous les autres domaines sont les bienvenus.

nftables, successeur d'iptables

Posté par  . Modéré par Pascal Terjan.
Étiquettes :
27
29
mar.
2009
Sécurité
Patrick Mac Hardy, chef du projet Netfilter, travaille depuis l'été 2008 à une ré-écriture d'iptables sous un nouveau nom : nftables. Or, depuis le 18 mars dernier, nftables est officiellement disponible en version alpha. C'est le moment d'en refaire le tour.

NdM : Un grand merci à switcher pour son journal dont est tiré la dépêche.

Journal Google Summer of Code 2014

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
27
25
fév.
2014

La liste des organisations du Google Summer of Code 2014 vient d'être publiée.

Pour sa dixième année, 190 organisations/projets ont été acceptés (contre 177 l'an dernier). La liste est disponible:
https://www.google-melange.com/gsoc/org/list/public/google/gsoc2014
Comme pour les organisations/projets, le nombre d'étudiants acceptés devrait être aussi en augmentation cette année.

Comme d'habitude, des projets comme Debian, Mozilla ou LLVM (au hasard) ont été sélectionnés.

Le projet Unladen Swallow vise à accélérer Python d'un facteur 5

Posté par  . Modéré par patrick_g.
Étiquettes :
26
31
mar.
2009
Python
Des ingénieurs de Google ont lancé un projet, Unladen Swallow, qui vise à accélérer Python d'un facteur cinq au moins. L'idée est de créer un compilateur à la volée (JIT) basé sur LLVM pour remplacer la machine virtuelle de l'interpréteur Python.

Au passage, plusieurs améliorations sont envisagées, dont un nouveau ramasse-miettes et la possibilité de s'affranchir du Global Interpreter Lock (GIL). Le GIL est un verrou qui assure que les objets Python se comportent de manière thread-safe (ils ne le sont pas intrinsèquement), mais qui pénalise les programmes multithreadés.

EditableGrid disponible sous licence GPL

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
26
9
sept.
2010
Internet
EditableGrid est une bibliothèque JavaScript permettant de créer des tables éditables. À l'origine, nous avons développé ce composant pour l'utiliser dans un projet interne. EditableGrid suscitant un certain intérêt, nous en avons factorisé le code afin d'en faire un composant indépendant, réutilisable dans d'autres projets. Nous avons décidé de publier le code source sous licence GPL.

Nous pensons que cette bibliothèque a atteint un niveau de maturité suffisant pour être utilisée en production. Une démo est disponible sur la (courte) page du projet.

EditableGrid n'est pas basée sur jQuery. Cependant, l'utilisation de la bibliothèque de John Resig est vivement recommandée, par exemple pour les callbacks Ajax ou pour développer ses propres validateurs et éditeurs de cellule.

Fonctionnalités principales :

  • Chargement à partir d'un fichier XML ou rattachement à une table HTML existante ;

  • Simplicité d'utilisation et intégration facile dans des applications web existantes ;

  • Chaque colonne est typée (string, integer, double, boolean, url, email, date) ;

  • Les cellules peuvent être éditées avec un éditeur adapté au type de la colonne (ex: checkbox pour boolean) ;

  • Possibilité de déclarer une liste de valeurs possibles pour les cellules d'une colonne (statique ou en JavaScript) ;

  • Gestion de l'unité, de la précision et des valeurs NaN pour les colonnes numériques ;

  • Validateurs intégrés pour les colonnes de type integer, double, url, email et date ;

  • Possibilité de brancher vos propres renderers, éditeurs et validateurs de cellules ;

  • Tri des colonnes (adapté au type) en cliquant sur l'en-tête de colonne ;

  • Binding PHP : construisez le tableau en PHP et laissez-le générer le fichier XML ;

  • Filtrage du tableau ;

  • Ajout et suppression de lignes ;

  • Intégration de Open Flash Chart afin de dessiner des graphiques à partir des données du tableau (le graphique peut suivre en cas d'édition et de tri des données) ;

  • Callbacks pour tous les événements: chargement, édition, tri, etc.


Bien sûr, certaines fonctionnalités restent à implémenter, comme l'utilisation d'un datepicker pour le format date, la pagination côté client, le masquage de colonnes, etc. Nous tâcherons de réaliser tout cela prochainement.

Nous espérons que cette bibliothèque pourra être utile dans vos projets. Tous les commentaires et contributions sont naturellement les bienvenus !

AMD continue l'ouverture des spécifications de GPU

Posté par  . Modéré par Nÿco.
Étiquettes :
26
4
jan.
2009
Serveurs d’affichage
On peut dire que l'année 2008 aura été fertile en publication de la part d'AMD sur les spécifications des processeurs de leurs cartes graphiques ATI. Cette année se termine avec la publication de la version 8.12 de pilotes non libres de cartes qui permettent maintenant de profiter de la puissance de calcul parallèle des GPU (AMDStream) et du SDK, partiellement libre, associé (en version bêta pour l'instant).

AMD a tout de même participé activement à la publication des pilotes libres DRM (Direct Rendering Manager) qui sont disponibles dans le dépôt git de xf86-video-radeonhd avec le support initial de EXA et de Xv pour les processeurs graphiques R600/R700.

L'année 2008 a faillit finir en apothéose avec la publication de toute la documentation pour les processeurs graphiques de la famille R600 (pour carte HD2xxx/3xxx). En fait cette publication est reportée à ce début 2009 avec en plus tout ce qu'il faut pour les processeurs R700 (HD 4850/4870).

Il ne reste plus qu'à souhaiter une bonne année à tous ceux qui œuvrent pour que les solutions libres soient les plus performantes et les plus accessibles possible.

Enlightenment Foundation Libraries 1.0.0 Alpha

Posté par  . Modéré par baud123.
Étiquettes :
26
21
août
2010
Serveurs d’affichage
Les EFL (Enlightenment Foundation Libraries) sont un ensemble de bibliothèques dédiées au graphisme, très optimisées, et utilisées entre autres pour l'écriture du gestionnaire de fenêtre Enlightenment, du media player Enna, ainsi que d'autres applications : Enki (gestionnaire de photos), Eyelight (outil de présentation). En développement depuis plusieurs années, elles viennent de sortir en version 1.0.0 Alpha. L'API est donc considérée comme stable. La priorité est la correction des erreurs, avec comme but la sortie en version 1.0.0 finale.

Nouvelle base de données clés-valeurs : Kyoto Cabinet 1.0

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
25
30
mai
2010
Base de données
Mikio Hirabayashi est un ingénieur qui travaille pour un réseau social japonais, mixi.jp. Pour faire face à la montée en charge, il a écrit une base de données très rapide de type clés-valeurs : Tokyo Cabinet. C'est une bibliothèque écrite en C, avec des bindings Ruby, Perl, Java et Lua, et distribuée sous licence LGPL.

Tokyo Cabinet est très rapide, mais son auteur n'était pas satisfait des performances en concurrence sur des machines avec de nombreux cores. Il a donc écrit son successeur : Kyoto Cabinet. Kyoto Cabinet est écrit en C++, et publié sous licence GPL. Des bindings Ruby, Perl, Python (2.x et 3.x) et Java sont disponibles.

Kyoto Cabinet est rapide (l'ordre de grandeur est un million de requêtes par seconde), ACID et capable de gérer un haut niveau de concurrence. Ses bases de données peuvent enregistrer jusqu'à 8 exabytes et peuvent être de différents types en fonction des caractéristiques recherchées (persistence, verrouillage par enregistrement, par page ou global, ordre de tri, algorithme de stockage).

Tokyo Cabinet bénéficie d'un service réseau, Tokyo Tyrant, et d'un moteur de recherche full-text, Tokyo Distopia. Les équivalents pour Kyoto Cabinet n'existent pas encore, mais sont prévus et devraient sortir d'ici la fin de l'année.

Note : Pour ceux qui s'intéressent aux bases de données, le NoSQL Summer est l'occasion d'en apprendre plus. Le principe est simple : se réunir régulièrement pour discuter d'un papier scientifique autour des bases de données. Le lancement se fera le 21 juin à la Cantine pour Paris, mais vous pouvez n'assister qu'à une seule rencontre si vous le souhaitez. L'entrée est libre, la seule chose que l'on vous demande est d'avoir lu le papier sélectionné avant de venir. Si vous êtes dans une ville qui n'est pas encore couverte, rien ne vous empêche de trouver 2 ou 3 volontaires et de contacter les organisateurs.

C++ 0xB enfin finalisé ?

Posté par  . Modéré par Bruno Michel.
Étiquettes :
25
15
mar.
2010
Technologie
Herb Sutter annonce sur son blog que le comité ISO C++ a voté l'ébauche finale de la nouvelle norme du langage.

À partir de maintenant, seules les corrections mineures pourront être effectuées et Herb Sutter estime que la version finale sortira en 2011.
La norme ayant été élaborée en collaboration proche avec les implémenteurs, la plupart des compilateurs sur le marché ont intégré partiellement la nouvelle norme, certains ajouts à la bibliothèque standard bénéficient même d'une implémentation dans la célèbre collection de bibliothèques Boost dans un espace de nom distinct.

Sortie de Eclipse 3.6 - Helios

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
25
23
juin
2010
Technologie
Eclipse Helios arrive enfin après un an d'attente, ce 23 juin. Cette version numérotée 3.6 marque la consolidation des technologies historiquement prises en charge par Eclipse (le monde Java JEE), l'ouverture vers d'autres technologies et la confirmation en tant que projet libre d'environnement de développement intégré (IDE) le plus dynamique et le plus utilisé dans le monde.

Le travail effectué autour de cette version majeure a été important tant du point de vue de l'implémentation que du point de vue de la vie communautaire du projet, les contributeurs comme la fondation sont moteurs pour qu'Eclipse s'adapte aux nouveaux besoins et incitent à plus de contributions.

Sortie de Qt 4.5.2 et de Qt Creator

Posté par  . Modéré par tuiu pol.
Étiquettes :
25
26
juin
2009
Linux
Les développeurs de Qt ont annoncé la mise en ligne du code source de la version 4.5.2 de Qt.
Qt est une bibliothèque logicielle libre (sous licence LGPL), multi plate-forme.

Cette nouvelle version apporte son lot de corrections de bugs, quelques améliorations de performance mais aussi des corrections de sécurité. C’est également la première sortie de Qt à intégrer du code issu directement de la communauté : depuis le mois de mai 2009, Nokia (propriétaire de Qt Software) a ouvert les dépôts git de Qt au public (qt gitorious). 32 ajouts extérieurs sont actuellement en attente pour revue dans le dépôt.
Une vraie communauté de développeurs, en plus de Nokia, est en train de naître.

Par ailleurs l'IDE Qt Creator 1.2 vient également de sortir. Ce petit bijou supporte désormais Visual C++ et cdb (le format de debug de Visual C++) en plus de GCC et GDB.

NdM: Un très grand merci à tanguy_k pour son journal ayant permis de compléter cette dépêche.

Journal Développement : y aura-t-il une vie en dehors du Web ?

Posté par  . Licence CC By‑SA.
25
8
mar.
2011

Bonjour à tous,

Ce qui suit n'est que l'élucubration d'un esprit sans doute un peu tourmenté. Il s'agit d'une réflexion somme toute personnelle et d'une demande d'avis. J'espère que cela en intéressera quelques-uns et vais m'efforcer de ne pas être trop long.

Le tendance est au Web, et au développement autour des technologies Web. Enfonçons des portes très mal fermées car je concède aisément qu'il y a des atouts certains à cette mode :