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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Go Discussion :

La première version bêta de Go 1.18 est disponible avec les génériques


Sujet :

Go

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    mai 2019
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 570
    Points : 8 943
    Points
    8 943
    Par défaut La première version bêta de Go 1.18 est disponible avec les génériques
    Go 1.18, le langage de programmation open source développé par Google, arrive avec la généricité par défaut,
    elle ouvrira de nouvelles solutions, d'approches et de paradigmes

    Depuis la sortie de Go en 2009, la prise en charge des génériques est l'une des fonctionnalités du langage les plus demandées. Le langage de programmation open source, développé par Google, qui facilite le développement de logiciels simples, fiables et efficaces est utilisé aussi bien pour développer des applications que pour écrire des scripts pour de grands systèmes. La prise en charge des génériques, tant attendue, sera disponible dans la version 1.18 de Go.

    Sans la prise en charge de la programmation générique, les bibliothèques et les applications fonctionnelles de Go sont forcées de suivre l'une des deux voies suivantes : sécurité du type + spécificité du cas d'utilisation ou non-sécurité du type + agnostic du cas d'utilisation. Avec la sortie prochaine de la version 1.18 de Go, début 2022, les génériques devraient être ajoutés au langage, ce qui permettra de nouvelles sortes de solutions de programmation fonctionnelle en Go.

    Nom : goB.png
Affichages : 10707
Taille : 54,3 Ko

    S'il vise aussi la rapidité d'exécution, indispensable à la programmation système, Go considère le multithreading comme le moyen le plus robuste d'assurer sur les processeurs actuels, cette rapidité tout en rendant la maintenance facile par séparation de tâches simples exécutées indépendamment. Cette conception permet également le fonctionnement sans réécriture sur des architectures multicœurs en exploitant immédiatement l'augmentation de puissance correspondante.

    Rappelons que, la généricité (ou programmation générique), consiste à définir des algorithmes identiques opérant sur des données de types différents. On définit de cette façon des procédures ou des types entiers génériques. On pourrait ainsi programmer une pile, ou une procédure qui prend l'élément supérieur de la pile, indépendamment du type de données contenues.

    C'est donc une forme de polymorphisme, le « polymorphisme de type » dit aussi « paramétrage de type » : en effet, le type de donnée général (abstrait) apparaît comme un paramètre des algorithmes définis, avec la particularité que ce paramètre-là est un type. C'est un concept important pour un langage de haut niveau car il permet d'écrire des algorithmes généraux opérant sur toute une série de types : la généricité augmente donc le niveau d'abstraction des programmes écrits dans un langage qui possède cette fonctionnalité. Divers mécanismes ont été conçus pour permettre la programmation générique.

    L'absence de génériques en Go était le principal point de critique de la communauté des développeurs. Il a fallu plusieurs années entre la phase de conception et l'implémentation effective qui débarquera en Go 1.18. Go est un langage typé, ce qui signifie que chaque variable et valeur du programme a un type spécifique, comme int ou string. Lorsque nous écrivons des fonctions, nous devons spécifier le type de leurs paramètres dans ce que l'on appelle la signature de la fonction, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    func PrintString(s string) {}
    Ici, le paramètre s est de type string. Nous pouvons imaginer écrire des versions similaires de cette fonction qui prennent un int, un float, un type struct arbitraire, et ainsi de suite. Mais cela ne serait pas pratique pour plus d'une poignée de types spécifiques, et bien que nous puissions parfois utiliser des interfaces pour résoudre ce problème, cette approche a de nombreuses limites.

    Avec l'ajout des génériques, les bibliothèques de programmation fonctionnelle n'ont plus besoin de faire des compromis entre l'utilité et la sécurité des types. Dans l'écosystème Go, il existe déjà de nombreuses bibliothèques de programmation fonctionnelle qui varient en popularité, en fonctionnalités et en ergonomie. En raison de l'omission des génériques, elles ont toutes dû faire l'un des deux choix de conception suivants :

    type safe + use- case specific

    Les bibliothèques qui ont choisi cette approche ont implémenté un design qui est type safe mais seulement capable de gérer certains types prédéfinis. Sans la possibilité d'utiliser des types ou des structures personnalisés, la variété des problèmes auxquels ces bibliothèques peuvent être appliquées est limitée. Par exemple,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    func UniqString(data []string) []string
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    func UniqInt(data []int) []int
    sont toutes deux sûres mais ne fonctionnent que sur les types prédéfinis.

    type unsafe + use-case agnostic

    Les bibliothèques qui ont choisi cette approche ont mis en œuvre une conception qui n'est pas sûre en termes de type mais qui peut être appliquée à n'importe quel cas d'utilisation. Ces bibliothèques fonctionnent avec des types et des structures personnalisés, mais avec la contrepartie que les assertions de type doivent être utilisées, ce qui expose l'application au risque d'une panique d'exécution si elle n'est pas correctement mise en œuvre. Par exemple, une fonction unique générique pourrait avoir cette signature :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    func Uniq(data interface{}) interface{}
    Ces deux choix de conception présentent deux options tout aussi peu attrayantes : utilité limitée ou risque de panique à l'exécution. L'option la plus simple et peut-être la plus courante est de ne pas utiliser de bibliothèque de programmation fonctionnelle avec Go et de s'en tenir à un style impératif.

    Go et la programmation générique

    Les génériques peuvent donner des blocs de construction puissants qui permettent de partager du code et de construire des programmes plus facilement. La programmation générique consiste à écrire des fonctions et des structures de données où certains types sont laissés à spécifier ultérieurement. Avec les génériques, il est possible d’écrire une fonction qui opère sur une tranche d'un type de données arbitraire, où le type de données réel n'est spécifié que lorsque la fonction est appelée. Il est également possible de définir une structure de données qui stocke des valeurs de n'importe quel type, le type réel à stocker étant spécifié lorsque qu’une instance de la structure de données est créée.

    Bien que les génériques aient des cas d'utilisation clairs, les intégrer proprement dans un langage comme Go est une tâche difficile. L'une des premières tentatives (imparfaite) d'ajouter des génériques à Go remonte à 2010. Il y en a eu plusieurs autres au cours de la dernière décennie. L'équipe de développement de go a publié un Playground de go 1.18 où chacun peut essayer d'exécuter go avec des génériques. Il existe également un compilateur expérimental qui implémente un ensemble minimal de fonctionnalités disponibles sur une branche du dépôt go. Ces deux options sont idéales pour jouer avec les génériques dans Go 1.18. Voici, ci-dessous, un cas d'utilisation.

    La fonction unique a été décrite avec les deux approches de conception possibles. Avec les génériques, elle pourrait être modifiée en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    func Uniq[T](data []T) []T
    et appelé avec n'importe quel type tel que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Uniq[string any](data []string) []string
    // or 
    Uniq[MyStruct any](data []MyStruct) []MyStruct
    L'ajout des génériques à Go ouvrira de nouvelles sortes de solutions, d'approches et de paradigmes, dont un meilleur support de la programmation fonctionnelle. Avec la popularité croissante de la programmation fonctionnelle, un meilleur support de la programmation fonctionnelle et les possibilités qui en découlent ont le potentiel d'attirer des développeurs qui n'auraient pas envisagé d'apprendre Go et d'élargir la communauté.

    Source : Goland

    Et vous ?

    Quel avenir selon vous pour la communauté et l'écosystème Go avec l'ajout des génériques et les nouvelles solutions qu'ils permettent ?

    Quel est intérêt a-t-on à passer à une approche fonctionnelle si on a besoin d'écrire presque la même quantité de code ?

    Voir aussi :

    GoLand 2021.3 EAP est disponible. L'EDI Go de JetBrains apporte la prise en charge native des projets Go dans WSL 2, ainsi que de la correction rapide du type d'exportation

    Go 1.17 est disponible et s'accompagne de la prise en charge de l'architecture ARM 64 bits sous Windows, cette version maintient la promesse de compatibilité avec Go 1

    Go 1.17 Bêta apporte la prise en charge de l'architecture ARM 64 bits sous Windows, le langage devrait être en disponibilité générale en août 2021

    Langage de programmation Go : combien de professionnels l'utilisent ? Où sont-ils ? Quelles sont les perspectives d'avenir du langage ? JetBrains fait un état des lieux de son écosystème
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Qui utilise Go actuellement en France et sur quels types de projets ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : décembre 2017
    Messages : 1
    Points : 3
    Points
    3
    Par défaut
    Dans ma boite on utilise Go pour quasiment tous les nouveaux projets depuis quelques années déjà.

    Essentiellement pour faire des microservices ou des backends d'applications web, avec un framework JS pour le front et une communication via API HTTP / Websocket entre les deux.

    Je trouve Go très agréable à utiliser, c'est propre, c'est performant.

    Un des points négatifs selon moi est l'absence de bibliothèque mature pour faire des applications graphiques desktop.
    Fyne est prometteur mais encore un peu jeune.

  4. #4
    Chroniqueur Actualités

    Homme Profil pro
    Rédacteur technique
    Inscrit en
    juin 2016
    Messages
    2 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 2 203
    Points : 46 205
    Points
    46 205
    Par défaut La première version bêta de Go 1.18 est disponible avec les génériques
    La première version bêta de Go 1.18 est disponible avec les génériques
    et un support intégré pour l'écriture de tests basés sur le fuzzing

    L'équipe Go de Google a publié mardi la première version préliminaire de Go 1.18 avec le support des génériques. Il s'agit de la première version contenant le nouveau support de Go pour le code générique qui utilise des types paramétrés. Et selon l'équipe, les génériques sont le changement le plus important apporté à Go depuis la sortie de Go 1, et certainement le plus grand changement de langage qu'elle ait jamais fait. Go 1.18 Beta 1 ajoute également un support intégré pour l'écriture de tests basés sur le fuzzing, afin de trouver automatiquement les entrées qui font planter votre programme ou qui renvoient des réponses invalides.

    Prise en charge de la programmation générique par Go

    Comme annoncé il y a environ un mois, l'équipe Go a commencé à tester le support des génériques dans Go 1.18 Beta 1, publié mardi. Cette fonctionnalité était très attendue par les utilisateurs du langage. En effet, sans la prise en charge de la programmation générique, les bibliothèques et les applications fonctionnelles de Go sont forcées de suivre l'une des deux voies suivantes : sécurité du type + spécificité du cas d'utilisation ou non-sécurité du type + agnostic du cas d'utilisation. Maintenant, l'introduction des génériques dans le langage permettra de nouvelles sortes de solutions de programmation fonctionnelle en Go.



    Rappelons que la généricité (ou programmation générique) consiste à définir des algorithmes identiques opérant sur des données de types différents. On définit de cette façon des procédures ou des types entiers génériques. On pourrait ainsi programmer une pile, ou une procédure qui prend l'élément supérieur de la pile, indépendamment du type de données contenues. Le type de données réel n'est indiqué que lors de l'appel de la fonction. Il est également possible de définir une structure de données qui stocke des valeurs de n'importe quel type, le type réel à stocker n'étant indiqué que lors de la création d'une instance de la structure de données.

    C'est donc une forme de polymorphisme, le « polymorphisme de type » dit aussi « paramétrage de type » : en effet, le type de donnée général (abstrait) apparaît comme un paramètre des algorithmes définis, avec la particularité que ce paramètre-là est un type. C'est un concept important pour un langage de haut niveau, car celui-ci permet d'écrire des algorithmes généraux opérant sur toute une série de types : la généricité augmente donc le niveau d'abstraction des programmes écrits dans un langage qui possède cette fonctionnalité. Divers mécanismes ont été conçus pour permettre la programmation générique dans Go 1.18.

    Toutefois, l'équipe demande de la prudence lors du test de ce nouveau mode de fonctionnement, car les génériques ne faisaient pas partie du langage de programmation jusqu'à présent. Un guide devrait aider les développeurs à faire leurs premiers pas. De plus, une vidéo (ci-dessous) de la GopherCon de la semaine dernière présente cette nouveauté.

    Autres nouveautés importantes dans Go 1.18 Beta 1

    Go 1.18 Beta 1 apporte également le support pour l'écriture de tests basés sur le fuzzing. Cela devrait permettre de détecter plus facilement les entrées automatiques qui font planter les programmes ou qui renvoient des réponses non valides. En outre, l'équipe de développement introduit un nouveau mode d'espace de travail Go qui devrait permettre aux développeurs de travailler avec plusieurs modules Go en même temps, ce qui semble être particulièrement important pour les grands projets.

    Une autre nouveauté est la commande go version -m, qui devrait à l'avenir enregistrer les détails de la construction, comme les indicateurs de compilation. Ainsi, un programme peut demander ses propres informations de construction avec debug.ReadBuildInfo, mais aussi les lire à partir d'autres fichiers binaires avec le nouveau paquet debug/buildinfo. Selon l'équipe, ce nouveau fonctionnement est destiné à servir de base à tout outil qui doit créer une facture logicielle (SBOM) pour les fichiers binaires Go.

    En outre, plus tôt cette année, Go 1.17 a ajouté une nouvelle convention d'appel basée sur les registres pour accélérer le code Go sur les systèmes x86-64. Go 1.18 Beta 1 étend cette fonctionnalité aux systèmes ARM64 et PPC64, ce qui permet d'accélérer le code jusqu'à 20 %. Les autres changements plus visibles dans Go 1.18 Beta 1 sont :

    • la syntaxe des déclarations de fonctions et de types accepte désormais les paramètres de type ;
    • les fonctions et les types paramétrés peuvent être instanciés en les faisant suivre d'une liste d'arguments de type entre crochets ;
    • le nouveau jeton ~ a été ajouté à l'ensemble des opérateurs ;
    • la syntaxe des types Interface permet maintenant d'intégrer des types arbitraires (pas seulement les noms de type des interfaces) ainsi que des éléments de type union et ~T. Ces interfaces ne peuvent être utilisées que comme contraintes de type. Une interface définit désormais un ensemble de types ainsi qu'un ensemble de méthodes ;
    • le nouvel identifiant prédéclaré any est un alias pour l'interface vide. Il peut être utilisé à la place de interface{} ;
    • le nouvel identifiant prédéclaré comparable est une interface qui désigne l'ensemble de tous les types qui peuvent être comparés à l'aide de == ou !=. Il ne peut être utilisé que comme (ou intégré dans) une contrainte de type.


    En sus, l'équipe note que l'implémentation actuelle des génériques présente les limitations suivantes :

    • le compilateur Go ne peut actuellement pas gérer les déclarations de type à l'intérieur des fonctions ou méthodes génériques. L'équipe espère fournir un support pour cette fonctionnalité dans Go 1.19 ;
    • l'incorporation d'un paramètre de type, ou d'un pointeur vers un paramètre de type, en tant que champ non nommé dans un type struct n'est pas autorisée. De même, l'intégration d'un paramètre de type dans un type interface n'est pas autorisée. Il n'est pas clair pour l'instant si cela sera un jour autorisé.


    Correction de bogues

    Le compilateur signale maintenant correctement les erreurs déclarées, mais non utilisées pour les variables qui sont définies à l'intérieur d'un littéral de fonction, et qui ne sont jamais utilisées. Avant Go 1.18, le compilateur ne signalait pas d'erreur dans de tels cas. Ceci corrige le problème du compilateur qui existait depuis longtemps. À la suite de ce changement, des programmes (éventuellement incorrects) peuvent ne plus compiler. Selon l'équipe, la correction nécessaire est simple : « corrigez le programme s'il était en fait incorrect, ou utiliser la variable incriminée, par exemple en l'assignant à l'identifiant vide _ ».

    Comme go vet a toujours signalé cette erreur, le nombre de programmes affectés est probablement très faible. Par ailleurs, le compilateur signale désormais un dépassement de capacité lors du passage d'une expression constante rune telle que '1' << 32 comme argument aux fonctions prédéclarées print et println, ce qui est cohérent avec le comportement des fonctions définies par l'utilisateur. Avant Go 1.18, le compilateur ne signalait pas d'erreur dans de tels cas, mais acceptait silencieusement de tels arguments constants s'ils rentraient dans un int64.

    En conséquence de ce changement, les programmes (éventuellement incorrects) peuvent ne plus compiler. La correction nécessaire est simple : « corrigez le programme s'il était en fait incorrect, ou convertir explicitement l'argument incriminé au type correct ». Comme go vet a toujours signalé cette erreur, le nombre de programmes affectés est probablement très faible.

    Source : Go 1.18 Beta 1, Notes de version de Go 1.18 Beta 1

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous de l'ajout des génériques à Go ?
    En quoi cela améliorera-t-il la productivité des développeurs Go ?

    Voir aussi

    Go 1.18, le langage de programmation open source développé par Google, arrive avec la généricité par défaut, elle ouvrira de nouvelles solutions, d'approches et de paradigmes

    Go 1.17 est disponible et s'accompagne de la prise en charge de l'architecture ARM 64 bits sous Windows, cette version maintient la promesse de compatibilité avec Go 1

    Go 1.17 Bêta apporte la prise en charge de l'architecture ARM 64 bits sous Windows, le langage devrait être en disponibilité générale en août 2021

    Langage de programmation Go : combien de professionnels l'utilisent ? Où sont-ils ? Quelles sont les perspectives d'avenir du langage ? JetBrains fait un état des lieux de son écosystème
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    décembre 2011
    Messages
    1 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 311
    Points : 3 660
    Points
    3 660
    Billets dans le blog
    12
    Par défaut
    Très bonne nouvelle pour les développeurs Go. Go avait pour objectif d'être simple mais les generics représentent un impératif, sans les generics on se retrouve à dupliquer du code avec des types différents ou bien caster avec interface{} comme on le ferait en C avec void*

    Prochaine étape pour Google: Ajouter un concept de pointeur intelligent pour éviter d'avoir un garbage collector
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Technicien de maintenance / Developpeur PHP
    Inscrit en
    mai 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien de maintenance / Developpeur PHP
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2015
    Messages : 369
    Points : 1 359
    Points
    1 359
    Par défaut
    Quel est votre avis sur le sujet ?

    Quand je vois des projets de langages comme Nim, Crystal, Zig ou Odin qui n'ont pas le milliardième des ressources d'un Google et qui sont encore pour la plus part en stage pré-Alpha faire déjà mieux, je me demande juste ce que les mecs font chez Google avec Dart et Go.
    Du temps à tuer ?

    Go est sympa quand on le compare à du Python / NodeJS, mais je doit avouer que pour un langage soi-disant "système" c'est triste.
    Et c'est encore pire quand je regarde dans le retro et que je vois Pascal / Delphi, je me dit que les mecs on tendance à réinventer la roue en moins rond.

    Enfin, c'est toujours mieux que des langages de script de partout pour le moindre projet .

    Que pensez-vous de l'ajout des génériques à Go ?

    Moins de code à taper, donc moins de bug à corriger, c'est bon mangez-en.

    En quoi cela améliorera-t-il la productivité des développeurs Go ?

    Moins de bug, donc plus de temps pour de nouvelles fonctionnalités, c'est toujours bon reprenez-en.

  7. #7
    Candidat au Club
    Inscrit en
    février 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : février 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Les generics c'est le mal
    les generics c'est le mal.
    Ok une fois que l'on a dit cela on a pas dit grand chose et pourtant tout est dit.

    Les generics en Go sont "générés" à la compilation ( les interfaces sont des mécanismes au Runtime)
    Voyez les generics comme des Macros en C

    Cela a très peu de "use-cases" en général on les utilise dans des collections où la manipulation des éléments ne dépend pas complètement des éléments.
    Nous avons donc que trois solutions

    1) Soit on écrit du code en double, en triple ... pour gérer ton les types souhaités

    2) Soit on rajoute une couche supplémentaire Pointer/interface et on manipule que des adresses.

    3) Soit le langage nous donne la possibilité de manipuler les éléments typés directement sans vraiment connaître leur type (avec dans GO la possibilité de contrainte exemple je manipule des nombres [T int| int32 | int64 | float32 | float64])
    Là où cela devient mal et même très mal c'est la violence faite à la syntaxe pour en fait très peu de Use Case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    func Add[T int  | int32 | int64 | float32 | float64] (a T, b T) T {
      return a+b
    }
    Oui cela pique les yeux ! Allez passons
    Ce qu'il faut bien comprendre c'est que la fonction Add N'EXISTE PAS !!!
    le compilateur va générer zéro ligne de code
    Et donc vous ne pouvez pas passer cette fonction en paramètres (genre des trucs utiles comme de la Dependency Injection) car Il n'y a pas de Add

    si plus tard vous utilisez Add(1,2) ou Add[int](1,2) <<< Go à la compilation va créer
    et si vous utilisez assi Add[floa664](1.2, 3.4) : Go va créer une deuxième fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Add(a float64, b float64) float
    Et oui une deuxième Mais dit donc ! On se retrouve avec la solution numéro 1 mais écrit par une Marco

    Bon mon conseil : apprenez bien comment utiliser les generics pour ne pas les utiliser
    Et si vous êtes face à un cas vraiment tordu et que les generics sont la seul issue alors... envoyez moi le use case cela m’intéresse

    Une dernière chose, avec la Beta 1 de 1.18 il y a plein de bug avec les generics mais il y a eu trop de communication autour et les équipes de Go.dev iront au bout Dommage.
    Golang reste un langage merveilleux

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/12/2018, 10h07
  2. Réponses: 8
    Dernier message: 20/04/2012, 23h37
  3. multipathd et oracleasm : l'un est plus rapide que l'autre
    Par exanlb dans le forum Administration
    Réponses: 0
    Dernier message: 04/04/2012, 16h54
  4. Réponses: 2
    Dernier message: 07/03/2012, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo