dimanche 20 août 2017

Apprendre linux de Zéro - 1


Salut à tous mes abonnés.
Comme prévu la vidéo suivante est prête.
Dans cette vidéo je vous parle un peu de la provenance de linux.
Ensuite le concepteur du premier kernel linux.
La vidéo suivant sera consacré à la particularité de linux.
Retrouvez cette vidéo sur twitter:
https://twitter.com/ouattaraelhadj2


 

jeudi 26 janvier 2017

Des Statistiques des mots les plus utilisés dans le coding

Fichiers .js : JavaScript
this (1er ; 177,4 millions)
function (2e ; 134,2 millions)
if (3e ; 127,7 millions)
var (4e ; 122,4 millions)
return (5e ; 100,4 millions)

Le top 20 est complété successivement par : the, i, a, to, value, else, for, true, length, data, false, name, null, options, is

Fichiers .jsx : React (JavaScript)
this (1er ; près de 497 000)
div (2e ; environ 408 000)
return (3e ; environ 316 000)
React (4e ; environ 247 000)
import (5e ; environ 225 000)

Le top 20 est complété successivement par : from, props, function, var, react, className, render, PropTypes, if, state, require, const, setState, else, false. Le mot true arrive à la 21e place.

Fichiers .css : CSS
color (1er ; 54 millions)
border (2e ; 47,3 millions)
background (3e ; 42,9 millions)
margin (4e ; 39,3 millions)
left (5e ; 37 millions)

Le top 20 est complété successivement par : width, font, top, padding, content, right, before, btn, height, bottom, none, position, 1px, webkit, ui.

Fichiers .html : HTML
class (1er ; 402,7 millions)
a (2e ; 363,4 millions)
li (3e ; 288 millions)
div (4e ; 279,9 millions)
td (5e ; 239,7 millions)

Le top 20 est complété successivement par : href, span, html, nbsp, tr, ul, p, name, script, id, code, type, text, table, TD.

Fichiers .java : Java
import (1er ; 102,7 millions)
return (2e ; 68,8 millions)
public (3e ; 63,4 millions)
if (4e ; 48,5 millions)
the (5e ; 48,1 millions)

Dans la suite du top 20, nous avons dans l'ordre : org, String, this, new, null, int, java, void, i, Override, com, final, private, util, a.

Fichiers .py : Python
self (1er ; 89,3 millions)
if (2e ; 28,9 millions)
def (3e ; 28 millions)
return (4e ; 23 millions)
import (5e ; 21 millions)

Le top 20 est complété dans l'ordre par : the, in, None, for, from, True, a, to, is, else, not, s, name, of, False. Le motand vient à la 21e place.

Fichiers .lua : Lua
end (1er ; 6,5 millions)
local (2e ; 2,2 millions)
then (3e ; 1,7 million)
if (4e ; 1,6 million)
return (5e ; 1,5 million)

Le top 20 est complété successivement par : function, msg, self, true, else, data, to, id, player, false, not, the, for, nil, and.

Fichiers .php : PHP
this (1er ; 92 millions)
return (2e ; 55,4 millions)
if (3e ; 54,9 millions)
array (4e ; 49,8 millions)
the (5e ; 44,3 millions)

Dans la suite du top 20, nous avons successivement les mots suivants :function, php, class, div, public, to, a, param, string, else, id, of, name, false, type.

Fichiers .rb : Ruby
end (1er ; 40 millions)
do (2e ; 8,6 millions)
def (3e ; 6,9 millions)
the (4e ; 5 millions)
to (5e ; 4,3 millions)

Dans la suite du top 20, nous avons :if, should, it, require, a, t, new, true, name, config, else, user, class, is, self.

Fichiers .cpp : C++
if (1er ; 111,2 millions)
define (2e ; 105,5 millions)
the (3e ; 89,7 millions)
return (4e ; 85,2 millions)
int (5e ; 61,5 millions)

Dans la suite du top 20, nous avons les mots : const, void, include, to, h, i, for, struct, of, a, else, is, in, endif, this.

Fichiers .pl : Perl
my (1er ; 3,8 millions)
the (2e ; 2,6 millions)
self (3e ; 2 millions)
if (4e ; 1,5 million)
return (5e ; 1,4 million)

Dans la suite du top 20 des mots les plus fréquents, nous avons dans l'ordre : use, to, a, _, sub, of, for, in, shift, is, s, else, and, ticket, Self.

Fichiers .cs : C#
summary (1er ; 27,3 millions)
System (2e ; 22,2 millions)
using (3e ; 19,6 millions)
public (4e ; 16 millions)
return (5e ; 14,9 millions)

Le top 20 est complété successivement par les mots : this, the, if, new, param, string, name, null, int, get, to, void, value, var, set.

Fichiers .scala : Scala
import (1er ; 1,9 million)
val (2e ; 1,3 million)
_ (3e ; 1,1 million)
def (4e ; 718 000)
case (5e ; 649 000)

Le top 20 est complété par les mots :org, the, scala, new, String, a, package, else, com, if, to, this, for, of, in.

Fichiers .go : Go
err (1er ; 17,7 millions)
if (2e ; 15,9 millions)
return (3e ; 14,3 millions)
nil (4e ; 13,2 millions)
the (5e ; 8,5 millions)

Dans la suite du top 20, nous avons les mots suivants : string, s, func, c, t, v, for, to, i, in, error, type, _, is.

Fichiers .sql : SQL
NULL (1er ; 8,2 millions)
NOT (2e ; 5,1 millions)
DEFAULT (3e ; 3,3 millions)
INTO (4e ; 3,1 millions)
INSERT (5e ; 3 millions)

Le top 20 des mots les plus utilisés en SQL est complété par : VALUES, id, SET, KEY, int, varchar, TABLE, unsigned, name, PRIMARY, CREATE, table, for, utf8, ENGINE.

Fichiers .rs : Rust
self (1er ; 3 millions)
let (2e ; 2,1 millions)
fn (3e ; 1,7 million)
the (4e ; 1,6 million)
pub (5e ; 1,5 million)

Le top 20 des mots les plus utilisés en Rust est complété par : mut, a, use, if, to, for, Some, _, of, match, is, new, in, None, tcx.

Certains mots sont communs à la plupart des langages, c’est le cas par exemple de if, else, for, true, false, return. D’autres par contre relèvent de la spécificité du langage concerné. On remarque par exemple avec CSS, une forte récurrence des mots comme color, border, right, left, top, font, width, height contrairement aux autres langages.

On peut également noter que la récurrence de certains mots est due à leur utilisation dans les commentaires. C'est le cas par exemple de the, a, to, of. D'autres encore apparaissent fréquemment à cause de leur utilisation dans les opérations ou expressions. C'est le cas par exemple de a, i. Ils ne sont donc pas forcément des mots clés ou fonctions utilisés dans un langage.

Sources : Github, les mots les plus utilisés, developper.com

vendredi 13 janvier 2017

Java en tête pour les offres d'emploi 2016

Choisir un langage ou une technologie, cela peut se faire par passion, par intérêt... ou par pragmatisme. En effet beaucoup d'entre nous ont choisi de vivre du métier de Développeur et donc choisir un langage ou une technologie peut dépendre aussi de la demande du marché de l'emploi.

Nous avions effectué une études sur le mois 2016. En ce début d'année, c'est l'occasion d'actualiser cette étude en l'élargissant à l'année 2016 entière et en prenant en compte certaines des remarques qui ont été faites. Ainsi, nous avons décidé d'inclure quelques langages supplémentaires. En revanche, SQL reste exclu ; en effet bien qu'il s'agisse évidemment d'une compétence importante, ce n'est pas un langage auto-suffisant pour créer un programme et donc cela n'a pas semblé pertinent de le mettre au même rang que les autres.

