Développez votre première application sous Windows : Hello, world !

Développez votre première application sous Windows : Hello, world !

Version Matrix !

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

22/12/2017 8 minutes
127

Développez votre première application sous Windows : Hello, world !

Nous avons réussi à vous convaincre de tester l'aventure du développement d'applications pour maitriser un peu mieux l'outil informatique et son fonctionnement ? Tant mieux ! Nous allons commencer par faire simple avec un exemple en général connu de tous : « Hello, World ! ».

Une application peut être un élément relativement simple, qui prend quelques lignes de code au sein d'un script. Cela peut également être une page web qui vise un but précis. Pour commencer à vous faire découvrir le développement, nous avons décidé de ne pas aller vers une solution de facilité ou à vous effrayer. Plutôt à faire dans l'entre-deux.

Notre objectif pour la première partie de ce dossier est de vous faire développer une application complète avec une interface graphique. Mais avant d'entrer dans le dur, vous devrez installer quelques outils et maitriser des notions de base. Pour cela, commençons donc par quelque chose d'assez basique : une application console qui se contentera d'afficher le célèbre « Hello, World ! » que vous pouvez réaliser en quelques lignes dans de nombreux langages.

Notre dossier sur la programmation et le développement d'application :

Installation de l'environnement de développement

Avant de commencer, il nous faut choisir un langage et un environnement de développement (EDI). L'objectif final étant d'obtenir une application complète avec une fenêtre, nous nous tournons vers C#, via Visual Studio, un outil et un langage reposant sur le framework .NET qui sont plutôt faciles à appréhender pour un débutant.

L'application se limitera alors à un fonctionnement sous Windows pour ce premier exercice. Il faut tout d'abord configurer l'environnement de base. Différentes éditions de Visual Studio existent, dont une version Community gratuite. Elle intègre toutes les fonctionnalités principales, du développement d'applications console à celles avec une interface WinForms en passant par les applications Universelles.

Vous pouvez aussi l'utiliser pour développer des projets multiplateformes, pour des appareils mobiles ou des sites web. De nombreux plugins sont disponibles pour cet EDI qui vous permettra de découvrir le monde de la programmation de manière simple et complète, et surtout sans frais. Un bon point d'entrée, les versions payantes proposant surtout des fonctionnalités propres à un usage professionnel.

Pour l'installer, il suffit de télécharger un petit programme qui se chargera de lancer la procédure. C'est également lui qui gèrera les éventuelles mises à jour.

L'outil d'installation vous demandera quel type d'application vous désirez développer. Visual Studio est un outil complet, mais qui peut être assez lourd si vous n'y prenez pas garde. Sa nouvelle procédure installe néanmoins le strict nécessaire par défaut, réclamant 609 Mo d'espace disque.

Pour du développement .NET Desktop – le cas qui nous intéresse aujourd'hui – le poids grimpera à pas moins de 3,3 Go. Vous pourrez bien entendu modifier ce choix par la suite via Visual Studio Installer.

Visual Studio CommunityVisual Studio Community

Une fois la procédure terminée, vous serez invité à vous connecter avec un compte Microsoft, qui débloque l'accès à différents services. Pour notre guide, cette étape n'est pas nécessaire, vous pouvez ainsi la remettre à plus tard.

Au premier lancement, vous devrez choisir entre différents thèmes : Bleu, Clair ou Sombre. Plusieurs paramètres de développement vous seront aussi proposés en fonction du langage visé : développement web, Visual Basic, C# ou C++. Ici nous choisirons C#. L'environnement sera alors prêt à être utilisé.

Microsoft propose de nombreuses vidéos de découverte de son outil, comme un guide de mise en route ou un tutoriel pour créer une première application en C++. Ceux qui veulent aller plus loin trouveront des ressources dans le centre de développement Windows, la documentation dédiée aux développeurs, les exemples de code, les nombreuses vidéos de Channel 9 ou encore les cours de la Microsoft Virtual Academy (en anglais).

Notez que notre but n'est pas ici de tout vous faire connaître de C# ou de la programmation orientée objet. Des livres entiers étant consacrés au sujet, il serait bien présomptueux de penser pouvoir tout simplifier en quelques articles. Certaines notions pourront donc parfois vous échapper, c'est tout à fait normal et ça ne doit pas vous empêcher pas de vous lancer.

Nous aurons l'occasion de développer différents éléments au fur et à mesure de la publication de ce dossier. Nous placerons néanmoins tous les liens nécessaires vous permettant d'approfondir le sujet si vous le désirez.

Hello, World !

Il est maintenant temps de créer l'application console affichant le célèbre « Hello, World ! » pour vous faire la main. Créez d'abord un projet dans Fichier > Nouveau > Projet (CTRL + MAJ + N), puis sélectionnez Application console (.Net Framework), avant de lui donner le nom HelloWorld et de cliquer sur OK.

L'interface de Visual Studio se découpe en plusieurs parties. Outre l'habituel menu et sa barre d'outils, on retrouve l'espace central où seront ouverts les différents éléments comme les fichiers à éditer. À droite, l'Explorateur de solutions permet de naviguer dans le projet et l'application.

Cette dernière se compose de fichiers, de propriétés et de références créés par défaut. On trouve également les sections Propriétés et Sortie (en bas, invisible au départ) qui nous seront utiles plus tard.

Application Console Code C#

Notre application se compose principalement d'un fichier Program.cs. Dans celui-ci on trouve différentes sections qui vous seront pour le moment étrangères et sur lesquelles vous ne devez pas vous attarder pour le moment.

Sachez seulement que cela commence par les directives using, qui sont des références à des espaces de nom, qui contiennent des classes et méthodes spécifiques. Elles ne sont pas utilisées dans la version de base du programme, ce qui explique qu'elles soient grisées dans l'interface de Visual Studio (voir ci-dessus).

L'application est représentée par l'espace de nom HelloWorld qui contient une classe Program avec une procédure Main. Celle-ci est de type static, et renvoie une valeur vide (void). C'est d'ailleurs pour cela qu'on parle de procédure et non de méthode (ou fonction).

Les arguments qui peuvent être envoyés par l'utilisateur via la ligne de commande sont transmis sous la forme d'un tableau (symbole []) de variables de type string, c'est-à-dire des variables composées de chaînes de caractères.

Tout ce que vous devez savoir à ce stade, c'est que lorsque le programme est lancé, c'est cette méthode Main qui est lancée. Pour le moment, elle est vide. Si on exécute l'application, rien ne se passe et elle sera directement fermée. Pour le vérifier, il suffit de lancer la procédure de débogage avec la touche F5 ou Déboguer > Démarrer le débogage. L'application sera alors compilée puis exécutée.

Si l'on veut voir quelque chose se passer à l'écran, il faut éviter que l'application ne se ferme. Pour cela, il existe une méthode permettant de simuler une pause : Console.Read() Elle attend que vous tapiez un caractère au clavier et renvoie sa valeur sous la forme d'un entier (int), qui peut être attribué à une variable.

Vous verrez qu'au fur et à mesure que vous tapez dans l'éditeur, les différentes méthodes et variables disponibles s'afficheront par autocomplétion. Cela pourra vous permettra de gagner du temps. Notez qu'une ligne de commande se termine toujours par le symbole « ; ».

Si vous lancez à nouveau l'application (F5), elle ne se fermera que lorsque vous presserez une touche.

Maintenant nous allons afficher le texte « Hello, World ! ». Nous pourrions le faire simplement, mais nous allons plutôt passer par une variable string nommée textToShow. Une fois déclarée et initialisée, nous afficherons le texte avec la méthode Console.Write(). Cela donne le code suivant :

Finissons par une petite gourmandise : nous la jouer à la Matrix avec une police verte ! Pour cela, il existe la propriété Console.ForegroundColor à laquelle nous pouvons attribuer la valeur ConsoleColor.Green.

Avant de finaliser notre application, nous allons en simplifier le code, notamment au niveau des directives using inutilisées. Visual Studio intègre une fonction Supprimer et trier les directives using accessibles d'un clic droit dans la partie de l'éditeur de code (CTRL+R, CTRL+G). La directive System sera la seule à être préservée, puisque c'est d'elle que dépend la classe Console que nous utilisons pour les méthodes Read() et Write().

Voici le résultat final :

Vous n'avez plus qu'à compiler une version définitive de votre application. Pour cela il vous suffit de sélectionner Release à la place de Debug dans la barre d'outils. Pour générer la solution sous la forme d'un fichier exécutable, pressez la touche F6 (Générer > Générer la solution). L'application se trouvera dans le répertoire HelloWorld\bin\Release de votre projet.

Le dossier de votre projet peut être ouvert via un clic droit sur le projet dans l'Explorateur de solution (Ouvrir le dossier dans l'Explorateur de fichiers). Voilà, vous avez développé votre première application !

Notez que C# rend ces premières étapes plus simples  à compter de sa version 9.

Hello World C#

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Installation de l'environnement de développement

Hello, World !

Fermer

Commentaires (127)


La première application sous Windows, c’est pas “Hello world !”, c’est “Goodbye Freedom !”



Apprendre à marcher avec des chaînes aux pieds, non merci.


Intéressant.

Je pense que l’on préfèrera utiliser WriteLine plutôt que Write, sinon vous devez écrire des Environnement.NewLine pour le retour à la ligne, assez lourd. Mais c’est un “Hello World”, peu importe <img data-src=" />



Ce genre d’article va-t-il aller plus loin que l’initiation ?


Vous auriez pu mettre “Wake up, Neo…”


Oui pour le coup, l’osef est total <img data-src=" />








GruntZ a écrit :



La première application sous Windows, c’est pas “Hello world !”, c’est “Goodbye Freedom !”



Apprendre à marcher avec des chaînes aux pieds, non merci.





+1



Je vais faire mon râleur aussi, mais je regrette aussi que ce soit sous Windows avec de l’écosystème MS (du .Net en particulier, même si ce dernier est en partie libre si je ne m’abuse).



[MA VIE]Mon fils est encore en maternelle mais je compte bien ensuite le laisser s’amuser avec du Linux et un langage de programmation bien fichu genre Python (ou autre peut-être plus adapté aux enfants pour débuter, je n’ai pas creusé).

J’avais appris à programmer d’abord sur une calculatrice HP puis en Basic sur Commodore 64 <img data-src=" /> [/MAVIE]



La dernière version de VS est basé sur .Net Core qui est s’appuie sur les packages nuget et qui est multi environnement Windows/Linux.



L’environnement de développement est disponible sur Linux via Visual Studio Editor.



MS est de moins en moins Windows centrique quand aux environnements de développement ou d’exécution même s’il existe encore quelques restrictions liées aux librairies de fenêtrage.


Si tu veux tu peux aussi lire en détail l’intro du dossier et les explications sur pourquoi on commence par ça et le fait qu’on ne se limitera pas à ça.&nbsp;



Mais comme dit par Argonaute, C#/VS ne se limitent pas à Windows notamment depuis l’arrivée de .Net Core/Standard, m’enfin si on veut faire un guide qui touche potentiellement pas mal de monde et qui soit simple pour une première approche, on peut éviter de commencer par Netbeans/Qt.


J’ai une question : pourquoi C# ?

Je comprend que vu la cible visée par le tutos, considérer qu’il sera sous Windows est logique, mais le choix du langage m’est moins claire, c’est un peu donner le bâton pour se faire battre par la communauté de NxI qui aime tant écrire Micro$oft avec plein de dollar.

Python est par exemple bien plus commun comme premier langage (d’après ce que j’ai compris, c’est dans le cursus du lycée).








tazvld a écrit :



J’ai une question : pourquoi C# ?&nbsp;





La réponse est dans le dossier

&nbsp;



tazvld a écrit :



c’est un peu donner le bâton pour se faire battre par la communauté de NxI qui aime tant écrire Micro$oft avec plein de dollar.&nbsp;





On peut être critique de certaines actions de Microsoft mais aussi reconnaître leur bon boulot côté environnement de développement, sur .Net et C#. Je suis sûr que la majorité de la communauté en est largement capable ;)

&nbsp;



tazvld a écrit :



Python est par exemple bien plus commun comme premier langage (d’après ce que j’ai compris, c’est dans le cursus du lycée).





Oui, si tu veux faire du script. Ce n’est pas ce que l’on cherche à faire ici (mais ça aussi c’est détaillé dans le dossier qu’il est intéressant de lire avant de commenter <img data-src=" />) Et comme dit également, on ferra le tour de différents langages outils si le retour sur ce genre d’article est bon, mais c’était plus “Fun” de commencer par quelque chose de plus concret que de la simple ligne de commande









David_L a écrit :



Si tu veux tu peux aussi lire en détail l’intro du dossier et les explications sur pourquoi on commence par ça et le fait qu’on ne se limitera pas à ça.





J’ai relu l’autre article d’introduction, ainsi que celui-ci, mais je reste sur ma faim.







David_L a écrit :



Mais comme dit par Argonaute, C#/VS ne se limitent pas à Windows notamment depuis l’arrivée de .Net Core/Standard, m’enfin si on veut faire un guide qui touche potentiellement pas mal de monde et qui soit simple pour une première approche, on peut éviter de commencer par Netbeans/Qt.





Ben vu que MS a une fois de plus décidé d’utiliser sa stratégie “Embrace and Extend”, de copier Java en faisant leur sauce à eux, j’aurais préféré du Java tant qu’à faire (avec Eclipse pourquoi pas).



En plus quand je lis ces passages, ça ne me donne pas envie :




  • « L’application se limitera alors à un fonctionnement sous Windows pour ce premier exercice. »

  • « Visual Studio est un outil complet, mais qui peut être assez lourd si vous n’y prenez pas garde. Sa nouvelle procédure installe néanmoins le strict nécessaire par défaut, réclamant 609 Mo d’espace disque.

    Pour du développement .NET Desktop – le cas qui nous intéresse aujourd’hui – le poids grimpera à pas moins de 3,3 Go. »



    • « Une fois la procédure terminée, vous serez invité à vous connecter avec un compte Microsoft, qui débloque l’accès à différents services. Pour notre guide, cette étape n’est pas nécessaire, vous pouvez ainsi la remettre à plus tard. »



      Vouloir apprendre la programmation à certains, au départ j’y suis tout à fait favorable. Mais je suis devenu allergique à MS dans les années 90 (comme on disait déjà, “MS is to computer what McDonalds is to gourmet cooking”) et même si j’ai réussi à y échapper une partie de ma carrière, la suite ne m’a pas réconcilié (cf le dossier de SebSauvage http://sebsauvage.net/wiki/doku.php?id=microsoft que j’ai redécouvert il y a quelques jours et qui me rappelle pourquoi je n’aime pas du tout MS, il y a trop de passif).




Je trouve le choix du C# plutôt bon mais j’approuve l’idée de certains pour du python pour une seule et unique raison : il oblige à indenter proprement le code.



Si chaque développeur/pseudo-développeur/apprenti-développeur avait cette culture, ça m’aurait bien évité des maux de têtes dans certains projets … <img data-src=" />








David_L a écrit :



[Python]  

Oui, si tu veux faire du script. Ce n’est pas ce que l’on cherche à faire ici





Pourquoi résumer Python à du script ? Je ne suis pas un expert du langage justement et je trouve que le code est clair et ressemble presque à du pseudo-code.









GruntZ a écrit :



La première application sous Windows, c’est pas “Hello world !”, c’est “Goodbye Freedom !”



Apprendre à marcher avec des chaînes aux pieds, non merci.









OlivierJ a écrit :



+1



Je vais faire mon râleur aussi, mais je regrette aussi que ce soit sous Windows avec de l’écosystème MS (du .Net en particulier, même si ce dernier est en partie libre si je ne m’abuse).



[MA VIE]Mon fils est encore en maternelle mais je compte bien ensuite le laisser s’amuser avec du Linux et un langage de programmation bien fichu genre Python (ou autre peut-être plus adapté aux enfants pour débuter, je n’ai pas creusé).

J’avais appris à programmer d’abord sur une calculatrice HP puis en Basic sur Commodore 64 <img data-src=" /> [/MAVIE]







LEs gars vous pouvez être des Windows haters, c’est pas moi qui vous jetterai la pierre. A part ça vous êtes au courant que c’est un OS pas mal utilisé dans le monde du PC? Vous avez jamais utilisé un logiciel qui tournait sous Windows? Je veux dire vous pouvez pas voir un intérêt à montrer comment monter un truc sur l’OS qui est juste le plus utilisé?&nbsp;

On peut kiffer et promouvoir Linux, j’en suis, mais là vous me semblez franchement rentrer dans le cercle des libristes un peu obtus. D’autant qu’apprendre “le code”, ça peut aussi commencer par brasser divers langages ou environnements de développement. Pourquoi pas commencer par celui qui est le plus répandu auprès du grand public?&nbsp;

C’est très bien que vous initiez vos enfants à Linux et d’autres langages (encore qu’à 5ans commencer par un langage à brique type Scratch voire Scratch Junior me semble pas une mauvaise idée, ça permet de les accrocher en restant ludique). Puis plus tard de leur expliquer les différences de fond entre les différents systèmes. Mais sinon vous allez sortir le fouet dès qu’ils vont vouloir faire un jeu vidéo ou toucher un logiciel non libre plus tard? Ou les frapper du sceau de la trahison s’ils essayent de comprendre un truc à ces systèmes?&nbsp;



On n’écrit pas en fonction des allergies de tel ou tel, sinon on n’écrit jamais rien ;)

&nbsp;





Arcy a écrit :



Je trouve le choix du C# plutôt bon mais j’approuve l’idée de certains pour du python pour une seule et unique raison : il oblige à indenter proprement le code.



Si chaque développeur/pseudo-développeur/apprenti-développeur avait cette culture, ça m’aurait bien évité des maux de têtes dans certains projets … <img data-src=" />





Je vais lancer un sondage “Python ou Ruby ?” d’abord&nbsp;<img data-src=" />









David_L a écrit :



L’objectif final étant d’obtenir une application complète avec une fenêtre, nous nous tournons vers C#, via Visual Studio





Annoncer un objectif plus simple pour un premier tuto aurait permis de démarrer avec du python, bien plus facile pour aborder la programmation.



C# dans un 2ème temps, avec son IDE, etc… parce que c’est quand même l’artillerie lourde. On apprend à faire du vélo avant de conduire une moto <img data-src=" />

&nbsp;



Mais sinon les tuto sont bien faits, ça change sur NXI, je suis pour ce genre d’initiatives ! <img data-src=" />



Pour le coup moi qui&nbsp; traîne bcp dans les collèges/lycées autour des questions liées au numérique, je vois passer tripotée de cours / tuto en mode scratch ou autre.&nbsp;

Parmi cette masse je trouve que les vôtres n’ont pas à rougir, et alors là vous arrivez sur un truc où je ne vous attendais pas. Vous comptez donner quelle ampleur à tout ça? Encore quelques dossiers juste pour Noël ou bien quelque chose plus sur la longueur?

Sinon ce serait chouette de compléter vos dossiers par quelques liens sympas : des sites pour s’entraîner à avoir une bonne syntaxe dans l’écriture de son code, tutos / mooc sympas : c’est énormément de boulot mais ça permettrait d’ouvrir un peu pour plein de gens.

En tout cas je diffuserai votre dossier autour de moi!


Expliqué aussi, mais faire un tuto “voici un script de dix lignes pour télécharger un JSON et jouer avec” je doute que c’était le meilleur moyen d’intéresser. Franchement une app WinForms ça montre quelque chose de concret, qui bouge, toussa.



Après je savais que ça allait défriser certains de voir du .Net, m’enfin C# reste un très bon moyen d’entrer dans la programmation de petites app, et ça reste celui que j’utilise le plus pour tous les outils qu’on développe en interne et qu’on distribue, que ce soit pour du bench ou même GPG Pad par exemple.&nbsp;








Coeur2canard a écrit :



LEs gars vous pouvez être des Windows haters, c’est pas moi qui vous jetterai la pierre. A part ça vous êtes au courant que c’est un OS pas mal utilisé dans le monde du PC? Vous avez jamais utilisé un logiciel qui tournait sous Windows? Je veux dire vous pouvez pas voir un intérêt à montrer comment monter un truc sur l’OS qui est juste le plus utilisé?





NAN <img data-src=" />

<img data-src=" />







Coeur2canard a écrit :



C’est très bien que vous initiez vos enfants à Linux et d’autres langages (encore qu’à 5ans commencer par un langage à brique type Scratch voire Scratch Junior me semble pas une mauvaise idée, ça permet de les accrocher en restant ludique). Puis plus tard de leur expliquer les différences de fond entre les différents systèmes. Mais sinon vous allez sortir le fouet dès qu’ils vont vouloir faire un jeu vidéo ou toucher un logiciel non libre plus tard?





Je note pour Scratch, j’avais vaguement le nom en tête mais je n’étais pas sûr. En fait je parlais plutôt d’initier mon fils à de la programmation simple, pas à Linux en tant que système et ses commandes système (enfin après si ça l’intéresse). Il aura sûrement du mal à passer à côté de Windows j’imagine, mais il saura ce que j’en pense. Moi qui ai connu l’arrivée d’un OS open source (et même de plusieurs en comptant les BSD), j’ai trouvé ça extraordinaire (avoir sur un simple PC abordable un système avancé et stable qui était réservé à des stations de travail onéreuses comme les Sun ou autres HP et DEC).



Mes 4 neveux et nièces ont des PC portables sous Ubuntu, mon beau-frère en a eu marre de Windows. <img data-src=" />

Je pense qu’elles n’ont pas de mal à utiliser un PC Windows quand elles tombent dessus.







David_L a écrit :



On n’écrit pas en fonction des allergies de tel ou tel, sinon on n’écrit jamais rien ;)

Je vais lancer un sondage “Python ou Ruby ?” d’abord <img data-src=" />







  1. Je sais bien qu’il y a plein de gens qui apprécient Windows ici

  2. J’ai parlé de Python mais Ruby a l’air bien également









Coeur2canard a écrit :



On peut kiffer et promouvoir Linux, j’en suis, mais là vous me semblez franchement rentrer dans le cercle des libristes un peu obtus.





Mais non … Là, c’est dredi <img data-src=" />



Allez, bonnes fêtes de fin d’année à tous <img data-src=" />



J’ai mis des liens sympas dans le premier papier <img data-src=" /> Mais c’est compliqué de trouver de bonnes ressources, surtout en français.&nbsp;



Pour l’ampleur difficile à dire. Disons que ça fait longtemps que je tourne autour du pot sur le sujet, j’ai eu l’occasion quand je me suis amusé avec l’app Altice que j’ai développé un peu pour déconner au départ.



J’attends surtout de voir le retour de la communauté pour voir à quel point on peut focaliser là dessus dans les mois qui viennent, mais l’idée serait clairement de faire un suivi au long cours, sur différents langages et même de dériver un peu sur du RPI & co si ça accroche.&nbsp;


Ce n’est pas une question d’apprécier ou pas côté lecteurs, mais avec tout l’amour que j’ai pour l’OSS ou Linux, si je fais un tuto orienté uniquement vers ces outils, je me coupe de 90% des lecteurs, en m’adressant à des gens qui ont déjà pour la plupart largement plus de connaissances que les bases que je veux diffuser.



Ces tutos ne sont pas pour les sysadmins, plutôt pour ceux qui bidouillent sans jamais avoir osé lancer un VS ou même un autre éditeur. L’idée c’était de leur mettre un peu de concret dans les pattes. M’enfin comme déjà détaillé ici ou dans les papiers, le but c’est d’être agnostique sur les technos et de montrer que chacune à ses avantages/incovénients selon les cas.&nbsp;



Et pour faire de l’app avec interface facilement sous Windows (ou pas d’ailleurs), il n’y a guère le choix, maheureusement.


Et pourquoi pas OCaml, hein ? HEIN ? <img data-src=" />

&nbsp;

Et moi qui me fait une petite appli android pour compter les points au tarot, sans aucune compétence ni formation, c’est assez sportif <img data-src=" />. Et soit je suis nul, soit je suis vraiment nul, parce que j’ai l’impression de faire beaucoup de lignes de codes pour un truc qui devrait être simple, et c’est pas joli à voir. Et non, je ne peux pas compter les points de tête, je suis mathématicien, je ne sais plus faire des soustraction à 3 chiffres <img data-src=" />.



Bref,&nbsp; sur le sujet en question : très bonne initiative, même ce n’est effectivement pas (plus ?) votre cœur de métier, ce genre de contenu, s’il est effectivement lu, est probablement une des meilleures manière d’améliorer la culture numérique <img data-src=" />.


Parce qu’il y a F# <img data-src=" />



Sur le fond je crois vraiment que de montrer qu’on peut “bidouiller” simplement est une bonne manière de faire comprendre que l’outil numérique est là pour nous rendre service et qu’on peut en prendre le contrôle plutôt que d’en dépendre.&nbsp;



En tous cas ça me semble un usage/besoin bien plus réaliste que de penser qu’on sera tous développeurs demain. Le prochain qui me dit ça, je lui fait bouffer 3h sur le polymorphisme et l’héritage <img data-src=" />


Je précise que je travaille pour Microsoft, mais que cela n’a rien à voir avec ce qui va suivre, qui représente seulement mon opinion, et explique - en partie - pourquoi d’ailleurs j’en suis venu à travailler ici…



J’ai une formation d’ingénieur. J’ai fait de l’informatique théorique (algorithmique, Intelligence artificielle, …) durant ma formation durant laquelle je codais en Caml. J’ai fait mes premières classes bien avant cela au collège/lycée avec du Pascal et du Basic. J’ai commencé lors de mes études informatiques à coder en C, Java et PHP sur Linux, puis sur Mac. J’ai fait également du Python. Développement web en HTML/PHP/JS. Puis je suis passé à .Net/C#.



Le résumé de mon expérience ci-dessus, plutôt complète et pas sectaire vous en conviendrez vu l’étendu de ce que j’ai pratiqué : je préfère de loin l’environnement .Net.

Ce n’est pas un jugement de valeur, seulement mon expérience. dans le désordre, des arguments : Visual Studio/.Net/C# est un langage à la fois facile d’accès mais extrêmement puissant. Il est fortement typé (à l’inverse de JS ou Python), ce qui me semble indispensable pour l’apprentissage d’un langage orienté objet et est donc un bon choix ici. L’IDE est accessible au premier abord et permet de masquer des complexités au premier abord tout en permettant d’aller plus loin progressivement. Visual Studio est sans égal sur le marché à ma connaissance en terme de facilté de débuggage, contrôle du code source, automatisation des tests, assistance au développeur… Et encore une fois j’ai fait un paquet d’IDE (Eclipse, VIM, Visual Studio, KDevelop, EMacs).



