IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 (Vlang) est désormais disponible en version 0.2 et met l'accent sur la stabilité
Et la gestion de la mémoire au moment de la compilation

Le , par Bill Fassinou

80PARTAGES

10  0 
Après le lancement d'une version open source du langage en juin 2019, l’équipe de développement du langage de programmation V vient de publier la version 0.2 du langage, qui constitue la première version majeure du langage. Dans cette version, l'équipe a mis principalement l'accent sur la stabilité et la gestion de la mémoire au moment de la compilation. Toutefois, plusieurs autres nouvelles fonctionnalités ont été introduites par Vlang 0.2, dont les canaux et les serrures (channels and locks), les flux d'entrée/sortie (E/S), l'incorporation structurelle, etc.

Qu'est-ce que le langage de programmation V et quelles sont ses aspirations ?

Le langage de programmation a été créé par Alex Medvedniko, un développeur néerlandais qui dit s'être é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. Volt vous évite d'avoir recours à une douzaine d'applications pour atteindre tous vos contacts sur différentes plateformes.

Lors de la présentation du langage V en mars 2019, Alex a indiqué qu’il dispose de nombreuses caractéristiques qui attirent le plus souvent les développeurs, dont sa rapidité et sa sécurité, sa légèreté et sa capacité à traduire l’entièreté de vos projets C/C++. Il a ajouté que la totalité du langage V et sa bibliothèque standard sont inférieures à 400 Ko. La documentation de V renseigne aussi qu'il peut compiler jusqu’à 1,2 million de lignes de code par seconde par cœur de processeur. Avant sa sortie publique, un accès anticipé avait été offert au mois de mai pour ceux qui ont rejoint la communauté du langage comme membre premium.

À sa publication en tant que projet open source en juin 2019, Alex et les autres développeurs ont indiqué que V respecte son engagement, en restant un langage simple, rapide, sûr et compilé pour les développeurs de logiciels maintenables. Le langage a été lancé en open source avec les caractéristiques telles qu’une compilation rapide du code écrit en V, la sécurité du langage, un traducteur C/C++, un rechargement à chaud du code pour prendre en compte instantanément les modifications et une taille très minime d’environ 400 Ko, car elle ne contient pas de dépendances.



Outre cela, la documentation de V indique qu'il est semblable à Go (Golang), un langage de programmation développé par Google et dont la première version remonte à novembre 2009. V est également influencé par Oberon, Rust et Swift. Côté performance, l’équipe estime que V est aussi rapide que le C, tout en proposant une interopérabilité avec ce dernier.

Les nouvelles fonctionnalités/améliorations introduites par la version 0.2 de V

La fonctionnalité la plus mise en avant par les développeurs de V dans cette version du langage est la gestion de la mémoire. En effet, la gestion de la mémoire est un aspect d'un langage qui a l'une des plus grandes influences sur la façon dont il se comporte : elle affecte le système de types et les types de types que vous pouvez avoir, elle affecte l'efficacité dans le temps et dans l'espace, elle affecte le modèle cognitif du programmeur dans lequel les structures de données peuvent être représentées, etc. En outre, elle affecte la latence, l'interopérabilité, et bien plus encore.

Mais il semble être souvent ignoré et presque invisible en même temps. Beaucoup de développeurs considèrent qu'il s'agit d'un problème "résolu", puisque probablement 95 % des langages de programmation utilisent une forme quelconque de ramasse-miettes : il faut allouer, puis se préoccuper de récupérer les objets inaccessibles plus tard. Selon certains, le problème est peut-être que pendant très longtemps, les alternatives n'ont pas été très nombreuses. Les langages de bas niveau utiliseraient une gestion manuelle de la mémoire (efficace, mais sujette aux erreurs), et certaines ont utilisé le comptage des références.



