Un langage pour débuter

a marqué ce sujet comme résolu.

Bonjour à tous,

J'en ai déjà un peu parlé dans ma présentation, et en plus je n'aime pas trop ce genre de sujet dans lequel on demande quel langage choisir mais vous m'avez l'air bien sympathique et calé sur le sujet alors je demande.

Je fais du web professionnellement, avec PHP (on aime ou pas) qui me satisfait dans ce que j'ai à faire. J'aimerais aujourd'hui me mettre à la programmation pour concevoir des petites applications, pour moi dans un premier temps et si j'accroche bien et que je me débrouille pourquoi pas dans mon job.

J'ai déjà touché un petit peu de C mais ça me plaît pas trop, je trouve trop complexe.

J'ai aussi essayé Java, ça peut aller par contre j'ai trouvé ça un peu lourd la Java Machine (il me semble que ça s'appelle comme ça). Par contre le fait de pouvoir faire des applications Android est un plus.

J'ai essayé aussi le C#, j'ai un ancien collègue dans le domaine qui m'a montré un peu ce qu'il faisait et j'avoue que ce langage me plaît bien. J'aime beaucoup Visual Studio pour bosser aussi. Par contre j'ai eu beaucoup de mal à mettre en place des bases de données dans le peu d'essais que j'ai fait.

Pour résumer j'aimerais savoir vraiment les différences notables entre ces 3 langages. J'ai aussi vu en venant sur ZdS que le Python était très utilisé. Je ne connais pas ce langage, est-il au niveau des 3 autres ?

Je cherche donc le langage qui me correspondrait le mieux, sachant que je veux surtout faire des applications de gestion type CRM. Je voudrais aussi un truc pour utiliser les bases de données qui soit simple. Ensuite pour la documentation pas de problème si c'est en Anglais.

Merci d'avance pour vos réponses et désolé pour le topic à la con

Bonjour,

Le C est certainement trop bas niveau pour ce que tu souhaite faire.

Java et C# sont très semblable dans leurs conception, avec un petit plus pour C# qui – étant plus récent – à pu apprendre des erreurs de Java. Là ou ils diffèrent, c'est dans leur écosystem. Je connais pas trop Java, donc je vais me concenter sur C#.

Le gros avantage de C#, c'est sa proximité avec .NET, et qui donc s'intègre tres bien dans Windows, et sutout avec les autres produits Microsoft, notament SQL Server. .NET te permet d'interfacer des BDD facilement avec des objet style SQLDataSource. Et pour faire des interfaces, Visual Studio te fournit un éditeur visuel très intuitif.

Pour finir : Python. Même si il n'en à pas l'air avec sa syntaxe simple, il peut être puissant et adapter à tes besoin, par contre sache que les programmes Python sont plus dûr à distribuer.

En gros, selon moi (ça vaut ce que ça vaut), si tu bosse avec un environement Windows, vas sur du C#. Mais le plus sage c'est d'attendre un autre avis.

+2 -0

Merci de ta réponse.

Je suis déjà content que tu me confirme que je peux mettre le C de côté ^^ Ensuite le C# était le langage qui m'avait le plus séduit lors de mes "découvertes".

Après je bosse avec un environnement Windows et je pense faire des petites applications uniquement Windows donc ça me dérange pas.

Par ailleurs un truc que je viens de découvrir après avoir entendu parler de Xamarin sur le forum. Je pourrais éventuellement faire des applications mobiles du coup en C# c'est bien ça ?

Après je bosse avec un environnement Windows et je pense faire des petites applications uniquement Windows donc ça me dérange pas.

Parfait pour travailer avec C#. En plus Microsoft propose plein d'outil pour te faciliter le developpment avec des éditeur visuel pour à peu près tout, notament les interface graphique, les requêtes SQL, etc.

Par ailleurs un truc que je viens de découvrir après avoir entendu parler de Xamarin sur le forum. Je pourrais éventuellement faire des applications mobiles du coup en C# c'est bien ça ?

Ariol

Oui c'est l'idée, mais je m'en suis jamais servi donc je peux pas t'aider sur ce point.

+0 -0

Pour finir : Python. Même si il n'en à pas l'air avec sa syntaxe simple, il peut être puissant et adapter à tes besoin, par contre sache que les programmes Python sont plus dûr à distribuer.

mrBen

Est-ce que tu peux détailler ce point ? Pour distribuer un programme Python, il suffit de publier ses sources sur le PyPI, là où en C (autre langage cité), il faut distribuer les binaires compilés pour différentes architectures.

Pour distribuer un programme Python, il suffit de publier ses sources sur le PyPI, là où en C (autre langage cité), il faut distribuer les binaires compilés pour différentes architectures.

entwanne

Tu considère que Python est déjà installer sur la machine de l'utilisateur (et que l'utilisateur est plus proche d'un programmeur que d'un commercial), dans ce cas, pourquoi pas. Mais si l'idée est de distribuer ton programme vers des utilisateurs Windows sans grande connaisances techniques, C# sera plus simple : tu te retrouve avec un seul exécutable compatible avec tout les Windows, car ceux-ci on déjà la machine virtuelle (CRL) installé.

Comme d'hab', ça dépend des cas, mais dans ce cas précis, je pense que C# est plus facile a distribuer.

+0 -0

Donc parmi toutes les réponses que vous me fournissez, le C# semble adapté à ce que je veux et surtout c'est le langage qui me séduisait le plus dans tout ce que j'ai pu essayé.

