Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?

51
11
oct.
2011
JavaScript

Google a publié une première version, dite « preview release », de son nouveau langage de programmation : Dart. Google espère que ce langage va remplacer JavaScript comme langage de référence dans les navigateurs.

Un mémo interne qui a fuité nous informe des intentions de Google. Les ingénieurs de Google, et tout particulièrement l’équipe travaillant sur V8, considèrent que le JavaScript est une impasse : il serait trop lent, très mal adapté pour des développements de grande taille et souffrirait d’erreurs de jeunesse irréparables. Google a donc décidé de proposer son propre langage, Dart, dont la première version vient tout juste de sortir.

Pour le moment, les programmes écrits en Dart peuvent être compilés en JavaScript pour tourner dans les navigateurs. D’ici peu, Chrome devrait être en mesure d’exécuter directement du code en Dart, étape nécessaire pour des performances accrues. Les plans de Google sont ensuite de proposer son moteur aux développeurs des autres navigateurs, mais il semble peu probable dans l’immédiat que ceux‐ci acceptent.

Dart se distingue de JavaScript par :

  • le typage statique optionnel ;
  • les classes et interfaces (par opposition aux prototypes du JS) ;
  • l’obligation d’utiliser les « ; » pour séparer les instructions ;
  • une bibliothèque standard plus riche ;
  • la possibilité d’être outillé plus facilement (meilleure prise en charge pour l’IDE et outils de ré‐usinage par exemple).

Pour autant, Dart a reçu un accueil très froid de la part des développeurs. Par exemple, Brendan Eich, le créateur de JavaScript, considère qu’il est plus simple et plus efficace de faire évoluer le JavaScript que de développer un nouveau langage.

Petites brèves : Sinatra 1.3, entretiens concernant la communauté Ruby et programmation UNIX

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
Tags :
23
4
oct.
2011
Ruby

Sinatra 1.3

Sinatra est une bibliothèque Ruby permettant de développer rapidement des applications Web (sous licence MIT). La version 1.3.0 vient de sortir et apporte une API de streaming, la prise en charge du verbe HTTP PATCH, l’ajout d’une méthode utilitaire logger et des corrections de bogues.

À l’occasion de cette sortie, un nouveau projet a vu le jour : Sinatra::Contrib. Il regroupe les extensions à Sinatra les plus courantes et permettra de gérer plus facilement la compatibilité entre les versions publiées. Par exemple, quand la version x.y.z de Sinatra sortira, le mainteneur, Konstantin Haase, publiera également la version x.y.z de Sinatra::Contrib, qui aura été testée pour s’assurer de sa compatibilité.

Enfin, c’est également l’occasion de noter le récent site Web Sinatra Recipes, qui regroupe des astuces et bonnes pratiques sur Sinatra.

Entretiens concernant la communauté Ruby en France

Camille Roux a interrogé plusieurs membres de la communauté Ruby en France :

Programmation UNIX avec Ruby

Pour finir, je vous propose un petit lien qui pourra intéresser quelques‐uns d’entre vous : Eric Wong a publié une série d’articles sur la programmation système UNIX avec Ruby.

ack 1.96 — mieux que grep

Posté par (page perso) . Modéré par Xavier Teyssier. Licence CC by-sa
48
20
sept.
2011
Ligne de commande

Ack est un outil qui permet de rechercher du texte à l’intérieur de fichiers. C’est donc un clone de grep avec quelques améliorations notables. Voici donc dix raisons de passer à ack si vous utilisez grep :

  1. ack est très rapide, car il ne recherche que ce que vous voulez chercher ;
  2. il recherche récursivement par défaut ;
  3. il ignore les trucs inutiles, comme les répertoires utilisés par les VCS (.svn et CVS par exemple), les fichiers de sauvegarde (« foo~ » et « #foo# »), les binaires, etc. ;
  4. vous pouvez spécifier simplement le type de fichiers à rechercher, comme « --perl » ou « --nohtml » ;
  5. la coloration syntaxique des résultats est là par défaut ;
  6. vous pouvez utiliser les expressions régulières de Perl, pas juste le sous‐ensemble de GNU ;
  7. l’apprentissage d’ack est très simple, car il reprend les mêmes options en ligne de commande que grep (« -c », « -l », « -w », etc.) ;
  8. il est possible d’avoir des options par défaut dans un fichier « ~/.ackrc » ;
  9. la commande fait 25 % de caractères en moins à taper ;
  10. en fait, c’est même 50 % de gagné par rapport à « grep -r ».

La version 1.96 d’ack est sortie dimanche et apporte quelques améliorations notables :

  • les fichiers JavaScript « minifiés » sont ignorés par défaut ;
  • le langage Groovy est supporté (extensions : « .groovy », « .gtmpl », « .gpp », « .grunit ») ;
  • les fichiers Perl et Lua sont mieux détectés.

Note : pour installer ack sur Debian et Ubuntu, il faut faire un « apt-get install ack-grep » (et pas juste « ack »). En revanche sous Archlinux, un « pacman -S ack » sera suffisant. Les autres distributions (Fedora, Gentoo) utilisent également le simple nom « ack »).