Puis il y a eu les langages basés sur des types ou des régions linéaires, mais celles-ci ne sont jamais entrées dans le courant dominant. En gros, c'est un aspect plus qu'important dans la construction d'un langage de programmation. La gestion de la mémoire est d'ailleurs l'une des principales raisons pour lesquelles le langage de programmation Rust, développé par Mozilla Research, remporte un franc succès aujourd'hui. Il est cité par les plus grands noms de l'industrie, dont Microsoft, comme étant la solution adéquate pour une bonne utilisation de la mémoire. Outre la gestion de la mémoire, Vlang 0.2 introduit d'autres fonctionnalités, notamment :

  • les canaux et serrures (channels and locks) ;
  • le thread des tableaux typés sécurisés via un mot clé "shared" ;
  • l'incorporation structurelle ;
  • les flux d'E/S ;
  • un module websocket puissant conforme à la RFC 6455 et qui réussit la suite de tests Autobahn (498 tests client et 249 tests serveur) ;
  • le module "net" est maintenant non bloquant et est plus complet fournissant une API similaire à Go ;
  • le module graphique de V utilise désormais Metal / DirectX / OpenGL au lieu de simplement OpenGL ;
  • V peut maintenant s'exécuter dans le navigateur via WASM (WebAssembly) et exécuter du code V en le traduisant en JavaScript ;
  • les binaires V pour Linux / Windows / macOS sont désormais créés et déployés automatiquement via les actions GitHub ;
  • casting intelligent pour les sumtypes et les interfaces, y compris les expressions complexes : if x.expr is int { println(x.expr + 1) } ;
  • une façon simple et propre de trier les tableaux : users.sort(a.name > b.name) ;
  • plusieurs corrections et d'améliorations pour vfmt. Il a désormais atteint un point où il peut être utilisé en toute sécurité sur n'importe quel fichier source V ;
  • un nouvel outil "v vet" pour analyser le projet et trouver les bogues et erreurs potentiels ;
  • un nouveau module "term.ui" pour créer des interfaces utilisateur de terminal dynamiques avec un exemple d'éditeur écrit dedans ;
  • la prise en charge précoce d'iOS et d'Android ;
  • toutes les fonctionnalités ORM manquantes de l'ancien backend ont été ramenées ;
  • la variable "Magic it" a été remplacée par des casts intelligents (le changement est entièrement géré par vfmt) ;
  • la compilation croisée sous Windows et Linux est revenue ;
  • C2V peut désormais générer des wrappers ;
  • la prise en charge du compilateur C ++ : le code généré par le backend C peut désormais être compilé par des compilateurs C ++.
  • la syntaxe générique courte : foo(5) au lieu de foo<int>(5) ;
  • de nombreuses erreurs qui se produisent souvent au cours du cycle de développement ont été transformées en avertissements pour augmenter la vitesse de développement. Ce sont toujours des erreurs dans les versions de production ;
  • il y a beaucoup plus de documentation. La documentation en langue officielle a été multipliée par 3 ;
  • modules.vlang.io est maintenant généré automatiquement à chaque commit ;
  • le sérialiseur JSON intégré au moment de la compilation prend désormais en charge time.Time ;
  • la correction des alias de type, pour les faire se comporter comme les types qu'ils "aliasent" ;
  • array.contains(element) est désormais générique ;
  • Vlang 0.2 apporte beaucoup d'améliorations dans le backend JS et son système de types ;
  • de nombreuses vérifications manquantes dans le vérificateur de type ont été ajoutées (par exemple, vérification de l'utilisation correcte des champs de structure publique) ;
  • ajout du module Webview dans V UI.
  • ajout de l'attribut [export] pour modifier le nom de la fonction exportée (par exemple pour un appel depuis une bibliothèque C) ;
  • des améliorations ont été apportées à rand : rand.ulid(), rand.uuid(), une API PRNG personnalisable unifiée ;
  • des centaines d'autres correctifs, fonctionnalités et tests ;
  • etc.

Quelques critiques de la communauté sur le langage de programmation V

Beaucoup restent sceptiques par rapport aux nombreuses performances citées par les auteurs pour le langage. Est-ce possible que le projet aussi jeune qu’il est allie toutes ces fonctionnalités ? « Quand on voit la liste de caractéristiques que le langage propose, on peut se demander si l'auteur ne nous vend pas du rêve. Faire mieux que Go, Rust et C++ me semble (un tantinet) surréaliste », a déclaré un critique lors de la sortie de la première version de V.



Lorsque la version open source du langage a été publiée, certains ont déclaré que V n'est ni plus ni moins qu'un traducteur de C/C++, avec la plupart des fonctionnalités annoncées supprimées. Ces derniers ont déclaré qu'Alex, le développeur principal de V, n'a pas implémenté les fonctionnalités complexes qu'il prétend, mais met en avant des avantages comme le temps de compilation. Malgré le nombre très élevé de commentaires qui vont à l’encontre des idées du développeur du langage V, il y en a quelques-uns qui louent ses efforts.

Avec l'annonce de la disponibilité de la version 0.2 de V, certains ont continué de dire qu'Alex livre à chaque version un "sous-produit" et fait de fausses déclarations. Voici un exemple de commentaire d'un membre de la communauté : « La façon dont je décrirais ce que je vois de l'auteur de V dans ses deux projets (V et Volt/eul) est une "surpromotion" et une "sous-production" continuelles, ainsi que des déclarations trompeuses ». Selon certains, il est tout à fait possible d'utiliser V dans son état actuel, mais il faudrait faire attention à bien choisir le projet pour lequel l'on souhaite l'utiliser et ne pas s'appuyer sur les déclarations de l'auteur.

Source : V (Vlang) 0.2

Et vous ?

Avez-vous déjà essayé V ? Si oui, offre-t-il toutes les fonctionnalités citées par l'auteur ?
Le projet promet-il ou cessera-t-il d’exister dans les prochaines années ? A-t-il des chances de suivi contre Go, C/C ++ et Rust ?

Voir aussi

Le langage de programmation V vient d'être publié en open source et semble ne pas tenir toutes ses promesses

Le langage Rust est la meilleure chance offerte à l'industrie informatique pour la mise sur pied d'applications système sécurisées, d'après Microsoft

Après Microsoft et Linux, c'est au tour d'Apple de montrer de plus en plus d'intérêt pour l'utilisation de Rust dans la programmation de bas niveau

Amazon : « nous embauchons des ingénieurs en logiciels qui maîtrisent le langage de programmation Rust », AWS estime que Rust est un élément essentiel de sa stratégie à long terme

Rust entre dans le top 20 de l'indice Tiobe de popularité des langages de programmation pour la première fois, C conserve la tête du classement et Java la seconde place

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

Avatar de
https://www.developpez.com
Le 27/12/2020 à 17:03
Citation Envoyé par JPLAROCHE Voir le message
Alors les critique sont elles justifiées ??

d'abord tu abordes le sujet pour faire comprendre Vlang puis tu mets en gros titre les critiques.
....
Ben justement tu devrais peut-être te renseigner avant de critiquer les critiques.
A l'origine, c'est l'auteur de Vlang qui est venu faire sa pub en annonçant monts et merveilles, sauf que le code n'était pas encore ouvert ou "en cours de développement", donc il fallait le croire sur parole. Et depuis, il nous fait régulièrement des annonces mais on attend toujours les fonctionnalités merveilleuses.
Un exemple de commentaire qui résume bien la situation de l'époque : https://news.ycombinator.com/item?id=19410299
Donc oui les critique sont justifiées.
6  0 
Avatar de
https://www.developpez.com
Le 29/12/2020 à 20:55
Pour info, ce n'est pas moi qui t'ai mis un -1. Désolé si j'ai été un peu rude mais le temps que tu as mis à écrire ton discours sur les vilains méchants qui critiquent, il aurait largement suffit pour taper "vlang criticism" dans google et tomber sur ce lien très détaillé : "This language is not as advertised ... What you have promised does not even come close to what is delivered" https://github.com/vlang/v/issues/35
4  0 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 30/12/2020 à 16:17
C'est très bien de faire des news avec le pour et le contre, sinon on dirais une pub.
Après s'il n'y a pas de critiques dans la news elle même parce que l'auteur est trop gentil, on peut toujours rajouter des critiques sur la technologie (ou au contraire des témoignages positifs) à la suite en commentaire.

Moi je lis developpez plus pour les commentaires que pour les news, c'est dans les commentaires qu'il y a des trucs utiles parfois, ou des trucs marrants.
La force de developpez c'est qu'il a une vrai communauté, avec certains membres qui ont une vrai expérience à faire partager.

Les gens sont jamais content : News sans critique : "C'est de la pub !". News avec critique : "il est pas gentil"
4  1 
Avatar de Mister Nono
Membre chevronné https://www.developpez.com
Le 31/12/2020 à 11:47
Encore un langage à apprendre. Mais il est comme les autres : mieux, plus rapide, et blablabla...
2  0 
Avatar de Mister Nono
Membre chevronné https://www.developpez.com
Le 31/12/2020 à 11:48
Citation Envoyé par JPLAROCHE Voir le message
je n'ai juste pas compris pourquoi cette critique????

et comme je ne lis pas l'anglais alors.....
Tu es professionnel de l'informatique et tu ne lis pas l'anglais ? Comment tu fais ?
3  1 
Avatar de Mister Nono
Membre chevronné https://www.developpez.com
Le 01/01/2021 à 18:59
Citation Envoyé par JPLAROCHE Voir le message
moi je suis à la retraite 70 ans et toi gamin ..... mdrrrrrrrrrr
OK, alors respect.

Signé : un gamin de 57 ans.
1  0 
Avatar de thanjuzo
Nouveau membre du Club https://www.developpez.com
Le 02/01/2021 à 18:02
Faudrait que je me dépêche de publier le mien, les lettres sont prises les unes après les autres. A moins que j'aille voir dans UTF-32 ?
1  0 
Avatar de JPLAROCHE
Membre expérimenté https://www.developpez.com
Le 02/01/2021 à 20:24
Citation Envoyé par Mister Nono Voir le message
OK, alors respect.

Signé : un gamin de 57 ans.
je viens de telecharger le compilateur puis la lib ui

après avoir paramétré pour avec mon path... ect
l'ensemble a l'air de fonctionner , la compilation par defaut est avec debeug , optimiser elle diminue des 3/4

je vais tous compiler les exemples , puis je mettrais dans vscodium en route Vlang

et je donnerais un retour sur la doc et sur un test en partant de zéros .

juste pour dire il y a quand même pas mal de monde aux portillons sur github pour tester , j'ai lu plus en profondeur sur la mémoire si l'on laisse Vlang faire ça devrait aller , maintenant il conçoit qu'il peut y avoir des moments ou on veux et doit enfreindre la sécurité et il aborde le sujet et un guide pour rester dans une programmation correct. De toute façon si on ne suit pas le guide le compilateur rejete l'enfreint de sécurité. (je testerais)

perso dans le monde pc , j'arrive de C/C++ et NIM-Lang ( nim 1 ans de pratique presque tous les jours et deux gros projets)

dans sa documantation il annonce les tres grosses différence avec beaucoup de langage comme de ne pas avoir de variable global ....

le for est très étendues et prends beaucoup de chose comme Nim-lang

certaine instructions sont des macro très puissante ( vue de l'extérieur j'emploie le mot macro) et je me trouve proche de langage comme Nim-lang lui parle souvent de GO (je ne connais pas)
il a certaine approche de pascal(ça je suis capable de detecter) , d'autre de rust(ça je suis capable de detecter) , et beaucoup de go , et bien-sur de C

je compilateur de base sans optimisation est très rapide , avec optimisation ( -prod) il est plus long mais réduit de beaucoup le size je n'ai pas fait de test de comparaison sur des données conséquentes.

@bientôt
1  0 
Avatar de JPLAROCHE
Membre expérimenté https://www.developpez.com
Le 03/01/2021 à 8:26
a) j'ai bien verifier que j'avais toutes les lib
b) j'ai suivi le tutorial
c) la Doc il manque pas mal de chose et on ne la trouve que dans les examples mais ça ce n'est pas que chez lui hélas

j'ai testé UI , il n'est pas fini ... disont que ce qui est proposé en demo n'est ce qui est présenté

j'ai testé l'accès BD, term.ui ect...

il y a des testes qui ne sont pas fini dommage

j'ai testé la partie web ça ne foncionne pas ex:

Code : 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
module main

import vweb
import vweb.assets
import time

const (
    port = 8080
)

struct App {
    vweb.Context
}

fn main() {
    vweb.run<App>(port)
}

pub fn (mut app App) init_once() {
    // Arbitary mime type.
    app.serve_static('/favicon.ico', 'favicon.ico', 'img/x-icon')
    // Automatically make available known static mime types found in given directory.
    app.handle_static('assets')
    // This would make available all known static mime types from current
    // directory and below.
    // app.vweb.handle_static('.')
}

pub fn (mut app App) init() {
}

pub fn (mut app App) index() {
    // We can dynamically specify which assets are to be used in template.
    mut am := assets.new_manager()


*** on fait insertion du fichier css   

    test := am.add_css('assets/index.css') //<link rel="stylesheet" href="assets/index.css">
*** ça ne fonctionne pas le fichier n'est pas pris en compte la preuve est que si l'on met en dure le css tout fonctionne     
j'ai rajouter test pour savoir si la fonction reconnaissait le path et le fichier css oui  

    css := am.include_css(false)
    title := 'titre page'
    subtitle := 'sous titre page'
    message := 'It also has an Assets Manager that allows dynamically specifying which CSS and JS files to be used.'
    $vweb.html()

}

*** à partir d'ici c'est inutile

fn (mut app App) text() vweb.Result {
    return app.Context.text('Hello, world from vweb!')
}

fn (mut app App) time() vweb.Result {
    return app.Context.text(time.now().format())
===========================================

<html>
<header>
    <title>@title</title>
    @css
</header>
<body>
    <h1>@test</h1>
    <h1>@title</h1>
    <h2>@subtitle</h2>
    <p>@message</p>
</body>
</html>





}
c'est vrai il y a plein d'idées mais ce n'est pas fini ... c'est dommage
j'arrête là

la recuperation de Vlang 10 minute pour tout mettre en place , ne pas oublier de mettre dans votre path le folder V

il y a une fonction qui permet de tester $: v run votre soucre avec son chemin

peut-être que ça fonctionne sous windows ????
1  0 
Avatar de JPLAROCHE
Membre expérimenté https://www.developpez.com
Le 01/01/2021 à 15:40
pour le moment les détracteurs , non pas dit voilà j'ai testé, travailler avec une base de données un interactif , des listes .... et après on verra trop facile de critiqué , c'est exactement pareille pour c/c++ on lui reproche d'être non sécure mais pas que les programmeurs ne verrouille pas .... je ne demande même pas un driver, Ok il fait sa promotion avant d'avoir fini, mais aujourd'hui il en est ou .... pas de réponse des détracteurs , si il y a des fuites de mémoire, si le debeugage est accéssible ect... un vrai retour d'expérience.
Oh toi l'ingénieur car c'est comme ça que tu te présentes explique donne des raisons montre ton savoir tu te moques de moi parceque je parle pas anglais , google ça existe et les livres en français aussi ....

Alors c'est moi qui rigole , parce qu'une vrais critique elle s'accompagne de retour sérieux. que la personne qui soulève à juste raison en mars 2019 que le travail n'est pas accéssible , mais aujourd'hui quand on va sur le site tout est en ligne, on peu compiler ect... maintenant me remettre dans un autre langage j'ai mes habitudes .... pas si simple de changer de langage et de le posséder.

Quand je lis les critiques de livre sur developpez.net elle sont accompagné par de vrais références. Ou quand je lis comment être un bon développeur en C/C++ il y a des vrais références , c'est en cela que je suis contre la critique sans étailler...

c'est comme Rust ils ont prouvé ce qu'ils annoncaient mais aussi que l'on pouvait en faire l'expérience, et les critiques ce sont arrêté, cela ne veux pas dire que l'on adopte Rust.
Prouvé clairement la critique et après on verra.
0  1