Entre Visual Studio qui propose apparemment des extensions pour faire du Python et aussi Xamarin qui permet de développer des applications mobiles, je pense effectivement que j'ai tout ce qu'il faut.

En tout cas je suis content qu'on m'oriente vers le C# et pas vers Java. J'ai pas vraiment apprécié ce langage.

Encore merci à vous :)

Pas tout à fait, tout comme le jar exécutable a été crée car java ne peut pas être exécuté sans le JRE, un projet python tente de livrer des applications éxécutable sans avoir à installer python soit py2exe

Sinon le java c'est sympa mine de rien - je ne connais C# alors je ne peut pas comparé, je viens du monde du C++ -. Mais clairement (avec ce genre de sujet qui revient plutot souvent), Python fait un gros consensus donc je te le conseille (même si je ne l'ai essayé que légèrement).

En réalité, Ariol, la vrai bonne réponse est de te dire d'essayer, de tenter et de voir si tu accroche ou pas. Dans tous les cas tu verra autre chose que le PHP. Tous ces langages, à la différence de PHP, sont beaucoup plus généralistes. Ils permettent tous de faire du web mais pas que… Donc vas y, fonce. Tu verra bien si tu accroche avec le C#. Sinon tu pourra toujours tenter autre chose.

Oui Kje je suis d'accord qu'il faut que j'essaye. D'ailleurs mis à part Python j'ai déjà touché un peu à tout ces langages.

La seule chose c'est que si je m'investi dans un langage j'ai pas trop envie après de revenir en arrière et partir sur autre chose.

Mais entre mon ressenti sur le C# et ce que vous m'avez dit, je pense partir la dessus ;)

Et dernière chose tu parle de web, je peux faire du web en C# ? o_O

+0 -0

Salut,

alors, C# ou python?

Si tu as du temps, je dirais "les deux mon capichef". Il est, en effet, facile de faire des logiciels équivalents avec les deux mais le .NET Framework et les libs hébergées par nuget seront assez large pour te faire aller dans des endroits qui sont assez lourds à atteindre en python, notamment en terme d'interopérabilité avec différents logiciels (bureautique, dessin…).

On y ajoutera que Linq, te permet de parcourir des collections de données avec une touche "fonctionnelle" qu'il manque parfois à python.

Par contre, si tu veux scripter, faire des traitements statistiques, faire des prototypes… python est largement supérieur.

Ensuite, les applis mobile c'est soit tu les réserve aux "universal app" (donc winphone, tablette, XBox et PC) soit tu fais une app Xamarin pour le cas C#. Il existe un framework python pour faire des app android en python, mais je le connais pas bien.

Pour ASP, il faut comprendre une chose :

  • ASP est un vieux langage de templating web
  • ASP.NET est un framework moderne (et open source :p) pour créer des applications web performantes.

Tu considère que Python est déjà installer sur la machine de l'utilisateur (et que l'utilisateur est plus proche d'un programmeur que d'un commercial), dans ce cas, pourquoi pas. Mais si l'idée est de distribuer ton programme vers des utilisateurs Windows sans grande connaisances techniques, C# sera plus simple : tu te retrouve avec un seul exécutable compatible avec tout les Windows, car ceux-ci on déjà la machine virtuelle (CRL) installé.

mrBen

Non. Je considère que si sous Windows les programmes s'installent toujours via des exécutables dédiés, il est possible d'en faire de même en Python : un programme qui installe Python s'il n'est pas déjà présent, et le projet cible.

un projet python tente de livrer des applications éxécutable sans avoir à installer python soit py2exe

leroivi

Et c'est une mauvaise pratique. Ça crée juste un gros exécutable dégueulasse qui embarque son propre interpréteur Python, sans aucune gestion de dépendances ou partage de bibliothèques.

[…] un programme qui installe Python s'il n'est pas déjà présent, et le projet cible.

Dans ce cas, je suis d'accord. Si t'as des exemples je suis preneur.

Et [py2exe] c'est une mauvaise pratique. […]

entwanne

J'allai le dire ;)

+0 -0

Je ne veux pas défendre ma paroisse, mais simplement compléter ce qui se dit sur Python ici.

D'abord, ça me fait mal de l'admettre mais oui, une appli standalone en Python est une chierie à déployer sous Windows. J'abonde dans le sens d'Entwanne quant au fait que la seule manière générique, viable et respectueuse de l'environnement de l'utilisateur sous cet OS est de créer un installeur qui deploie automatiquement un environnement Python si celui ci n'est pas déjà présent sur la machine cible et je déplore le fait qu'en dehors de Kivy, personne dans la communauté Python ne se soit tiré les doigts du cul ces dix dernières années pour sortir un moyen facile et pythonique de créer un tel installeur pour Windows, et que les gens se contentent de cette abomination qu'est py2exe.

Par contre je désapprouve le point de vue qui consiste à réduire Python à un langage de script ou de stats. Python est un langage complet, puissant, expressif, certes imparfait (comme tous les langages) mais vachement cool pour apprendre le développement. Et attention je ne parle pas que de programmation.

Contrairement à un vulgaire langage de scripts, celui-ci peut descendre au niveau des appels système aussi bien que monter dans les abstractions. Il dispose également d'un écosystème parmi les plus riches à l'heure actuelle.

Bref, son intérêt depend déjà de tes perspectives de travailler pour et sous Windows seulement.

+5 -1
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte