Précédent   Forum du club des développeurs et IT Pro > Général Développement > Débats sur le développement - Le Best Of

Débats sur le développement - Le Best Of Décideurs : Le meilleur des débats sur les choix de technologies pour le développement. Ce forum est réservé aux professionnels.

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Votre langage de programmation préféré
Java 390 25,95%
C# 258 17,17%
C++ 214 14,24%
C 107 7,12%
Visual Basic .NET 53 3,53%
Visual Basic 6 (et antérieurs) 23 1,53%
VBA (Office) 40 2,66%
Delphi 81 5,39%
Python 79 5,26%
Perl 14 0,93%
ADA 6 0,40%
Pascal 14 0,93%
Ruby 19 1,26%
BASIC 5 0,33%
WinDev 60 3,99%
PowerBuilder 3 0,20%
Cobol 8 0,53%
Fortran 7 0,47%
Langages fonctionnels (OCaml, Haskell, F#, Scheme, Erlang...) 27 1,80%
Objective-C 16 1,06%
Autres (précisez) 57 3,79%
Sans opinion 22 1,46%
Votants: 1503. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse Actualité déjà publiée
 
Outils de la discussion
Vieux 03/11/2010, 10h20   #61
JakoJako
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 32
Détails du profil
Informations personnelles :
Âge : 50

Informations forums :
Inscription : février 2007
Messages : 32
Points : 37
Points : 37
Par défaut C++

C++:
* objet
* rigueur
* performances
* multi-plateformes
JakoJako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2010, 10h28   #62
Ludo.G
Membre confirmé
 
Homme Ludovic G
Consultant informatique
Inscription : février 2008
Messages : 159
Détails du profil
Informations personnelles :
Nom : Homme Ludovic G
Âge : 34
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2008
Messages : 159
Points : 280
Points : 280
J'aurais pu voter C#, étant donné que c'est avec celui-ci que je travail quotidiennement (pas tant pour le langage en lui même mais plutôt pour tout ce qui gravite autour : EDI, possibilités offertes par la plateforme .net etc..)
Mais finalement j'ai voté Pascal : nostalgie, c'est avec lui que j'ai fais mes armes.
Ludo.G est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 03/11/2010, 11h08   #63
Klaim
Expert Confirmé
 
Avatar de Klaim
 
Homme Joel Lamotte
Développeur de jeux vidéo
Inscription : août 2004
Messages : 1 555
Détails du profil
Informations personnelles :
Nom : Homme Joel Lamotte
Localisation : France

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 1 555
Points : 2 971
Points : 2 971
Citation:
Moi ca me désespère de voir autant de Java, C# ou C++ ... désolé, mais ca me fait penser que c'est le pôle emploi qui nous a tous embrigadés dans des jobs où on pratique surtout ces langages, donc j'ai voté Objective-C qui est selon moi objectivement un langage plus beau que Java ou C++.
La "beauté" est totallement subjective et est totallement orthogonale à la productivité et à l'efficacité. L'efficacité est elle même dépendante des objectifs d'un projet.
Klaim est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 03/11/2010, 11h12   #64
Ragmaxone
Membre émérite
 
Avatar de Ragmaxone
 
Homme Maxime Raguenet
Responsable systèmes de distribution
Inscription : août 2007
Messages : 423
Détails du profil
Informations personnelles :
Nom : Homme Maxime Raguenet
Âge : 27
Localisation : Pologne

Informations professionnelles :
Activité : Responsable systèmes de distribution

Informations forums :
Inscription : août 2007
Messages : 423
Points : 867
Points : 867
Citation:
Envoyé par Klaim Voir le message
La "beauté" est ... totallement orthogonale à la productivité et à l'efficacité.
<troll> contre-exemple : travailler avec un Mac permet d'être 200% productif en toute beauté </troll>
Ragmaxone est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 03/11/2010, 11h33   #65
Klaim
Expert Confirmé
 
Avatar de Klaim
 
Homme Joel Lamotte
Développeur de jeux vidéo
Inscription : août 2004
Messages : 1 555
Détails du profil
Informations personnelles :
Nom : Homme Joel Lamotte
Localisation : France

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 1 555
Points : 2 971
Points : 2 971
Oui, exactement, troll
Klaim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2010, 12h56   #66
ToTo13
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Ingénieur de Recherche
Inscription : janvier 2006
Messages : 4 788
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 34
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur de Recherche
Secteur : Santé

Informations forums :
Inscription : janvier 2006
Messages : 4 788
Points : 7 023
Points : 7 023
---- Pourquoi ce choix
Simplicité et rapidité. Je dois faire pas mal de prototypage et je gagne beaucoup de temps à faire ça en Java.
La TRES grande communauté Java permet d'avoir accès aux bibliothèques des autres développeurs et comme toutes les classes de base sont communes, la connexion se fait très facilement.


---- Les plus/avantages
* Rapidité du langage. Les 3 ou 4% avec C sont négligeables.
* Simplicité.
* La possibilité de me connecter aux autres librairies très facilement. Et dans mon cas cela change totalement mon travail.
* Le débug ultra-rapide grade à l'auto-compilation des IDE.
* L'abstraction des pointeurs qui fait gagner beaucoup de temps et de "segmentation fault"
* C'est le langage le plus utilisé au monde, donc plus de chance d'intéresser un employeur.
* Multi-plateforme (trivial)
* L'installation des librairies est trivial, le jar est une révolution par rapport à toutes les librairies qui plantent fautes de dépendances.
* Android est en java, donc facile de passer à la programmation pour SmartPhones.


----- Les moins/inconvénients
J'en vois pas réellement, car avant j'ai fait du C.


----- Quels projets réalisez-vous avec et pourquoi
* Traitement d'images
* Classification / Classement
* IA en général


----- Vers quels autres langages pensez-vous évoluer dans le futur
Pourquoi changerai je ?
MatLab à la rigueur pour toutes ses librairies.


----- Comment vous êtes-vous formé, ou avez-vous été formé sur ce langage
Autodidacte, mais après une formation rigoureuse en C.


----- Est-ce une utilisation amateur ou professionnelle
Professionnelle.


- Avez-vous fait votre choix pour raison professionnelle, par plaisir, par choix personnel
Professionnel. Je me suis dis à l'époque que puisque cela fait maintenant plus de 10 ans que c'est de loin le langage le plus utilisé c'est qu'il devait bien y avoir une raison.


- Quels outils vous utilisez (Editeur, EDI, etc.)
Eclipse


- Autres langages utilisés, pourquoi ? Dans quel cadre ? Et comparaisons ?
C de par mes origines d'étudiant. Mais j'en fais le moins possible.
Python car j'y suis obligé : je dois parfois utiliser une plateforme qui a une sur-couche python. Mais j'oublierai ce langage dès que je peux.


- Sur quels systèmes ou plateformes vous travaillez (Windows, DotNET, Linux, etc.)
Mac OS X et pour rien au monde je ne voudrai avoir à revenir sur un autre OS.
J'ai commencé par Window (l'ignorance du débutant), puis je suis passé durant mes études sous Linux (l'horreur incarnée), puis je suis finalement arrivé grâce à mon travail sous Mac et depuis je vis de manière beaucoup plus tranquille et j'oublie même souvent qu'il y a un OS derrière tout ce que j'utilise !!!


- Conclusion
Je n'ai à ce jour aucune raison de changer de langage et d'OS.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 12
Vieux 03/11/2010, 13h51   #67
diabolo972
Invité de passage
 
Inscription : avril 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 2
Points : 2
Points : 2
Windev si on veut mener a terme des projets de gestion et autres !
diabolo972 est déconnecté   Envoyer un message privé Réponse avec citation 14
Vieux 03/11/2010, 15h59   #68
ClaudeBg
Membre chevronné
 
Inscription : juin 2008
Messages : 464
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 464
Points : 679
Points : 679
C#

C'est un vrai langage objet, pas une "surcouche" ajouté au C (c'est l'impression que je ressens avec le C++, même si ce n'est qu'une impression car je ne donne que mon avis personnel, pas un jugement), ce qui fait que sa syntaxe est limpide et ne donne pas une impression d'usine à gaz. Les outils sont diaboliquement efficaces et on ne perd pas de temps sur des choses non essentielles: tout est optimisé.

C'est un langage d'avenir, surtout que Java, avec sa reprise par Oracle et maintenant son abandon par Apple , me semble pour le moins compromis, du moins sous sa forme actuelle.

C'est un vrai langage "portable", au contraire du C (où seul le source est plus ou moins portable, et souvent moins que plus), la plateforme virtuelle et je jit étant les garants de cette portabilité. Le seul concurrent actuel étant Java, qui a un peu l'avantage pour l'instant mais avec un concept objet moins finalisé, un avenir inquiétant, et des outils moins conviviaux.

Je suis un utilisateur atypique car je développe des applications qui mettent en relation des cartes électroniques à microcontroleurs avec des PC. Donc j'écris des applications dont une partie tourne avec des langages de très bas niveau (langage d'assemblage, ou C selon la cible) et dont l'autre tourne sur PC avec langages de haut niveau. Je connais bien les deux mondes, mais pour moi les langages "intermédiaires" entre le pur "abstrait" et le pur "efficacité" me semblent des langages qui n'excellent dans aucun des deux domaines.

