Interface graphique

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

Interface graphique

par Rockleader » 10 Mai 2014, 00:43

Bonjour, bonsoir


étant donné que j'ai terminé mon projet qui nous a "initié" à l'utilisation de la librairie ncurses et que je n'ai pas trouvé ça franchement pratique. Je me suis dis que j'allais me préparer un peu de taff pour cet été^^


Je voudrais savoir ce qui est utilisé d'ordinaires pour faire des programmes en fenêtres ? (et je parle par là de vrai fenêtres et pas de terminaux déguisés comme ncurses).
Éventuellement, je suis preneur de tout lien^^


Ce qui m'amène à la seconde question, ces "librairies" ou "pluggin" ou je ne sais pas vraiment comment on peut appeler cela, sont elles communes à tous les langages, ou bien pour faire un programme en fenêtre dans un langage il faudra adopter une librairie différentes ?


Ce qui m'amène à ma dernière remarque, si je réussis mon année, il est fort probable que je fasse du Java l'an prochain, j'ai déjà un bouquin là dessus (c'est dzlogic qui va être content :ptdr: ) mais je voudrais tout de même savoir mis à part la syntaxe de base ce qui diffère par rapport au C notamment et aux interfaces graphiques d'autre part.

Merci pour vos réponses.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 11 Mai 2014, 21:05

Bonjour,

Chaque langage dispose très souvent de ces propres bibliothèques graphiques qui ne sont pas compatibles avec d'autres langages.

En langage C, il y a la lib SDL qui est vraiment très facile d'utilisation pour réaliser des programmes graphiques (souvent des jeux).
http://wiki.libsdl.org/FrontPage

Pour des interfaces graphiques plus "logiciel", tu peux utiliser GTK+
http://www.gtk.org/

Par exemple en C++, il y a une bonne librairie pour les interfaces Qt : http://qt.digia.com/

La grosse différence entre le Java et le C, c'est plutôt la façon de penser.

Le java est plutôt orienté objet (voir même completement orienté objet). Concernant les interfaces graphiques, il est très facile en java d'en faire.
http://www3.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI.html

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 11 Mai 2014, 21:23

+1 pour Qt

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 12 Mai 2014, 17:17

Merci pour vos infos ;)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
Zorro_X
Membre Naturel
Messages: 77
Enregistré le: 16 Avr 2012, 16:40

par Zorro_X » 13 Mai 2014, 10:58

Tout dépend de ce que tu appelles "interface graphique" :
1) Un endroit pour "dessiner" et interagir (cliquer, toucher, etc..), pour faire des jeux vidéo par exemple. Dans ce cadre là t'as des librairies connues comme OpenGL (en C mais relativement portable entre Windows, Mac, iOS, Linux, etc...) ou DirectX (Microsoft uniquement), qui permettent de faire de la 2D et même de la 3D. Elles te facilitent beaucoup de choses au niveau du rendu et du dessin, mais il faut pas mal de travail quand même pour obtenir quelque chose...
2) Des interfaces de "saisie" classiques : boutons, listes déroulantes, fenêtres, saisie de texte, etc... Il s'agit des librairies d'interface classique, chaque système d'opération a les siennes en général, plus ou moins portables, comme celles qu'ampholyte a citées. Les librairies fournies avec Java sont relativement portables (Windows, Android, Linux, Sun/unix, MacOS, etc...), mais demeurent spécialement et uniquement utilisables par Java.
Dans ta question aux semblants simples tu touches à deux sujets très importants dans la problématique générale informatique :
I) la portabilité OS : "l'appli que j'ai codé pourra tourner sur quels systèmes d'exploitation ?"
II) la portabilité de langage de codage : "Quelle(s) librairies permettent d'utiliser les mêmes fonctions dans plusieurs langages de codage ?"
Malheureusement au vu de la diversité des librairies et langages disponibles, il n'y a pas de "vraie" réponse "tranchée" et nette à ces questions. Il s'agit, en fonction du projet (donc de l'appli à faire, en gros) de déterminer si elle a besoin de tourner sur plusieurs machines ou pas et s'il y a un intérêt à utiliser une librairie utilisable par plusieurs langages. Tout cela dépendra de l'objectif de l'appli à développer : besoin client, contexte d'utilisation, clientèle visée, coût, ressources disponibles, etc...
Si cela peut te rassurer, au début ce n'est pas à toi de faire ces choix mais plutôt à ton chef de projet, certains acceptent les suggestions mais la décision leur reviendra quand même.
Enfin, si tu sais déjà que t'auras à faire du Java, langage par ailleurs très répandu dans le développement actuellement, lance-toi ! Ce sera toujours ca de gagné et ce sera toujours plus utile qu'apprendre un langage de fond de tiroir comme CamL ou Prolog... ;)
Les tutos Java fournis dans leur site (où tu peux télécharger le dernier JDK : Java Development Kit) sont très pratiques et accessibles pour apprendre aussi bien le langage qu'à utiliser leur librairies :
Télécharger le JDK : http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp
(tu peux en profiter pour télécharger NetBeans, c'est un bon éditeur pour développer en Java)
Tutos : http://www.oracle.com/technetwork/topics/newtojava/overview/index.html

Bonne chance !

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 13 Mai 2014, 11:35

Pour l'éditeur pour le moment j'ai pas trouvé mieux que Sublime Text; mais j'irai probablement regarder un jour ;)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 13 Mai 2014, 14:35

Hello,

La grosse différence entre le Java et le C, c'est plutôt la façon de penser.

ui et non.
ui parce que en java, on force à faire des classes et des packages.
non parce qu'en C on finit quand même par faire pareil.
A mes yeux, un objet c'est juste une entité qui fait des services et qui a des données internes. Même chose qu'un package mais en plus petit. En C, on regroupe les fonctions similaires dans des même fichiers, on cache les données internes, bref de l'ISP. On a la même chose.

Le java est plutôt orienté objet (voir même completement orienté objet).

Bah, 40 fonctions dans la même classe avec un seul point d'entrée, c'est pas tellement un objet qu'on va instancier :(.
Je suis d'accord que ca pousse à penser objet par la syntaxe.

Finalement, je dirais quand même que la principale diff, ca vient du package management. C'est vachement plus simple d'utiliser un maven qui installe tout pour soi que de partir à la recherche des librairies en C...
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 13 Mai 2014, 14:43

Bonjour,

fatal_error a écrit:Hello,

ui et non.
ui parce que en java, on force à faire des classes et des packages.
non parce qu'en C on finit quand même par faire pareil.
A mes yeux, un objet c'est juste une entité qui fait des services et qui a des données internes. Même chose qu'un package mais en plus petit. En C, on regroupe les fonctions similaires dans des même fichiers, on cache les données internes, bref de l'ISP. On a la même chose.


Bah, 40 fonctions dans la même classe avec un seul point d'entrée, c'est pas tellement un objet qu'on va instancier :(.
Je suis d'accord que ca pousse à penser objet par la syntaxe.

Finalement, je dirais quand même que la principale diff, ca vient du package management. C'est vachement plus simple d'utiliser un maven qui installe tout pour soi que de partir à la recherche des librairies en C...


Je suis d'accord avec toi. Simplement très souvent le langage C est utilisé dans sa manière brute (surtout en étude) et du coup lorsque l'on passe ensuite vers du C++ ou du java qui sont plutôt OO, les concepts sont très différents, entre l'héritage, le polymorphisme, la virtualisation etc ...

Après c'est la façon de faire qui fait que l'on a tendance à penser objet ou non.

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 13 Mai 2014, 22:01

Zorro_X a écrit:Ce sera toujours ca de gagné et ce sera toujours plus utile qu'apprendre un langage de fond de tiroir comme CamL ou Prolog... ;)
Ça avait plutôt bien commencé, mais quand je lis ce genre d'absurdité (pour ne pas dire autre chose) je ne peux que répondre.
Depuis quand apprendre à réfléchir autrement, car c'est en fait de ça qu'il s'agit, nuit-il à au programmeur ? Les concepts des langages fonctionnels sont de plus en plus implémentés dans les langages main stream" (C++ Java si je ne me trompe) ce qui prouve bien leur utilité ! Microsoft a créé F# qui est un langage .net et F# est une copie de CamL.
Non, ce n'est surement pas une perte de temps d'aller voir ailleurs en ce qui concerne la prog.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 13 Mai 2014, 22:17

Pas la peine de s'enflammer non plus.
Quand t'as pas que ca à faire d'apprendre des langages ésotériques, ben t'apprends ce qui va te servir pour plus tard et si t'as le temps, ben tu élargis ton champs de vision. C'est dans cette optique que j'ai tout du moins compris les propos de zorro_x.

Je suis curieux de savoir à quels concepts fonctionnels implémentés dans C++ (donc je présume 11 ou 14) tu fais allusion?
edit: pe ce pdf
Comme quoi, pas besoin de connaitre le paradigme fonctionnel pour l'utiliser!
la vie est une fête :)

Avatar de l’utilisateur
Zorro_X
Membre Naturel
Messages: 77
Enregistré le: 16 Avr 2012, 16:40

par Zorro_X » 13 Mai 2014, 22:24

Merci fatal_error, tu m'as devancé mais bien compris le fond de ma pensée. Nullement besoin de troller (polémiquer) et de s'emballer à ce sujet, il est bien sur bon d'apprendre à réfléchir autrement, c'est même très utile. Cela sert pour la culture générale et l'élargissement de l'esprit, mais malheureusement en pratique, marquer CamL ou Prolog sur son CV ca n'aide pas à décrocher un premier boulot face à un Java .NET C#...

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 13 Mai 2014, 22:48

J'ai trop lu "ça sert à rien Prolog, ça sert à rien Lisp" pour ne pas "m'énerver" quand je vois passer ça.
J'ai fait 20 ans de langage impératif (C) avant de découvrir Prolog et ça m'a bien déstabilisé. On pouvait faire autre chose que des boucles for et des tant que pour programmer ! (même si ça ne se réduit pas qu' à ça).

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite