1 Accueil

R++, the Next Step? est un projet de développement d’une nouvelle implémentation du langage et environnement d’analyse statistique R. Il est compilable, intègre en natif la gestion du parallélisme et permet l’exploitation des bases de données de grande dimension. R++ est un également un langage objet. Par analogie avec C++ et C, il s’appelle R++.

Logo (un animal sympathique ?)

Accès direct a toutes les sections. Graphes sympas

2 Le projet
2.1 Présentation
What is R?

R is a free software environment for statistical computing and graphics. C'est un logiciel largement utilisé et soutenu par une communauté active. Il présente de nombreux avantages :
• Gratuité et libre accès au code (licence GNU GPL)
• Intégration rapide des nouvelles méthodes statistiques (un chercheur en statistique qui invente une méthode peut lui-même fabriquer un package permettant de l'utiliser).
• Nombreuses fonctionnalités : vous cherchez une méthode statistique ? Elle existe probablement sous R.

Why R++?
R présente aussi certaines limites :
• C'est un langage non compilé (et donc moins rapide que ce qu'il pourrait être)
• Il ne gère pas le parallélisme.
• Il ne gère pas les données de grande dimension.
A l'heure de l'exploration du génome, des données spatiales, de cohortes gigantesques nécessitant des temps de calcul important, ces points posent de vrais problèmes à la communauté. R++, the Next Step? est donc un projet de développement d’une nouvelle implémentation de R. Son objectif est de dépasser les limites de R tout en conservant ses forces

What is R++?
R++ est une nouvelle implémentation de R. Ses principales caractéristiques sont les suivantes :
• R++ est intrinsèquement parallèle,
• il permet de gérer de grandes bases de données,
• il est compilable,
• il utilise un éditeur de texte / environnement de travail évolué
• il intègre (optionnellement, mais nativement) la gestion d’objet.

2.2 Différences entre R et R++
Nous avons a coeur de produire un logiciel aussi proche de R que possible. Cependant, dans un but d'efficacité, nous serons contraints d'introduire quelques différences :
• Typage : R++ est un langage fortement typé. La déclaration des types est implicite dans un certain nombre de cas. Par exemple :
créé une variable a, lui donne le type integer et lui affecte la valeur 3.
Par contre, le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
a <- 3
a <- "bonjour"
n'est pas valide puisque la deuxième ligne tente d'affecter une chaîne de character a une variable de type integer.
• Manipulation des données : le concept de dataFrame est une grande idée, centrale dans le logiciel. Par contre, ils ne sont pas toujours facile à manipuler. De nouvelles fonctions de manipulation des dataFrame sont ajoutées (reshapeWide et reshapeLong au lieu de reshape).
• Langage objet : R++ est un langage objet. A ce titre, la syntaxe S4 de R ne sera pas reprise dans R++.
• Uniformisation des pratiques : certaines pratiques ne sont pas homogènes sous R. Par exemple, la syntaxe des tests est nomDuTest.test(argument). Selon les cas, argument=(a~b), argument=(a,b) en encore argument=(table(a,b)). R++ se base sur des guidelines et uniformise les pratiques.
• Editeur de texte moderne : ca n'est pas vraiment une différence de langage, mais c'est néanmoins un point important : R++ est nativement intégré dans un éditeur de texte offrant toutes les options modernes (coloration syntaxique, détection automatique des bornes, indentation, détection de certaines erreurs pendant le codage...)
La liste complète des compatibilités et incompatibilité entre R et R++ est disponible ici.

2.3 Licence

Le coeur de R++ est sous licence MPL.
Les licences des packages ajoutés au noyau par les utilisateurs sont librement choisies par leur concepteurs, dans le respect de l'Open Source.

2.4 Road map
...

3 La communauté
3.1 L'équipe

Christophe Genolini
• Formation : Maitrise de math / thèse d'informatique / Master de bio-statistique
• Situation actuelle : Maître de Conférences en bio-statistique, INSERM U 1027.
• Rôle dans R++ : "touche à tout"
• Participe aux axes : Gestion générale du projet, rédaction des documentations.
• Compétences : R, LaTeX, enseignement.
• Langages de programmation : R, C (un peu), Java (un peu)
• Allergies : Les mails sans réponse.

Bruno Falissard
• Formation : X, thèse de stat, psychiatre
• Situation actuelle : professeur biostatistique Paris-Sud, INSERM U669
• Rôle dans R++ : articulation du langage avec le "bon usage" statistique
• Participe aux axes : Statistique, rédaction des documentations

Jérôme Collet
• Formation : ENSAE, thèse de mathématiques appliquées
• Situation actuelle : chercheur à EDF
• Rôle dans R++ : articulation du langage avec l'usage statistique en entreprise (données mal structurées, besoin de fiabilité, etc.)
• Participe aux axes : conseils sur les calculs statistiques, les liens avec SQL, la manipulation des dates.

Gaétan Hains
• Formation : BSc Math appliquées D.Phil. Informatique.
• Rôle dans R++ : consultant parallélisme. Un peu d'OCaml.
• Compétences : algorithmes et langages parallèles.
• Langage de programmation : OCaml.
• Allergies : C++

Pierre Courtieu
• Formation : thèse d'informatique
• Situation actuelle : Maître de Conférences en informatique, C.N.A.M. Paris
• Rôle dans R++ : implémente un prototype en ocaml + élaboration de la sémantique
• Participe aux axes : heu... chais pas
• Compétences : sémantique des langages, preuve (Coq), programmation.
• Langages de programmation : Ocaml, C (un peu), Java (un peu)
• Allergies : Sans.

3.2 Les instituts partenaires
A voir

3.3 Valeurs & stratégies

Notre objectif est la production d'un logiciel de statistique gratuit et performant, accessible à tous, qui nous permettrait d'aller plus loin dans nos analyses statistiques.

C'est clairement un projet ambitieux. Afin de mettre un maximum de chances de notre côté, nous avons adopté différentes stratégies.
• Ne pas « réinventer la poudre » : Dans tous les domaines, des langages existent. Ils ont été réfléchis, ont évolué et sont le plus souvent devenus des outils équilibrés, adaptés aux besoins des utilisateurs. R++ suit globalement la même syntaxe que R, mais lorsque sur un point spécifique il en diffère, il s'inspire de ce qui fonctionne bien dans d'autres langages.
• Travailler avec des experts : Les problèmes comme la gestion du parallélisme et des grandes dimensions ne sont pas l'exclusivité des logiciels statistiques, ce sont des problèmes globaux qui se posent dans tous les champs disciplinaires utilisant l'informatique. Pour les résoudre, nous avons contacté des experts de chaque domaine (équipe parallélisme, équipe base de donnée, équipe ergonomie,...) afin d'avoir une vision d'ensemble des techniques existantes et des techniques d'avenir.

4 R++ et vous
4.1 Envie de participer ?
Vous aimez programmer ? Écrire des grammaires ? Faire des sites web ? Dessiner ? Animer des communautés ?
Vous trouvez que R++, the Next Step? est un fabuleux projet mais qu'il n'avance pas assez vite ?
Rejoignez la communauté !
Nos besoins sont très variés, comme en témoigne les cases vides du tableau.
:-)
En ce moment, nous cherchons plus spécifiquement :
• De programmeurs C ou C++
• Un Eclipsien
• Un dessinateur
• Un web master
Si vous êtes intéressé, n'hésitez pas à nous contacter, soit par mail, soit via notre forum ou notre chat.

4.2 Démonstration
Sous quelle forme ? Vidéo ? Animation ?

4.3 Comment télécharger et installer ?
A faire

4.4 Tutorial
A faire

4.6 Comment nous contacter ?
Par mail : <christophe.genolini@u-paris10.fr>
Notre forum : http://www.developpez.net/forums/f18...s/langage-rpp/
Notre chat : URL irc://freenode/rpp

4.7 Ils ont dit de R++:
R++, what else?
Georges Clowney

Allo, tu fais des stat et t'as pas R++ ? Non mais allo, quoi !
Nabila

R++ est un fabuleux projet, dès que j'ai fini la guerre en Syrie, je demande au congrès en financement pour vous aider.
Barack Obama

Je sens de la force dans ce projet
Luc Skywaker

Tin, ça à l'air super ton truc !
Matthieu Bouvié (un voisin de mon père)