L’édition 2011 d’OSDC.fr se tiendra pendant l’Open World Forum les 23 et 24 septembre

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
7
16
sept.
2011
Communauté

Pour la 3e année consécutive, la conférence OSDC.fr réunira les développeurs utilisant les langages Ruby, Python, Perl, PHP, mais aussi SmallTalk, JavaScript, Haskell ou encore Red. Elle se tiendra pendant l’Open World Forum les 23 et 24 septembre à l’Eurosites George V.

Le programme final est en ligne avec 36 présentations annoncées couvrant un large éventail de sujets.

L’entrée est gratuite, mais nous vous demandons de vous inscrire pour nous donner une idée de l’affluence. L’inscription se fait sur le site de l’Open World Forum.

Les apéros Ruby en France

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
9
16
sept.
2011
Ruby

Les apéros Ruby sont à la mode : après Paris, Lyon, Toulouse, Nantes, Rennes et plus récemment Lille, Montpellier et Sophia Antipolis, c'est au tour de Strasbourg de mettre en place en rendez-vous entre Rubyistes. Celui-ci devrait avoir lieu chaque dernier mardi du mois, à commencer par le 27 septembre. Ils seront annoncés sur le futur site web, mais vous pouvez déjà suivre ça sur facebook et twitter.

Et si vous habitez dans une ville sans apéro Ruby ? Hé bien, cela ne dépend que de vous. Vous pouvez organiser votre propre apéro Ruby grâce au billet de blog de Camille Roux qui explique en détail comme faire cela.

Sundown, Houdini et Crustache

Posté par (page perso) . Modéré par Florent Zara. Licence CC by-sa
22
2
sept.
2011
C et C++

Vicent Martí, aka tanoku, est un des développeurs de github qui aime bien coder en C. Ce n'est donc pas très étonnant de trouver sur son compte github des bibliothèques en C pouvant servir au développement d'applications web. Je souhaite en particulier vous évoquer de trois bibliothèques sous licence ISC :

Crustache est une implémentation en C de Mustache, un moteur de templating. Des bindings pour Ruby sont également disponibles dans le dépôt git.

