92
7/25/2019 Programme z 186 http://slidepdf.com/reader/full/programme-z-186 1/92 Mensuel n°186 - Juin 2015 3’ :HIKONB=^UZ^Z]:?a@l@i@q@a"; M 04319 - 186 - F: 5,95 E - RD Printed in EU - Imprimé en UE - BELGIQUE 6,45  SUISSE 12 FS - LUXEMBOURG 6,45  - DOM Surf 6,90  Canada 8,95 $ CAN - TOM 940 XPF - MAROC 50 DH Carrière Une certification est-elle utile ? Microsoft Band Du code et du sport Open Source Les  licences libres  sont-elles  réellement libres ? Un poste de développement  sous Linux pour tout faire !  Apple Watch Comment développer des  apps avec le WatchKit ? Osez le langage Go Drupal & Responsive Design :  les meilleurs amis du monde Responsive Design Créer des sites Web visibles partout 2015 Le meilleur des conférences développeur  s du pr  i  ntemps S t o c k v e c t o r ©  b a g i u i a n i

Programme z 186

  • Upload
    yomay

  • View
    239

  • Download
    1

Embed Size (px)

Citation preview

  • 7/25/2019 Programme z 186

    1/92

    Mensuel n186 - Juin 2015

    3:HIKONB=^UZ^Z]:?a@l@i@q@a";M 04319- 186 - F: 5,95E- RD

    Printed in EU - Imprim en UE - BELGIQUE 6,45 SUISSE 12 FS - LUXEMBOURG 6,45- DOM Surf 6,90 Canada 8,95 $ CAN - TOM 940 XPF - MAROC 50 DH

    CarrireUne certification est-elle utile ?

    Microsoft BandDu code et du sport

    Open SourceLeslicences libres

    sont-ellesrellement libres ?

    Un poste de

    dveloppement

    sous Linux pour

    tout faire !

    Apple WatchComment dvelopper desapps avec le WatchKit ?

    Osez lelangage

    GoDrupal &Responsive Design:les meilleurs amis du monde

    Responsive DesignCrer des sites Web visibles partout

    2015Lemeilleurdesconfrencesdveloppeursdupri

    ntemps

    Stockvectorbagiuiani

  • 7/25/2019 Programme z 186

    2/92

  • 7/25/2019 Programme z 186

    3/92

    57Web Worker

    Programmez! a Juin 2015 3

    Le choix de lembarras,lembarras du choix (1)

    17Xamarin

    CODING4FUN /MAKERPour cet t, Programmez! vouspropose de nombreux projets makers faire la plage, en vacances !

    Arduino, Gadgeteer, Raspberry Pi,des robots et des drones !

    Coder

    en

    s'amusant

    avec

    Scratch

    73ASP 5.0

    79Responsive

    Design

    90CommitStrip

    13Dveloppeur

    du mois

    87Microsoft Band

    SDK

    Depuis avril, les grandes confrences sebousculent : Devoxx France, Maker Faire Paris, F8, BUILD,

    Google I/O (fin mai) et enfin la WWDC (8-12 juin) Arrtez ! Lecerveau des dveloppeurs va finir par exploser

    Rien qu la BUILD, Microsoft a dfinitivement entrin sonnouveau visage autour des services, louverture vers dautres

    mondes, un Windows qui se veut universel, la mort (enfin !)

    dInternet Explorer La possibilit de gnrer rapidement (nedisons pas facilement) des apps Android ou iOS a beaucoup

    fait parler. Certains dveloppeurs Windows Phone y ont vu unconstat dchec du modle strict Windows Phone et de C#

    face aux concurrents, mais ces imports ne permettent pasde vritables projets mobiles multiplateformes, et cest l une

    des grosses faiblesses de cette annonce. Xamarin, et tous lesautres, conservent donc leur intrt. Nous devrions en savoir

    plus durant l t. Mais pour Microsoft, il sagit dinciter lesdveloppeurs porter leurs apps sur Windows

    Phone ! De ce point de vue cest la fois un

    chec de la plateforme, car elle ne peut pasattirer el le seule les dveloppeurs, et aussi un

    pragmatisme totalement assum par le nouveaupatron : bon OK, on n'y arrive pas, on va

    changer de stratgie et proposer une migrationpure et simple depuis les projets Java et

    Objective-C (SWIFT nest pas support)

    Mais attention, Google et Apple ne vont pas

    attendre Microsoft et ses nouveaux outilsmiracles. Ils avancent rapidement et vont

    proposer de grosses nouveauts dans les

    prochains mois. Si Windows 10 est prometteursur de nombreux aspects, notamment la

    continuit entre tous les terminaux (qui estpartiellement possible chez les concurrents),

    Windows 10 a tout prouver, surtout sur lemobile. Lquation est simple : soit Windows 10

    version mobile russit simposer et faire vendre dessmartphones Win10, soit on continue sur la tendance actuelle

    avec une part de march locale pouvant tre forte, maisglobalement faible Lavenir nous le dira.

    Nous ferons un gros retour sur Devoxx qui a t trsriche, avec beaucoup de thmes techniques.

    Nous aborderons aussi la programmation Apple Watch avecWatchKit. La montre Apple est sortie depuis un mois. Les apps

    commencent arriver, en attendant la possibilit de crer desapps natives (annonce au WWDC ?). Si le SDK est limit, on

    peut tout de mme coder des choses sympathiques.

    Ce mois-ci, beaucoup de sujets chauds :- Carrire : faire ou ne pas faire une certification ?- Retour sur Maker Faire Paris : vive le maker et le faire soi-

    mme - Go : le langage de Google qui pourrait tout

    casser (ou pas)- Responsive Design : faut-il y passer ?

    Comment faire du Responsive avec Drupal ?

    - Un poste de dveloppement sous Linux :non, nous ne sommes pas fous, bien au

    contraire ! Aurlie nous explique tout.

    Et tout plein dautres choses !

    Soyez dveloppeur,

    nous avons des cookies.(1) rayez la mention inutile

    DRUPAL 8Drupal 8 arrivera en versionfinale ds cet automne. Dans cedossier, nous allons dfricher leterrain : les nouveauts, com-ment prparer une migration deDrupal 7 vers Drupal 8.

    lire dans le prochainnumro n187 en kiosque le 29 Juin 2015

    15Maker FaireParis 2015

    63ContinuusPHP

    69Apple Watch

    4Agenda

    6Faut-il une

    certification ?

    76BLE 2e partie

    26BUILD 2015

    11Silicon Valley

    19Je dbuteavec le

    langage Go

    33Devoxx 2015

    61LabView

    65Le monde

    des API

    47Open

    Source

  • 7/25/2019 Programme z 186

    4/92

    PGDay 2015 : 2 juinLe 2 juin 2015 aura lieu le PGDay 2015

    Belfort, organis par la communaut

    francophone de PostgreSQL, et soutenu par

    lassociation PostgreSQL Europe.

    Cet vnement se droulera la Chambre de

    Commerce et dIndustrie du

    Territoire de Belfort. Cet vnement sera

    orient sur des retours dexpriences

    dutilisation ou de migration vers PostgreSQL.

    Plus dinformations sont disponibles sur le

    site :

    http://select-2-6-2015-as-pgday.org/

    Matinale Club (21 : 4 juinRupture (21 vous invite sa nouvelle

    matinale Club (21, curieuse confrence-atelier,

    pour dcouvrir et vivre des ingrdients dune

    forme de leadership agile essentiel pour

    russir votre transition agile ou digitale. Pourplus dinformations, nhsitez pas nous

    contacter : [email protected]

    Best of Web : 5 juinGrce aux nouvelles plateformes Web comme

    meetup.com, des communauts nouvelles ou

    existantes peuvent se retrouver et organiser

    des vnements rguliers.

    Cest dautant plus vrai chez les

    professionnels du Web qui ont cr de

    nombreux groupes parlant des derniers

    Frameworks Javascript, des API REST, deCSS et de Design.

    Ces meetups proposent toute lanne des

    confrences de qualit animes par des

    dveloppeurs anonymes dans lcosystme

    Web o se ctoient dveloppeurs

    chevronns, consultants en free-lance,

    tudiants et contributeurs open source.

    Tellement dvnements ont lieu quil devient

    compliqu de pouvoir y assister, les

    rencontres se droulant le soir en dehors des

    heures de travail.

    Huit groupes meetups ont donc dcid de se

    fdrer et de proposer un Best Of Web o

    le meilleur de leurs confrences sera rejou

    sur une journe. Ces groupes portent sur des

    technologies varies du monde du Web :

    a AngularJS-Paris

    a Backbone Paris

    a Paris WebComponents

    a EmberJs Paris

    a Node.js Paris

    a PhoneGap Paris

    a D3.js Paris

    a Paris JS

    Les confrences qui ont t retenues comme Best Of sont dj annonces sur le site

    officiel de lvnement http://bestofweb.paris/et

    Programmez! a Juin 20154

    le programme sannonce trs vari.

    Citons par exemple lutilisation DES6 avec

    Angular par Douglas Duteil, une prsentation

    de Polymer par Martin Gorner ou un

    panorama de lcosystme REST par Virginie

    Bardales.

    Mais ce nest pas tout : de nouvelles

    prsentations transverses seront choisies

    grce au call for paper ouvert la

    communaut.

    Best Of Web se droulera le 5 juin 2015

    lHotel de ville de Paris o 500 participants

    sont attendus.Lambition des organisateurs est de proposer

    lvnement communautaire de lanne,

    participatif, sur un modle diffrent de celui

    des confrences classiques o seules des

    stars du dveloppement viennent sexprimer.

    Cela sera coup sr le rassemblement dune

    population de dveloppeurs souvent

    expriments, toujours passionns ayant en

    commun leur attachement aux technologies

    du Web.

    Informations pratiquessite : http://bestofweb.paris/

    Twitter : https://twitter.com/bestofweb2015

    mail :[email protected]

    WWDC 2015 : 8 au 12 juinLa prochaine confrence dveloppeur Apple

    sera trs dense avec lApple Watch, des

    nouvelles de lApple TV, les nouvelles

    machines, les prochains iOS et OS X

    Plusieurs milliers de dveloppeurs sont

    attendus, des centaines dtudiants. Comme

    dhabitude, la Pomme mobilise un millier

    dingnieurs

    Site https://developer.apple.com/wwdc/

    18 juin : Darkmira TourViens faire le plein de comptences Zend

    loccasion du premier Darkmira Tour ! Pas de

    blabla, les experts du Darkmira Tour

    remplissent ton IDE de solutions pratiques.

    Confrences, ateliers, goodies dans une

    ambiance conviviale !

    Darkmira fte sa manire les 20 ans de PHP

    et pour cette mmorable occasion organise

    son premier Darkmira Tour dans les locaux delESGI le 18 juin 2015.

    Dans cette premire dition, Zend sera

    18-19 juin :Hackinparis(5e dition)Le hacking revient en force Paris pour un

    des vnements phares de lanne :

    Hackinparis ! Cette anne encore, la

    confrence sannonce trs riche avec des

    ateliers, des sessions (trs) techniques,

    des intervenants prestigieux. On va y

    parler DDOS, bootkit, intrusions diverses

    et varies, X11, le hack de bracelets

    sportifs, etc.

    Rservez ds maintenant votre agenda et

    votre place ! site :

    https://www.hackinparis.com/home

    Soires JUG Paris2 juin : design pattern vs lambda

    23 juin : Tools in actions

    Site :

    http://www.parisjug.org/xwiki/bin/view/Main/WebHome

    lhonneur. Cette anne, Zend est trs prsent

    dans lactualit de Darkmira :

    a Cyrille Grandval est devenu membre de la Z-

    team

    a Le livre Prparation la certification Zend

    Certified PHP Engineer (ZCPE) aux ditions

    ENI cocrit par Cyrille Grandval et Julien

    Charpentier (associs chez Darkmira)

    a 100 % des dveloppeurs Darkmira sont deve-

    nus certifis ZCPE

    Quand ? Le 18 juin de 13 h 30 19 h 30

    O ? Ecole ESGI 242 Rue du Faubourg

    Saint-Antoine, 75012 Paris

    Plus dinformations :http://tour.darkmira.fr

    20-21 juin : attention, cest lanuit du hack !!!

    Ame sensible passez votre chemin. La nuit du

    hack revient les 20 et 21 juin, pour la 13e

    anne Comme chaque anne, il y aura des

    ateliers, des confrences, la crash party, les

    challenges !

    Prparez-vous ds maintenant :

    https://www.nuitduhack.com

    Confrence UNITE, 24-25 juinUnity, diteur du moteur 3D, sera Amsterdam

    les 24 et 25 juin pour sa grande confrence

    annuelle. Une occasion de parler techniques,

    de voir les dernires nouveauts et les futures

    volutions, mais aussi de discuter avec les

    partenaires. Il nest pas trop tard pour prendre

    sa place !

    Site : http://unity3d.com/unite/europe

  • 7/25/2019 Programme z 186

    5/92

  • 7/25/2019 Programme z 186

    6/92

    Faut-il une certificationpour tre un dveloppeur heureux ?

    Lcosystme PHP propose des certificationspour la plupart des frameworks : Zend Frame-

    work, Symfony, Laravel et bien dautres. Nan-moins, il nexiste quune certification pour lelangage PHP lui-mme qui est reconnue tra-vers le monde par les professionnels et les com-munauts. Cette certification cest la ZendCertified PHP Engineer, alias ZCPE.

    Pourquoi devenir un certifiPHP ?Premirement, avant de vous expliquer lesrouages de la ZCPE, il est importantdexpliquer les avantages indniablesquapporte cette certification un dveloppeur

    PHP. Cre par la socit de Zeev Suraski etAndi Gutmans, La PHP Company, cettecertification bnficie de lappui de Zend, maisgalement de la communaut PHP, de leursvisibilits et de leurs crdibilits. Elle permetainsi de confirmer un haut niveau dexpertisetechnique chez un dveloppeur PHP. En effet,tre certifi, cest dmontrer sonprofessionnalisme et ses connaissances dulangage sur tous les thmes de la certification.Elle apporte donc pour un dveloppeur un relgain en termes de visibilit et dattractivit sur

    le march du travail PHP. En effet, lorsque vousobtenez la certification, vous entrez ainsi dansle cercle ferm des quelques milliers de

    Programmez! a Juin 20156

    Les avantages dtre certifi Zend Certified PHP Engineer

    dveloppeurs mondiaux pouvoir apposer surleur CV, leur site, leur carte de visite, rseauxsociaux, ... le titre de Zend Certified PHPEngineer ainsi que le logo de la certification.Pour les recruteurs, cette certification devientde plus en plus un pr-requis lembauchepuisquelle justifie de la qualit dunecandidature et rassure quant la bonnepossession de hautes connaissances en PHP.Et bien sr, concernant le salaire, il estindniable que la certification apporte uncertain poids dans la ngociation.

    En plus de cela, la socit Zend fournitgalement plusieurs avantages professionnelset funs aux nouveaux certifis.

    a Une licence gratuite de Zend Studioa Une page de profil sur le ZCE Directory (plus

    communment appel les Yellow Pages). Cet

    annuaire met disposition les pages profils des

    certifis PHP et Zend Framework depuis les

    premires versions de ces 2 certifications.

    Cela permet ainsi de booster votre rfrencement,

    daugmenter encore plus votre visibilit et de four-

    nir vos contacts aux recruteurs et employeurs la

    recherche de profils PHP experts.

    a La possibilit dentrer dans le groupe Linkedintrs select des Zend Certified Engineer.

    a Des autocollants du logo de la certification etvotre diplme cartonn de ZCPE directementenvoy depuis les bureaux de Cupertino.

    Cyrille Grandval

    CEO Darkmira & Darkmira Brasil

    Auteur de "Prparation la certification ZCPE"(ditions ENI) et membre de la Z-Team de Zend,Cyrille est professeur, consultant et formateur en

    PHP et scurit des applications web.

    Ce nest pas la premire fois que nous parlons de certification dansProgrammez !. Rgulirement, nous sommes interrogs sur cette

    question par des dveloppeurs : faut-il une certification ?La rponse est clairement non. La certification nest pas un ssamemiracle qui propulsera votre profil au sommet ni namlioreraforcment votre carrire. tre un bon dveloppeur (pas uniquementtre bon codeur) sera votre meilleur atout. La certification est parfoisvue comme nombriliste et inutile. Elle peut toutefois rassurer desentreprises ou dans des quipes. Et sont parfois exiges pourrpondre des appels doffres

    En questionnant des dveloppeurs, nous avons eu beaucoup decommentaires : comment juger les comptences dun dveloppeur surdes QCM, cest juste une validation de la matrise de la thorie, quelle

    valeur a la certification, etc.

    Certaines entreprises peuvent demander des certifications aux salarisou demander les passer rgulirement pour avoir un beau profil.

    Trop de certifications tuent-elles la certification ?La certification sanctionne, la plupart du temps, une connaissancethorique et non une exprience. En clair, on peut dire quune certifnous dit si on connat loutil ou un environnement. Ce nest pas 100questions qui vont dire si vous savez utiliser et coder tel langage ou telframework.

    Nous pensons donc quil est souvent plus intressant de suivre desformations techniques si on veut rellement progresser ou renforcerune comptence. Cependant, la certification peut vous aider valuervos connaissances, surtout quand la technologie volue rapidement.Dans certains secteurs, notamment lindustrie, la certification est

    obligatoire, notamment cause des normes de scurit. La rdaction

  • 7/25/2019 Programme z 186

    7/92

    CompletEspace disque illimit

    Sites Web illimits

    Trafic illimit

    Comptes email illimits

    Stockage email illimitBases MySQL illimites

    Domaines illimits (1 inclus)

    FiableGo-redondance

    Sauvegardes quotidiennes

    1&1 CDN

    1&1 SiteLock Basic

    Assistance 24/7

    Facile utiliser1&1 Applications Click & Build :

    installez des applications commeWordPress et Joomla!en un clic

    1&1 Mobile Website Builder

    DES POSSIBILITS INFINIES POUR VOS PROJETS WEB

    PACKS 1&1 HOSTING UNLIMITED

    SANS LIMITE !

    DOMAINES | MAIL | HBERGEMENT| E-COMMERCE | SERVEURS

    1and1.fr

    MOISPOURESSAYER1 CLICPOUR CHANGERDE PACK1 APPELUN EXPERTVOUS RPOND1

    * Les packs 1&1 Hosting Unlimited sont partir de 2,99 HT/mois (3,59 TTC) pour un engagement minimum de 12 mois. lissue des 12 premiers mois, les prix habituels sappliquent.Certaines fonctionnalits cites ne sont pas disponibles dans tous les packs. Offres sans dure minimum dengagement galement disponibles. Conditions dtailles sur 1and1.fr.Rubiks Cubeutilis avec laccord de Rubiks Brand Ltd.

    0970 808 911(appel non surtax)

    HT/mois(3,59 TTC)*

    2,99 partir de4

    ,99

    NOUVEAU !

  • 7/25/2019 Programme z 186

    8/92

    budget (souvent pris en charge par votreentreprise), une formation PHP certifiante de2 / 3 jours, vous permet dtre en immersionPHP complte pendant ce dlai et de profiterdun formateur pour rpondre vosinterrogations. Les quelques formationsexistantes vous permettent ainsi suivantlorganisme de formation :a Soit de revoir sous formes de points succincts

    et dexemples de questions (comme le StudyGuide) les diffrents thmes,

    a Soit dapprendre et de rviser laide duncours thorique, des manipulations et desmini-tests blancs les 10 thmes couverts parla certification.

    Ces formations permettent ainsi dacqurir labonne logique de pense pour passer etobtenir cette certification.

    Une question pour lexempleSans dvoiler compltement le contenu, voiciun exemple de questions auxquelles vousaurez rpondre lors de lexamen (cettequestion, bien entendu, nest pas une questionde lexamen officiel).

    Question 1

    What will be the value of $var?

  • 7/25/2019 Programme z 186

    9/92

  • 7/25/2019 Programme z 186

    10/92

    Ces certificationsreprsentaient beaucoup pour

    moi. Jen suis devenu un vrai boulimique, jaipass plus dune centaine de certifications,entre autres :Scrum Master, Linux Professional, Sun Certified

    Java Programmer, Microsoft Certified Trainer

    and Solutions developers, Cisco Certified

    Security Professional, etc.

    Jai aussi tout fait pour recevoir descertifications honorifiques (Microsoft StudentPartner, Most Valuable Professional)Bref, ridicule nest-ce pas ?Si jattachais tous ces pins sur mon manteau,on maurait appel General Microsoft :). Maisen fin de compte, quest-ce que cela maapport ? Quest-ce que cela vaut ? Voil laquestion que je me suis longtemps poseaprs les avoir toutes passes.

    Quest-ce que les certifica-tions certifient rellement ?A moins daller au plus haut niveau dans lescertifications (CCIE de Cisco par exemple,Microsoft Certified Master..), la plupart dentreelles se passent dans des centres spcialissdevant un ordinateur. Jai travaill dansplusieurs centres de formations, et jai moi-mme t un surveillant officiel de cesorganismes, dans plusieurs pays. La premirechose qui a dmystifi la certification fut le faitque les surveillants ntaient pas tous trsprofessionnels. Jai vu de tout, du surveillant

    prenant son mtier cur, et qui restaitderrire vous pour que vous sentiez son soufflechaud sur votre nuque, jusqu celui qui vouslaisse libre. Jy ai vu pas mal de triche, entreautre grce au tlphone.Mais au-del de cet aspect triche lors delexamen, quon se le dise tout de suite : AMOINS DE PASSER LEXAMEN EN BETA,TOUTES LES REPONSES SONT SURINTERNET. Toutes. On appelle a des dumps ou testking . Gratuits ou payants,ils sont trouvables en trois clics.

    Personnellement, jai toujours travaill commeun dingue mes certifications, au point dercrire des livres entiers. Malgr tout a, mes

    Programmez! a Juin 201510

    Les certifications pour dveloppeur, a vaut quoi?Pour mes 19 ans, jai intgr une cole prive me promettant dtre certifi par les plus grandesentreprises de ce monde. Mon manque de reconnaissance fut combl : enfin quelquun pourraitcertifier mes talents de dveloppeur. Enfin je pourrais accder des diplmes prouvant ma valeur.

    notes nexcdaient pas plus de 850/1000, avecdes nombreux checs sur un examen deplusieurs heures.

    A linverse, en tant que surveillant, montre enmain, plus de la moiti des candidats que jaivu passer russissaient le test en moins de 10minutes avec plus de 900/1000. Soit ce sontdes prodiges, soit ce sont des tricheurs. Et a,

    je ne supporte pas. Alors au-del de toutes cestriches qui accompagnent les certifications,quen est-il ? Admettons que quelquun passela certification sans tricher, quest-ce quil

    valide ?Cela valide votre capacit avaler des

    documentations trs techniques. Point.

    Mais les connaissances pures dunetechnologie font-elles de nous un meilleurdveloppeur ? Je ne pense pas.Etre un bon dveloppeur, cest tre capable dersoudre des problmes complexes avec lessolutions les plus simples et les plus optimalespossibles. Cest tre capable de comprendrede bout en bout la problmatique et dyrpondre grce la science, lingnierie mais

    aussi tous les domaines pouvant tre impacts(psychologie, conomie..). La science dunepart, car le mtier que nous exerons possdesouvent une grande part de science exacte,mais galement lingnierie, car il existesouvent de nombreuses solutions et il fautsavoir faire des compromis.Un ingnieur nest pas un expert qui donneraune solution magique ou apprise par cur enun temps record. Non, cest plutt quelquunqui sait quil existe rarement une rponsemiracle. Son ducation lui a enseign quunerponse en ingnierie sera souvent a

    dpend . La solution est miracle que si elleprend en considration un panel gigantesquede variables et il le sait.Pour preuve, pour avoir t responsable durecrutement de plusieurs dizaines dingnieurschez Microsoft et Amazon, aucune questiontechnologique na t pose aux candidatspour un poste dingnieur logiciel.Carnegie Institute of Technology a rcemmentannonc que 15% de votre russite personnelleest due vos connaissances techniques pures,les restes sont dus vos principes dHomme,

    votre capacit communiquer, analyser etdiriger. Je pense vraiment que ceci s'appliqueaussi notre mtier.

    Cela ouvre-t-il des portes ?Clairement. Deux cibles potentielles : ceux quiny connaissent rien, et donc, qui seront pats(clin dil au phnomne Gilbert pour ceuxqui ont connu), et les entreprises type SSII quivendent des ingnieurs ceux qui nyconnaissent rien :).Concrtement, a marche. Un multi-certifi sefera plus facilement embauch, voire mmengociera un meilleur salaire.

    Au final, cela sert quoi une

    certification ?Je pense quelles ont trois utilits, la premireest celle davoir un but atteindre. Pratiquepour se motiver apprendre une nouvelletechnologie. Cela vous permettra de valider le fait que vous lavez bien apprisepar cur. La seconde est dans le cas o vousen avez besoin dun point de vue business . Cest--dire que votre entreprisepeut avoir des privilges spciaux si ellepossde un certain nombre de certifis.Pour finir, cest avant tout quelque chose qui

    doit vous faire plaisir. Si vous avez unepassion, un attachement pour unetechnologie et que passer cette certificationvous rend heureux, alors cest une trs bonneraison de la passer.

    Q&A3 questions que lon me pose souvent :a Est-ce quune certification vaut un dipl-

    me ? Quon se le dise une fois pour toute :NON, NON, NON et NON. Un diplme recon-nu par ltat vous permettra de vous ouvrir denombreuses portes, que ce soit pour un visa

    ltranger, un poste dans le public ou toutsimplement un emploi. Certification et dipl-me sont incomparables.

    a Que valent les certifications honorifiques

    type Most Valuable Professional ? Il faut

    voir ces certifications comme un cadeau que

    fait une entreprise ses contributeurs pour les

    remercier de leurs investissements. Cela prou-

    ve clairement une chose : leurs passions. La

    passion peut souvent tre synonyme de com-

    ptence mais cela nest pas systmatique.

    a Une certification prouve-t-elle que je

    connais un produit ? Oui, cela prouve quevous connaissez tout ce que propose le pro-duit par cur ! Mais pour imager un peu mon

    Julien Dollon

    Fondateur de Think as an

    Engineer

  • 7/25/2019 Programme z 186

    11/92Programmez! a Juin 2015 11

    discours, cest comme connaitre toutes leslettres de lalphabet arabe, mais que pour-tant, vous ny compreniez pas un mot.

    Qu'aurait-il fallu valider?Et cest l que je vous vends un truc :). Jai bienconscience quavoir un discours aussi sectairesur les certifications et essayer de faire sa pubne font pas franchement bon mnage. Mais jaidepuis des annes adopt ce discours sur monblog et ceci ma pouss la rflexion.Et si je crais une certification diffrente ? Unecertification qui serait passe non pas surordinateur, mais avec des vrais ingnieurs enface face, comme un oral avec un tableaublanc, pendant 1 4 heures suivant le niveau.Ces ingnieurs seraient les meilleurs ingnieursde notre industrie (ingnieurs senior Microsoft,

    Amazon, Google, Apple, Facebook). Le but

    serait de valider cette quation : ingnieur =connaissances de la science informatique +capacit faire de lingnierie + expriencepasses prouvant que vous maitrisez lart descompromis.

    Jai donc cr la certification Think as anEngineer (http://certifications.thinkasanengineer.com).Cette certification nest ni un diplme, ni unpapier reconnu, ni une clef magique qui vousouvrira les portes des entreprises.

    Cinq types de personnes peuvent treintresss par ma certification :a Ceux qui ont besoin dun but pour se motiver

    et avancer. Voire mme du coaching.a Ceux qui veulent sentrainer aux entretiens de

    haut vol des grandes entreprises.a Ceux qui cherchent un feedback de profes-

    sionnels.a Ceux qui cherchent un award, une reconnais-

    sance personnelle.a Un recruteur qui souhaite valider un candidat.

    Trois niveaux existent, de lingnieur junior

    accessible aux tudiants et employs de 0 8ans dexpriences jusquau niveau senior avecplus de 10 ans de pratique (le temps de carrireest l titre informatif, on ne se base pas surce point).Les certifications ont un socle commun : lecode, qui peut tre prpar avant lentretien.Pour le reste, seul votre exprience et votretalent vous permettront de russir, surtout pourles certifications SDE II et Senior.

    Alors, si cela vous tente de vous battre pourune certification o la triche nest pas possible,

    o lensemble de ce qui fait de vous undveloppeur est analys, contactez-nous !

    u

    Tu as prsent une session autour des

    interfaces, des tendances actuelles et

    futures durant les TechDays, pourquoi une

    telle session ?

    Une des volonts de Microsoft avec cetvnement, cest dinformer et de prvenirles professionnels des grands changements venir. Le thme de cette anne tait entreautres lintelligence ambiante, les objetsconnects et le machine Learning. Aveccomme invit surprise, leur casqueholographique : lHoloLens. Je ne pouvaispas rver meilleurs sujets pour mexprimersur cette dition, car jai travaill dans unecellule de R&D sur des agents intelligents detype Cortana, je suis lorganisateur du plus

    grand Meetup franais traitant de la ralitvirtuelle et de la ralit augmente (Parisralits alternatives)! Cette session tait aussiloccasion de pointer quelques absurdits.Trop de produits misent sur leur cotinnovant, plutt que sur le besoin utilisateur:lusage qui na pas de sens, cest pardfinition un non-sens. Ma vision holistiquede linnovation cest de penser lhumaincomme un priphrique ou un capteurfaisant partie intgrante de l'cosystmeinformatique.

    Aujourd'hui, l'interface repose sur des

    concepts vieux parfois de 50 ans, comment

    expliquer cette longvit ?

    Lhomme est profondment kinesthsique, il

    a besoin de manipuler pour comprendre,puis il est visuel et enfin feignant!Dcortiquons le combo cran/clavier/souris :Kinesthsique et visuel : lorsque jenfonce latouche A de mon clavier, jai un feed-backsensoriel instantan. Dans la foule, mesyeux me confirment le bon droulement delopration lcran. Ce A qui saffiche, estune extension de ma pense. Cest direct,tangible et prdictible, comme linterrupteurdune lumire. Feignant, jai juste eu bouger le bout de mes doigts pour atteindre

    ce rsultat. Pourquoi abandonnerions-nousun tel systme ? Pour une kinect parexemple? Pour gesticuler 5 minutes afin desaisir une adresse mail? Une innovation quifonctionne, ne dune rencontre entre unepossibilit technique et un usage ou dunesimplification de lusage existant (fainantise,pensez la tlcommande ou aux capsulesNespresso).Cela laisse penser que ce qui remplacerale traditionnel clavier/souris/cran est unechose qui vous demandera encore moins

    Greg Madison :

    quels futurs pour nosinterfaces graphiques ?

    Peut-tre avez-vous entendu parl du projet 7thsens, finaliste ImagineCup 2009. Ce projet tait dj un concentrde ralits virtuelles et augmentes. Depuis, Greg na jamais cessde travailler sur ces nouvelles interfaces. Designer dinteraction, il est

    aussi un acteur actif des ralits alternatives. Nous avons voulu ensavoir un peu plus sur sa vision et comment linterface va voluer.

    Fig.1

  • 7/25/2019 Programme z 186

    12/92Programmez! a Juin 201512

    deffort, certainement une entit intelligente quiralisera vos tches votre place. Nous yarrivons !

    Le tactile a chang beaucoup de choses, des

    technologies comme Kinect aussi, quel est

    ton ressenti par rapport ces interfaces et

    ces nouvelles interactions ? Fig.1

    Des technologies comme la Kinect, Leapmotionetc. sont magiques, mais je pense que lon enfait nimporte quoi ! La promesse est desimplifier les interactions alors que dans lesscnarios daujourdhui on rajoute une couchede complexit. Comme nous sommes sur delexprientiel, il faut dabord se trouver unendroit bien prcis, puis, les grammairesgestuelles changent tout le temps, et de ce fait,les interfaces manquent de prdictibilit. Cest--dire, savoir ce quil va se passer avant mme

    que jai effectu une action. Pour biencomprendre regardez la vido Microsoftenvisioning the future ou celle dehttp://seemove.net/. Cest peut-tre trs joli lcran, mais les interactions senchanent et nese ressemblent pas. Il serait impossible de sesouvenir de toutes ces actions et de ce quil secache derrire. Cest lordinateur qui doitsadapter nos routines de vie en devenanttotalement invisible. Des technologies tellesque Witrack ou PointGrab permettentdimaginer des scnarios o cest un

    mouvement de slide de la main vers la tl quipermettra de passer la chane suivante, ou lemme geste vers une ampoule qui lallumera etlteindra.

    Dans les annes 1980 et surtout 90, plusieurs

    projets (avorts) ont circul autour des

    interfaces dites 3D (ou du moins avec des

    effets 3D), je pense au systme IBM, au

    Finder 3D d'Apple et au projet Hot Sauce

    (alias Project X) d'Apple, toutes ces tentatives

    furent avortes. Pourquoi revenir dessus

    aujourd'hui ?

    Effectivement cest une marotte dans le monde

    informatique, les interfaces spatialises souffrent

    dun seul problme pour tre pertinentes: la

    technologie sur laquelle on les rend disponibles.

    Prenez par exemple BumpTop 3D Fig.2 (youtube

    - BumpTop 3D Multi-Touch Desktop ) rachet par

    Google, jusqu prsent ils nen ont rien fait car

    pass leffet whaou vous ne gagnerez pas en

    productivit avec un cran standard.

    Maintenant, imaginez que vous puissiez rentrer

    rellement lintrieur de ce bureau 3D, et l,

    les interactions deviennent naturelles. Preuve en

    est Spacetop (MIT Medialab/Microsoft), uncran transparent qui permet davoir une

    vritable fentre sur son systme dexploitation

    et qui autorise son utilisateur interagir

    manuellement avec son bureau virtuel comme

    sil tait rel. Il y a une "skeuomorphismisation"

    logique de linterface ; un bloc-notes ressemble

    un bloc-notes et il se manipule comme tel.

    Limitation du rel tait peut-tre absurde dutemps de liPad mais il a permis de diminuer la

    courbe dapprentissage de ce nouveau support

    et demain, elle prendra encore tout son sens

    lorsque nous chausserons nos lunettes de

    ralit alternative et que nous manipulerons

    autant dobjets rels que virtuels. Dans tous les

    cas, toutes ces recherches tendent prouver

    que linformation est trique dans une fentre

    et que lcran est condamn disparatre plus

    vite que nous pourrions le penser.

    Quelle est finalement ton approche sur les

    changements de paradigmes, d'approches

    pour le design et les interfaces ?

    Mon approche cest justement de spatialiserles interfaces et de fondre totalementlinformatique dans les objets du quotidien. Lesobjets rels seront lis leurs objets virtuels.Jaborde notamment ce sujet dans maconfrence des Microsoft Techdays avec lunede mes crations : la Pandoras box Fig.3. Cedmonstrateur est juste une simple bote encarton qui, laide de capteurs dissimuls dansla pice, devient une extension de mon univers

    informatique. Concernant le plus groschangement de paradigme venir cest que,grce ou cause de linformatique ubiquitaire,

    il ny aura plus dinterfaces. Aujourdhui nous

    disons lordinateur ce quil doit faire, demaincest lui qui nous commandera et lon ne senrendra mme pas compte. Exactement commelorsque nous excutons les ordres de notreGPS. Quand Watson par exemple, lintelligenceartificielle dIBM, aura calcul toutes lesprobabilits pour organiser et optimiser votre

    journe, pris vos rendez-vous et commandvotre voiture autonome , vous naurez plusbesoin de toucher quoi que ce soit

    Tu travailles beaucoup autour des ralits

    alternatives. Est-ce l, lun des futurspossibles de nos interfaces, de nos

    approches socitales et des interactions

    homme - machine, homme - homme ?

    Je vais tre premptoire c'est LE futur desinterfaces. Par interfaces, jentends vecteurs decommunication entre lhomme et la machine. Si

    je rsume un peu, les crans vont treremplacs par des lunettes, casques voir deslentilles et ce sont les objets eux-mmes quivont devenir les interfaces informatiques. Lesinterfaces plus compliques seront remplacespar des holobots, des robots holographiques

    conversationnels comme dans le film HER.Je sais quil y a des priori cause des GoogleGlass. Google a cannibalis l'attention avec sessmartglass qui semblent tort tre un chec.Pourtant, si Sony, Epson, DAQRI, pour ne citerqueux, ont depuis plusieurs annes desappareils comparables lHoloLens deMicrosoft et que dailleurs Microsoft, Facebooket bien dautres investissent massivement,cest quil y a une raison. Cest un nouveaulevier de croissance pour toutes les industries,software et hardware. Si vous navez pas

    encore inclus ces scnarios dans vos stratgiesdinnovation, cest que vous tes pass ctde quelque chose ! u

    Fig.2

    Fig.3

  • 7/25/2019 Programme z 186

    13/92Programmez! a Juin 2015 13

    Comment es-tu tomb dans linformatique etplus spcialement dans le dveloppement ?Mon premier contact avec un ordinateur sest

    droul lcole primaire. Il sagissait dun

    Thomson TO7 (3) . Ce nom voque encore

    quelques souvenirs nostalgiques. Il y avait des

    jeux comme Lode Runner(4) et galement la pos-

    sibilit de programmer avec le langage

    Logo(5) : on pouvait dplacer une tortue lcran

    laide de commandes, dessiner des formes,

    etc. A la mme priode mes parents ont achet

    un Amstrad PC1512(6).

    J'ai commenc par installer quelques jeux puis,

    en pluchant l'pais manuel (car les ordinateurs

    de lpoque taient livrs avec des manuels), je

    me suis rendu compte qu'on pouvait faire autre

    chose que jouer... J'ai ainsi commenc

    bidouiller, recopier/modifier/tester des bouts

    de code et, surtout, faire planter l'ordinateur

    familial...

    Depuis cette priode, j'ai su que je voulais tra-vailler avec des ordinateurs et je n'ai jamais envi-

    sag une autre profession.

    Comment est ne lapp Podcast Addict ?

    En 2008 j'habitais en rgion Parisienne et j'aichang de boulot. Mon trajet quotidien est

    pass de dix minutes pieds trois heures en

    RER. J'ai donc cherch un passe-temps : lectu-

    re, jeux vidos, musique. Un jour, je suis tomb

    sur le blog de Scott Hanselman (7). En plus de pro-

    poser des articles intressants, j'ai dcouvertson podcast(8) Hansel Minutes dont jai tl-

    charg quelques pisodes sur mon PC, puis

    transfr sur mon tlphone pour les couter

    dans le train. J'ai trouv le concept du podcast

    trs intressant et, rapidement, j'ai pass mes

    trajets couter ce podcast, puis de nombreux

    autres ont suivi. Quelques annes ont pass et

    j'ai remplac mon tlphone par un HTC Desire,

    sous Android. J'ai donc dcouvert les apps,

    mais je n'ai pas t emball par les gestionnaires

    de podcasts proposs. Aprs quelques mois, j'ai

    eu envie de tester le dveloppement sous

    Android et j'ai commenc dvelopper mon

    propre gestionnaire. La premire version a t

    publie en janvier 2012 et ne proposait que les

    podcasts des regroupements NoWatch et Free-

    pod. Puis, avec les retours des utilisateurs, l'ap-

    pli a volu raison d'une nouvelle version par

    semaine.

    Pour toi, quest ce qui fait que lon aimetoujours et encore le dveloppement, latechnique ?L'informatique est un secteur en perptuelle vo-

    lution. Il y a sans arrt de nouveaux langages,frameworks, api qui sortent et que l'on peut

    explorer. De mme, lorsqu'on dveloppe un pro-

    Xavier Guillemane,crateur de Podcast Addict

    Pour soccuper durant sestrois heures de transportquotidien, Xavier coute des

    podcasts et se dcouvreune passion. Du par loffreexistante, il dveloppe son

    propre lecteur pour Android.Le succs ne se fait pas

    attendre. Lapp PodcastAddict(1) est tlcharge plus

    de 2 500 000 fois sur le PlayStore. Elle est mise--jourtrs frquemment, enfonction des remarques etdemandes des utilisateursqui, en retour, lui accordent

    lexcellente note de 4,5(2).

    Thierry Leriche-Dessirier

    Twitter :@thierryleriche

  • 7/25/2019 Programme z 186

    14/92

    Peux-tu nous prsenter ton quotidien enquelques mots ?

    Durant les trois premires annes du projet, monquotidien a t rythm. Au rveil, je vrifiais le

    nombre de crash, pour voir s'il n'y avait pas eu

    d'anomalies, la note moyenne de l'app, le

    nombre de ventes, les revenus publicitaires, etc.

    Pendant les transports, je rpondais aux mails,

    commentaires, questions, etc. Je refaisais une

    passe midi et soir. Ensuite, soire en famille avec

    un petit pisode d'une srie TV pour faire une

    coupure puis je passais le reste de la soire

    dvelopper l'application. J'y consacrais gale-

    ment du temps le weekend. Rcemment la situa-

    tion a chang. J'ai quitt la rgion parisienne et

    mon boulot pour me mettre mon compte et,

    ainsi, librer plus de temps pour travailler sur

    l'application... et pour la famille :)

    Mon quotidien a donc volu. Le matin, je me

    lve tt pour rpondre aux mails et commen-

    taires au calme avant que les enfants ne se

    14 Programmez! a Juin 2015

    duit, il y a toujours des bugs corriger, des per-

    formances amliorer, de nouvelles fonctions

    ajouter...

    Tu as gard un regard trs geek : gadget,veille techno, cest important pour ton job etta passion ?J'ai toujours t passionn par l'informatique et

    les nouvelles technologies. Je consacre donc

    pas mal de temps m'informer mais il s'agit

    avant tout d'un loisir. Cette veille est toutefois

    essentielle lorsqu'on est dveloppeur. Tout va

    trs vite. Les nouvelles versions d'Android se

    succdent, de nouveaux supports arrivent

    (Chromecast, Android Wear, TV, Auto, Google

    Glass, etc.), de nouveaux frameworks apparais-

    sent tous les 6 mois Il est donc indispensable

    de se tenir inform pour s'assurer que l'app

    continuera de fonctionner sur les nouvelles ver-

    sions et aussi dintgrer rapidement la compati-

    bilit avec les nouveaux supports.

    tre dveloppeur nest pas toujours facile :pression, volution constante, frustration desprojets et des chefs , cest quoi pour toitre dveloppeur aujourdhui ? Le job a-t-ilchang depuis tes dbuts ?C'est justement ce qui fait tout l'intrt du job ;-)

    On est constamment en train d'apprendre, de

    dcouvrir de nouvelles technos et de progres-

    ser. Etre dveloppeur, c'est surtout tre curieux,

    avoir envie d'apprendre et de progresser.

    Ce qui a pas mal chang depuis que j'ai com-menc travailler, c'est l'arrive progressive des

    mthodes agiles sur la plupart des projets, y

    compris sur de gros projets. Cela encourage,

    entre autres, livrer de nouvelles fonctions rgu-

    lirement, plutt qu travailler de longs mois sur

    une nouvelle version.

    De plus je trouve que a prend tout son sens

    lorsqu'on dveloppe des applications mobiles

    sur Android. On est en contact direct avec les

    utilisateurs. Le dploiement d'une nouvelle ver-

    sion se fait en quelques minutes et la mise en

    ligne est effective sous deux heures.

    Et en dehors du boulot, quaimes-tu faire ?Comment trouves-tu lquilibre entre travail,vie prive, passion, famille ?Mes loisirs tournent autour de l'informatique et

    des podcasts, mais jaime aussi regarder des

    films et des sries, lire et jouer des jeux vido

    lorsque je trouve un peu de temps. Comme je

    travaille dsormais depuis chez moi, il est assez

    dlicat de trouver un quilibre entre la famille et

    le travail. Les messages des utilisateurs et/ou les

    alertes serveurs peuvent arriver 24-7. Il faut que

    j'apprenne dtecter rapidement les urgenceset temporiser tout ce qui n'est pas critique afin

    de pouvoir passer du temps en famille.

    rveillent. Avec l'augmentation du nombre d'utili-

    sateurs, le support prend de plus en plus de

    temps... Comme je travaille de chez moi, je peux

    m'occuper un peu des enfants le matin et ame-

    ner ma fille l'cole. Ensuite, je suis au calme

    pour travailler sur les prochaines volutions de

    l'app avant le retour des enfants en milieu

    d'aprs-midi. L, comme a devient de suite plus

    bruyant, je refais un peu de support.

    La difficult est d'arriver s'arrter alors que les

    messages, eux, continuent d'arriver. Pour l'ins-

    tant, mes fins de soire et mes weekends sont

    encore consacrs au dveloppement de lapp...

    mais il va falloir que j'apprenne couper...

    Comment vois-tu ton job voluer ?Quand j'ai commenc travailler sur Podcast

    Addict, il s'agissait d'un petit projet pour tester le

    dveloppement Android, pour pouvoir accder

    mes podcasts plus simplement. Aujourd'hui lesrevenus engendrs par l'app me permettent de

    passer mon compte.

    Je vais consacrer les prochains mois faire vo-

    luer l'app, que ce soit pour corriger les bugs,

    amliorer les performances, mais aussi ajouter

    de nouvelles fonctionnalits. Avec les nouvelles

    versions d'Android qui se succdent et la multi-

    plication des supports (Android Wear, Android

    TV, Android Auto, Chrome, ) ce n'est pas le tra-

    vail qui manque.

    Cependant il est assez difficile de se projeter

    moyen/long terme tant le secteur est dynamiqueet volue rapidement.

    Des conseils aux tudiants et dveloppeursqui nous lisent ?N'hsitez pas travailler sur un projet perso. Le

    Web regorge de tutoriels sur tous les langages et

    frameworks existants.

    Si le dveloppement mobile vous intresse, le

    cot d'entre est trs bas. De plus, cest assez

    grisant de publier une app et de se dire qu'elle

    est accessible une heure plus tard par plus d'un

    milliard d'utilisateurs.

    En travaillant sur un projet perso, on apprend

    pas mal de choses dans des domaines varis,

    comme le design, le support utilisateur, le SEO,

    le marketing, les analytics, etc. Il est important

    d'tre sensibilis ces aspects, le plus dur tant

    de se lancer u

    (1) Podcast Addict : http://podcastaddict.fr

    (2) Moyenne de 4,5/5, pour 100 000 notes.

    (3) Thomson T07 sur Wikipedia : http://fr.wikipedia.org/wiki/Thomson_TO7

    (4) Lode Runner sur Wikipedia : http://fr.wikipedia.org/wiki/Lode_Runner

    (5) Langage Logo sur Wikipedia : http://fr.wikipedia.org/wiki/Logo_%28langage%29

    (6) Amstrad PC-1512 sur Wikipedia : http://fr.wikipedia.org/wiki/Amstrad_PC-1512(7) Blog de Scott Hanselman : http://www.hanselman.com

    (8) Podcast Hansel Minutes : http://www.hanselminutes.com

    Un logiciel n'est jamais

    termin, c'est pour cela que

    j'aime le dveloppement

  • 7/25/2019 Programme z 186

    15/92Programmez! a Juin 2015 15

    Maker Faire est le lieu par excellence dumouvement Maker et du faire soi-mme (DIY en

    Anglais). Mais ne croyez pas quil sagisseuniquement de technologies, mme si ellesprennent une part importante dans denombreux projets. On parlera de hautes

    technologies, mais aussi de Low Tech (bassetechnologie), nous rappelant au passage que latechnologie cote cher et que tout nest pasaccessible partout. ct des grands standsdIntel, Leroy Merlin, Conrad, etc., lhonneurtait aux Makers et leurs projets, parfoismonts loccasion du Maker Faire, parfois,issus dun long travail de dveloppement. Maisil y a toujours de lenthousiasme, de lnergie.

    Voil pourquoi nous aimons ce mouvementdenvergure; dans cet esprit, nous retrouvons lect bidouille des annes 1980 et 1990

    Sur le stand Microsoft, plusieurs projets duHackathon Zone61 taient prsents durant les2 jours. Et une vaste zone pour dronespermettait des dmonstrations. Nous avonsaussi beaucoup aim les ateliers de LegoCoding par Magic Makers, et bien entendu, lesateliers pour crer et souder son petit robotMaker Faire ! Dans la mme ide, il y avait aussi

    VoLAB pour sinitier la programmation et larobotique. Autre coup de cur (difficile de tousles citer) : le robot Buddy. Ce robot se veut uncompagnon au quotidien pour aider lespersonnes. Vous avez t nombreuses et

    nombreux sur notre stand Programmez ! pourchanger sur le magazine, le dcouvrir et nos projets : la tasse connecte pour GeekvNext, la mini station mdicale mobile et unebote meuh qui ne faisait pas meuh (merci lesbugs du capteur). Comme chez dautres

    Makers, nous avons eu quelques bugs et unpeu de casse matrielle : un cran OLED etplusieurs capteurs nont pas fini le salon ! Autrecuriosit : les Robots Cubes. Ce projet exploreles diffrentes manires de faire bouger descubes tout seul

    La BlueFrog : une plateforme de

    prototypage ultra compacte

    Voil un projet comme on les aime lardaction. Le prcieux tient dans une surface

    de 4,2 x 4 cm. Lobjectif est de crer trsrapidement des prototypes comme des objetsconnects, des drones ou tout autre objetindpendant. Il propose un cran OLED (trslisible et de belle qualit), une batterie LiPo, uneconnexion USB et une minuscule cartecontenant le processeur, le stockage, descapteurs et la connectivit ! Il fonctionne sur un

    ARM 32 bits (Cortex-M4) et embarque unstockage de 8 Mo utilisant un systme defichier FAT. Cette plateforme intgre, vue sataille, est impressionnante par les capteurs

    intgrs : pression, acclromtre 3 axes,gyroscope 3 axes, magntomtre, lumireambiante, proximit, temprature, audio ! Pour

    la partie rseau, nous avons le port USB et leBluetooth 4.0. Lextensibilit nest pas oublie

    avec des broches dextensions (GPIO, timers,I2C, SPI, etc.). Ct programmation, onretrouve C et C++. Le tout fonctionne un mini-systme (RIOT). Nous avons t impressionnspar cette nouvelle solution ! dcouvrir :http://www.la-bluefrog.io

    TheAirBoard : une mini

    Arduino que lon attend !

    Le monde Arduino accueille dj denombreuses cartes, plus ou moins grandes.LAir Board sera bientt une nouvelle arrivanteavec de nombreux atouts : 100 % compatible

    Arduino, une taille compacte mais pratique,faible consommation et longue autonomie. Ellea t dveloppe Grenoble. Solution idalepour les objets connects, les objetsembarqus. Les livraisons devraient dbutervers aot septembre Sur kickstarter,plusieurs kits de la carte sont toujoursdisponibles. Un des coups de cur de lardaction.

    Thingz ou comment construire en

    quelques minutes son objet lectronique

    Simple, ludique, amusant, voil comment Thingznous est apparu sur la table la fin de la 2e

    journe du Maker Faire. Le principe est trs

    Franois Tonic

    Programmez !

    La seconde dition du Maker Faire sest droule Paris les 2 et 3mai derniers, durant la Foire de Paris. Une mini Maker Faire staitdroule mi-avril Saint Malo. Plus de 700 Makers taient

    prsents et ont expos leurs projets dans tous les domaines :lectronique, robotique, culture bio, tissu

    Retour sur Maker Faire Paris 2015

    Une prothse Low Tech.

    F

    ranoisTonic

    35 000 visiteurs*+ 250 projets+ 50 confrences

    et ateliers+ 789 makers* chiffres donns par leFaShop

    Montages, impression 3D,

    oui, on peut toutfaire soi-mme !

    V

    alrieTurmel

    V

    alrieTurmel

    V

    alrieTurm

    el

    H-1 pour louverturede Maker Faire Paris.La tension monte.

    La foule se bouscule

  • 7/25/2019 Programme z 186

    16/92

    Evolution. Le corps proprement dit est imprim

    en 3D et le kit inclut dedans les lments

    lectroniques et mcaniques ncessaires. La

    ralisation est propre et de qualit, condition de

    bien faire le montage. Surtout, le tarif propos est

    trs intressant : 99,90

    ! La carte est disponiblesparment. Elle est compatible Arduino. Sa

    construction est trs propre et possde en

    standard une communication bluetooth (super

    pratique), de lUSB, mme si elle est lgrement

    moins puissante en tension dentre.

    MixStik : russir son cocktail !

    Voil un petit objet connect pratique et peuencombrant Il se compose dun stickembarquant toute llectronique et dune appmobile. Objectif : pour chaque cocktail, lappdonne la composition de celui-ci et surtout les

    hauteurs (quantit) pour chaque lment. Et lestick, servant de rgle, affiche en temps rel lescouleurs suivre ! Pratique ! Un SDK serapropos. Lobjet devrait tre lanc dansquelques mois. Site : http://mixstik.com/fr/

    Impression 3D : il suffit de choisir !

    Cette anne encore, limpression 3D est venueen force : marques franaises et trangres,modles artisanaux monter ou bas prix.

    Au-del, il y avait plusieurs servicesdimpression la demande et les

    accessoiristes et revendeurs. Petit tour :a Robox (prsente par Le Comptoir 3D) est une

    petite nouvelle sur le march franais. Plusieurs

    atouts : buse dimpression changeable trs

    facilement, mise en temprature automatique

    selon le filament (la bobine contient une pucedidentification), possibilit davoir deux buses

    dimpression et 2 bobines, temprature

    constante dans la zone dimpression. Limpri-

    mante est plutt compacte et autorise des

    impressions de 300 50 microns. Fonction int-

    ressante : pause/reprise en cours dimpression.

    a MiniLab : ce projet tudiant est de proposerde fabriquer des objets en Open Source avecdes outils accessibles tous, des cots lesplus accessibles possible en utilisant desmatriaux recycls, des cartes de types

    Arduino. Ce projet permet de crer desdcoupeuses laser, des mini-serres, etc. Onaime ++

    a Geekofyou : le site propose des formationssur de nombreux sujets dont limpression 3D,avec possibilit de monter soi-mme sonimprimante ! Mais le site propose de nom-breux autres sujets ! www.geekofyou.fr

    a 3D Slash : outil de modlisation qui se veutgrand public et surtout accessible des utili-sateurs non experts en 3D Disponible enmode Web ou sur son desktop.Plusieurs services dimpression 3D taient

    visibles durant les 2 jours, notons :Le service sculpteo qui permet denvoyer oude choisir un modle 3D et de le recevoirquelques jours aprs chez soi

    a 3D on Demand : plateforme pour le design3D et limpression 3D. Ce projet est passpar du crowdfounding pour le financement.

    a Cults : service franais et communautaire. Ilpermet de tlcharger et de vendre cespropres modles 3D.

    Pour dcouvrir ou redcouvrir les projets :

    http://www.makerfaireparis.com

    Vivement Maker Faire Paris 2016. u

    16 Programmez! a Juin 2015

    simple : des briques que lon connecte les unes

    aux autres pour construire un circuit, un objet.

    On dispose dune plaque daccueil sur laquelle

    on pose les briques lectroniques (bouton, led,

    etc.), puis on connecte le tout son ordinateur

    pour crire quelques lignes de codes Trois kits

    sont proposs de 39 89 !

    Des kits Intel Edison rellement

    disponibles avec Smartliving

    Il y a quelques mois nous avions prsent et

    test la carte Edison conue par Intel et taille

    pour lembarqu, le wearable. En attendant la

    carte Curie, Edison tait prometteuse, mais pas

    toujours facile de dmarrer en douceur avec la

    plateforme. Le constructeur propose aussi des

    kits pour Arduino et Raspberry Pi. Ces kits

    reposent sur les excellents modules et shields

    Grove (Seeedstudio). Chaque kit propose plus

    de 15 modules. Pratique pour dmarrer

    rapidement et sans utiliser le fer souder. Seulrel dfaut de ces kits, leurs prix ! Le kit Edison

    est propos 212 , celui ddi la Pi (modle

    Pi B+) est tout de mme 144,99 !

    Franchement cher mme si les modules sont

    de qualit. Site : http://www.smartliving.io/ . Le

    stand Intel proposait plusieurs communauts et

    constructeurs pour dmarrer: comme quoi, les

    cartes Intel (Edison ou Galileo) taient

    parfaitement dans le mouvement des objets

    connects et le Maker !

    Vive les bornes darcade !Souvenez-vous des bornes darcades descafs et bars ! Des tudiants dEpitech ontvoulu recrer une borne de jeux sur le principedu jeu musical Osu (pour un premier jeu).Prototype aprs prototype, la borne saffine !On adore ! Twitter : https://twitter.com/jubeatreturn

    e-nable the future : du Low Tech

    pratique et terriblement dactualit

    Voil une communaut qui mrite notre soutienet notre admiration. travers le monde, denombreuses personnes amputes dune main

    (plus ou moins svrement) nont pas accs des prothses : elles sont trop chres.

    Aujourdhui, une prothse se veut toujours plustechnologique et technique, mais les tarifssenvolent. L, pour 50 et grce limpression 3D, on construit trs rapidementune prothse. Elle est personnalisable etsurtout, la maintenance est simple et rapide.Dautre part, quand lenfant grandit, changer laprothse nest plus un problmeinsurmontable ! Admiration ++ de la rdaction.

    Kit PrintBot EvolutionVous rvez dun objet mobile autonome ? Le

    distributeur Premium exposait le Kit PrintBot

    Le groupe robotique sinstalle

    V

    alrieTurmel

    Impossible derater un coktail

    FranoisTonic

  • 7/25/2019 Programme z 186

    17/92

    Jai dbut le dveloppement des applications

    Android dans le but de les publier dans le store

    du Nokia X et ma premire difficult a t de

    choisir le support de dveloppement. Jai

    finalement opt pour Xamarin car cela me

    permettait de reprendre quasiment dans leur

    intgralit mes travaux raliss sous Windows

    Phone. Bien sr, si vous avez dautres outils,

    rien ne vous empche de les utiliser :)

    Quel est le sujet du jour?On va voir ensemble comment intgrer Flurry dans

    une application Android cre sous Xamarin. Les

    prrequis afin de raliser cette manipulation sont :

    a Visual Studio (celui que vous voulez tant que

    vous pouvez programmer) avec le module

    Xamarin ou Xamarin Studio,

    a Un compte Flurry afin de constater le rsultat.

    Compte que vous pouvez crer sur www.flur-

    ry.com et bien sr sur lequel vous allez crer

    un projet pour votre application/jeu.

    Linstallation des fichiersAvant de passer la ligne de code il y un peu de

    tlchargements et dinstallation de fichiers.

    Premier fichier tlcharger, FlurryAgent.cs qui

    se trouve sur https://github.com/jamesmonte

    magno/TasksSimplified/tree/master/TasksSimplified/H

    elpers et installer dans un rpertoire Helpers (

    crer) de votre projet.

    Deuxime fichier qui est FlurryAgent.jar qui se

    trouve sur https://github.com/jamesmontemagno/TasksSimplified/tree/master/TasksSimplified/J

    ars et installer dans un rpertoire Jars (

    crer) de votre projet.

    Le programmeIl est trs simple. Dans lvnement OnCreate

    de votre projet qui est dans le fichier

    MainActivity.s il faut ajouter le code suivant :

    Lintgration de loutil de statistiques Flurry dansvos applications Android dites via Xamarin Studio

    Helpers.FlurryAgent.OnStartSession(this, "le code de votre

    application");

    Et enfin crer un vnement OnStop dans ce

    mme fichier :

    protected override void OnStop ()

    {

    base.OnStop ();

    try{

    Helpers.FlurryAgent.OnEndSession(this);

    }

    catch{

    }

    }

    ConclusionNous avons vu comment intgrer Flurry dans

    une application. Durant ma priode dessai

    Xamarin, jai galement essay la rgie Airpush

    (un peu agressive mon got) et plusieurs

    contrles. Jai nanmoins pu tester et valider

    cette mthode par le biais dune application

    que je ne peux pas encore publier. u

    Franck N'GuessanCeriBoo - AutoEntreprise de

    dveloppement d'applications [email protected]

    1

    2

    3

    4

    1 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10

    10 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01100010

    110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 000

    0101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00

    0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110

    0111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01

    0 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0

    1000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 11

    0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110

    111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011

    10 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01100010

    110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000

    00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 0

    0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110

    111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011

    10 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01100010

    110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 00000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00

    0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110

    111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011

    10 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01100010

    110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 000

    0101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00

    0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110

    0111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01

    0 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0

    1000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 11

    0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110

    111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 0110 00101 0001 0000111 110 00 110 10 110 011

    10 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 01100010

    110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000

    00101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 00 110 10 110 011000101 0001 0000111 110 0

    ToutPROgrammez!sur une cl USB

    * tarif pour l'Europe uniquement. Pour les autres pays, voir la boutique en ligne

    Cl USB 2 Go. Photo non contractuelle. Test sur Linux, OS X,

    Windows. Les magazines sont au format PDF.

    Tous les numros de Programmez! depuis le n100.

    Commandez directement sur notre site internet : www.programmez.com

    29,90 *

  • 7/25/2019 Programme z 186

    18/92

    Toutes nos offres sur www.programmez.com

    PROG1

    86

    Offrelimite,valablejusquau29juin2015

    M. Mme Mlle Entreprise : I___I___I___I___I___I___I___I___I Fonction : I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I

    Prnom : I___I___I___I___I___I___I___I___I___I___I___I___I___I Nom :I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I

    Adresse : I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I

    Code postal : I___I___I___I___I___I Ville : I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I

    email indispensable pour l'envoi d'informations relatives votre abonnement

    E-mail : I___I___I___I___I___I___I___I___I___I___I___I___I___I___I @ I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I___I

    Je joins mon rglement par chque lordre de Programmez ! Je souhaite rgler rception de facture

    ABONNEMENT retourner avec votre rglement

    Service Abonnements PROGRAMMEZ, 4 Rue de Mouchy, 60438 Noailles Cedex.

    1 an 11 numros

    49

    seulement (*)

    2 ans 22 numros

    94,90

    1 an 11 numros

    64,90

    * Tarifs France mtropolitaine

    (*) Tarifs France mtropolitaine

    ABONNEZ-VOUS !

    Abonnement 1 an au magazine : 49

    Abonnement 2 ans au magazine : 79

    Abonnement spcial tudiant 1 an au magazine : 39Photocopie de la carte d'tudiant joindre Tarifs France mtropolitaine

    Offre abonnement + kit CPL dLAN 550

    Abonnement 1 an : 64,90 (au lieu de 128,90 , kit CPL dLAN offert)

    Abonnement 2 ans : 94,90 (au lieu de 158,90, kit CPL dLAN offert)

    Oui,je mabonne

    tudiant

    Spcial

    391 an 11 numros

    (*)

    Offres spciales d'abonnement ! Nos formules

    classiques

    Pour un abonnement,Devolo et Programmez!vous offrent un kitcomplet CPL

    dLAN 550d'une valeur de 79,90 Abonnement normal 49 ou 79

    + 15,90 de frais logistiques et postaux

    Attention :

    - cette offre est strictement limite laFrance Mtropolitaine et la Corse.

    - quantit limite, jusqu' puisement desstocks. Cette offre est susceptible de

    s'arrter tout moment.

    2 ans 22 numros

    79seulement (*)

    (au lieu de : 158,90 , abonnement 2 ans

    / 22 numros : 79 + 15,90 de fraislogistiques et postaux)

    (au lieu de : 128,90 , abonnement 1 an/ 11 numros : 49 + 15,90 de fraislogistiques et postaux)

  • 7/25/2019 Programme z 186

    19/92Programmez! a Juin 2015 19

    Vincent Nel

    Manager de l'innovation au sein du Hub

    d'innovation d'Epitech.

    LES ORIGINES

    Go est un langage de programmation cr par Google. Il est sorti en

    2009 en open source, et la version stable Go 1 est arrive en mars 2012.

    Son origine remonte 2007 lorsque ses crateurs, Rob Pike, Robert

    Griesemer et Ken Thompson, lpoque dveloppeurs C++, travaillaient

    sur un projet chez Google qui mettait 45 minutes compiler sur leur

    norme cluster. Aprs avoir assist une confrence sur les nouveauts

    apportes par le C++ 11, Rob Pike ne comprenait pas pourquoi le C++

    Standards Committee continuait annoncer plein de nouveauts au lan-

    gage alors quil estimait quil fallait le simplifier. Aprs la confrence, RobPike et Robert Griesemer ont commenc rflchir sur un nouveau lan-

    gage, bas sur du C et s'appelant go. Leur rsultat final tait loin du C

    et du C++ : garbage collector; pas de headers (fichiers .h), pas de dpen-

    dance circulaire, compilation par package, pas de

    templates, pas dexceptions, utilisations destruct

    au lieu de class, pas darithmtique des pointeurs

    et encore bien dautres diffrences Fig.1. Lors de

    son annonce en 2009, le langage a fait couler

    beaucoup dencre, tant en bien quen mal, notam-

    ment cause des partis pris (que nous verrons

    plus tard). Malgr tout, beaucoup de dveloppeurs

    python ou ruby ont apprcis Go grce sa syn-taxe simple et ses performances proches du C ;

    beaucoup diront que le Go est du C moderne.

    Aujourdhui, le Go est en version 1.4.2 avec une

    popularit grandissante, notamment grce Docker qui est dvelopp

    en Go.

    COMMENT IL FONCTIONNE ?Go est multiplateforme (Linux, OS X, FreeBSD, NetBSD, OpenBSD,

    Plan9 et Windows) et multi-architecture (32 bits, 64 bits et ARM). Comme

    dit prcdemment, il est dans la ligne du C mais a opr de grands

    changements visant rendre le dveloppement plus court, simple et

    scuris (pas de segfaults).

    Voici une liste non exhaustive des diffrentes spcificits du langage :

    a Une possible dclaration de variables via infrence de type (x := 0 au

    lieu du classiqueint x = 0;),

    a Un temps de compilation trs court,

    a Un systme de gestion de packages (go get ) et un systme de docu-

    mentation automatique de tous les packages publics (http://godoc.org),

    a Un systme de concurrence intgr au langage : des processus lgers

    (goroutines), des canaux de communication (channel), et le mot clselect

    qui permet de faire lquivalent dunswitch sur diffrents channels,

    a Mot clgo qui permet de lancer une fonction en tche de fond,

    a Pas dhritage de classe mais un hritage par interface,

    a Un systme de compilation qui gnre des binaires sans dpendances

    externes (du coup les binaires peuvent faire plusieurs Mo, contraire-ment au C o les binaires sont gnralement trs lgers),

    a Pas de surcharge doprateur,

    Go, cest quoi ?

    a Pas de dpendances circulaires,

    a Pas dassertions,

    a Pas d'arithmtique de pointeurs,

    a Pas de programmation gnrique,

    a Gestion de la mmoire automatique (avec un garbage collector).

    POURQUOI CODER EN GO ?Premirement, le Go est un langage qui a t pens pour s'excuter sur

    des machines modernes ayant plusieurs processeurs et donc grant le

    multi-threading. Il est noter que le Go excelle dans les programmes

    concurrents. Petit rappel, la concurrence est le fait d'excuter du code en

    arrire-plan, mais pas forcment dans un autre thread. En effet, il ne faut

    pas confondre le paralllisme et la concurrence : la concurrence est le

    fait davoir plusieurs processus indpendants s'excutant en tche de

    fond tandis que le paralllisme est le fait d'excuter simultanment diff-

    rents calculs possiblement lis entre eux.

    Une autre rponse cette question est simple : compar dautres lan-

    gages modernes comme Python, Ruby, PHP et JS, il est bien plus perfor-

    mant. Aujourdhui, lorsquon cherche dvelopper des applications per-formantes dans des langages qui ne sont pas trs rapides de base

    (comme le PHP par exemple), il faut toujours essayer doptimiser, parfois

    au dtriment de la lisibilit du code. En Go, cest linverse : le langage est

    performant, donc vous pouvez faire en sorte de rendre votre code le plus

    lisible possible. Ce qui nest pas difficile puisque le Go a une syntaxe

    simple mme si elle diffre de la plupart des langages sinspirant du C

    tels que le C++, Java, C# etc.

    De plus, Go est install avec un outil nomm gofmt qui permet de forma-

    ter le code Go directement la norme de Go. Cela semble tre un dtail,

    mais finie la guerre entre ceux qui mettent laccolade ct de louvertu-

    re dun scope ou la ligne. Cet outil va mme supprimer les point-vir-

    gules que vous aurez mis par habitude (eh oui, il ny a pas besoin de ;

    en Go la fin de chaque ligne). Du coup, vous naurez normalement que

    peu de problmes lire le code dautres personnes sur Internet puisquil

    aura le mme format que votre code.

    De plus, la gestion de dpendances externes en Go se fait de manire

    trs simple. Par exemple, il existe un dpt sur Github nomm Pi qui

    appartient lutilisateur Gocarina. Ce dpt contient une bibliothque Go

    que je veux utiliser. Il suffit alors de faire appel la commande get qui

    est incluse avec loutil go lors de linstallation de Go :

    go get github.com/gocarina/pi

    Je peux alors limporter normalement directement depuis mon code :

    import github.com/gocarina/pi

    Il ny a pas besoin de fichiers de configuration : bye bye bower.json, pac-

    kage.json, requirements.txt et autres. Ensuite, le langage a une gestion

    Gopher,la mascotte de Go

    Fig.1

    (De gauche droite) Robert Griesemer, Rob Pike et Ken Thompson

  • 7/25/2019 Programme z 186

    20/92Programmez! a Juin 201520

    automatique de la mmoire avec un ramasse miette, donc on ne perd

    pas son temps librer la mmoire. Puis, le Go possde une biblio-

    thque standard moderne avec des analyseurs json, xml, csv, une biblio-

    thque rseau trs complte (le package net/http), un package pour

    grer le temps et bien dautres choses encore.

    Enfin, un grand atout est que le langage est compil et gnre un binaire

    statiquement li, beaucoup plus lourd que dautres langages (un simple

    hello world fait plus de 2000 Ko) et quil est donc totalement autonome,

    contrairement aux langages scripts type Python ou PHP, o il est nces-

    saire davoir tout le code de lapplication pour pouvoir l'excuter.

    LES CAS DUSAGESLe Go a t conu par Google pour raliser des applications serveurs et

    est principalement utilis pour raliser des APIs. Il existe un nombre

    incalculable de bibliothques qui aident au dveloppement dAPIs REST

    (pour citer quelques exemples il y a gorilla/pat, gorilla/mux, martini, gin,

    gocarina/pi). Go peut aussi tre un trs bon choix pour rduire les

    cots lis lhbergement (la socit Iron est pass de 30 serveurs tour-

    nant sur du Ruby On rails seulement deux serveurs en Go, un seul

    aurait suffi mais ils avaient besoin dun deuxime serveur pour la redon-dance). Il est galement possible de crer des interfaces graphiques, et

    mme de raliser des jeux en Go, mais le langage nest pas rellement

    fait pour a, mme sil est possible de le faire; il vaut mieux utiliser des

    langages et des frameworks plus adapts (Java ou .NET pour des inter-

    faces graphiques lourdes ou C++ pour le jeux vido).

    Par contre, le Go convient parfaitement pour le dveloppement de mouli-

    nettes plus ou moins grosses pour traiter des donnes. Si avant vous uti-

    lisiez un langage de script quelconque pour ce faire (Python, Perl ou

    autre), je ne peux que recommander de les faire en Go pour tirer parti

    de ses performances et de sa bibliothque standard trs fournie, que a

    soit pour du traitement de fichiers JSON, CSV, XML, binaires ou autre, le

    Go pourra les traiter sans problmes.

    STRUCTURE ET SYNTAXESyntaxe de dclaration en GoGnralement, la premire chose qui trouble lorsquon se met au dve-

    loppement Go, cest la dclaration de variables ou de fonctions.

    Commenons par parler du C. Par exemple, pour dclarer un int en C, il

    suffit de faire :

    int x;

    A peu prs tout le monde comprend quici, on dclare x tant un int. En

    C, gnralement, on met le type gauche et lexpression droite. Donc,

    les dclarations suivantes :

    int *p;

    int a[3];

    spcifient quep est un pointeur sur int car *p est de type int et que a

    est un tableau de int car a[3] est de type int. Prenons maintenant le cas

    de fonctions :

    int main(int argc, char *argv) { /* */ }

    Ici, on voit que la fonctionmain retourne un int et prend deux paramtres :

    argc de type int et argv de type pointeur sur char.

    La syntaxe du C est simple et astucieuse et fonctionne trs bien pour les

    types simples mais elle peut vite devenir troublante. Prenons le cas des

    pointeurs sur fonctions en C :

    int (*fp)(int a, int b);

    Ici, fp est un pointeur sur fonction car si on crit lexpression (*fp)(a, b),

    vous allez appeler une fonction qui retourne un int. Mais quest ce qui se

    passe si un argument de fp est une fonction ?

    int (*fp)(int (*ff)(int x, int y), int b)

    a commence tre difficile lire Enlevons le nom des paramtres

    pour plus de clart :

    int (*fp)(int (*)(int, int), int)

    Ce nest pas vraiment plus clair, et on commence vite oublier que cest

    une dclaration de pointeur sur fonction. Et l, prenons le cas extrme, si

    fp retournait un pointeur sur fonction :

    int (*(*fp)(int (*)(int, int), int))(int, int)

    L, cest mme quasiment impossible de voir que cette dclaration

    dclare une varialbe fp. On pourrait samuser rendre la chose encore

    plus complique (et si les paramtres taient des structures plutt que

    des int ? ou mme des pointeurs sur fonction eux-mmes ?), mais ce

    nest pas le but. Reprenons les premiers exemples de C en Go :

    var x int

    var p *int

    var a [3]int

    Ces dclarations sont plus naturelles : on lit de gauche droite je dcla-

    re une variable x de type int, je dclare une variable p de type pointeur

    sur int, je dclare une variable a de type tableau de int.

    Maintenant, regardons les fonctions :

    func main(argc int, argv [] string) int { /* --- */ }

    Tout comme dans lexemple prcdent, la lecture se fait de gauche

    droite : je dclare une fonction main prenant comme paramtres argc

    de type int et argv de type tableau de string et retournant un int.Et attention, si on prend lexemple extrme de C :

    var f func(func(int,int) int, int) func(int, int) int

    Il est vrai que a nest pas trs clair mais cette dclaration a le mrite

    d'offrir au lecteur la certitude que lon dclare une variable f. Et si on

    samuse la lire, cela donne :

    f est une fonction prenant en premier paramtre une fonction qui prend

    en paramtres deux variables de type int et retournant un int, et comme

    deuxime paramtre, un int et retourne une fonction prenant en para-

    mtres deux int et retourne un int.

    Difficile lire haute voix, certes, mais crire a reste vraiment plus

    simple que les pointeurs sur fonction (si si, croyez-moi).

    Les types builtina Les chanes de caractres notes string,

    a Les booleans notes bool,

    a Les nombres entiers qui sont de types uint, uint8, uint16, uint32,

    uint64, int8, int16, int32, int64, byte (alias pour uint8), rune (alias pour

    uint32), uint (32 ou 64 bits en fonction du systme) et int (mme taille

    que uint),

    a Les nombres flottants : float32 et float64,

    a Les nombres complexes : complex64 et complex128,

    a Les tableaux : [32]int,[64][32]float64 etc.,

    a Les slices, qui sont des tableaux tailles variables (ils peuvent tres

    agrandis aprs leur instanciation) : []int, []float64 etc.,a Les pointeurs : *int, *[4]int etc. Par dfaut, les variables sont passes

    par copie une nouvelle fonction, sauf lorsque la variable est de type

  • 7/25/2019 Programme z 186

    21/92Programmez! a Juin 2015 21

    pointeur, interface, channel ou slice,

    a Le type nil qui est lquivalent du null en java. Par dfaut, une map, un

    pointeur, un slice, une interface sont nil,

    a Les fonctions (le Go considre les fonctions comme un type, elles peu-

    vent donc tre passes en paramtres dautres fonctions) : func(int,

    string, int) (int, string, int) (fonction prenant un int, une string et un int en

    parametre et retournant un int, une string et un int). Il est a noter que les

    fonctions commenant par une majuscule sont exportes (publiques), et

    celles commenant par une minuscule ne le sont pas (elles sont prives),

    a Les structures (qui font office de classe en Go).

    Exemple de dclaration dun nouveau type Animal en Go via une structure :

    type Animal struct {

    Nom string

    pattes int // Comme les fonctions, le champ pattes ne sera pas export car il commence

    par une minuscule

    }

    Les channels, qui sont un type qui permet de communiquer entre diff-

    rentes goroutines. Ils peuvent tre apparents une Queue. Par

    exemple, un channel de boolean est not chan bool. Nous en verronsplus tard, Les maps : map[string]string,map[string]bool,map[int]string

    etc., Les interfaces qui nont pas besoin dtre explicitement implmen-

    tes par un type. Prenons un exemple :

    type Chien interface {

    Aboie() string

    }

    type Teckel struct {

    Nom string

    }

    func (teckel *Teckel) Aboie() string {

    return ouaf

    }

    Dans cet exemple, on dclare une interface Chien. Un Chien est nimpor-

    te quel type qui implmente la mthodeAboie() string. De ce fait, le type

    Teckel qui possde une mthode Aboie, qui ne prend pas de paramtres

    et qui retourne une string, implmente linterface Chien.

    Le dernier type noter, qui est lun des plus importants, est le type error.

    Ce type est en fait une interface :

    type error interface {

    Error() string

    }

    En go, il ny a pas dexceptions. De ce fait, chaque appel une fonc-

    tion qui peut chouer, on retourne une erreur en plus du rsultat attendu.

    Par exemple, voici le prototype de fonction qui permet de crer un fichier

    (cette fonction est prsente dans le package os) :

    func Create(name string) (*File, error)

    Hello WorldMaintenant, voyons tout de suite quoi ressemble un simple Hello World

    en Go :

    package main

    import (

    fmt

    )

    func main() {

    fmt.Println(Hello World)

    }

    Dcomposons le programme :

    a package main : cela indique que cest le package principal du program-

    me, ilcontient la fonctionmain qui est le point dentre du programme,

    a import (fmt) reprsente la liste des packages imports, ici nous utilisons

    le package fmt(pour formatted I/O) pour crire sur la sortie standard,

    a func main : reprsente la fonction main (qui ne retourne rien) ; cest la

    premire fonction appele lors du dmarrage du programme,

    a fmt.Println(Hello World) appelle la fonction Println du package fmt;

    cette fonction affiche donc Hello World ainsi quun retour la ligne.

    Il faut savoir que les accolades DOIVENT tre au mme niveau que la

    dclaration de fonction. Sinon, le programme ne compile pas.

    Nous allons parcourir dautres petits exemples de code pour voir les sp-

    cificits du Go par rapport aux langages plus classiques :

    Dclaration de fonctions

    // Fonction qui ne retourne rien

    func doSomething() {

    // Do something...

    }

    // Fonction qui prend un paramtre et qui ne retourne rien

    // Notez que le nom de la variable et son type sont inverss par rappor t aux langages plus classiques

    func doSomethingWithThat(foo string) {

    // Do something...}

    // Fonction qui prend plusieurs paramtres et qui retourne un paramtre

    // Notez que foo et bar sont tous les deux des strings

    // Notez galement que le type retourn par la fonction est indiqu juste avant douvrir laccolade

    func computeSomething(foo, bar string, baz int) int {

    // Do something

    return 42

    }

    // Fonction qui retourne plusieurs paramtres (oui oui cest possible)

    func returnsALotOfThings() (int, int, string, int, float64) {

    return 24, 24, toto, 42, 42.42

    }

    Dclaration de variables et infrence de type

    var strSalut string = salut

    strSalutations := salutations

    var thisIsTrue bool = true

    thisIsFalse := false

    // Par dfaut, le type de number sera de int

    number := 42

    // Par dfaut, le type de numberFloat sera un float64

  • 7/25/2019 Programme z 186

    22/92Programmez! a Juin 201522

    numberFloat := 42.42

    // Les slices sont instancis laide du mot cl make

    var sliceOfInt []int

    sliceOfInt = make([]int, 0) // sliceOfInt est maintenant un slice de int de taille 0

    // Pour ajouter des lments un slice, on utilise le mot cl append

    sliceOfInt = append(sliceOfInt, 12, 24, 42)sliceOfInt[0] == 12

    sliceOfInt[1] == 24

    sliceOfInt[2] == 42

    sliceOfInt[3] // crash du programme puisque le tableau ne contient que 3 lments

    // Exemple de map:

    m := map[string]int{

    reponse: 42,

    question: 21,

    }

    reponse := m[reponse] // reponse == 42question := m[question] // question == 21

    // Dfinition dun objet Animal

    type Animal struct {

    Nom string

    Pattes int

    }

    func main() {

    // Dclaration de variables de type Animal :

    var chien Animal // chien est de type Animal

    chien.Nom = Rex

    var chat *Animal // chat a la valeur nil par dfaut car cest un pointeur non instanci

    chat.Nom = Tom // crash du programme car chat == nil

    // Instanciation dun objet *Animal avec le mot cl new

    var poisson *Animal = new(Animal)

    poisson.Nom = Bubble

    // Instanciation dun object *Animal avec linfrence de type (ma mthode prfre)

    souris := &Animal{

    Nom: Jerr y,

    Pattes: 4,}

    // Cela marche aussi avec une structure qui nest pas un pointeur :

    cheval := Animal{

    Nom: Jolly,

    Pattes: 4,

    }

    Structures de contrles

    func main() {

    // Dclaration dun tableau de int de 5 lments :

    arrayInt := []int{1, 2, 3, 4, 5}

    // Les conditions nont pas de parenthses en Go

    if arrayInt [1] == 2 {

    } else if arrayInt [3] != 2 {

    } else {

    }

    // Dclaration dun tableau de stringsarrayString := []string{salut, monsieur}

    // On peut switch sur des strings :

    switch arrayString[0] {

    case salut:

    // Le break est implicite en Go

    case monsieur:

    // Si on veut excuter le bloc suivant, il faut utiliser le mot-cl fallthrough

    fallthrough

    case madame:

    }

    // Tout comme les conditions, les boucles nont pas de parenthses :

    for i := 0; i < 10; i++ [

    }

    // On peut boucler sur un array :

    for index, valeur := range arrayString {

    fmt.Println(index, valeur)

    }

    // Dans lordre, a affichera 0 salut et 1 monsieur

    }

    Mthodes et Hritage

    // Dfinition dun objet Animal

    type Animal struct {

    Nom string

    Pattes int

    }

    // Dfinition dune mthode Crier pour le type Animal :

    func (animal *Animal) Crier() string {

    return "AHHHHH!"

    }

    // Dfinition dun objet Chien qui hrite dAnimal :

    type Chien struct {

    Animal

    }

    // Surcharge de la mthode Crier pour le type Chien :

    func (chien *Chien) Crier() string {

    return "OUAF!"

    }

    func main() {

  • 7/25/2019 Programme z 186

    23/92Programmez! a Juin 2015 23

    // Instantiation dun pointeur sur Chien

    chien := &Chien{

    Animal{

    Nom: "Rex",

    Pattes: 4,

    },

    }

    chien.Crier() // retourne OUAF!

    chien.Animal.Crier() // retourne AHHHHH!

    }

    COMMENT CODER EN GO ?Pour se faire une ide du langage, Go propose Un Tour de Go qui permet

    daborder le langage progressivement avec des explications et la possi-

    bilit de lancer son programme directement depuis le navigateur. Le tour

    se passe ici : http://go-tour-fr.appspot.com/welcome/1

    Sinon, pour vraiment coder en Go, il faut commencer par linstaller. Il

    faut le tlcharger ici : http://golang.org/dl/.

    Pour les amateurs de linux, il est souvent disponible dans les dpts

    mais cest trs souvent une vieille version, il est donc conseill de le tl-charger quand mme (ou de le compiler soit mme, cest trs rapide et

    ne demande que git et gcc).

    Installation de GoSur Windows, le plus simple est de linstaller via le fichier MSI ; il suffit de

    suivre linstallation et le binaire go sera mis automatiquement dans le

    PATH. Sur OS X, il suffit de linstaller avec le fichier PKG, de suivre lins-

    tallation, et, comme sur Windows, go sera mis automatiquement dans le

    PATH. Faites attention, il faudra rouvrir les terminaux ouverts lors de lins-

    tallation pour que ce changement soit pris en compte.

    Quel IDE pour Go ?Le Go nest pas sorti avec un IDE. Du coup, il existe un grand nombre deplugins pour des IDE dj existants. Normalement, vous devriez pouvoir

    coder en Go directement avec votre diteur prfr, mme sil existe un

    IDE ddi au Go. Voici la liste des plugins et IDE ddis au Go :

    a Emacs et lego-mode. Si vous avez lhabitude dEmacs, a peut suffire

    largement (mes six premiers mois de dveloppement sur Go ont t

    faits sur Emacs). Ce plugin permet davoir une coloration syntaxique, un

    formatage du code avant chaque sauvegarde, pouvoir accder la

    documentation de nimporte quel package directement depuis emacs

    et encore dautres fonctionnalits. Disponible ici :

    https://github.com/dominikh/go-mode.el

    a Vim et le plugin vim-go. Ce plugin trs puissant inclut les fonctionnalits

    suivantes : coloration syntaxique, autocompltion, pouvoir lancer le

    code directement depuis lditeur, etc.. Le plugin est tlchargeable ici :

    https://github.com/fatih/vim-go

    a Sublime Text et le