Bonjour a tous,
Je suis à la recherche d'un bon langage pour développer des application Gtk. Voici quelques contraintes, j'aimerais que le langage en question les respecte.
- Je ne veut utiliser que des outils OpenSource
- Je veut un langage qui fasse un peu plus de choses pour moi que n'en fait le C
- Je veut un langage moins lourdingue que C++
- Je veut un langage qui gere tout seul la memoire
- Je veut un langage qui ait un typage statique fort
Ocaml serait un bon choix, et j'aime beaucoup ce langage, mais je n'aime l'utiliser que pour du fonctionnel pur, et j'ai l'impression qu'il me faudra encore beaucoup de temps pour que mon esprit s'habitue a ce style de programmation.
Il me vient a l'esprit 2 langages: java (avec gcj et le binding gnome) et C# (avec mono et gtk#) En connaissez vous d'autres qui repondent a mes criteres ? Java a l'avantage d'etre compilé nativement (halte aux trolls, je pale bien sur avec l'implementation de reference du libre, qui est gcj) mais je connais trop peu ces deux langages pour connaitre les autres avantages et inconvénients de chacun. Donc vos conseils me seront d'une grande utilité.
# Re: Quel langage choisir.
Posté par Anonyme . Évalué à 0.
[^] # Re: Quel langage choisir.
Posté par Anonyme . Évalué à 2.
http://linuxfr.org/~ilaioului/3952.html(...)
# Re: Quel langage choisir.
Posté par Nap . Évalué à 1.
bien tenté :p
[^] # Re: Quel langage choisir.
Posté par Gniarf . Évalué à 2.
# Re: Quel langage choisir.
Posté par cubidou . Évalué à 1.
Quentin Garnier.
# Re: Quel langage choisir.
Posté par Matthieu BENOIST . Évalué à 1.
on me dit à l'oreil que typage statique fort ne signifie pas $ @ %
Bon. je sort, alors ->[]
[^] # Re: Quel langage choisir.
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
"La première sécurité est la liberté"
[^] # Re: Quel langage choisir.
Posté par Matthieu BENOIST . Évalué à 0.
# Re: Quel langage choisir.
Posté par arthurr (site web personnel) . Évalué à 1.
use strict;
print "Perl ?\n";
# Re: Quel langage choisir?
Posté par Gabriel . Évalué à 10.
Tu peux tout coder en morse.
Tu peux le faire avec un outil open source qui s'appelle la lampe torche.
Tu peux faire plus de choses qu'en C, puisque tu peux même faire du C en morse.
Le typage est fort. Un trait est un trait. Un point est un point.
# Re: Quel langage choisir.
Posté par RoPP . Évalué à 2.
[^] # Re: Quel langage choisir.
Posté par Nap . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par drac . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par Lucas Bonnet . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par Sten Spårvagnhög (site web personnel) . Évalué à 1.
Système de sécurité et régulation du trafic dans le tunnel sous la manche
Aérospatiale, nucléaire ...
# Re: Quel langage choisir.
Posté par cho7 . Évalué à 1.
Sinon de ce que je sais :
C# ca pu un peu, et c'est très microsoftien quand meme (.net.. bouh)
Je veut un langage qui fasse un peu plus de choses pour moi que n'en fait le C
Un bon programmeur C fait a peu près tout ce qu'il veut avec. (moi pas)
Java n'a pas de pointeur a proprement parler tel qu'en C ou C++. Ca peut parraitre pratique mais parfois, pour des exemple tout bete comme créer une fonction void permuter(int a, int b) bah on est bien emmerdé pour modifier les valeurs passées en parametres, car Java ne peut pas le faire, il sait le faire qu'avec des tableaux, des chaines, bref des variables compliqués, bah de simples entiers.
Autrement java est un langage assez simple d'utilisation, très simple a prendre en main si on a l'habitude du C/C++, mais pourquoi coder en gtk avec java alors que les classes graphiques swing de java 2 marchent très bien ?
Sinon netbean pour compiler java ca marche pas trop mal, mais c'est pas du gpl, c'est spl je crois..
Je pense donc, en conclusion, que malheureusement pour toi le C/C++ reste le meilleur compromis pour faire du gtk.. :-(
Désolé
++
[^] # Re: Quel langage choisir.
Posté par Clem Yeats . Évalué à 2.
Integer iA = new Integer(a);
rien de plus simple.. le probleme n'en est pas un.
[^] # Re: Quel langage choisir.
Posté par cho7 . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par kruskal . Évalué à 2.
1erement, pour des questions d'intégration a mon environnement
2emement, il me semble que l'implementation de swing dans gcj n'en est qu'a ses débuts.
[^] # Re: Quel langage choisir.
Posté par Jylam / jylam.lnxsce (site web personnel) . Évalué à 2.
correction : un bon programmeur C fait TOUT ce qu'il veux avec (au pire le peu de choses "impossibles" (bootloader etc), il peux le generer en C :)
[^] # Re: Quel langage choisir.
Posté par Erwan . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par drac . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par Erwan . Évalué à 1.
Ah bon ? Pourquoi ?
et c'est très microsoftien quand meme (.net.. bouh)
Certes, c'est Microsoft qui l'a cree mais c'est maintenant normalise par ECMA. Donc sur toute la partie standard, et sur forcement sur Gtk#, il n'y a aucun probleme de brevet.
En fait, tu voulais peut-etre dire "C# ca pue un peu parce c'est de Microsoft" ?
[^] # Re: Quel langage choisir.
Posté par Anonyme . Évalué à 2.
C# ca pue un peu parce c'est de Microsoft
Oui et c'est bien ca le probleme. En choisissant ce langage, tu depend de microsoft et des evolutions de ce langage, meme s'il est normalisé. Regarde ce qui s'est passé pour java (Microsoft a tenté de s'approprié ce langage en ajoutant des extensions qui lui etait propre et en le rendant peu a peu incompatible avec le java de sun)
En choisissant C# tu renforce lq position dominante de Microsoft et tu te retrouves face a deux choix :
- Accepter les évolutions de Microsoft, au risque de contredire tes principes sur les logiciels libres,
- Te restreindre a l'implementation "standard" qui de toute facon n'aura aucun avenir car elle ne sera supporté pas personne et ne sera plus compatible avec ce que fait microsoft.
C'est mon avis, vous aurez devinez que je suis contre l'introduction de C# et surtout .Net sous Linux meme si je pense que c'est un excellent langage/Framework (mais encore a des annees lumieres d'ObjC/GNUStep ;)
[^] # Re: Quel langage choisir.
Posté par Tulan . Évalué à 1.
Pour le normaliser il fallait entre autres en faire un langage multi-plateforme. Ben les dévs de Microsoft ont fait une version BeOS ... Non ils ne se moquent pas du monde mais ça donne une bonne idée de leur état d'esprit. :)
[^] # Re: Quel langage choisir.
Posté par Erwan . Évalué à 1.
Il n'y a que System.Windows.Forms qui dependra de wine et permettra de compiler les applis graphiques developpees pour Windows, mais un programmeur mono choisira plus naturellement Gtk# qui ne se base sur aucune retro-ingenieurie, mais uniquement sur des API standardes et documentees.
[^] # Re: Quel langage choisir.
Posté par tene . Évalué à 1.
Suffit de voir le nombre des applis .NET qui font appel à un moment ou un autre à du code non managé.
[^] # Re: Quel langage choisir.
Posté par TImaniac (site web personnel) . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par TImaniac (site web personnel) . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par tene . Évalué à 1.
Et il existe un CLI pour freebsd et macosx (dont les sources sont dispo... mais leur utilisation est évidemment restreinte).
Ceci dit, le problème est toujours le même, C# et .NET auront beau offrir un paquet d'avantage, ça restera du "ça pue parce que c'est microsoft"... c'est con parce que c'est sympa ce langage...
ps: java ça pue un peu c'est sun :P
re-ps: je n'ai jamais entendu parler de version BeOS, des sources?
[^] # Re: Quel langage choisir.
Posté par TazForEver . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par Pierre Tramonson . Évalué à 1.
Et C# c'est libre peut-être ?
[^] # Re: Quel langage choisir.
Posté par TImaniac (site web personnel) . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par Slauncha (site web personnel) . Évalué à 1.
http://www.netbeans.org/kb/faqs/license.html#FAQ_0(...)
# Re: Quel langage choisir.
Posté par Clem Yeats . Évalué à 2.
- C'est forcement "open-source" :)
- Ca fait plus de choses que le C :)
- C'est pas du tout lourdingue.. y'a que deux instructions : 0 et 1, en deux minutes tu connais le langage :)
Bon apres, forcement ca gere pas tout seul la memoire et niveau typage y'a mieux.. mais ca c'est du detail non ? Ah oui.. et puis c'est pas "vraiment" un langage.. mais bon...
Treves de plaisanteries...
A propos du Java :
- Les APIs sont nombreuses tout comme leur domaines d'applications
- Le Javadoc c'est cool et ca permet d'obtenir tres rapidement des docs a jour et efficaces.
- C'est un langage sympa a utiliser, clair a la lecture et a l'ecriture, qui incite a l'evolutivite, la modularite et le developpement par composants
- La memoire est geree automatiquement
- Le typage est dynamique fort en late-binding et le systeme par interfaces et heritage simple est assez puissant. Le typage statique est realisable aussi.
Je ne connais pas C# et eviterai donc la comparaison.
[^] # Re: Quel langage choisir.
Posté par Vincent Richard (site web personnel) . Évalué à 7.
en deux minutes tu connais le langage
Plutôt en 10 minutes, non ? :-)
[^] # Re: Quel langage choisir.
Posté par Erwan . Évalué à 1.
C'est pas portable !
[^] # Re: Quel langage choisir.
Posté par kruskal . Évalué à 1.
D'apres la definition de sun, il sufit de faire une machine virtuelle capable de comprendre ce dialecte binaire: un jeu d'enfant.
# Re: Quel langage choisir.
Posté par drac . Évalué à 1.
Objective Caml http://www.ocaml.org/(...)
ce langage est fortement typé
il gére tout seul la mémoire
il fera plus de chose pour toi que le C
Il peut être interressant de lire des livres sur le lambda-calcul avant de plonger dedans. Voila:)
[^] # Re: Quel langage choisir.
Posté par David Douard . Évalué à 1.
Sinon, dans la même veine, Scheme, c'est bien aussi...
David
[^] # Re: Quel langage choisir.
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par TImaniac (site web personnel) . Évalué à 1.
# Re: Quel langage choisir.
Posté par François Schoubben (site web personnel) . Évalué à 2.
Je sais qu'il gère pas mal le gtk : http://www.daa.com.au/~james/software/pygtk/(...)
En y jettant un coup d'oeil, je l'ai trouvé un peu déroutant (pas de {} et autre begin/end, mais à coup d'indentation), mais très propre et efficace.
[^] # Re: Quel langage choisir.
Posté par Uhld . Évalué à 2.
- Syntaxe claire (maintenance facilitée)
- Riche panoplie de libs
- Portable
- Temps d'apprentissage très court
C'est évident que c'est un langage pour feignasses, mais quel bonheur de pouvoir coder en si peu de lignes ! Et si un réel besoin de rapidité se fait sentir, il y a toujours la possibilité de compiler avec py2exe...
Bon choix pour faire de la programmation orientée objet (même si Python ne l'est pas complètement) sans se prendre trop la tête et obtenir quelquechose d'utilisable et fiable.
[^] # Re: Quel langage choisir.
Posté par tgl . Évalué à 3.
[^] # Re: Quel langage choisir.
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par MagicNinja . Évalué à 1.
[^] # Re: Quel langage choisir.
Posté par Larry Cow . Évalué à 1.
Par contre, pour accélérer du python, il y'a un JIT: psyco. A tester avant de jeter le serpent aux orties.
# Re: Quel langage choisir.
Posté par Troy McClure (site web personnel) . Évalué à 1.
# Re: Quel langage choisir.
Posté par Anonyme . Évalué à 4.
Sinon OCaml, ruby est pas mal du tout.
Mais le principal critere a mon avis est de prendre le langage avec lequel tu es le plus a l'aise. Un autre critere est de prendre un langage connu par la majorité et fournissant de nombreuses library.
Tes contraintes ne sont pas suffisement fortes par rapport aux deux criteres precedents AMA.
Ton second point ne veut rien dire, avec les bonnes lib, tu peux avoir un garbage collector, tu peux faire de la prog objet, ....
Pour le troisieme point je ne dirais rien, bien utilisé et en s'interdisant d'utiliser certaines fonctionnalités, le C++ n'est pas lourdingue (templates, heritage multiple, const a tout va, ...)
Le quatrieme point peut etre eviter en utilisant des smarts pointers, un garbage collector ou tout simplement en apprenant a gerer soit meme la memoire.
Finalement, le typage statique fort n'est pas forcement ce qu'il y a de plus pratique (quid de la genericité)
[^] # Re: Quel langage choisir.
Posté par Vivi (site web personnel) . Évalué à 1.
ça n'a rien à voir ... Ocaml est trés fortement et trés statiquement typé et il possède plusieurs formes de polymorphisme.
[^] # Re: Quel langage choisir.
Posté par Anonyme . Évalué à 2.
Pour ce qui est du typage dynamique/statique, je trouve plus pratique de se poser la question du type d'un objet au runtime qu'a la compilaition (ce qui est necessaire a tout langage veritablement objet).
[^] # Re: Quel langage choisir.
Posté par Vivi (site web personnel) . Évalué à 1.
et ça serait quoi cet autre terme ?
[^] # Re: Quel langage choisir.
Posté par Anonyme . Évalué à 1.
Le typage dynamique permet d'effectuer une edition de lien veritablement dynamique ou le branchement vers la bonne fonction est determinée a l'execution. Certe cela est possible en C++ grace a la table des fonction virtuelle, mais il ne s'agit pas vraiment d'une vrai liaison dynamique car on ne peut pas changer l'objet pendant l'execution par exemple.
Une derniere chose Caml n'est pas statiquement typé car il fait de l'inference de type.
[^] # Re: Quel langage choisir.
Posté par Vivi (site web personnel) . Évalué à 1.
j'ai un peu de mal, je ne vois pas trés bien ce que tu veux dire :)
Le typage dynamique permet d'effectuer une edition de lien veritablement dynamique ou le branchement vers la bonne fonction est determinée a l'execution.
non, rien à voir : le "branchement" à l'éxécution, c'est le "late binding" (liaison retardée en français) et c'est tout à fait possible avec un typage statique (cf caml).
Une derniere chose Caml n'est pas statiquement typé
Si : tous les types sont déterminés à la compilation (et ne peuvent être modifié), c'est du typage statique.
# Re: Quel langage choisir.
Posté par Ramso . Évalué à -3.
Ce n'est plus au gars de rechercher l'information, il pose sa demande et attend que le monde se presse à ses pieds pour lui apporter la solution.
Mais bougez votre cul putain ! renseignez-vous, documentez-vous ! aiguisez votre esprit critique !
[^] # Re: Quel langage choisir.
Posté par Anonyme . Évalué à 1.
C'est bien aussi d'avoir plusieurs temoinages differents pour trancher, nan ?
# Re: Quel langage choisir.
Posté par xcoder_nux . Évalué à 1.
# Re: Quel langage choisir.
Posté par vrm (site web personnel) . Évalué à 1.
http://smarteiffel.loria.fr(...)
[^] # Re: Quel langage choisir.
Posté par Gabriel . Évalué à 1.
Perso j'en ai fait le tour...
(trop tard, déjà dehors!! -->[] !!)
# Re: Quel langage choisir.
Posté par gueben . Évalué à 1.
# Re: Quel langage choisir.
Posté par TImaniac (site web personnel) . Évalué à 1.
# Re: Quel langage choisir.
Posté par Frédéric Lopez . Évalué à 1.
http://www.freepascal.org/(...)
http://www.freepascal.org/packages/gtk.html(...)
http://gtk2forpascal.sourceforge.net/(...)
Voir aussi les bindings fpGTK fournis avec le compilateur.
Respect des contraintes :
Licence LGPL modifiée/GPL
Plus expressif que le C
Moins lourdingue que le C++
Gestion de la mémoire relativement simple
Typage statique fort
Quelques atouts supplémentaires :
- la courbe d'apprentissage est aisée par rapport à la plupart des autres langages cités ici (Java, Python, OCaml, Perl, C#, etc.).
- compatible avec Kylix/Delphi et Turbo Pascal (permet de capitaliser sur l'expérience de ces implémentations et sur du code déjà écrit pour elles)
- les performances des exécutables en termes de vitesse et d'occupation mémoire sont sensiblement identiques à des programmes écrits en C/C++ (voir http://dada.perl.it/shootout/craps_cpumem.html(...))
- supporte la programmation orientée objet, le paradigme étant plutôt bien intégré au langage
- est fourni avec un IDE dédié
- portable sur un très grand nombre de plates-formes et de processeurs
- c'est agréable à programmer (avis très personnel :)
Mes 0.02
# Re: Quel langage choisir.
Posté par Moby-Dik . Évalué à 1.
http://www.pbm.com/~lindahl/real.programmers.html(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.