Houdini permet d'échapper des chaînes de caractères en UTF-8 pour le web. Et de faire l'inverse. Les trois types d'échappement sont :

  • convertir &, ", ', <, > et / en leur entité HTML correspondante (conformément à la recommandation de l'OWASP) ;
  • échappement des URI respectant la RFC ;
  • et échappement des URL (la différence avec l'échappement des URI est le remplacement des espaces par des +).

Et enfin, Sundown est un fork de libupskirt. Il permet de convertir du texte en Markdown vers du HTML. Nous utilisons Redcarpet, les bindings Ruby autour de Sundown, pour LinuxFr.org du fait de ses performances et de ses nombreuses options.

Sortie de Ruby on Rails 3.1.0

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
28
1
sept.
2011
Ruby

Ruby on Rails est un framework de développement web agile, sous licence MIT. Après 8 releases candidates, la version 3.1.0 est sortie aujourd'hui.

Les nouveautés sont nombreuses mais les plus importantes sont :

  • jQuery est devenu le framework javascript par défaut (à la place de Prototype) ;
  • L'Asset Pipeline permet de gérer la compilation, la minification et la gestion des dépendances pour les feuilles de style et le fichiers javascript ;
  • Sass et CoffeeScript sont maintenant proposés par défaut ;
  • Les migrations SQL ont été revues (plus simples à écrire mais également plus de possibilités offertes) ;
  • Les réponses peuvent être envoyées en plusieurs morceaux (HTTP streaming), ce qui peut être utilisé pour optimiser le temps de chargement des pages ;
  • La documentation de l'API utilise maintenant SDoc.

Note : il est prévu que LinuxFr.org passe rapidement à cette version.

Petites brèves : ebooks, nwm et Cloud Foundry

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
23
31
août
2011
Technologie

Apprendre un langage

Si vous souhaitez apprendre un langage de programmation, deux livres au format électronique peuvent vous aider : Learning Go et Smooth CoffeeScript, qui parlent respectivement — vous l’aurez deviné — des langages Go et CoffeeScript. Ils sont tous deux sous une licence Creative Commons (CC by-nc-sa pour le premier et CC by pour le second) et bien écrits.

Le gestionnaire de fenêtres nwm

Dans le cadre de la compétition Node.js Knockout, le projet nwm est apparu. Il s’agit d’un gestionnaire de fenêtres sous Node.js qui utilise la libev pour communiquer avec X11. Le projet est encore très instable, mais mérite un petit clin d’œil.

Cloud Foundry

Cloud Foundry est une solution de « Platform as a Service » (PaaS) libre développée par VMware. Elle rencontre un certain succès, et des partenariats se sont montés :

  • la partie cliente et la partie serveur de Cloud Foundry sont empaquetées dans la prochaine version d’Ubuntu, et il semblerait que Canonical ne souhaite pas en rester là ;
  • VMware travaille avec Dell pour intégrer Cloud Foundry à Crowbar, l’outil d’installation de nuages de Dell ;
  • Opscode a écrit des recettes du chef pour déployer simplement Cloud Foundry.

3 bibliothèques javascript à découvrir : D3, Sugar et Batman

27
30
août
2011
JavaScript

D3.js

D3.js est une bibliothèque javascript légère et libre qui permet de manipuler et représenter graphiquement des documents en s'appuyant sur leurs données. Elle est une réécriture de protovis et s'appuie sur des technologies comme HTML5, CSS3 et SVG pour afficher des données et interagir avec elles. Je vous encourage à aller voir les exemples pour voir de quoi est capable d3.js.

Sugar.js

Sugar.js est une bibliothèque qui vise à faciliter la manipulation des objets natifs Javascript et à combler les différences entre navigateurs. Elle ajoute des méthodes bien pratiques aux entiers, chaînes de caractères, fonctions, tableaux, objets, dates... En revanche, elle ne concerne ni les requêtes AJAX ni le DOM (jQuery fait ça très bien).

Batman.js

Batman.js est un petit framework MVC sous licence MIT. Il est écrit en CoffeeScript et peut donc naturellement être utilisé en Javascript afin de structurer une application web qui ferait un fort usage du JS. S'inspirant des principes de Rails (convention over configuration, etc.), il doit permettre de développer rapidement des applications web mono-page.

Veracity, un nouveau gestionnaire de versions décentralisé

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
Tags :
32
17
juil.
2011
Gestion de versions

Veracity est un nouveau gestionnaire de versions décentralisé (DVCS), sous licence Apache. Il est développé en C par la société SourceGear, avec la possibilité d'embarquer des greffons en javascript.

Comparé à git ou mercurial, il essaye d'intégrer une expérience de développement plus large :

Il est possible de l'installer sous GNU/Linux, Mac et Windows. Des paquets pour Ubuntu et un guide sont également disponibles pour vous aider à démarrer.

Découvrez Backbone.js 0.5.0 pour organiser votre code JavaScript

Posté par (page perso) . Modéré par tuiu pol. Licence CC by-sa
34
3
juil.
2011
JavaScript

Backbone.js est un framework JavaScript sous licence MIT que Jeremy Ashkenas a écrit dans le cadre de son travail chez DocumentCloud. Il permet d’apporter de la structure à des applications JavaScript grâce à une bibliothèque qui ne fait pourtant qu’un millier de lignes de code en tout.

Pour cela, il apporte la séparation du code en classes :

  • les modèles et collections sont responsables de la logique métier et peuvent également servir pour la persistance, aussi bien locale avec localStorage que distante via des API RESTful en JSON. Les modèles proposent des enregistrements clé‐valeur et des événements associés. Les collections offrent un catalogue bien pratique de méthodes d’énumération : ce sont les méthodes map, reduce, filter importées depuis underscore.js, une des rares dépendances de Backbone.js ;
  • les vues font la liaison entre les modèles et le DOM. Elles mettent à jour le code HTML en fonction des modifications des modèles et, dans l’autre sens, peuvent gérer les événements du DOM ;
  • le routeur permet de modifier l’URL de la page (le #fragment ou, depuis la version 0.5.0, le chemin complet grâce à pushState) et de retourner à l’état associé quand la page est rechargée. Cela permet d’avoir des URL qui peuvent être mises en favoris ou partagées.

Backbone.js a atteint la version 0.5.0 il y a quelques jours et est déjà utilisé sur des projets notables comme Basecamp Mobile.

Journal Petit compte-rendu du Intel Music Hackathon

Posté par (page perso) . Licence CC by-sa
30
19
juin
2011

Cher journal,

je t'ai parlé du Intel Music Hackathon il y a quelques jours et, comme j'y ai participé, je me suis dit qu'un petit compte-rendu pouvait t'intéresser.

En version courte : notre équipe a codé un karaoké qui tourne sur une tablette meego en moins de 24h et, même si nous n'avons pas gagné, développer cette application fut bien fun :-)

En version moins courte : le hackathon est un concours où il faut coder une application pour meego (...)

Intel Music Hackathon, les 18 et 19 juin

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
Tags :
21
10
juin
2011
Mobile

Meego 1.2 est sorti récemment, et pour encourager les développeurs à l’essayer, Intel organise un événement : l’Intel Music Hackathon. L’objectif est de développer en 24 h une applications sur le thème de la musique pour le centre Intel AppUp.

Tous les participants recevront un pack développeur, et un grand prix sera décerné par un jury pour l’application gagnante à l'issue du week-end.

Les détails pratiques

Pour participer, il faut s’inscrire en ligne, mais c’est gratuit. Cela se passe le week-end des 18 et 19 juin dans les locaux d’af83, au 15 rue Poissonnière - 75002 Paris (métro Bonne Nouvelle ou Sentier).

Et si on ne connaît pas Meego ?

Pour ceux qui voudraient découvrir Meego, un AppUp aura lieu la veille (le 17 juin, donc) pour venir découvrir Meego et faire ses premiers pas de développeur sur cette plate-forme.

Cloud Foundry, la solution PaaS libre

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
29
22
avr.
2011
Ruby

VMWare a annoncé la sortie de Cloud Foundry, une solution libre de Platform-as-a-Service (PaaS). La PaaS permet de déployer des applications Web et gérer leur montée en charge, en abstrayant la gestion des serveurs, bases de données, runtimes des langages de programmation, serveurs applicatifs, etc.. VMWare va lancer une offre commerciale s’appuyant sur Cloud Foundry, mais vous pouvez aussi l’utiliser sur vos serveurs.

Cloud Foundry, sous licence Apache 2, est un ensemble de briques développées en Ruby : NATS, Cloud Controller, DEA, Router, Health Manager, etc., dont le fonctionnement est expliqué en seconde partie de cette dépêche.

En pratique, chaque serveur sera installé avec vcap, puis les applications sont déployées avec l’outil en ligne de commande « vmc » et peuvent utiliser les services mis à leur disposition. Actuellement, Cloud Foundry supporte Ruby on Rails, Sinatra, Node.js, Spring et Grails pour les applications, et MySQL, MongoDB, Redis et RabbitMQ pour les services.

Par exemple, déployer une application Rails se fait très simplement avec les commandes suivantes :

$ vmc target api.example.net   # Choisir que quel cloud on va déployer
$ vmc login                    # S'identifier auprès du Cloud Controller
$ vmc push                     # On demande à déployer l'application

Il faut ensuite répondre à quelques questions : quel est le nom de l’application ? Quelle est son URL ? Sur combien d’instances va-t-elle être déployée ? Quels services utilise-t-elle ? Puis, Clound Foundry va réserver les ressources, installer les gems nécessaires avec Bundler, lancer les services applicatifs puis mettre à jour sa table de routage. « vmc instances » permet également de modifier le nombre d’instances d’une application pour s’adapter à la charge qu’elle va avoir à traiter.

Au final, Cloud Foundry est une solution jeune (peu de frameworks et services disponibles pour le moment), mais VMWare semble prêt à respecter les règles du Logiciel Libre et prendre en compte les propositions d’améliorations des premiers utilisateurs.

On est parti ! nginx 1.0.0 est sorti

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
44
13
avr.
2011
Internet

Nginx est à la fois un serveur HTTP et un proxy inverse pour HTTP et IMAP / POP3. Поехали, la version 1.0.0 est sortie hier.

Développé sous licence BSD, Nginx sert fidèlement de nombreux sites Web, dont LinuxFr.org, et leur apporte performances, fiabilité et configurabilité. Des études indiquent qu’il servirait entre 6,5 % et 7 % du Web mondial (derrière Apache et IIS, mais devant Google, Lighttpd et Cherokee).

Cette version 1.0.0 arrive après 9 ans de développements soutenus et montre, s’il en est besoin, la stabilité du projet. Je vous encourage à l’essayer.