Je pense que le C# est un bon investissement pour l'avenir, surtout si Mono arrive à maturité. Vu que je pense qu'on vote ici pour des langages "sur PC" et non sur microcontroleurs, je vote donc C# sans hésitation aucune.

A+
Claude
ClaudeBg est déconnecté   Envoyer un message privé Réponse avec citation 32
Vieux 04/11/2010, 13h35   #69
phili_b
Membre Expert
 
Homme
Concepteur de Solutions Décisionnelles (ODI, DWH, BO)
Inscription : mars 2003
Messages : 809
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Concepteur de Solutions Décisionnelles (ODI, DWH, BO)

Informations forums :
Inscription : mars 2003
Messages : 809
Points : 1 849
Points : 1 849
Python

Les projets complets que j'ai eu à réaliser avant 2005 sont en Delphi qui était mon langage préféré, en fait Pascal, avant de connaitre Python. Après 2005 je n'ai quasiment plus fait de programmation sauf épisodiquement.

Pascal reste un de mes langages préférés mais j'ai récemment appris le python : je le trouve très puissant et en même temps très concis. Dommage qu'il soit encore plus confidentiel que Delphi alors qu'il est pour le coup très moderne et avec des concepts très sympas.

J'aime le python principalement pour son langage, ça veut dire que j'aimerai qu'il soit plus répandu notamment en version compilé, et pas seulement IronPython abandonné par Microsoft. En revanche on peut dire qu'il existe dans l'environnement Java avec Jython.

Mon rêve est d'avoir Python dans un EDI Delphi.

Il faut aussi de jamais perdre de vue ce à quoi on destine le langage. Le C est trop bas niveau pour l'informatique de gestion, même s'il peut en faire, et le Jython est trop haut niveau pour l'informatique industrielle, même s'il peut en faire.

Les plus/avantages
Typé
Concepts de List notamment très puissant
Concis et non verbeux
Lisible facilement.
Comme le pascal permet de faire du bas niveau, quand on n'en a besoin, mais on n'est pas obligé de se coltiner des pointeurs quand on n'en a pas la nécessité (partage cet avantage avec Pascal).
Tant qu'on ne fait pas de GUI et qu'on se contente de scripts, ou alors des programmes avec peu d'IHM, les inconvénients ci-dessous ne sont pas gênants.



Les moins/inconvénients
Pas très répandu
N'existe pas en version compilée ou seulement IronPython mais on est obligé de se coltiner le framework .NET
A part .NET, trop marqué par l'architecture microsoft, les GUI sont trop marqués par l'architecture unix. J'aimerai un python comme il existe un Delphi et un Kylix (malheureusement encore moins répandu, voire abandonné (je n'ai pas suivi les derniers épisodes)).
Les sauts de lignes et indentation sont déroutantes pour le débutant, et oblige quelques fois à des acrobaties de présentation de code inutiles.