Sans plus attendre, voici le graphique indiquant la répartition des demandes en langages pour l'année 2016.



Les proportions sont sensiblement les mêmes que sur la précédente étude. Les programmeurs Java peuvent danser la java devant la dominance de cette compétence, mais ce n'est pas surprenant devant la fréquente utilisation d'avoir une influence à l'avenir.

JavaScript s'obtient une solide seconde place ; ce langage originellement pensé pour apporter un peu de dynamisme à un HTML statique a su grandir en importance au fur et à mesure de la complexité du Web et a su se trouver de nouveaux domaines d'application, en particulier avec node.js.

PHP, qui n'est plus le langage pour développeurs Web en robe de chambre qu'il était et qui évolue régulièrement vers un langage toujours plus riche et solide, s'offre une bonne troisième place, bien que sa popularité soit en forte baisse par rapport aux années précédentes.

On trouve ensuite C# en quatrième place, talonné par Python que certains considèrent comme le langage à la mode du moment. Il faut dire que le langage au serpent a actuellement les faveurs de la majorité des enseignants.

Il est cependant encore plus intéressant de comparer l'évolution de la demande sur les 4 dernières années.




2013201420152016
Java23,8%24,4%25,1%28,1%
JavaScript20,5%18,8%20,8%19,2%
PHP26,6%24,2%18,6%17,0%
C#12,7%10,2%9,3%9,4%
Python4,1%5,6%9,2%8,2%
C++6,5%5,7%6,8%5,9%
C1,1%2,7%2,3%2,5%
Perl0,6%1,6%1,4%2,2%
Ruby1,5%2,6%1,9%2,0%
Swift< 0,1%0,1%0,9%1,8%
VBA< 0,1%1,8%1,4%1,2%
VB.NET< 0,1%1,1%1,2%0,8%
Delphi0,7%0,7%0,2%0,6%
R< 0,1%< 0,1%0,4%0,5%
Go< 0,1%< 0,1%0,2%0,3%
TypeScript< 0,1%< 0,1%< 0,1%0,2%
Flash1,7%0,5%0,4%0,1%
D< 0,1%< 0,1%< 0,1%< 0,1%
Objective C0,4%0,1%0,1%< 0,1%

On peut constater notamment que PHP est une technologie de moins en moins demandée, alors qu'elle était numéro 1 des langages demandés en 2013. À l'inverse, la demande en Python est deux fois plus forte de nos jours qu'il y a quatre ans. Beaucoup d'autres technologies sont plutôt stables au fil des ans, et quant à Flash, la descente vers les oubliettes technologiques semble inéluctable.

Après, au-delà de l'attrait personnel pour certaines technologies ou langages, on pourrait être tenté d'en déduire que pour trouver du travail, il serait tentant de se focaliser sur les technologies populaires comme Java et éviter Flash comme la peste. Or, cela ne semble pas forcément aussi simple.

En effet s'il y a beaucoup d'offres Java, et beaucoup de développeurs Java en recherche d'emploi, cela veut dire qu'on a l'embarras du choix au niveau des offres, mais obtenir un poste peut se trouver ardu puisqu'on se trouve en concurrence avec de nombreux autres postulants.

D'un autre côté, s'il y a quelques rares postes dans des technologies rares ou démodées, et encore moins de développeurs compétents dans ces technologies rares ou démodées, ces derniers seront recherchés activement et auront beaucoup de chances d'obtenir un poste lorsqu'un tel poste rare sera ouvert.


Quel est votre avis en commentaire ?

 Préférez-vous subir la concurrence des autres développeurs sur une technologie populaire ou préférez-vous être la pépite disponible pour le poste rare ?
 Pensez-vous que la demande en Java risque d'évoluer dans les prochaines années ?

S'aviez vous que le fonctionnement de YouTube est basé sur Python