Et un dernier point mais non des moindre : si vous voulez travailler votre employabilité, avoir écrit C# sur son CV est aujourd’hui une excellente garantie (ici, les technos web modern type AngularJS and co sont aussi un bon candidat)… Et si vous vous intéressez au salaire, je peux vous garantir que pour un développeur encore une fois ce type de compétence est bien plus rémunérateur





Enfin, au passage, je vous conseille amicalement de jeter un œil neuf à ce qu’est Microsoft aujourd’hui… Il serait dommage de rester bloquer dans les années 90, car cela a bien évolué ! Avez-vous remarqué la sortie de l’iPhone en 2007, ou utilisez-vous toujours un Bebop ?


Bravo au passage NextInpact pour ce dossier, c’est un vrai sujet d’actualité !








OlivierJ a écrit :



NAN <img data-src=" />

<img data-src=" />



<img data-src=" />





&nbsp;



OlivierJ a écrit :



Je note pour Scratch, j’avais vaguement le nom en tête mais je n’étais pas sûr. En fait je parlais plutôt d’initier mon fils à de la programmation simple, pas à Linux en tant que système et ses commandes système (enfin après si ça l’intéresse). Il aura sûrement du mal à passer à côté de Windows j’imagine, mais il saura ce que j’en pense. Moi qui ai connu l’arrivée d’un OS open source (et même de plusieurs en comptant les BSD), j’ai trouvé ça extraordinaire (avoir sur un simple PC abordable un système avancé et stable qui était réservé à des stations de travail onéreuses comme les Sun ou autres HP et DEC).



Mes 4 neveux et nièces ont des PC portables sous Ubuntu, mon beau-frère en a eu marre de Windows. <img data-src=" />

Je pense qu’elles n’ont pas de mal à utiliser un PC Windows quand elles tombent dessus.





Je paye mes respects&nbsp;<img data-src=" />.

&nbsp;Scratch n’est pas une initiation au code mais plutôt à l’algorithmique. J’étais dubitatif mais c’est franchement bien branlé. Et surtout, ça marche auprès des gosses : j’ai été épaté par ce que mes neveux font à l’école puis dans leur coin (après on est fortiche dans la famille&nbsp;<img data-src=" />&nbsp; ).&nbsp;

En revanche, et c’est là que ce dossier est intéressant, c’est bien de comprendre que tout ne se fait pas non plus avec des briques, et de savoir écrire (du code) avec la rigueur de la syntaxe, la beauté de l’indentation, de l’optimisation toussa toussa.





GruntZ a écrit :



Mais non … Là, c’est dredi <img data-src=" />

&nbsp;Allez, bonnes fêtes de fin d’année à tous <img data-src=" />





&nbsp;eh m on est dredi&nbsp;<img data-src=" />

La bonne fête oui!



Sauf que les œillères que tu portes du fait de ton allergie depuis les années 90 t’ont fait passer à côté de ce qu’est C#.



Le réduire aujourd'hui à un clone de Java est une preuve de méconnaissance grossière. Il a progressé bien, bien au-delà de Java, ne serait-ce que par l'inclusion de LINQ, des méthodes d'extensions (sortes de mixins), des value tuples avec déconstruction, et, non des moindres, d'async/await que tous les autres langages ont repris ou espèrent reprendre. Et je passe la multitude petits agréments syntaxiques.      

Aujourd'hui, passer de C# à Java, je vois mal comment tu n'aurais pas envie de te tirer une balle dans la tête. C'est extrême comme formulation, mais tu vois l'idée. Après je ne dis pas du tout qu'il est parfait, rien de l'est, et il y a encore un paquet de pistes d'améliorations, mais j'ai beaucoup de plaisir à travailler avec.

Pour finir, c'est un langage libre pour lequel il existe au moins deux environnements open-source et multiplateformes : Roslyn + .NET Core, et Mono. En plus il existe une IDE open-source, gratuite, multiplateforme et performante pour aller avec qui s'appelle Visual Studio Code. Je ne vois donc pas de raison de le stigmatiser autre que par un principe anti-Microsoft anachronique.







Coeur2canard a écrit :



En revanche, […] c’est bien de comprendre que tout ne se fait pas non plus avec des briques, et de savoir écrire (du code) avec la rigueur de la syntaxe, la beauté de l’indentation, de l’optimisation toussa toussa.





Allez ! Tout le monde se met à l’assembleur <img data-src=" />





Coeur2canard a écrit :



eh m on est dredi <img data-src=" />

La bonne fête oui!



Merci <img data-src=" />



J’allais suggérer une appli web pour être plus au goût du jour, mais c’est vrai qu’en web “hello world” ne nécessite qu’un fichier HTML statique à ouvrir dans un navigateur. <img data-src=" />


Non mais sinon y’a aussi le tuto “Tapez echo Hello, World ! dans la console de Windows”



Hein <img data-src=" />


Moi j’aime bien C# / .NET, j’en fais de temps en temps à côté du C++ que je pratique depuis plus de 10 ans, et non, je déconseille QT aux débutants : par défaut, ça ne fait jamais ce que tu veux <img data-src=" />


D’ailleurs pour un prochain article, un exo concret du genre Altice Stock Checker mais avec du html/css/javascript m’intéresserait bien.

Savoir comment on peut se créer des petit soft sympa, les étapes de construction d’une interface web, la séparation fond/forme, avec quels outils on test, etc…


Tu peux détailler un peu qu’on voit la source de ton malaise?


J’ai toujours du mal avec l’apprentissage de la programmation en mode “école 42” = directement les mains dans le cambouis. J’ai l’impression qu’on apprend surtout le copier/coller de code pompé ici ou là (oui, je pense à toi: stackoverflow).



Je ne pense pas qu’on puisse “comprendre” la programmation impérative sans les fondamentaux que sont les structures de données, les instructions, les structures de contrôles… Alors taper directement dans de l’orienté-objet, ca me parait ambitieux.


Apres les banques et les comptes dans le ciel, il y a maintenant un sujet sur la programmation.

&nbsp;

C’EST GÉNIAL.

&nbsp;

Je vais peut être enfin refaire mon dock perso - fait en VB y’a + de 15 ans -. Je l’avais adapté en ARexx (pour moi le meilleur langage de scripts ) sur Amiga et en Rexx sur ma Mandrake / Mandriva. Sur Windows Rexx est pas terrible (sauf si cela a changer ).



Sur RPI python est sympas, même si l’indentation obligatoire me gonfle. Je vais certainement essayé c# pour voir si c’est amusant comme langage.

&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BON RÉVEILLON ET JOYEUX NOEL A TOUS.

&nbsp;


Y’a que moi qui trouve ça étonnant (et non pertinent) de faire un tuto de programmation ici ?



La valeur ajoutée est inexistante : y’a déjà des milliers de vidéos, blogs, sites web, livres… sur le sujet.



Et les ressources existantes sont très certainement bien mieux faites. En tout cas qui nécessitent pas d’installer 3.3 Go pour faire une appli desktop mono-plateforme façon 1998.


Ne troll pas …

Le C# a des optims que le

java n’a pas. Oracle est lent, lent, lent pour mettre à jour java …

Java n’est pas plus libre que le C#, faut arrêter avec ça :)

Cependant, c’est certain, java est clairement au dessus du C# pour ce qui est du web (Spring offre tellement plus que .net pour de l’api, mais c’est mon avis ^^).



En revanche pour de l’appli, le .net offre plus de simplicité que Javafx ou autre joyeusetée du monde python <img data-src=" />



L’important c’est pas le langage, c’est la culture du developpement !


Tout dépend de ce que tu veux faire, et notamment de si tu veux devenir développeur de métier ou simplement te faire quelques outils maison.&nbsp;



Le souci qu’il peut y avoir avec l’approche “voici 200 pages de docs avant de taper la moindre ligne de code” c’est que tu perds pas mal de monde au passage, et ça ne facilite pas pour montrer que ça peut être accessible.



Une fois de plus, ici je ne dit pas qu’on va faire des lecteurs des développeurs, mais je pense qu’on peut se servir de leurs outils pour faire des choses au quotidien, quitte à ensuite se plonger plus profondément dans la “littérature” sur le sujet.&nbsp;



C’est comme la musique avec le solfège, sur le fond, l’un ne va pas sans l’autre, mais si tu empêche un jeune de grattouiller une guitare sous prétexte qu’il devrait se taper 150 heures de solfège avant, ça va sans doute le refroidir un peu <img data-src=" />


Impératif avant objet c’est le dégat assuré pour passer à l’objet ^^.

Le meilleur des exo au début c’est le célèbre héritage de la classe Animal ^^ tout le mondz peut comprendre avec ça :p


Et c’est partie sur le “langage X c’est de la daube, mon langage Y” est bien meilleur.



Perso, un développeur qui tend à parler comme ca, je le classe au mieux dans la catégorie “stagiaire” s’il s’avère que je doive le recruter.



Cela montre juste une incompréhension et un manque de curiosité criant.



Tous les langages ont leurs avantages et leurs inconvénients, et on peut tous leur trouver des défauts :




  • Java : Oracle, sérieusement?

  • DotNet : Microsoft, c’est le mal, c’est bien connu.

  • JavaScript : le langage pour stagiaire?

    etc, etc…



    Et pourtant, chacun de ces langages a de forts avantages dans pas mal de domaines, qu’on les aimes ou qu’on ne les aime pas.



    Test tout simple : combien ici détestent le JavaScript, et en même temps, n’ont aucune idée de c’est que la POO par prototype? Réponse rapide : beaucoup trop.



    Intéressez-vous un peu aux autres, et vous verrez que l’intérêt de la connaissance et bien supérieur à celui de la critique de ce qu’on connait pas ou peu.



    Pour finir, bravo pour ce tuto, très bonne initiative, quelque soit le langage d’ailleurs.


On ne peut dire mieux.

A chaque besoin, ouvrir ses oeillères.

Je suis curieux de savoir combien de commentateurs sont des développeurs « pro » sur de vraies problématiques métier dans un vaste environnement technique (parfois, souvent, multiplateforme)








PèrePatience a écrit :



sur de vraies problématiques métier dans un vaste environnement technique (parfois, souvent, multiplateforme)





C’est justement pour ça qu’on a inventé Electron, non, j’ai bon ?&nbsp;



<img data-src=" />



Très bon article. Qui arrive à résumer simplement le classique “Hello World” sans noyer le néophyte d’explication plus ou moins longue sur chaque aspect du langage. Au niveau des critiques, je pourrais simplement dire que la partie sur le nettoyage des instructions using est en trop. On ne comprend pas pourquoi on peut le faire. Mais c’est du chipotage ;)



Juste quelques précisions par rapport à ce que j’ai pu lire dans les commentaires.

&nbsp;

La dernière version de Visual Studio n’est pas basée sur .Net Core. Elle intègre le développement d’application .Net Core mais ne repose elle-même pas sur .Net Core. Il n’est, à l’heure actuelle, pas possible de faire des applications graphiques en .Net Standard dans la mesure où cet aspect n’est pas standardisé (il y a bien XAML Standard qui est une première pierre à cette édifice, mais on n’y est pas encore).



Pour le choix du langage, je trouve que c’est un bon choix. Je ne dit pas ça parce que je l’utilise tous les jours dans mon métier, mais parce que je suis passé par de nombreux langages et que c’est un langage simple et clair à appréhender.



Un aspect que j’aime beaucoup et qui n’a pas encore été abordé ici, c’est la pérennité de ce langage et de l’environnement. Avoir un programme écrit il y a 10 ans qui tourne comme si il avait été écrit hier est quand même un énorme plus. Microsoft a réussi à faire évoluer l’environnement .Net et les langages C# et VB.Net tout en gardant la compatibilité. On ne peut malheureusement pas dire la même chose pour Python entre les version 2 et 3.



Maintenant, C# est un langage qui s’exporte bien au dela de l’environnement Windows, et on ne peut que saluer l’initiative .Net Standard qui permet enfin d’avoir du code C# portable entre les environnements.



Le choix de Visual Studio, critiqué par certains, me parait infondé. Windows reste le système d’exploitation majoritairement présent, très loin devant MacOS (lui-même 2x plus utilisé que toutes les distributions Linux confondues !). Visual Studio est un très bon éditeur, et il serait dommage de passer à côté, surtout que la version Community est gratuite.



&nbsp;On aurait éventuellement pu parler de Visual Studio Code, qui&nbsp; à l’avantage d’être disponible sur tous les environnements (Windows, Mac, Linux). Mais la création d’un projet n’est pas aussi guidé que sous Visual Studio et pour un “Hello World” à destination des néophytes, cela ne me semble pas judicieux.



En tout cas, si vous avez besoin d’aide pour la relecture de ce genre d’articles sur le C#, n’hésitez pas ;) Je suis rédacteur sur le site Développez.com&nbsp;pour la rubrique .Net. Pour ceux qui ne connaîtraient pas, Développez.com est un site qui contient de nombreuses ressources sur la programmation, tous langages confondues :)








fdorin a écrit :



Au niveau des critiques, je pourrais simplement dire que la partie sur le nettoyage des instructions using est en trop. On ne comprend pas pourquoi on peut le faire. Mais c’est du chipotage ;)&nbsp;





ça fait des lignes de code en trop, c’est moche et ça fait bosser le compilateur pour rien, ensemble sauvons la planète !

&nbsp;



fdorin a écrit :



La dernière version de Visual Studio n’est pas basée sur .Net Core. Elle intègre le développement d’application .Net Core mais ne repose elle-même pas sur .Net Core. Il n’est, à l’heure actuelle, pas possible de faire des applications graphiques en .Net Standard dans la mesure où cet aspect n’est pas standardisé (il y a bien XAML Standard qui est une première pierre à cette édifice, mais on n’y est pas encore).&nbsp;





Je pense que c’est le vrai manque, parce que pour faire de l’application avec interface en multiplateforme, ça reste pas mal la plaie sauf à passer par des solutions de bourrin (surtout pour de petits besoins) genre Electron…&nbsp;

&nbsp;



fdorin a écrit :



On aurait éventuellement pu parler de Visual Studio Code, qui&nbsp; à l’avantage d’être disponible sur tous les environnements (Windows, Mac, Linux). Mais la création d’un projet n’est pas aussi guidé que sous Visual Studio et pour un “Hello World” à destination des néophytes, cela ne me semble pas judicieux.&nbsp;





Oui VSCode pour du HTML/JS/CSS ça reste simple, dès qu’on veut attaquer du plus lourd ce n’est pas forcément simple à prendre en main. Le pire c’est quand on veut se lancer dans le “voici un tuto pour faire du C# en .Net Core depuis VSCode sous Linux”… y’a de quoi s’arracher les cheveux <img data-src=" />



Merci pour la remontée et la proposition en tous cas ;)









fdorin a écrit :



Le choix de Visual Studio, critiqué par certains, me parait infondé. Windows reste le système d’exploitation majoritairement présent, très loin devant MacOS (lui-même 2x plus utilisé que toutes les distributions Linux confondues !). Visual Studio est un très bon éditeur, et il serait dommage de passer à côté, surtout que la version Community est gratuite.







Je vais paraphraser sur un sujet voisin :



Le choix du moteur de recherche Google, critiqué par certains, me parait infondé. Google reste le moteur de recherche majoritairement présent, très loin devant Bing (lui-même 2x plus utilisé que tous les autres moteurs de recherche confondus !). Google est un très bon moteur de recherche, et il serait dommage de passer à côté, surtout qu’il est gratuit.



(J’ai quasiment tout gardé, y compris le fait que dans l’idée, c’est la critique qui est infondée et pas le choix)



Et rien de personnel, mais le texte s’y prêtait bien pour faire le parallèle avec un sujet qui chatouille David.



Entendons nous bien: je parle de l’apprentissage de la programmation.



Pour moi, ce genre de tutorial est davantage un apprentissage de C# qu’un apprentissage de la programmation.

Ceux qui savent déjà programmer ne vont pas apprendre grand chose (C# ressemblant beaucoup à des langages connus comme C++/Java…).

Ceux qui n’ont jamais programmé vont juste apprendre à faire du copier/coller dans un nouvel éditeur de texte compliqué.



Tout cela n’est bien sur que mon pauvre avis vieux développeur, donneur de cours au CNAM à des débutants et ancien rédacteur/modérateur d’un forum sur l’aide à la programmation.



Je sais bien quand je fais ce genre de commentaire qu’on va me répondre que “la théorie” ca prend beaauucoouuup troooooop de temps a apprendre (200 page de doc, 150 heures de solfège, …).



Sauf que:




  1. Les fondamentaux de la programmation (impérative, structurée, objet, fonctionnelle) ca tient en quelques page/slide avec des jolis schémas et des exemples/analogies. De plus, ca vous servira de base pour toute votre vie quel que soit le langage (tant qu’on reste dans le meme paradigme).



  2. Ignorer les principes fondamentaux c’est le meilleur moyen de faire des erreurs fondamentales. Et là, ca sera trèèèès dur de revenir dans le droit chemin.


Discord en est la parfait exemple d’ailleurs, succès phénoménale : 50 millions d’utilisateurs en 2 ans, et ca marche sur tous les OS, sur le Web, et sur téléphone/tablette de la même façon. <img data-src=" />




Impératif avant objet c’est le dégat assuré pour passer à l’objet





Sauf si on apprend dés le début que ce sont deux paradigmes différents et pas une évolution/sur-couche comme tu sembles le suggérer en parlant de “passer de… vers…”.



Erreur qu’on retrouve d’ailleurs chez tous ceux qui ont appris le C avant de “passer” au C++ et qui se cachent derrière le terme “multiparadigme” pour expliquer le mélange des genres dans leur code. <img data-src=" />


A part que le choix d’un environnement de dev. n’a rien à voir avec le choix d’un moteur de recherche.








fred42 a écrit :



Je vais paraphraser sur un sujet voisin :



Le choix du moteur de recherche Google, critiqué par certains, me parait infondé. Google reste le moteur de recherche majoritairement présent, très loin devant Bing (lui-même 2x plus utilisé que tous les autres moteurs de recherche confondus !). Google est un très bon moteur de recherche, et il serait dommage de passer à côté, surtout qu’il est gratuit.



(J’ai quasiment tout gardé, y compris le fait que dans l’idée, c’est la critique qui est infondée et pas le choix)



Et rien de personnel, mais le texte s’y prêtait bien pour faire le parallèle avec un sujet qui chatouille David.





Sauf que ce n’est pas franchement comparable sur le fond, hein, mais bon <img data-src=" />&nbsp;



&nbsp;



127.0.0.1 a écrit :



Entendons nous bien: je parle de l’apprentissage de la programmation.



Pour moi, ce genre de tutorial est davantage un apprentissage de C# qu’un apprentissage de la programmation.

Ceux qui savent déjà programmer ne vont pas apprendre grand chose (C# ressemblant beaucoup à des langages connus comme C++/Java…).

Ceux qui n’ont jamais programmé vont juste apprendre à faire du copier/coller dans un nouvel éditeur de texte compliqué.



Tout cela n’est bien sur que mon pauvre avis vieux développeur, donneur de cours au CNAM à des débutants et ancien rédacteur/modérateur d’un forum sur l’aide à la programmation.



Je sais bien quand je fais ce genre de commentaire qu’on va me répondre que “la théorie” ca prend beaauucoouuup troooooop de temps a apprendre (200 page de doc, 150 heures de solfège, …).



Sauf que:




  1. Les fondamentaux de la programmation (impérative, structurée, objet, fonctionnelle) ca tient en quelques page/slide avec des jolis schémas et des exemples/analogies. De plus, ca vous servira de base pour toute votre vie quel que soit le langage (tant qu’on reste dans le meme paradigme).



  2. Ignorer les principes fondamentaux c’est le meilleur moyen de faire des erreurs fondamentales. Et là, ca sera trèèèès dur de revenir dans le droit chemin.





    Comme dit, le but n’était pas d’apprendre la programmation au sens large ou même C# en particulier, mais d’en avoir une première approche simple.&nbsp;



    Après sur l’aspect copier/coller je ne suis pas forcément d’accord. Tout dépend forcément de la façon de faire de chacun, mais j’essaie tout de même de pas mal détailler les choix, ce qui est fait, etc. Même si ça reste basique, j’aurais tout de même pu faire bien plus court pour un programme&nbsp; de 80 lignes (dans le cas du tuo Altice).&nbsp;



    Pour le reste, je ne dis pas qu’il faut ignorer les fondamentaux (et je suis plutôt d’accord avec toi là dessus), juste que ce n’est pas forcément la meilleure manière d’intéresser au sujet de la programmation. Même si j’ai passé une partie de ma jeunesse dans des bouquins, si j’avais découvert l’informatique par le guide de MS-DOS 5.0, je me serais vite tiré une balle <img data-src=" />









David_L a écrit :



Sauf que ce n’est pas franchement comparable sur le fond, hein, mais bon <img data-src=" />





Vraiment ?



Vraiment <img data-src=" />


Accordons-nous sur un désaccord.


Comparer le choix d’un moteur de recherche, où la plupart du temps tu fais des recherches pour toi, avec le choix d’un environnement de développement, où tu cherches la plupart du temps à avoir une cible d’utilisateurs donnés, n’a juste rien à voir.



Désolé, mais tu t’enfonces. <img data-src=" />








fdorin a écrit :



Le choix de Visual Studio, critiqué par certains, me parait infondé. Windows reste le système d’exploitation majoritairement présent, très loin devant MacOS (lui-même 2x plus utilisé que toutes les distributions Linux confondues !). Visual Studio est un très bon éditeur, et il serait dommage de passer à côté, surtout que la version Community est gratuite.







Si on va par là, Javascript+éditeur de texte sont nettement plus utilisés que tout ce que tu cites.



Et c’est largement suffisant pour faire un HelloWorld ou un StockChecker. En plus, c’est cross-platform, c’est tendance, y a des IDE online/offline… et ca permet d’enchainer sur les frameworks, les technos web…



Quelqu’aurait été le choix, il y aurait eu des mécontents. Tu prenais JavaScript, tu aurais eu un paquet de développeurs (parait-il) qui auraient criés au scandale, juste parce que JS…



Le prochain tuto sera peut-être un langage de script. :)




Comment organiser votre code JavaScript, notre tuto en 10 parties



Pas con <img data-src=" />


Need une série sur les meilleurs one-liner avec awk.



Avec en sous titre : “pour les hommes, les vrais, avec des poils”.



<img data-src=" />


Tu es libre de démarrer un topic sur le forum <img data-src=" />

&nbsp;

https://forum.nextinpact.com/forum/45-programmation-et-lignes-de-code/


J’ai l’impression que c’est toi qui n’a pas compris. Il ne s’agit pas du “choix d’un environnement de développement, où tu cherches la plupart du temps à avoir une cible d’utilisateurs donnés”, mais il s’agit du choix d’un environnement de dév pour initier des lecteurs au développement. Il ne s’agit pas d’une utilisation pro.



Par contre, d’un point de vue économique, chacun dans son domaine, Google et Microsoft frisent l’hégémonie. Conseiller l’un ou l’autre n’est pas anodin.








127.0.0.1 a écrit :



J’ai toujours du mal avec l’apprentissage de la programmation en mode “école 42” = directement les mains dans le cambouis. J’ai l’impression qu’on apprend surtout le copier/coller de code pompé ici ou là (oui, je pense à toi: stackoverflow).



Je ne pense pas qu’on puisse “comprendre” la programmation impérative sans les fondamentaux que sont les structures de données, les instructions, les structures de contrôles… Alors taper directement dans de l’orienté-objet, ca me parait ambitieux.







Je ne sais pas trop. Je vois des personnes commencer “la programmation” en écrivant simplement une suite d’instruction en R. Ils apprennent d’abord les variable, puis à utiliser des objets (en particulier tout les container) sans trop savoir exactement ce à quoi ça correspond puis découvre les structure de contrôle, puis les fonction et tout le reste. Moi, au contraire, j’ai commençais par le bas et j’ai eu un mal fout à comprendre la notion d’objet qui ne correspondait à rien de ce que j’avais vu jusque là.

Je vois 2 approches à l’initiation à la programmation, par le haut niveau puis en décapsulant les couches d’abstraction ou du bas niveau pour ajouter les couches d’abstractions. La première approche, celle choisi ici, a l’avantage de permettre d’avoir très vite un véritable résultat concret, qui donne envie d’essayer par nous même de bidouiller le code pour le changer. La seconde approche va être plus intéressante lorsque l’on n’a pas forcément besoin de capter immédiatement l’attention, que l’on a le temps (plus de 20minute et tu n’as déjà plus personnes) avant d’arriver à un résultat valorisant.




J’ai aussi le titre d’un autre tutos :

Décodons ensemble les 10 meilleurs regex, la 8ième est incroyable.


Il ne conseil pas, l’(objectif est comme tu le dis d’initier, et pour ca, il faut choisir un environnement de développement. Comme déjà expliqué 10 fois, si un autre langage avait été choisit, on en aurait eu d’autres pour se plaindre : “Pourquoi avoir pris un langage aussi peu utilisé?”



Et quelques soient les éditeurs derrière, tu leur trouveras toujours des inconvénients aussi, libre ou privé.



C’est sans fin. Alors en plus venir comparer des choux et des bitcoins, ca n’aide pas vraiment.








David_L a écrit :



ça fait des lignes de code en trop, c’est moche et ça fait bosser le compilateur pour rien, ensemble sauvons la planète !&nbsp;



Pour sauver la planète, arrêtons le Bitcoin. Ce sera sacrément plus efficace&nbsp;<img data-src=" />



&nbsp;



David_L a écrit :



Je pense que c’est le vrai manque, parce que pour faire de l’application avec interface en multiplateforme, ça reste pas mal la plaie sauf à passer par des solutions de bourrin (surtout pour de petits besoins) genre Electron…&nbsp;

&nbsp;





&nbsp;L’usage de solutions à base de HTML/CSS/JS pour réaliser des applications lourdes m’a toujours hérissé le poil. Cela complique grandement le code (4 langages au lieu de 1 !), est généralement lourde, et n’est souvent portable que d’apparence (il y a toujours des subtilités qui font que ça marche bien dans un cas, mais pas dans un autre). Après, j’admet ne pas avoir testé Electron, mais j’ai été largement refroidi par Apache Cordova.

&nbsp;



&nbsp;&nbsp;

Oui VSCode pour du HTML/JS/CSS ça reste simple, dès qu’on veut attaquer du plus lourd ce n’est pas forcément simple à prendre en main. Le pire c’est quand on veut se lancer dans le “voici un tuto pour faire du C# en .Net Core depuis VSCode sous Linux”… y’a de quoi s’arracher les cheveux&nbsp;<img data-src=" />&nbsp;

&nbsp;Exactement !



Merci pour la remontée et la proposition en tous cas ;)&nbsp;

Mais de rien ;)

&nbsp;&nbsp;



fred42 a écrit :



Je vais paraphraser sur un sujet voisin :



Le choix du moteur de recherche Google, critiqué par certains, me parait infondé. Google reste le moteur de recherche majoritairement présent, très loin devant Bing (lui-même 2x plus utilisé que tous les autres moteurs de recherche confondus !). Google est un très bon moteur de recherche, et il serait dommage de passer à côté, surtout qu’il est gratuit.



(J’ai quasiment tout gardé, y compris le fait que dans l’idée, c’est la critique qui est infondée et pas le choix)



Et rien de personnel, mais le texte s’y prêtait bien pour faire le parallèle avec un sujet qui chatouille David.

&nbsp;



Je n’y prend rien de personnel, soit rassuré. J’aime débattre tant que cela reste constructif, pertinent et étayé ;)&nbsp;

Je me permets de rentrer un peu dans ton jeu. Pour un article sur l’art d’écrire des requêtes optimisées, se baser sur Google, qui a une part de marché de 90% en Europe me parait tout à fait justifié pour un premier article à destination des néophytes.









127.0.0.1 a écrit :



Si on va par là, Javascript+éditeur de texte sont nettement plus utilisés que tout ce que tu cites.&nbsp;



Et c’est largement suffisant pour faire un HelloWorld ou un StockChecker. En plus, c’est cross-platform, c’est tendance, y a des IDE online/offline… et ca permet d’enchainer sur les frameworks, les technos web…





L’éditeur de texte est valable pour tous les langages. L’avantage de l’IDE est d’apporter une aide au développement via de multiple service (coloration syntaxique, compilation, notions de solutions et de projets, gestion des erreurs en temps réel, autocomplétion, etc.)



&nbsp;Le choix du langage, je le laisse au rédacteur de l’article ;)

&nbsp;

Enfin, c’est tendance ne veut rien dire. Et il faut s’en méfier ! BitCoin, c’est tendance, pourtant, je n’y mettrais jamais les pieds ! NoSQL a eu sa période tendance, et tout le monde se jetait dessus, même lorsqu’il fallait une base de données relationnelle classique !

&nbsp;



“On vous explique la Regex magique pour les emails… ah ben non en fait” <img data-src=" />


Discours débile à souhait


Attention nextinpact est codé avec asp.net mvc c# tu devrais quitter ce méchant site qui n’est pas codé avec php (mon dieu l’horreur du code de zend, la conception wtf à souhait) . Un peu comme Mysql tu check le source code, bah tu ne l’utilises pas et tu vas sur du soft sérieux en open source postregre suivant le besoin en proprio sql server ou oracle si t’aimes bien payer avec l’argent des autres.








blbird a écrit :



Tu peux détailler un peu qu’on voit la source de ton malaise?





C’est effectivement un problème de “source” …

Je ne saurais être à l’aise avec des gens qui me cachent quelque chose.



Microsoft est une entreprise commerciale américaine soumise aux loi de son pays, et me démontrer que j’ai tort de ne pas lui faire confiance n’est pas une de ses priorités; soit, je peux comprendre.

Mais hélas, les promesses ne me suffisent pas; il semble qu’il y ait eu des précédents fâcheux (NSA, FBI, toussa…)



D’autre part, s’il est bon de s’initier au code, le faire avec des outils destinés à donner des habitudes qu’on aura du mal à perdre, c’est comme se réjouir que le premier rail de coke soit offert par le dealer.



C’est pas parce que c’est bientôt Noël que “Tout le monde il est beau, tout le monde il est gentil

(© Jean Yanne)









OlivierJ a écrit :



J’ai relu l’autre article d’introduction, ainsi que celui-ci, mais je reste sur ma faim.





Ben vu que MS a une fois de plus décidé d’utiliser sa stratégie “Embrace and Extend”, de copier Java en faisant leur sauce à eux, j’aurais préféré du Java tant qu’à faire (avec Eclipse pourquoi pas).



En plus quand je lis ces passages, ça ne me donne pas envie :




  • « L’application se limitera alors à un fonctionnement sous Windows pour ce premier exercice. »

  • « Visual Studio est un outil complet, mais qui peut être assez lourd si vous n’y prenez pas garde. Sa nouvelle procédure installe néanmoins le strict nécessaire par défaut, réclamant 609 Mo d’espace disque.

    Pour du développement .NET Desktop – le cas qui nous intéresse aujourd’hui – le poids grimpera à pas moins de 3,3 Go. »



    • « Une fois la procédure terminée, vous serez invité à vous connecter avec un compte Microsoft, qui débloque l’accès à différents services. Pour notre guide, cette étape n’est pas nécessaire, vous pouvez ainsi la remettre à plus tard. »



      Vouloir apprendre la programmation à certains, au départ j’y suis tout à fait favorable. Mais je suis devenu allergique à MS dans les années 90 (comme on disait déjà, “MS is to computer what McDonalds is to gourmet cooking”) et même si j’ai réussi à y échapper une partie de ma carrière, la suite ne m’a pas réconcilié (cf le dossier de SebSauvage http://sebsauvage.net/wiki/doku.php?id=microsoft que j’ai redécouvert il y a quelques jours et qui me rappelle pourquoi je n’aime pas du tout MS, il y a trop de passif).





      Etre professionnel, c’est évité d’être sectaire: Java, C# ou autres, chacun choisira en connaissance de cause, mais il faut bien débuté quelque part. Chaque langage a ses avantages et ses inconvénients: Java est beaucoup utilisé en développement BackOffice, C# est bien pour les clients lourds sous Windows (ou C++ si on a besoin de vitesse).



      &nbsp;Je suis architecte SI depuis une quinzaine d’années, et précédemment, j’ai fait beaucoup de développement (C,C++,Pascal objet, Ada, Java…). De nos jours, les environnements des entreprises sont multi-OS/multi-langages et il faut faire communiquer tout ce petit monde. Bref, la technologie et le monde évoluent, il est nécessaire de s’adapter pour suivre cette évolution. Je trouve justement que depuis 45 ans, Microsoft fait de grands efforts pour s’adapter.



      &nbsp;C’est loin d’être parfait, mais il y a des progrès indéniables.










David_L a écrit :



Oui, si tu veux faire du script. Ce n’est pas ce que l’on cherche à faire ici







Juste pour info, Python est un des languages les plus complets. Croire que c’est uniquement un language de scripting est extrêmement grossier. <img data-src=" />









SebGF a écrit :



Need une série sur les meilleurs one-liner avec awk.



Avec en sous titre : “pour les hommes, les vrais, avec des poils”.



<img data-src=" />







Et le Tome 2 avec Sed <img data-src=" />



Sans oublier Xaml standard, Xamarin qui est passé en open source etc.



J’oubliais les avancés dans C# 7.2 et 8 notamment les Span&lt;T&gt; &lt;3 &lt;3 &lt;3 &lt;3.



Je ne parle même pas de la qualité de la technologie .net qui dépasse largement java, rien que l’implémentation des génériques est sans commune mesure java utilise un ensemble de gros hacks dégueulasses qui sont une insulte à intelligence. Bah ouais leur JVM est objectivement bonne pour la poubelle et comme ils n’ont jamais eu les cou* de la réécrire bah ils accumulent les techniques what’s the fuck pour faire tenir le bousin.



Le problème des noms de class qui ne veulent rien dire genre Calendar super ce n’est pas un calendrier, le système de date bugger à mort résolu en intégrant les sources d’une lib tierce dans java 8, le problème des String qui a traîné pendant 10 ans etc. Java est une catastrophe, ne rien connaitre aux détails de fonctionnement et d’implémentation et s’en tenir à coder bêtement fait croire qu’il s’agit d’une super techno mais il n’en est rien sur de nombreux points.



Php est exactement dans le même cas, pas moyen de refaire correctement le moteur sinon plus rien ne fonctionne ils en sont à faire de l’iso bugs avec les anciennes versions, à se traîner encore les mbstring parce que bon php est dans les années 70 et donc faire autre chose que de l’ansi il est à la rue. Heureusement que Perl existe pour que les dev de php puissent pomper du code et présenter des choses qui existent depuis 20 ans comme de super nouveautés … qui a dit DBI entre autre ?



En tant qu’ingénieur dans les technos que je recommande Haskel, Perl, C/C++, dotnet, Pyton.



Pour les cas spéciaux Erlang, F#, R, Oforth (pour faire du vrai embarquer et pas du faux sur des devices octo core avec 8go de ram pour éclater des bulles de savon sur un écran 4K).



En termes de sgbdr : Sql server, Postgre, Mnesia suivant ce que l’on souhaite faire.&nbsp;



MariaDB est pas mauvais ceci dit.&nbsp;


“POO par prototype” c’est joli comme nom de concept. En C#, ça s’appelle des méthodes d’extension :)


Serieux ??



C’est un article sponsoring microsoft ???? <img data-src=" />



Premier article qui me fais regretter mon abonnement !

Un tuto de prog uniquement sur windows avec l’ide windows en .net et en C# wow <img data-src=" />



Comment se mettre des chaînes et un boulet dés le départ lol.



Bref vous avez réussi a me faire commenter….

&nbsp;-1 pour nxi <img data-src=" />

&nbsp;j’espère que les prochain tuto seront plus ouvert


J’espère surtout que tu prendras le temps de lire avant de commenter la prochaine fois&nbsp;<img data-src=" />


Wow <img data-src=" /> ben voyons j’ai tellement besoin de condescendance de nxi la on dirait jean kevin qui balance des pic parsqu’il n’aime pas la critique (moi aussi j’en balance tient c’est facile&nbsp; <img data-src=" /> ).

&nbsp;

La le respect du lecteur se pert tu remarquera que je ne commente quasiment jamais il faut vraiment “me titiller” pour que je l’ouvre la ton article + “ton com” y arrive très bien félicitation…



Mon 1er message était certes trés loin d’être argumenté c’était plus

du ressentis brut mais il faut quand même faire preuve d’humilité et

accepter que tous le monde n’ait pas ton point de vue&nbsp; non ?



Mais j’avoue effectivement j’ai pas pus lire ton article en entier pour une fois&nbsp; (je me suis arrête a compte microsoft ) je ne critique pas le travail mais l’éthique et j’ai lu les com.

Le fait que l’ide ou que (tous ? une partie ?) du language soit multiplate-forme et que c’est le meilleur moyen de toucher un max de monde c’est léger.



Aprés Je suis pas dev mais je répondrait python… ( mais a priori pour

toi c’est un langage de script…) java (tous pourri d’aprés certain

dev) ou ce que tu veux non sponso par microsoft.

C’est a te fermer une partie de tes lecteurs direct surtout celle qui défend le droit d’aller et venir librement sans tracker et qui donc se mefie de microsoft d’un oeil avertis



Sincèrement mon ressentis avant d’arrêter c’était de lire un article sponso sur C# qui reste un langage privilégie par microsoft aux dernières nouvelles je m’attendait tellement pas a ça pour commencer encore moins sur nxi

Surtout avec&nbsp; ce genre de “truc”&nbsp; <img data-src=" />

Une fois la procédure terminée, vous serez invité à vous connecter avec

un compte Microsoft, qui débloque l’accès à différents services.<img data-src=" />&nbsp; Certes c’est non obligatoire mais c’est une belle carotte.

&nbsp;



Bref je suis de toute façon pas la cible et je suppose que tu as choisi de contenter le plus grand nombre ok. Dont acte je verrait si la suite est plus “ouverte” <img data-src=" />. Si je re commente c’est que ce ne plaira toujours pas <img data-src=" />

Je te redonne mon point de vue il y avait tellement mieux à faire pour commencer relis les com je suis pas le seul à le penser en plus.

&nbsp;

Donc de manière plus posé :




  • 1 pour le choix éthique du langage

  • 10 pour le commentaire de réponse condescendant limite méprisant





    &nbsp;

    &nbsp;


J’ai toujours été franc avec les lecteurs, abonnés ou non. Je prend le temps d’expliquer la démarche et les choix dans les articles, tu préfères faire un raccourci, je ne vais pas répéter ce qui est déjà évoqué 23 fois dans le dossier.



Comme dit précédemment, je comprends que certains ne puissent pas encadrer MS, mais nous ne guidons pas nos choix rédactionnels sur de tels critères. Et dans tous les cas, on détaille notre démarche et l’ambition sur le long terme.



Le respect, ça commence parfois aussi simplement par s’intéresser à ce que font réellement ceux que l’on critique, plutôt que de juste penser qu’on peut baser un avis sur trois mots-clés <img data-src=" />








Arcy a écrit :



Je trouve le choix du C# plutôt bon mais j’approuve l’idée de certains pour du python pour une seule et unique raison : il oblige à indenter proprement le code.



Si chaque développeur/pseudo-développeur/apprenti-développeur avait cette culture, ça m’aurait bien évité des maux de têtes dans certains projets … <img data-src=" />





Sous C#, Ctrl K puis Ctrl D. Ca réindente tout façon “standard”. Reste le choix de mettre des accolades ou non pour le then d’un if…



Manque de bol, juste non. Tout le JS est basé sur la POO par prototype, et c’est bien un système complètement différent, où tout le langage est construit sur le prototypage. Renseigne-toi un peu.



Déjà de base il n’y a même pas de notion de classe en Prototype :https://developer.mozilla.org/fr/docs/Web/JavaScript/H%C3%A9ritage_et_cha%C3%AEn…



Les objets JavaScript sont des conteneurs de propriétés (appelées propriétés propres de l’objet) et chaque objet possède un lien vers un ou plusieurs objet(s) prototype(s).



La grande particularité est que tu peux changer l’arbre de prototypage existant à tout instant, à tous les niveaux, de manière très simple et dynamique.



Après, les langages de POO par héritage ont quelques fonctionnalités qui tentent vainement de s’approcher de la flexibilité de la POO par prototypage, comme tu en as parlé, mais on est très loin des capacités d’un langage qui est construit sur le prototypage.



De même, le JS peu mimer de la POO par héritage avec les bonnes fonctions, mais ca restera loin de ce que peut faire un C# basé sur la POO par héritage.


Bon je ne vais pas entrer dans le débat C# c’est bien/mal même si en tant que développeur C# senior j’ai mon avis sur la question :p (comment entrer dans le débat en faisant mine que non et que ça se voit à 10km)



Sinon pour faire mon relou la méthode Main de votre programme n’est pas une fonction mais une procédure car elle ne renvoie rien.


C’est bien d’avoir des préférences et des avis, mais l’extrême sectaire dans lequel tu sembles te complaire envers certains langages ou sociétés est juste ahurissant.



Tu réalises que la majorité de tes arguments, si Next Impact avait choisit Python, d’autres comme toi (mais du côté obscure, brrr), te les aurais envoyés en pleine poire?



Plutôt que de râler, propose la même chose en Python, perso je suis très preneur et curieux. Tu sais, la curiosité, cette qualité théoriquement nécessaire de tout bon développeur, qui cherche à comprendre vraiment avant de publier son avis, comme si sa vie en dépendait…


Bonjour tout le monde qui se tape dessus&nbsp;<img data-src=" />



Je trouve que C# en soi c’est pas forcément une mauvaise idée, mais par contre pour un premier contact avec le dev, faire installer un IDE et tout… C’est vraiment personnel comme approche, mais je trouve plus sympa de faire faire le maximum de choses avec un notepad ou ce genre d’editeur simple, et si possible en installant le moins d’environnements. (le mieux ce serait python sous linux vu qu’il y est de base, mais bon, ce serait effectivement se restreindre à un public particulier)

Compiler et executer en ligne de commande, c’est de mon point de vue plus simple que d’avoir des trucs automatisés auxquels on comprend rien, et qui sont plus difficile à debugger en cas de souci. En tout cas je regrette d’avoir commencé comme ça, ça fait souvent partir dans les mauvaises directions.



Enfin c’est juste pour donner mon avis, parce que comme le dit très justement l’auteur de l’article, aucun choix ne ferait l’unanimité.&nbsp;<img data-src=" />

&nbsp;

Par contre lire que Python c’est pour le script, heu… il me semble que le langage a bien dépassé ça, et que les postes avec du dev Python web ou software fleurissent joyeusement. (et quand on ajoute django…)


Pour troller un peu ils auraient dû faire un programme en python avec visual studio ;)


Ahah excellente idée celle-là. Il y aurait eu toutes les critiques combinées de pro et anti. Le pied. Bien vu! <img data-src=" />

<img data-src=" />








xxxo a écrit :



Sinon pour faire mon relou la méthode Main de votre programme n’est pas une fonction mais une procédure car elle ne renvoie rien.





Fixed ;)

&nbsp;



recoding a écrit :



Bonjour tout le monde qui se tape dessus&nbsp;<img data-src=" />



Je trouve que C# en soi c’est pas forcément une mauvaise idée, mais par contre pour un premier contact avec le dev, faire installer un IDE et tout… C’est vraiment personnel comme approche, mais je trouve plus sympa de faire faire le maximum de choses avec un notepad ou ce genre d’editeur simple, et si possible en installant le moins d’environnements. (le mieux ce serait python sous linux vu qu’il y est de base, mais bon, ce serait effectivement se restreindre à un public particulier)

Compiler et executer en ligne de commande, c’est de mon point de vue plus simple que d’avoir des trucs automatisés auxquels on comprend rien, et qui sont plus difficile à debugger en cas de souci. En tout cas je regrette d’avoir commencé comme ça, ça fait souvent partir dans les mauvaises directions.



Enfin c’est juste pour donner mon avis, parce que comme le dit très justement l’auteur de l’article, aucun choix ne ferait l’unanimité.&nbsp;<img data-src=" />

&nbsp;

Par contre lire que Python c’est pour le script, heu… il me semble que le langage a bien dépassé ça, et que les postes avec du dev Python web ou software fleurissent joyeusement. (et quand on ajoute django…)





Comme dit, je trouve que le souci d’une approche de type “on vous apprend à faire un petit batch/script pour commencer” me semble souvent perçue comme décevante parce qu’au final, on a pas l’impression de faire grand chose. A moins d’attaquer directement par le fameux classique du BASIC : “allez on développe un Snake”, mais il faut un peu plus de lignes de code <img data-src=" />

&nbsp;





xxxo a écrit :



Pour troller un peu ils auraient dû faire un programme en python avec visual studio ;)





Chiche ? <img data-src=" />









David_L a écrit :



Comme dit, je trouve que le souci d’une approche de type “on vous apprend à faire un petit batch/script pour commencer” me semble souvent perçue comme décevante parce qu’au final, on a pas l’impression de faire grand chose. A moins d’attaquer directement par le fameux classique du BASIC : “allez on développe un Snake”, mais il faut un peu plus de lignes de code <img data-src=" />&nbsp;





Mais en Python, Java (ou j’imagine en C#), on peut très bien faire une petite fenêtre qui affiche un truc sans passer par un IDE compliqué… ? Je vois pas trop l’opposition entre ce que je dis et “faire une app”?



Oui mais on tombe rarement dans des outils simples à prendre en main, honnêtement l’idée était de trouver un bon compromis entre la simplicité de l’approche côté code/interface et l’accès large.



Si demain j’ai une petite app à développer rapidement pour répondre à un besoin, je vais plutôt aller la faire en C#/WinForms, pour d’autres besoin j’irai plutôt sur du web côté client, du PHP, parfois plus vers du Python/Ruby. Si je veux aller côté Android, on optera pour Java.



Pour l’exemple donné aujourd’hui, C# était à mon sens l’approche la plus facile d’accès à tous les niveaux. Pour de prochains exemples, ce ne sera pas le cas.








xxxo a écrit :



Bon je ne vais pas entrer dans le débat C# c’est bien/mal même si en tant que développeur C# senior j’ai mon avis sur la question :p (comment entrer dans le débat en faisant mine que non et que ça se voit à 10km)



Sinon pour faire mon relou la méthode Main de votre programme n’est pas une fonction mais une procédure car elle ne renvoie rien.





Tiens, oui, j’ai été surpris, normalement la fonction main ne devrait-elle pas renvoyer un int normalement comme code d’erreur (0/EXIT_SUCCESS par défaut)?



Nan c’est pas obligatoire en C#, tu peux renvoyer int si tu veux mais par défaut c’est void.








David_L a écrit :



Oui, si tu veux faire du script. Ce n’est pas ce que l’on cherche à faire ici (mais ça aussi c’est détaillé dans le dossier qu’il est intéressant de lire avant de commenter <img data-src=" />) Et comme dit également, on ferra le tour de différents langages outils si le retour sur ce genre d’article est bon, mais c’était plus “Fun” de commencer par quelque chose de plus concret que de la simple ligne de commande





C’est quand même un poil réducteur pour Python (à la imite de l’offense <img data-src=" />).&nbsp; On trouve vraiment de tout en Python.



Sinon pour pondérer un peu l’aspect multiplateforme, c’est pas encore cela de faire une application graphique en .Net Core :P



Je viens de me rappeler qu’effectivement c’est la même chose en Java. Mais après, j’essaie généralement de renvoyer quand même un code d’erreur.


Tout à fait d’accord avec ton analyse.

C’est fou le nombre de libristes obtus avec des œillères plus grosses qu’eux dans les forums de NextImpact, dès qu’on propose quelque chose de bien relatif à Microsoft ou Windows . <img data-src=" />

Microsoft s’est bien ouvert à Linux depuis quelques années et ce mouvement va s’amplifier dans les prochaines années, pour avoir peut-être un jour le meilleur des 2 mondes réunis. Mais cette idée révulse les libristes : Quoi ?? Windows serait meilleur et plus ouvert que LINUX. Impensable pour ces ayatollah <img data-src=" />



Merci David pour cet article qui peut intéresser des lecteurs curieux


On peut toujours tout faire, mais comme dit, là je cherchais une solution de compromis. Autre avantage, pour la phase “distribution” l’exécutable est prêt à l’emploi&nbsp; (oui je sais,&nbsp;cx_Freeze existe <img data-src=" />).



Pour la partie multi-plateforme j’ai déjà répondu, le gros manque de .Net Core/Standard reste là à mon sens. Mais ils ont déjà fait un gros boulot il faut l’avouer.&nbsp;&nbsp;Sur le fond, à l’inverse, il y a toujours un gros manque côté IDE libres pour simplifier le développement de bout en bout de ce genre d’apps de manière simple.


Meilleur au sens général n’existe pas. Comme dit dans l’intro, il y a une diversité de besoins, de problématiques et de solutions. Elles peuvent juste être meilleures au cas par cas, lorsqu’elles sont adaptées à la situation et au contexte (utilisateur, environnement, etc.).


J’approuve totalement ton discours. Après, je ne dirais pas qu’il faut être ouvert pour être pro, car il y a tellement de sectarisme dans le domaine de la communauté de développement, que ca fait littéralement peur.



J’ai regardé une vidéo sur les webworkers JS récemment, faites par un “pro” français, de type conférence. Toutes les 2 phrases d’explications, il envoyait une pique à Microsoft et au DotNet, gratos, ca en est devenu ridicule au bout de 10mn. Fatiguant ce genre de personnages, du même acabit que le débat sur le libre ou le propriétaire. <img data-src=" />


cf mon commentaire #46



On est face à un tuto de C# et pas un tuto de programmation. Avec ce genre de tuto tu seras capables de monter progressivement en compétence C#, mais tu devras repartir de zéro pour apprendre javascript ou C++ alors que ces 3 langages partagent les mêmes fondamentaux du paradigme orienté-objet.


C’est largement réducteur ce que tu dis. En terme de code serveur par exemple, la technologie J2EE a eu beaucoup d’avances depuis 15 ans, en particulier sur la partie serveur Microsoft à la IIS (techno réellement pourrie quand tu connais un peu les serveurs applicatifs Java et les frameworks derrière, sans parler de l’offre pléthorique que J2EE recouvre à ce sujet, contrairement à Microsoft).



Je pourrais en citer encore pleins d’autres pour enfoncer Microsoft comparé à Java/J2EE.



Encore une fois, c’est avantages et inconvénients, chacun ses points forts et faibles.



Vouloir jeter une technologie sous prétextes de ses points faibles sans avoir une vision d’ensemble, c’est faire preuve de peu d’ouverture d’esprit : c’est très dommage dans l’IT.


Autant j’approuve totalement le choix de C#, qui est mon langage de prédilection, autant je trouve dommage de faire un tuto qui ne s’adresse qu’aux utilisateurs Windows, surtout sur un site comme NXI dont beaucoup de lecteurs sont sous Linux ou Mac.



On n’a pas besoin de Visual Studio ou de Windows pour faire une appli console ou web en C#. Il suffit du SDK .NET Core et de Visual Studio Code; c’est beaucoup plus léger, et c’est multiplateforme.


En tant que dev Java (10 ans) et C# (5 ans) pour le taf, je peux dire que c’est quand même beaucoup moins tranché que ça.



Côté C#, on a un langage monstrueusement compliqué, qui ferait passer le C++ pour un langage simple. Tellement de mots clés, tellement de features présentes dans le langage qu’à moins d’utiliser un sous-ensemble restreint du langage dans une équipe, c’est le chaos. Si vous n’y croyez pas, comparez la taille d’un bouquin pour apprendre le .Net à ceux pour le java. Perso, j’ai jamais eu le courage de finir mon bouquin sur le .Net. Pourtant, j’ai bossé sur des dizaines d’applis qui tournent actuellement en prod, ça gêne pas plus que ça quand on choisis un sous-ensemble cohérent du langage.

Vu que l’environnement .Net a toujours été moins populaire que Java, il y a moins de librairies tierces même si celles qui sont présentes sont de qualité comparable. Par contre, les libs tierces sont souvent moins sexy et fréquemment, en dehors des libs fournies par Microsoft (pléthoriques, de bonne qualité et bien documentées depuis quelques années), c’est le désert. Microsoft a fait un énorme effort sur la doc de ses produits, donc si vous avez comme moi joué avec .Net en 1.0, oubliez tout. Maintenant, les docs sont bonnes.

A faire tourner, ben à part .Net core, c’est pas la fête pour les administrateurs. Me parlez pas de mono, pour une vraie prod on évite les gadgets.

Côté intégration continue, c’était pas terrible, mais ça s’arrange, ils ont fait de gros efforts là dessus.

Côté avenir, c’est .Net core et c’est plutôt bien foutu. Ils savent faire plaisir aux devs chez Microsoft. Par contre, l’absence de parité de fonctionnalités entre la VM .Net pour Windows et .net core peut ajouter de la complexité.

Pour apprendre, l’IDE est gratuit, facile à utiliser et très graphique, donc c’est top !



Côté Java, on a un langage plutôt simple et cohérent, mais pas sexy pour deux sous. La philosophie initiale était clarté et pas de magie. L’avantage, aussi, c’est que le langage et le JDK restent comparativement encore simple et accessibles.

A cause des errances d’Oracle, le langage, le JRE/JDK et JavaEE ont perdu de leur superbe. Alors c’est rien de dramatique, le langage reste quand même agréable à utiliser mais pour la modernité, on repassera. On s’extasie encore de l’arrivée des streams et des closures alors que c’est arrivé partout ailleurs depuis des lustres.

Pour les libs, java c’est le nirvana. Si vous voulez faire un truc, vous savez que ça existe forcément et qu’il y a des millions de devs qui utilisent aussi ces outils et qu’ils sont ultra-solides. En plus il y a du choix, JavaEE, ou Spring, ou VertX, ou d’autres, bref si vous avez un besoin spécifique, il y a forcément les libs qui vous faut. Par contre, d’expérience, les docs sont de qualité très variable.

Côté intégration continue, c’est juste top. C’est facile de faire des livrables, de lancer les tests. Si vous êtes fauchés, il y a toujours Jenkins qui fait le job.

Pour l’avenir, on est dans une période de flottement. La JRE/JDK va passer en cycle de releases tous les 6 mois et pour JavaEE ça va être dans le même style, mais on sait pas du tout comment ça va marcher pour de vraie sous la fondation Eclipse.

Pour l’apprentissage du java, IntelliJ Idea Community est fabuleux, mais les fonctionnalités les plus commodes sont dans la version Ultimate qui est très payante. Mais je pense qu’on peut s’en sortir avec la version Community.


Le tuto est là pour introduire le second guide qui nécessite VS. Au passage, Visual Studio existe également pour macOS&nbsphttps://www.visualstudio.com/fr/vs/visual-studio-mac/


Oui mais tu peux pas faire du WinForms avec… Bon, évidemment pour l’instant il n’y a pas grand chose comme framework UI multiplateforme, et les rares qui existent ne sont pas aussi faciles à utiliser que WinForms.



Je recommande quand même de jeter un coup d’oeil à Avalonia, qui permet de faire des applis XAML multiplateformes. Ça a été utilisé par exemple pour porter MSBuildStructuredLogViewer sur d’autres plateformes (pas forcément l’exemple le plus intéressant, mais ça donne une idée des possibilités)


Merci ;)&nbsp;


Avalonia n’a pas vraiment d’intérêt MS étant entrain de bosser à l’unification de XAML sur toutes les plateformes la version 2 de XAML standard est sortie il y a une semaine si je ne m’abuse et le travail de mise à jour de Xamarin etc. à commencé. Il faut installé un package définissant des alias pour passer de Xamarin forms à Xaml standard par exemple. Actuellement je monte un proto sur le sujet sur une appli complexe.



XAML étant un languade de sérialisation d’interface ce refactoring permettra de cibler au niveau bas niveau ou D3D ou OpenGl de façon transparente pour le rendu :)&nbsp;




L’application se limitera alors à un fonctionnement sous Windows pour ce premier exercice.





<img data-src=" />



A demain pour de nouvelles aventures !








127.0.0.1 a écrit :



cf mon commentaire #46



On est face à un tuto de C# et pas un tuto de programmation. Avec ce genre de tuto tu seras capables de monter progressivement en compétence C#, mais tu devras repartir de zéro pour apprendre javascript ou C++ alors que ces 3 langages partagent les mêmes fondamentaux du paradigme orienté-objet.







Tu le dit plus ou moins, l’une des questions est “pourquoi faire ?”. Je ne vois pas trop comment en une poignée d’articles tu vas faire un véritable cours de programmation. Je vois ça comme une introduction, une démystification de la programmation. C’est donner l’envie de découvrir ce qu’est la programmation ou au moins faire comprendre ce qu’il y a derrière une application.









tom103 a écrit :



Autant j’approuve totalement le choix de C#, qui est mon langage de prédilection, autant je trouve dommage de faire un tuto qui ne s’adresse qu’aux utilisateurs Windows, surtout sur un site comme NXI dont beaucoup de lecteurs sont sous Linux ou Mac.



On n’a pas besoin de Visual Studio ou de Windows pour faire une appli console ou web en C#. Il suffit du SDK .NET Core et de Visual Studio Code; c’est beaucoup plus léger, et c’est multiplateforme.





A qui s’adressent ce “tuto” ? Potentiellement, la majorité des mecs qui tournent sous linux n’ont pas forcément besoin d’introduction à la programmation.

Visual Studio permet surtout d’aller plus directement au cœur du sujet et de mettre de coté les détails.







Je propose que le prochain tutos soit sur l’installation d’Ubuntu, comme ça dans les commentaires, on aura un débat pour savoir quelle distribution David aurait du choisir à la place parce qu’Ubuntu c’est nul. Puis ensuite le classique tuto sur EMacs parce que l’on ne peut pas rater la guerre avec VI…









tazvld a écrit :



Tu le dit plus ou moins, l’une des questions est “pourquoi faire ?”. Je ne vois pas trop comment en une poignée d’articles tu vas faire un véritable cours de programmation. Je vois ça comme une introduction, une démystification de la programmation. C’est donner l’envie de découvrir ce qu’est la programmation ou au moins faire comprendre ce qu’il y a derrière une application.







J’ai un avis diamétralement opposé: c’est ce genre de tuto qui fait apparaitre la programmation comme une suite de formules magiques et de rituels mystiques sortant de nulle part, qu’il faut apprendre par coeur et reproduire à l’identique pour arriver au résultat escompté.



J’ai reçu ce genre de cours en math sup+spé où l’on te balance des démonstrations de théorème et des méthodes de calcul matriciel a apprendre/reproduire. Ca ne m’a servit à rien à part réussir des concours d’entrées dans des grandes écoles… Ce n’est une fois dans ces grandes écoles que j’ai pris le temps de comprendre ce que j’avais appris bêtement.









tazvld a écrit :



Visual Studio permet surtout d’aller plus directement au cœur du sujet et de mettre de coté les détails.





Mais ça justement, je ne trouve pas ça tout à fait juste. (toujours dans l’idée que de toute façon personne ne sera d’accord, que ce soit pour le langage ou les outils&nbsp;<img data-src=" />, débattons dans la bonne humeur) Ou alors il faut préciser le coeur du sujet.

Une appli fenêtrée n’a pas besoin d’un IDE pour être codée et lancée vite fait. Et au moins ça donne vraiment l’impression d’être magicien/coder.

Se lancer avec VS (ou Eclipse, ou Netbeans, ou IntelliJ, ou Pycharm…) c’est justement se soucier de plein de détails qui ne sont pas du pur dev, mais de l’utilisation/config/automatisation d’outil. Et je trouve que c’est mieux en deuxième couche qu’en découverte.









127.0.0.1 a écrit :



J’ai reçu ce genre de cours en math sup+spé où l’on te balance des démonstrations de théorème et des méthodes de calcul matriciel a apprendre/reproduire. Ca ne m’a servit à rien à part réussir des concours d’entrées dans des grandes écoles… Ce n’est une fois dans ces grandes écoles que j’ai pris le temps de comprendre ce que j’avais appris bêtement.







Ca c’est un problème plus général de notre système éducatif, se faire bourrer la tronche de connaissances sans réellement comprendre leur intérêt et comment les exploiter.



A ce titre, le système éducatif danois propose une approche intéressant basée sur l’analytique et l’apprentissage du traitement de l’information. Raison pour laquelle leur équivalent du Bac se fait avec Internet et que chez nous ça se fait avec des calculatrices qui doivent devenir des briques en read-only sous peine de prison.









127.0.0.1 a écrit :



J’ai un avis diamétralement opposé: c’est ce genre de tuto qui fait apparaitre la programmation comme une suite de formules magiques et de rituels mystiques sortant de nulle part, qu’il faut apprendre par coeur et reproduire à l’identique pour arriver au résultat escompté.



J’ai reçu ce genre de cours en math sup+spé où l’on te balance des démonstrations de théorème et des méthodes de calcul matriciel a apprendre/reproduire. Ca ne m’a servit à rien à part réussir des concours d’entrées dans des grandes écoles… Ce n’est une fois dans ces grandes écoles que j’ai pris le temps de comprendre ce que j’avais appris bêtement.





Justement, on est pas en prépa, les gars qui vont lire le tutos n’ont aucune contrainte de rester si ça leur fait chier. Il faut réussir à les capter et les garder intéresser. Alors, ouai, ça peut paraître un peu forcé comme exemple, mais bon, bon nombre de “vulgarisation scientifique” ne le sont que de nom, c’est surtout des curiosités montrées au public. Un gamin qui repart avec son Eppendorf contenant de l’ADN précipité, en soit ça ne sert à rien, il n’a aucune preuve que ce nuage blanchâtre est de l’ADN, mais on attise la curiosité de certain en faisant ça, il vont poser des questions, voir chercher par eux même des informations… Il vont s’intéresser au sujet.

Là, visual studio par exemple propose l’autocomplétion avec une liste de choix, je suis sûr par exemple qu’il y a d’autre propriété sur la modification de l’écriture sur la console qui va s’afficher, certain curieux vont les tester. D’autre vont essayer de voir si l’on ne peut pas écrire plusieurs lignes…. Ils vont expérimenter de manière empirique.



Hum… Ce que tu décris n’est pas de l’apprentissage (de la programmation) mais de la découverte (du langage C#).



Avec en plus l’idée que la curiosité intellectuelle incitera à une pratique en autodidacte, ce qui à mon sens n’est pas le mieux pour apprendre les fondamentaux. C’est avec ce genre de méthode que j’ai rencontré des développeurs C qui me disaient “quand on met une étoile devant la variable, après il ne faut pas mettre une fleche mais un point”. Ce qui est tout a fait exact d’un point de vue pratique, mais assez réducteur d’un point de vue théorique. <img data-src=" />








David_L a écrit :



Ce n’est pas une question d’apprécier ou pas côté lecteurs, mais avec tout l’amour que j’ai pour l’OSS ou Linux, si je fais un tuto orienté uniquement vers ces outils, je me coupe de 90% des lecteurs, en m’adressant à des gens qui ont déjà pour la plupart largement plus de connaissances que les bases que je veux diffuser.





90 % des lecteurs sont uniquement sous Windows ? (vraie question, je ne me souviens pas des chiffres, que vous avez déjà dû publier, qui indiquent le navigateur utilisé)

Il me semble de mémoire que la journée on a plus de Windows (à cause du boulot où il est imposé sauf exception) et le soir une part moins importante, au profit de Mac et Linux.

En plus, autant installer Windows c’est plus compliqué du fait qu’il faut une licence, normalement installer un Linux c’est facile dans la mesure où pas besoin de licence ; évidemment il faut soit avoir une 2e machine, soit savoir utiliser VirtualBox, soit avoir envie d’un double boot.







David_L a écrit :



Ces tutos ne sont pas pour les sysadmins, plutôt pour ceux qui bidouillent sans jamais avoir osé lancer un VS ou même un autre éditeur. L’idée c’était de leur mettre un peu de concret dans les pattes. M’enfin comme déjà détaillé ici ou dans les papiers, le but c’est d’être agnostique sur les technos et de montrer que chacune à ses avantages/incovénients selon les cas.





Je n’ai jamais pensé que ça devrait être pour les sysadmins, je ne m’orientais pas par rapport à ça. Je suis tout à fait favorable à expliquer comment se lancer dans de la programmation dans un environnement simple (Eclipse ou VS ou autre).

Mais là on n’est pas tout à fait agnostique sur les technos.









beuhbeuh a écrit :



Je précise que je travaille pour Microsoft





Tu vas périr en enfer.



<img data-src=" />

<img data-src=" />







beuhbeuh a écrit :



Visual Studio est sans égal sur le marché à ma connaissance en terme de facilté de débuggage, contrôle du code source, automatisation des tests, assistance au développeur… Et encore une fois j’ai fait un paquet d’IDE (Eclipse, VIM, Visual Studio, KDevelop, EMacs).





J’ai connu Eclipse à ses débuts et j’ai pratiqué jusque vers 2008, j’ai trouvé que c’était très bien conçu et puissant, je codais en Java sur des projets à plusieurs.

(pour ma part j’ai commencé par du Basic et de l’assembleur 6502, en passant par divers langages connus)







beuhbeuh a écrit :



Et un dernier point mais non des moindre : si vous voulez travailler votre employabilité, avoir écrit C# sur son CV est aujourd’hui une excellente garantie (ici, les technos web modern type AngularJS and co sont aussi un bon candidat)





C’est possible, mais j’ai plus souvent vu du Java et d’autres que C#. Cela dit, je ne pense pas que C# soit un mauvais langage.







beuhbeuh a écrit :



Enfin, au passage, je vous conseille amicalement de jeter un œil neuf à ce qu’est Microsoft aujourd’hui… Il serait dommage de rester bloquer dans les années 90, car cela a bien évolué !





Je le constate effectivement. Mais le passif reste lourd à mes yeux, les années ont été longues.







ZoZo a écrit :



Sauf que les œillères que tu portes du fait de ton allergie depuis les années 90 t’ont fait passer à côté de ce qu’est C#.





Pas forcément, pour les oeillères ou pour le “passer à côté” ; d’une part parce que je lis des sites comme NXI qui parlent pas mal de Windows, et d’autre part pour C# puisque j’ai eu des collègues qui ont développé dans ce langage et j’ai eu des échanges avec eux, sans parler de ce que j’ai lu indépendamment dans la presse spécialisée.







ZoZo a écrit :



Le réduire aujourd’hui à un clone de Java est une preuve de méconnaissance grossière. Il a progressé bien, bien au-delà de Java





Je n’ai pas dit clone, j’ai dit qu’il a copié, s’en est fortement inspiré, avant de faire sa propre tambouille (embrace and extend), comme avec d’autres technos, ça n’a rien de nouveau. Ce n’est même pas forcément un mal dans l’absolu de prendre exemple sur un truc pas mal conçu et de partir de là.

Mais normalement on n’a pas oublié comment MS s’est arrangé pour couler Java sous Windows, il y a même eu des procès pour ça.







ZoZo a écrit :



Aujourd’hui, passer de C# à Java, je vois mal comment tu n’aurais pas envie de te tirer une balle dans la tête. C’est extrême comme formulation, mais tu vois l’idée.





Oui c’est extrême. Java aussi a progressé, a introduit divers concepts et facilités d’écriture.







ZoZo a écrit :



Pour finir, c’est un langage libre pour lequel il existe au moins deux environnements open-source et multiplateformes : Roslyn + .NET Core, et Mono. En plus il existe une IDE open-source, gratuite, multiplateforme et performante pour aller avec qui s’appelle Visual Studio Code. Je ne vois donc pas de raison de le stigmatiser autre que par un principe anti-Microsoft anachronique.





Depuis quand Visual Studio Code est gratuit ?



Note que j’ai déjà développé avec Visual C++ il y a une dizaine d’années, je trouvais ça moins bien qu’Eclipse, et la configuration est souvent confuse, il y a trop de menus dans tous les sens, un peu à la MS (comme pour les API Windows, en général je ne trouve pas ça beau).







GruntZ a écrit :



Allez ! Tout le monde se met à l’assembleur <img data-src=" />





Le fait d’avoir fait de l’assembleur, ça m’a permis d’apprécier beaucoup le C ; et ensuite en passant à des langages comme Perl, PHP et encore plus Java, le confort fabuleux de n’avoir plus à faire attention à la gestion des chaînes de caractères et à la libération mémoire, et de faire en encore moins de lignes les choses.









fred42 a écrit :



Je vais paraphraser sur un sujet voisin :



Le choix du moteur de recherche Google, critiqué par certains, me parait infondé. Google reste le moteur de recherche majoritairement présent, très loin devant Bing (lui-même 2x plus utilisé que tous les autres moteurs de recherche confondus !). Google est un très bon moteur de recherche, et il serait dommage de passer à côté, surtout qu’il est gratuit.





<img data-src=" />







blbird a écrit :



A part que le choix d’un environnement de dev. n’a rien à voir avec le choix d’un moteur de recherche.





Peux-tu développer ?

(jeu de mots involontaire)









127.0.0.1 a écrit :



Si on va par là, Javascript+éditeur de texte sont nettement plus utilisés que tout ce que tu cites.



Et c’est largement suffisant pour faire un HelloWorld ou un StockChecker. En plus, c’est cross-platform, c’est tendance, y a des IDE online/offline… et ca permet d’enchainer sur les frameworks, les technos web…





Bien vu :-) .







blbird a écrit :



Quelqu’aurait été le choix, il y aurait eu des mécontents. Tu prenais JavaScript, tu aurais eu un paquet de développeurs (parait-il) qui auraient criés au scandale, juste parce que JS…

Le prochain tuto sera peut-être un langage de script. :)





Il n’y a qu’un seul scandale, c’est MS. <img data-src=" />



(vendredi en retard)







fred42 a écrit :



J’ai l’impression que c’est toi qui n’a pas compris. Il ne s’agit pas du “choix d’un environnement de développement, où tu cherches la plupart du temps à avoir une cible d’utilisateurs donnés”, mais il s’agit du choix d’un environnement de dév pour initier des lecteurs au développement. Il ne s’agit pas d’une utilisation pro.



Par contre, d’un point de vue économique, chacun dans son domaine, Google et Microsoft frisent l’hégémonie. Conseiller l’un ou l’autre n’est pas anodin.





Exactement.



[mode complotiste]Encore la main de Washington qui oblige les journalopes de NXI à promouvoir du MS /mode









teddyalbina a écrit :



Discours débile à souhait





Merci pour ces explications détaillées, je me coucherai moins bête. <img data-src=" />







teddyalbina a écrit :



Attention nextinpact est codé avec asp.net mvc c# tu devrais quitter ce méchant site qui n’est pas codé avec php (mon dieu l’horreur du code de zend, la conception wtf à souhait).





Oui je sais que NXI est basé sur du MS. Et parce que je n’aime pas MS, je devrais trouver PHP génial ? <img data-src=" />

Je crois même avoir écrit quelque part que PHP avait comme défaut d’avoir des API pas toujours cohérentes, ni tout à fait stables avec le temps, je le dis d’autant plus que j’en ai fait usage pour la 1e fois en 2000 et la dernière en 2011, à gérer des version différentes.







teddyalbina a écrit :



Un peu comme Mysql tu check le source code, bah tu ne l’utilises pas et tu vas sur du soft sérieux en open source postregre suivant le besoin en proprio sql server ou oracle si t’aimes bien payer avec l’argent des autres.





MySQL reste une base solide et de plus en plus utilisée, y compris par les variantes (forks) que sont MaxDB et Percona (et j’en oublie). Perso j’ai toujours été plutôt PostgreSQL, qui a toujours été plus perfectionné. Quant à MS-SQL ou Oracle, non merci (j’ai même eu une formation Oracle à une époque, et j’en ai installé).







Tsunoo92 a écrit :



Etre professionnel, c’est évité d’être sectaire: Java, C# ou autres, chacun choisira en connaissance de cause, mais il faut bien débuté quelque part. Chaque langage a ses avantages et ses inconvénients: Java est beaucoup utilisé en développement BackOffice, C# est bien pour les clients lourds sous Windows (ou C++ si on a besoin de vitesse).





Je rappelle que j’ai utilisé beaucoup de langages dans ma vie. Ta parenthèse finale est amusante :-) .







Tsunoo92 a écrit :



Je suis architecte SI depuis une quinzaine d’années, et précédemment, j’ai fait beaucoup de développement (C,C++,Pascal objet, Ada, Java…). De nos jours, les environnements des entreprises sont multi-OS/multi-langages et il faut faire communiquer tout ce petit monde.





Je suis architecte également (après avoir fait beaucoup de dev et d’intégration) et l’hégémonie de MS est moins forte côté serveur, mais continue à marquer les infrastructures (il faut des serveurs AD, des anti-virus, etc.). J’ai toujours préféré travailler en environnement où MS a la portion congrue.







Tsunoo92 a écrit :



Bref, la technologie et le monde évoluent, il est nécessaire de s’adapter pour suivre cette évolution. Je trouve justement que depuis 45 ans, Microsoft fait de grands efforts pour s’adapter.





Oui, MS a évolué récemment. Pour ma part, je préfère rester en-dehors quand même :-) et je sais que je suis loin d’être le seul (et pas forcément des gens de plus de 40 ans).









alain_du_lac a écrit :



Microsoft s’est bien ouvert à Linux depuis quelques années et ce mouvement va s’amplifier dans les prochaines années, pour avoir peut-être un jour le meilleur des 2 mondes réunis. Mais cette idée révulse les libristes : Quoi ?? Windows serait meilleur et plus ouvert que LINUX. Impensable pour ces ayatollah <img data-src=" />





“LOL” pour la partie en italique.

Quand un système sera plus ouvert que Linux, reviens nous voir, mais je sens que je peux attendre.







damaki a écrit :



En tant que dev Java (10 ans) et C# (5 ans) pour le taf, je peux dire que c’est quand même beaucoup moins tranché que ça.



Côté C#, on a un langage monstrueusement compliqué, qui ferait passer le C++ pour un langage simple. Tellement de mots clés, tellement de features présentes dans le langage qu’à moins d’utiliser un sous-ensemble restreint du langage dans une équipe, c’est le chaos.[…]





Tiens, ça me fait penser au “extend” de “embrace and extend” :-) .







damaki a écrit :



Si vous n’y croyez pas, comparez la taille d’un bouquin pour apprendre le .Net à ceux pour le java. Perso, j’ai jamais eu le courage de finir mon bouquin sur le .Net.





C’est un peu comme les spécifications du format OpenDocument versus celles de OpenXML (qui sont beaucoup beaucoup plus longues et complexes).







damaki a écrit :



Côté Java, on a un langage plutôt simple et cohérent, mais pas sexy pour deux sous. La philosophie initiale était clarté et pas de magie. L’avantage, aussi, c’est que le langage et le JDK restent comparativement encore simple et accessibles. […]

Pour les libs, java c’est le nirvana. Si vous voulez faire un truc, vous savez que ça existe forcément et qu’il y a des millions de devs qui utilisent aussi ces outils et qu’ils sont ultra-solides. En plus il y a du choix, JavaEE, ou Spring, ou VertX, ou d’autres, bref si vous avez un besoin spécifique, il y a forcément les libs qui vous faut. Par contre, d’expérience, les docs sont de qualité très variable.

Côté intégration continue, c’est juste top. C’est facile de faire des livrables, de lancer les tests. Si vous êtes fauchés, il y a toujours Jenkins qui fait le job.

Pour l’avenir, on est dans une période de flottement. La JRE/JDK va passer en cycle de releases tous les 6 mois et pour JavaEE ça va être dans le même style, mais on sait pas du tout comment ça va marcher pour de vraie sous la fondation Eclipse.





<img data-src=" />

Merci pour ton retour sur la question.

Ça rejoint d’autres que j’ai eu.



Personne n’est choqué de constater que pour afficher un simple “hello world” il faut plus de 15 lignes ? …


Merci.

<img data-src=" />



Cela dit ma question était plus complexe puisque de nombreux lecteurs ont les 2 systèmes (plus de 10 % probablement), ce que votre sondage/statistique ne peut pas forcément détecter et quantifier.


j’ai pas bouquiné les 12 pages, mais personne n’a proposé autoit ? “ msgbox(0,“Bienvenue”,“Hello World”)


Ca me choque moins que de savoir qu’il faut un runtime nécessitant 4,5 Go d’espace disque disponible.


Ben mon gars t’es courageux d’avoir fait cet article!!



En tant que Français de l’étranger, je retrouve tout ce que je n’aime pas chez nous: t’en a un qui bosse et 40 qui commentent en ne faisant pas avancer les choses. Et toi tu passes des heures à te justifier dans tous les sens envers des personnes qui ne seront jamais constructives.



Merci pour cet article, et pour les autres n’hésitez pas à en proposer un mieux que l’on puisse comparer.








Sideroxylon a écrit :



En tant que Français de l’étranger, je retrouve tout ce que je n’aime pas chez nous: t’en a un qui bosse et 40 qui commentent en ne faisant pas avancer les choses.&nbsp;





J’espère que tu es dans un pays bien classé quand même.

http://www.oecd.org/fr/presse/le-ralentissement-persistant-de-la-croissance-de-l…



Les réponses au dessus sont d’autant plus vraies que l’environnement Visual Studio Community est aujourd’hui ce qui se fait de mieux en gratuit.

La haine envers Microsoft est tellement forte chez les pingouins qu’ils oublient qu’ils ont rejoint la Linux Foundation depuis plus d’un an et que la plupart de leurs outils sont non seulement compatibles linux mais aussi mac OS. C’est notamment le cas de .net Core qui est open source.








OlivierJ a écrit :



Java aussi a progressé, a introduit divers concepts et facilités d’écriture.





Pas du tout au même degré que C#.

async/await, LINQ, value tuples + déconstruction, inférence de types, interpolation de chaines et d’autres agréments syntaxiques n’y sont pas.

La dernière évolution notable du langage, Java 8, introduisait les lambda expressions et mixins 6 ans après leur apparition en C#.



D’un autre côté Java a les annotations compilées et, plus anecdotiquement, la possibilité pour les classes anonymes d’implémenter des interfaces.

&nbsp;







OlivierJ a écrit :



Depuis quand Visual Studio Code est gratuit ?





Depuis sa première version.

Même Visual Studio classique en version Community est gratuit (mais pour les entreprises, seulement jusqu’à un nombre limités de développeurs).









ZoZo a écrit :



Pas du tout au même degré que C#.

async/await, LINQ, value tuples + déconstruction, inférence de types, interpolation de chaines et d’autres agréments syntaxiques n’y sont pas.

La dernière évolution notable du langage, Java 8, introduisait les lambda expressions et mixins 6 ans après leur apparition en C#.

D’un autre côté Java a les annotations compilées et, plus anecdotiquement, la possibilité pour les classes anonymes d’implémenter des interfaces.





Sachant que les nouveautés introduites dans Java même il y a des années ne sont pas forcément utilisées, C# a sans doute des capacités intéressantes, mais qui les utilise vraiment ?

Il faut rester pratique aussi.

Et un des commentateurs a détaillé tous les points forts de Java quand on développe, les bibliothèques, les tests automatisés, le déploiement, etc. Bref tout le concret.



Async/await est utilisé partout maintenant, c’est devenu complètement indispensable. C’est un changement de paradigme majeur dans l’asynchronisme. LINQ est abondamment utilisé, l’inférence de types aussi.

Les value tuples avec déconstruction, c’est encore tôt pour le dire, c’est sorti cette année.

En C# 8 il y aura les type référence non-nullables, que personnellement j’anticipe d’utiliser exclusivement. Les enregistrements vont aussi certainement avoir pas mal de succès pour tout ce qui est DTO.



On parlait de langage, mais si tu veux amener cela sur le terrain de l’écosystème, je ne crois pas que C# ait beaucoup à rougir face à Java. En terme de bibliothèques, tests automatisés et déploiement, ça ne manque vraiment de rien.