Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le langage de programmation V sera disponible en open source à partir de juin 2019
Et serait rapide, léger et capable de traduire vos projets C/C++

Le , par Bill Fassinou

557PARTAGES

18  0 
L’équipe de construction du langage V annonce la disponibilité de sa version open source pour le mois de juin 2019. Le langage est présenté comme étant un langage très rapide et qui donne beaucoup plus de pouvoir aux développeurs. V dispose de caractéristiques très intéressantes selon son créateur. Sa syntaxe serait très semblable à celle de Go, le langage de programmation créé par Google et il est également influencé par d’autres langages tels que Oberon, Rust et Swift. Tel que défini par sa documentation, V est un langage de programmation compilé à typage statique conçu pour la construction de logiciels maintenables.

Le langage de programmation a été créé par Alex Medvedniko, un développeur néerlandais qui se dit énormément attaché à la simplicité et à la performance. Selon Alex, tout ce que vous pouvez faire avec les autres langages existants est également faisable avec V. Alex a indiqué avoir créé le langage V pour mener à bien son projet Volt. En parlant de Volt, il fait référence à un client de bureau natif pour Slack, Skype, Matrix, Telegram, Twitch et de nombreux autres services. Inutile donc de disposer d'une douzaine d'applications pour atteindre tous vos contacts sur différentes plateformes. Selon son concepteur, Volt est une application de bureau qui pèse dans les 250 Ko et consomme peu de ressource processeur et RAM.


Elle est également présentée comme pouvant gérer des centaines de milliers de messages sans retard et utilise des API d’interface utilisateur native (Cocoa sur Mac OS, API Win32 sur Windows, GTK+ sur Linux). Bien que simple, cela donne beaucoup de pouvoir aux développeurs, indique Alex. Tout ce que vous pouvez faire dans d'autres langues peut être fait en V. Il dispose de caractéristiques qui pourraient attirer de nombreux développeurs notamment sa rapidité et sa sécurité, sa légèreté et sa capacité à traduire l’entièreté de vos projets C/C++. La totalité du langage V et sa bibliothèque standard sont inférieures à 400 Ko et sa documentation renseigne que V peut compiler 1,5 million de lignes de code par seconde par cœur de processeur. Les principales caractéristiques du langage de programmation V sont présentées comme suit :

  • une compilation rapide : V compile 1,5 million de lignes de code par seconde par cœur de processeur ;
  • sécurité (pas de globales, immutabilité par défaut, fonctions partiellement pures, etc.) ;
  • traduction C/C++ : V peut traduire votre projet C/C++ et vous offrir de la sécurité, de la simplicité et une compilation jusqu'à 200 fois plus rapide ;
  • compilateur de 400 Ko avec zéro dépendance : le langage V entier et sa bibliothèque standard font moins de 400 Ko. Vous pouvez construire V en 0,3 seconde ;
  • rechargement de code à chaud : obtenez vos modifications instantanément sans recompiler. Étant donné que vous ne perdez pas de temps non plus pour retrouver l'état sur lequel vous travaillez après chaque compilation, vous économiserez de précieuses minutes de votre temps de développement.

La documentation de V renseigne que le langage bénéficie d’une syntaxe simple et donc permet une prise en main plus que facile. « V est un langage très simple. Parcourir sa documentation vous prendra environ une demi-heure et à la fin, vous apprendrez à peu près tout le langage », lit-on. Dans la communauté des développeurs, on estime que la rapidité de V va beaucoup contribuer à son développement. « Les développeurs aiment la rapidité et la simplicité », disent-ils. Néanmoins, continuent-ils, il reste énormément de travail à accomplir sur V pour prétendre atteindre la rapidité du C qu’ils considèrent étant le langage le plus rapide.

D’après d’autres, la création et l'évolution d’un langage de programmation sont une tâche difficile. Il faut également beaucoup de temps pour écrire un ensemble correct de bibliothèques et éliminer la plupart des rides avant de pouvoir les utiliser en production. Sans quoi le langage n’évoluera pas, expliquent-ils. Selon ce qu’ils disent, au fur et à mesure que plus de personnes se lancent dans la programmation, de plus en plus de langues se profilent à l’horizon. Ils estiment que l’idée de V est bien sûr la bienvenue, mais sans un travail acharné et une communauté à l’appui, le langage ne fera pas long feu. « Je me demande quels seront les langages les plus populaires dans 10 ans », s’est interrogé l’un d’entre eux.

La version open source du langage sera publiée au mois de juin 2019, mais vous pourrez avoir un accès anticipé dès le mois de mai si vous rejoignez la communauté en tant que membre premium pour un minimum de 5 dollars. En attendant, vous pouvez accéder à la documentation ainsi qu’à la FAQ dédiée à ce dernier pour en savoir davantage sur V et sa syntaxe.

Source : Billet de blog

Et vous ?

Que pensez-vous de ce nouveau langage de programmation ?
Serait-il vraiment capable de rivaliser avec Go, C++ et autres comme l'indique son développeur ?

Voir aussi

Python est sacré langage de programmation de l'année 2018 par l'index TIOBE, deviendra-t-il le langage le plus utilisé des programmeurs ?

Le logiciel de programmation graphique Scratch passe à la version 3.0 et intègre des extensions

Éducation : Python bientôt langage officiel de programmation en France ? Un projet dans le cadre de la réforme du Bac et du lycée

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Pyramidev
Expert confirmé https://www.developpez.com
Le 17/03/2019 à 2:46
Je viens de lire la documentation actuelle du langage V.
De ce que je connais du langage Go, V se rapproche du langage Go surtout sur ces deux critères : la simplicité et le sous-typage structurel.

Pour illustrer le sous-typage structurel du langage V, je vais prendre un extrait de la documentation de V et écrire le code équivalent en Go, en Rust et en C++.

Voici un extrait de la documentation du langage V :
Interfaces

Code V : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct Dog {} 
struct Cat {} 
 
fn (d Dog) speak() string { return 'woof' } 
fn (c Cat) speak() string { return 'meow' } 
 
interface Speaker { 
	speak() string 
} 
 
fn perform(s Speaker) { println(s.speak()) }  
 
fn main() { 
	dog := Dog{} 
	cat := Cat{} 
	perform(dog) // ==> "woof"  
	perform(cat) // ==> "meow"  
}

A type implements an interface by implementing its methods. There is no explicit declaration of intent, no "implements" keyword.

V interfaces are very efficient. There's no dynamic dispatch.

Dog et Cat sont automatiquement des sous-types de l'interface Speaker, car ils ont chacun une méthode speak compatible avec celle déclarée dans l'interface Speaker.

Sur ce point-là, c'est comme le langage Go (à part le fait que le dispatch se fait à la compilation et pas au runtime). Voici un code équivalent en Go que l'on peut exécuter en ligne dans la page The Go Playground :
Code Go : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package main 
  
import ( 
	"fmt" 
) 
  
type Dog struct {} 
type Cat struct {} 
  
func (d *Dog) speak() string { 
	return "woof" 
} 
  
func (c *Cat) speak() string { 
	return "meow" 
} 
  
type Speaker interface { 
	speak() string 
} 
  
func perform(s Speaker) { 
	fmt.Printf("%s\n", s.speak()) 
} 
  
func main() { 
	var dog Speaker 
	var cat Speaker 
	dog = &Dog{} 
	cat = &Cat{} 
	perform(dog) 
	perform(cat) 
}

En Rust, par contre, il faut écrire explicitement que Dog et Cat sont des sous-types du trait Speaker. Voici un code équivalent en Rust que l'on peut exécuter en ligne dans la page Rust Playground :
Code Rust : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
struct Dog {} 
struct Cat {} 
  
trait Speaker { 
	fn speak(&self) -> &'static str; 
} 
  
impl Speaker for Dog { 
	fn speak(&self) -> &'static str { 
		"woof" 
	} 
} 
  
impl Speaker for Cat { 
	fn speak(&self) -> &'static str { 
		"meow" 
	} 
} 
  
fn perform(s: &Speaker) { println!("{}", s.speak()); } 
  
fn main() { 
	let dog = Dog{}; 
	let cat = Cat{}; 
	perform(&dog); // ==> "woof"  
	perform(&cat); // ==> "meow"  
}

En C++, si on fait de la programmation par templates, on n'a pas besoin de déclarer une interface Speaker. Voici un code équivalent en C++ que l'on peut exécuter en ligne dans la page Coliru :
Code C++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> 
#include <string_view> 
  
struct Dog { 
	std::string_view speak() const { return "woof"; } 
}; 
  
struct Cat { 
	std::string_view speak() const { return "meow"; } 
}; 
  
template<class Speaker> 
void perform(Speaker const& s) { std::cout << s.speak() << '\n'; }  
  
int main() { 
	const auto dog = Dog{}; 
	const auto cat = Cat{}; 
	perform(dog); // ==> "woof" 
	perform(cat); // ==> "meow" 
	return 0; 
}
Dans ce code C++, c'est lorsque le compilateur compile perform(dog) qu'il instancie la fonction perform. Et c'est quand il instancie perform qu'il vérifie si l'écriture s.speak() est bien valide pour le type Dog. Comme il n'y a pas besoin de déclarer explicitement une interface, on peut voir ça comme une sorte de duck typing à la compilation, ce qui a ses avantages et ses inconvénients.

Sur le site du langage V, dans la page qui compare V avec d'autres langages, on peut voir la comparaison suivante avec le langage Go :
V is very similar to Go, and these are the things it improves upon:
- No global state
- Only one declaration style (a := 0)
- No null
- No undefined values
- No err != nil checks (replaced by option types)
- Immutability by default
- Much stricter vfmt
- No runtime
- Much smaller binaries
- Zero cost C interop
- No GC
- Fearless concurrency (no data race guarantee at compilation)
- Generics
- Cheaper interfaces without dynamic dispatch
- Centralised package manager

À première vue, le langage V me semble mieux conçu que le langage Go.

Cependant, puisque le langage V veut être simple (comme le langage Go), la contrepartie est que l'on n'a pas beaucoup de fonctionnalités. Par exemple, dans le site, je n'ai rien vu pour faire de la métaprogrammation. (En Rust, on peut définir des macros.)

@Matthieu Vergne : selon la doc, le langage V a bien les generics. Tu peux jeter un coup d'œil. La doc est encore toute petite.
9  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 16/03/2019 à 23:03
Ne pas confondre simplicité et simplisme. La simplicité de Go implique notamment l'absence de génériques ou équivalent, ce qui impose pas mal de code redondant qu'on n'a pas dans les langages en ayant, comme Java. Si ce langage est encore plus simple, c'est qu'il doit en faire encore moins. En poussant jusqu'au bout la simplicité, au final en on viendrait à faire une simple machine de Turing, qui peut tout faire aussi. Le prix à payer en est cependant que, pour faire des choses évoluées, il faut beaucoup plus de code. Que le langage soit simple et qu'il permette de tout faire veut généralement dire que c'est au développeur de faire l'effort que le langage ne fait pas.

J'avoue ne pas avoir lu plus que ce que dit l'article, mais si c'est pour me retrouver avec un langage qui me donne plus de travaille à faire, ça n'a aucun intérêt. Pas question de retourner à l'assembleur. Très certainement que, comme Go s'oriente sur des applications hautement concurrentes, ce langage s'oriente vers un usage spécifique, justifiant ainsi les choix de simplifications effectués. Je prendrais donc cette affirmation de "pouvoir tout faire" avec des grosses pincettes : si c'est techniquement possible, je ne doute pas que certaines applications se feront mieux avec un autre langage que V.
6  0 
Avatar de codec_abc
Membre confirmé https://www.developpez.com
Le 17/03/2019 à 12:49
quand on voit la liste de features que le langages propose on peut se demander si l'auteur nous vend pas du rêve. Faire mieux que Go Rust et C++ par une seule personne qui ne semble pas avoir de background en design de langage ça me semble (un tantinet) surréaliste. Sans compter que l'auteur n'a pas encore finalisé pleins de parties, notamment la partie multithreading qui est censé être "data race free" a la compilation tout en étant plus facile à utiliser que Go et Rust.

Je vais enfoncer le clou mais ça me gêne pas mal que certaines news soient juste du copier-coller issues de Reddit ou HacknerNews sans approfondir ce qu'il y a dessous. Autant, quand une information viens d'une entreprise connu on peut se dire que le contenu ne sera pas complètement pipeauté même si une prise de recul est toujours la bienvenue. Mais là on a un particulier qui nous avance quelque chose que l'on peut pas tester et qui est censé être bien meilleur que la concurrence en terme de langage. Et pourtant l'article ne prend pas vraiment de recul alors que ça sent un peu l'arnaque.
7  1 
Avatar de epsilon68
Membre éprouvé https://www.developpez.com
Le 17/03/2019 à 18:56
encore un autre langage...
je suis déjà java, kotlin, C++, javascript, typescript, objective C++, swift et python...
sans compter les frameworks, Qt, cocoa, javafx, react native et j'en passe

ca vaut vraiment le coup de faire un autre langage?

il y a de quoi saturer honnetement
4  0 
Avatar de TheLastShot
Membre extrêmement actif https://www.developpez.com
Le 23/06/2019 à 21:23
A+, B, C/C++, D, R, ... et maintenant V. Ils vont nous faire toutes les lettres de l'alphabet ?
J'espère qu'un moment ils trouveront autre chose pour nommer les nouveau langage, sinon on va devoir se taper l'alphabet grec, russe, arabe, et pourquoi ps des kanji...., on ne va plus s'y retrouver.
4  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 17/03/2019 à 13:54
Citation Envoyé par oooopppp Voir le message
Salut, je viens du monde du web mais j'adore la programmation.
De fait j’aimerais beaucoup apprendre un langage de bas niveau mais lequel ...
Ta question n'ayant aucun rapport avec l'article, merci de créer un sujet dédié.
3  0 
Avatar de Cassoulatine
Nouveau Candidat au Club https://www.developpez.com
Le 17/03/2019 à 18:05
Citation Envoyé par codec_abc Voir le message
Autant, quand une information viens d'une entreprise connu on peut se dire que le contenu ne sera pas complètement pipeauté même si une prise de recul est toujours la bienvenue. Mais là on a un particulier qui nous avance quelque chose que l'on peut pas tester et qui est censé être bien meilleur que la concurrence en terme de langage. Et pourtant l'article ne prend pas vraiment de recul alors que ça sent un peu l'arnaque.
Corporatisme quand tu nous tiens. Faut arréter de croire que l'individu n'est rien et la corporation (groupe) tout. En fait les corporations comme Google marchent énormément en achetant des projets et talents externes. L'innovation radicale aura toujours lieu en dehors des corporations.

A propos de "censé être bien meilleur" :
1) il est écrit après les autres langages, donc a appris de ces derniers,
2) il a d'autres objectifs, et ne répond pas aux mêmes contraintes,
3) il n'est pas fini.

Quand à que ce soit une arnaque, rien ne permet de l'affirmer, et on a qu'à attendre Juin.
4  1 
Avatar de Pyramidev
Expert confirmé https://www.developpez.com
Le 19/03/2019 à 20:33
Citation Envoyé par hotcryx Voir le message
Citation Envoyé par Pyramidev Voir le message
Par exemple, dans le site, je n'ai rien vu pour faire de la métaprogrammation.
Probablement qu'on peut développer ces librairies...
Quelle que soit la manière à laquelle on ajouterait de la métaprogrammation à un langage qui n'en a pas, cela reviendrait à créer un nouveau langage qui serait un sur-ensemble de l'ancien. Et en plus, la syntaxe de ce nouveau langage serait extensible, ce qui contredirait deux objectifs du langages V : rester simple et compiler vite.

Citation Envoyé par hotcryx Voir le message
C'est ce que devait penser les gros boites IT lors des débuts de Linux
Et alors ? Parmi les nouveaux langages qui apparaissent régulièrement, il y a peu de survivants. Parmi les langages sans ramasse-miettes que personne ne connaît, on a déjà :
  • Cyclone, un langage qui n'est plus maintenu (d'après sa propre doc),
  • Loci, un langage qui s'inspire beaucoup du C++, mais qui utilise le sous-typage structurel pour le polymorphisme au runtime,
  • Jai, un langage dont l'auteur se focalise sur le développement de jeux vidéo,
  • C2, un langage conçu par des gens qui n'aiment pas l'abstraction,
  • Zig, un langage dont j'ai appris l'existence avant-hier en lisant la doc du langage V et
  • beaucoup d'autres.
3  0 
Avatar de SimonDecoline
Membre expert https://www.developpez.com
Le 19/03/2019 à 21:23
Citation Envoyé par hotcryx Voir le message

Il y a tellement de langages que personne ne connaît... Je me demande si le langage V est destiné à finir oublié lui aussi.
C'est ce que devait penser les gros boites IT lors des débuts de Linux
Heu... pas du tout. Au début de linux, on avait besoin d'un noyau libre et linux était à peu près le seul disponible : minix n'était pas libre, hurd n'était qu'un projet de labo, 386BSD était en proces avec AT&T... C'est même Linus qui le dit : "He has stated that if either the GNU Hurd or 386BSD kernels had been available at the time, he likely would not have written his own" (https://en.wikipedia.org/wiki/Histor...ux#cite_ref-10). Les grosses boites ont rapidement cru à linux : IBM, Compaq, Oracle, Netscape, etc supportaient Linux dès 98 alors que la version 1.0 n'avait que 4 ans.

Donc non, ça n'a rien à voir avec les langages potentiellement concurrents de V qui eux sont nombreux : go, crystal, nim, vala, rust, D, ada...

En tout cas, bravo au créateur de V pour l'opération de communication. Réussir à générer autant de buzz avec un langage dont personne n'a jamais compilé une seule ligne, c'est fort...
3  0 
Avatar de ymajoros
Membre habitué https://www.developpez.com
Le 23/06/2019 à 22:00
V, c'était pas une bête série avec des extraterrestres lézards déguisés en humain qui mangeaient des souris ?
3  0