Quels projets réalisez-vous avec et pourquoi
Comme je le disais à part des besoins de scripts, je ne programme plus dans la vie de tout les jours (sauf de temps à autre du jython, du VBA). Sauf si faire du SQL c'est faire de la programmation.


Comment vous êtes-vous formé, ou avez-vous été formé sur ce langage
Avec la doc de python mais principalement avec l'excellent Plongez au coeur de Python (Mark Pilgrim)


Est-ce une utilisation amateur ou professionnelle
Voir au dessus. Ma première utilisation est professionnelle même si finalement ces derniers temps je programme très peu.

Avez-vous fait votre choix pour raison professionnelle, par plaisir, par choix personnel
Utilisé pour un projet professionnel. Et je me redirigerais vers Python ou le pousserait en avant pour d'autres projets.

Quels outils vous utilisez (Editeur, EDI, etc.)
IDLE (que je trouve trop basique).

Autres langages utilisés, pourquoi ? Dans quel cadre ? Et comparaisons ?
Delphi (Pascal)
VB, VBA

Sur quels systèmes ou plateformes vous travaillez (Windows, DotNET, Linux, etc.)
Windows

Conclusion
Mon rêve serait d'avoir Python dans un EDI Delphi et ce de façon non confidentielle
phili_b est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 04/11/2010, 15h26   #70
Fildz
Membre confirmé
 
Avatar de Fildz
 
Benoît Maréchal
Inscription : juin 2004
Messages : 161
Détails du profil
Informations personnelles :
Nom : Benoît Maréchal
Âge : 28

Informations forums :
Inscription : juin 2004
Messages : 161
Points : 240
Points : 240
Java pour moi, notamment parce que j'ai été formé sur ce langage. Mais j'apprécie de développé en Ruby (pour faire du Rails) et même si je n'aime pas trop les technos microsoft je trouve C# (pour faire du .NET) vraiment sympa
__________________
Waluu.com.
Fildz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2010, 17h27   #71
OPi
Membre actif
 
Avatar de OPi
 
Homme Olivier Pirson
Développeur Web
Inscription : août 2005
Messages : 57
Détails du profil
Informations personnelles :
Nom : Homme Olivier Pirson
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2005
Messages : 57
Points : 183
Points : 183
Envoyer un message via Skype™ à OPi
J'ai voté pour Python. J'ai touché à pas mal de langages différents et je trouve Python très agréable. J'essaierai d'en dire plus plus tard, si je suis inspiré.

Mais je voudrais signaler (comme je le fais régulièrement ici et là) que Python est un langage compilé (dans ses implémentation standard dont CPython, l'implémentation de référence) et non interprété. La même erreur est très souvent commise envers PHP et d'autres. JavaScript aussi est compilé, non ?

Profitions de ce sondage qui recense un peu les langages pour s'interroger sur quels langages est interprétés de nos jours ?..
OPi est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 05/11/2010, 18h31   #72
arthurik
 
Inscription : août 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 5
Points : -1
Points : -1
C++ (C au pire)
arthurik est déconnecté   Envoyer un message privé Réponse avec citation 04
Vieux 08/11/2010, 01h03   #73
OPi
Membre actif
 
Avatar de OPi
 
Homme Olivier Pirson
Développeur Web
Inscription : août 2005
Messages : 57
Détails du profil
Informations personnelles :
Nom : Homme Olivier Pirson
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2005
Messages : 57
Points : 183
Points : 183
Envoyer un message via Skype™ à OPi
Par défaut Python

Quelques bons côtés de Python :
  • les types abstraits usuels agréablement utilisables
  • la généralisation de l'opérateur [] pour accéder aux éléments
  • les fonctions builtin qui permettent de généraliser des comportements de base du langages à ces propres classes (même si j'avoue un peu honteux que je ne maîtrise pas du tout le modèle objet)
  • l'indentation pour marquer les blocs (un peu troublant au début, mais rapidement un vrai bonheur)
  • tout est objet
  • support (partiel) des fonctions anonymes
  • le support de l'UNICODE
  • le toolkit Tk est un module standard
  • la compilation automatique avec sauvegarde des modules compilés
  • ...

Un truc (temporairement) gonflant, c'est que Python 3 va prendre du temps à remplacer la branche 2.*...
OPi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2010, 00h23   #74
b_zakaria
Membre confirmé
 
Inscription : juillet 2008
Messages : 407
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 407
Points : 290
Points : 290
Toujours les mêmes en tête!
Comme quoi la migration vers les langages évolués se fait très très doucement.
b_zakaria est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 20h14   #75
garroussi
Invité régulier
 
zineb garroussi
Inscription : mars 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : zineb garroussi

Informations forums :
Inscription : mars 2010
Messages : 23
Points : 7
Points : 7
Javaaaaaaaaaaa
garroussi est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 29/11/2010, 00h51   #76
raoufff
Futur Membre du Club
 
raouf ben hassine
Étudiant
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : raouf ben hassine
Âge : 24
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 16
Points : 16
Envoyer un message via MSN à raoufff Envoyer un message via Skype™ à raoufff
J'ai voté pour C#.

Citation:
Pourquoi ce choix
J'utilise C# depuis 6 ans; durant les quelles je me suis amusé à pratiqué et apprendre plusieurs autres langages.
Je doix dire que personnellement je ne pense pas qu'il y a un langage de programmation meilleur que les autres.
Mon choix se réserve aux langages de la famille C. Dans cette catégorie le C# a des atouts que d'autres n'ont pas tel que les expressions lambdas ou plus généralement les fonctions anonymes et les délégués (ce qui relve plutôt du framework que du langage)

Citation:
Les plus/avantages
Comme le cas de plusierus autres langages, le C# est un langage à tout faire.
Ce qui le différencie est l'outil phare Visual Studio et le Framework .NET et tout ce qu'il a à donner.
C'est une question de gout et de méthodes, à chacun son avis.
Enfin, il y a l'intégration à Windows, qui n'importe quel autre langage ou framework ne peut rivaliser avec. On me dira, peut le C(++) avec les API WIN32. Je dirai alors je préfére le C# pour sa facilité d'utilisation ce qui me raméne au premier point.
Citation:
Les moins/inconvénients
Sa limitation plus ou moins grave à Windows.
C'est vrai que mono existe et j'encourage une telle initiative.
Mais le simple fait de la non portabilité de WinForms me rend hésitant que dire de WPF.
Je doix avouer que je n'ai pas testé ASP.NET ou Silverlight ou tout autre Framework de la plateforme .NET sous mono.
Citation:
Quels projets réalisez-vous avec et pourquoi
Je réalise avec des projets de tout genre, ce qu'en me demande de faire, enfin.
Citation:
Vers quels autres langages pensez-vous évoluer dans le futur
Je migrerai, dans le sens de cohabitation pas d'exculsion, vers Python en y forgeant mes connaissances.
Aussi, il y a plusieurs autres autres langages qui m'intriguent dont Tcl, Haskell, F#.
Citation:
Comment vous êtes-vous formé, ou avez-vous été formé sur ce langage
Je me suis formé tout seul.
Citation:
Est-ce une utilisation amateur ou professionnelle
Toutes les deux.
Citation:
Avez-vous fait votre choix pour raison professionnelle, par plaisir, par choix personnel
Au début, c'tait purement par plaisir. Maintenant, la raison professionnelle et le plaisir.
Citation:
Quels outils vous utilisez (Editeur, EDI, etc.)
Principalement Visual Studio, TFS et tout ce qui va avec.
Citation:
Autres langages utilisés, pourquoi ? Dans quel cadre ? Et comparaisons ?
J'utilise python et Matlab.
Python, je l'utilise plutot quand je suis sur Linux et Matlab quand je fais que traitement de signal.
Matlab et C# ne sont pas à comparer, chacun son domaine; même s'il se croisent en certains l'un ou l'autre finit par se déclarer vainceur (ou perdant).
C# et Python se ressemble en le fait qu'il sont des langages à tout faire.
En parlant purement langage je préfére C#, faute d'être formé au C et au typage fort. J'apprécie aussi la syntaxe OO de C# au dépit de celle de Python.
En parlant origines et notions fondatrices ils ne sont pas à comparer car sa reviendra à comparer les réseaux cablés avec les réseaux sans fils.
Citation:
Sur quels systèmes ou plateformes vous travaillez (Windows, DotNET, Linux, etc.)
Côté OS je travaille sur Windows, Linux et FreeBSD.
Citation:
- Conclusion
Vu que le langage tout seul ne sert à rien et que chaque langage avec son framework a ses notions fondatrices, il est difficile de dire qu'un langage est absolument meilleur qu'un autre; ça dépend de ce qu'on veut faire avec.
raoufff est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 29/11/2010, 11h46   #77
deltree
Membre confirmé
 
Inscription : mai 2007
Messages : 242
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 242
Points : 269
Points : 269
Citation:
Envoyé par zakaria84 Voir le message
Toujours les mêmes en tête!
Comme quoi la migration vers les langages évolués se fait très très doucement.
lol!

Quels sont les langages évolués?

(Question bonus / 10 points: comment on définit un langage évolué?)
deltree est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 29/11/2010, 17h54   #78
Dim Me As New Idiot
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2010
Messages : 46
Points : 48
Points : 48
Citation:
Envoyé par raoufff Voir le message
Sa limitation plus ou moins grave à Windows.
C'est vrai que mono existe et j'encourage une telle initiative.
Mais le simple fait de la non portabilité de WinForms me rend hésitant que dire de WPF.
Je doix avouer que je n'ai pas testé ASP.NET ou Silverlight ou tout autre Framework de la plateforme .NET sous mono.
Il existe une implémentation des WinForms sous Mono. C'est WPF qui n'a été porté et qui ne risque pas de l'être.
Néanmoins, la plupart des développements Mono sous Linux utilise plutôt GTK#.
Dim Me As New Idiot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 21h59   #79
opgiat
 
Inscription : novembre 2010
Messages : 1
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 1
Points : -1
Points : -1
Par défaut je prefer delphi

delphi 7
opgiat est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 29/11/2010, 22h05   #80
TropMDR
Membre chevronné
 
Inscription : mars 2010
Messages : 281
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 281
Points : 752
Points : 752
J'ai choisi "langages fonctionnels", mais j'aimerai quand même préciser un peu !

Mon langage "normal" préféré est OCaml. C'est un langage multiparadigme. Il incite à la programmation fonctionnelle, mais donne au programmeur la possibilité de programmer en impératif (il y a les boucles, références et tableaux qu'il faut), mais aussi en objet (c'est le O de OCaml). Son modèle objet est d'ailleurs beaucoup plus puissant que celui de java par exemple, autorisant du vrai polymorphisme, du sous typage structurel (et non lié à l'héritage, qui n'est là que pour le partage de code), de parler de la classe courante dans les types, etc etc.
Son système de type statique extrêmement puissant (et continuant à s'améliorer régulièrement) rend les programmes très sûr (les programmeurs caml ont l'habitude de dire "ça type, donc ça marche". Ce n'est bien sûr pas complètement vrai, mais c'est loin d'être complètement faux). Mais l'inférence de type complète fait que pour une utilisation normale, il n'y a aucun type à écrire, sauf pour la documentation ou pour aider à l'abstraction. Par exemple le code
Code :
1
2
3
4
let rec map fn lst =
  match lst with
  | [] -> []
  | hd::tl -> fn hd :: map fn tl
qui applique une fonction à tous les éléments d'une liste est un code parfaitement typé (de type polymorphe ('a -> 'b) -> 'a list -> 'b list pour ceux que ça intéresse). Aucune annotation !
Pour ce qui est des performances, elles sont plus qu'honorables. On parle généralement de facteurs 2 à 4 avec le C. C'est néanmoins très variable suivant les applications. J'ai déjà écris une application plusieurs ordre de grandeurs fois plus rapide que son homologue en C, juste parce que caml libère du temps cerveau programmeur en se chargeant des problématiques bas niveau, autorisant celui ci à se concentrer sur les vrais problématiques. (Dans le cas dont je parle, la solution était de faire de la mémoization, grandement faciliter entre autre par la possibilité de rendre du code "lazy" en caml. Évidemment, le code aurait put être repris en C avec du temps, et aurait sans doute été plus performant, mais le jeu n'en valait pas la chandelle).
Un des plus gros défaut de caml est qu'un ne permet pas d'écrire des programmes tournant sur plusieurs coeurs. Vous pouvez écrire un programme avec des threads s'il y a un avantage algorithmique à le faire (et pour ne pas freezer en cas de lattence lors d'une lecture réseau par exemple), mais un lock global empêchera les différents threads de s'exécuter en parallèle. Cette limitation est du au GC (garbage collector, glaneur de cellules), qui pour être correcte nécessite une exécution linéaire.


Mon deuxième langage préféré pour 2010 (et 2011 ) est moins "normal". En effet, ce langage est Coq. Coq est un langage fonctionnel, comme OCaml. Contrairement à ce dernier pourtant, coq n'est vraiment *que* un langage fonctionnel. Il n'a aucun trait impératif (il est totalement pur), au point qu'on ne peut même pas directement lire un fichier ou afficher quelque chose sur la sortie standard ! (j'insiste sur le "pas directement", sinon ce serait vraiment inutile).
Alors quel est l'intérêt par rapport à caml ? Hé bien c'est la puissance du système de type de Coq ! Je disais plus haut que celui de caml était puissant. Si le système de type de Java est une souris, et celui de caml une baleine bleue, celui de coq ressemblerait plutôt à ça. Quel est l'intéret ? Et bien on peut y exprimer des théorèmes mathématiques. Par exemple on peut y exprimer que tout entier est soit paire soit impaire :
Code :
Lemma foo: forall n:nat, exists p, n = 2 *p \/ n = 2 * p +1
On peut ensuite prouver ce lemme. Coq est en fait ce qu'on appelle un "assistant de preuve". C'est à dire qu'il laisse l'utilisateur exprimer des théorèmes puis les prouver, et vérifie extrêmement strictement que la preuve est correcte (et prouve aussi automatiquement les morceaux faciles).

Alors pourquoi je parle de ça dans un sondage sur le langage de programmation préféré ? Hé bien la magie de Coq (qui vient de l'isomorphisme de Curry-Howard), c'est que c'est aussi un langage de programmation. Mais en combinant les deux (langage de programmation + assistant de preuve), on peut prouver formellement les programmes que l'ont écris. Et il y a deux grosses différences avec une simple preuve sur papier. La première est que Coq, en tant qu'assistant de preuve, est particulièrement précis, et empêche toute erreur. Mais surtout, ici, on prouve directement *le programme*, c'est à dire celui qui tournera effectivement. Il n'y a donc plus de risque d'introduire des erreurs en implémentant l'algorithme qu'on a prouvé sur papier.

Une fois le programme écris et prouvé, on peut ensuite "l'extraire", c'est à dire d'une certaine manière le "compiler" vers... ocaml ! C'est ensuite en caml qu'il faut écrire la "glue" pour faire tourner le code (par exemple la lecture dans les fichiers, l'écriture, etc).

La question légitime est: peut on réellement prouver de "vrais" programmes, et pas juste des exemples jouets. La réponses est clairement "oui".

La librairie standard de Coq contient un certain nombre d'exemple, dont une implémentation intégralement prouvé des maps à base d'AVL. Il y a une preuve de la validité fonctionnelle (quand on ajoute un élément, il est ensuite dans la map !) mais aussi que toutes les opérations maintiennent l'équilibre.

Mais en beaucoup plus impressionnant, il y a le compilateur C Compcert. Ici, c'est un compilateur complet, de C vers ARM, PowerPC et x86 qui est prouvé. Seul le parsing et l'ouput final de l'assembleur (c'est à dire juste l'impression dans un fichier. La génération de l'assembleur est bien sur prouvé) sont écris en caml non prouvés. Il est donc bien possible de prouver intégralement de vrais gros projets.

Voici donc mes deux langages préférés
TropMDR est déconnecté   Envoyer un message privé Réponse avec citation 80
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h53.


 
 
 
 
Partenaires

Hébergement Web