Le serveur front-end sur lequel s’appuie YouTube.com ainsi que les API 
YouTube sont principalement écrits en Python et servent des millions de requêtes par seconde. « Le front-end de YouTube tourne sur CPython 2.7, nous avons donc mis beaucoup d'efforts à améliorer l'exécution et à adapter notre application pour qu'elle fonctionne de façon optimale. Ces efforts ont porté beaucoup de fruits au fil des ans, mais nous nous heurtons toujours au même problème : il est très difficile de faire en sorte que les charges de travail simultanées aient un bon rendement sur CPython », a expliqué l'ingénieur YouTube Dylan Trotter dans un billet de blog.

Bien entendu, pour y remédier, les ingénieurs ont cherché une alternative du côté d’autres environnements d’exécution Python. « Après quoi nous nous sommes posé cette question folle : et si nous implémentions un runtime alternatif optimisé pour le service en temps réel ? ». À ce moment là, Go semblait être le meilleur choix de plateforme « étant donné que ses caractéristiques opérationnelles cadrent avec notre cas d’utilisation (par exemple des threads légers) ». « Python dans Go semblait naturel et c’est ainsi que Grumpy est né », a-t-il continué. 

Trotter a décrit Grumpy comme étant un runtime Python expérimental pour Go. « Il traduit le code Python en programmes Go et ces programmes transpilés s'exécutent de façon transparente dans le runtime de Go. Nous avions besoin de prendre en charge une grande base de code Python existante, il était donc important d'avoir un haut degré de compatibilité avec CPython (quirks et le reste) ». L’objectif est de faire de Grumpy une alternative de runtime de remplacement pour tout projet purement Python.

Deux choix de conception, qui ont eu un impact non négligeable, ont été fait :


  • tout d’abord, les ingénieurs ont renoncé au support des modules d’extension de C : cela signifie que Grumpy ne peut pas exploiter la richesse des extensions Python C existantes, « mais il nous a donné beaucoup de flexibilité pour concevoir une API et une représentation d'objet qui évoluerait pour les charges de travail parallèles. En particulier, Grumpy n'a pas de verrou d'interpréteur global et il tire parti du recyclage de la mémoire de Go pour la gestion de la durée de vie des objets au lieu de compter les références » ;




  • ensuite, Grumpy n’est pas un interpréteur : les programmes Grumpy sont compilés et liés comme n’importe quel autre programme Go. « L'inconvénient est une perte dans la flexibilité de développement et de déploiement, mais en contrepartie il offre plusieurs avantages. S’il crée des opportunités d'optimisation au moment de la compilation via une analyse de programme statique, le plus grand avantage est que l'interopérabilité avec le code Go devient très puissante et simple: Les programmes Grumpy peuvent importer des paquets Go comme les modules Python ! ».


Trotter a averti que, bien que Grumpy vient d’être publié en open source, il en est encore au stade alpha : « la plupart des constructions de langage et de nombreux types intégrés de base fonctionnent comme on s'y attend [mais] il y a encore des trous à combler - de nombreux types intégrés manquent à l’appel, des méthodes et des attributs, des fonctions intégrées sont eux aussi absents et la bibliothèque standard est pratiquement vide ».

Dans une réponse a une requête qui demandait si un support de Python 3 était prévu tandis que le projet gagne en maturité, Trotter a avancé sur GitHub que « nous avons une vaste codebase Python 2.7, raison pour laquelle nous nous sommes concentrés dessus. J’aimerais bien qu’il y ait un support de Python 3, c’est juste une entreprise fastidieuse », avant de suggérer à ceux qui sont intéressés par un support de Python 3 de faire un fork de Grumpy.

L’une des raisons qui peut également avoir motivé au développement de Grumpy est la date de vie de Python 2.7 qui est prévue pour 2020. Au lieu de faire une mise à jour de son codebase Python 2.7 vers Python 3, Google semble planifier de convertir au moins une partie de son code Python en Go au cours des prochaines années.