Programmation C/C++/ Tcl-Tk

Le
Regis
Coucou a tous,

j'ai pas trouve de forum dedie a la programmation sous Linux, mais je
voudrais savoir si mes vieux bouquins de C, C++ pouvaient toujours
faire l'affaire ?

De meme, comment attaquer un programme graphique sous X ? Un lien ?

En ce qui concerne le TCL/TK (je suis pas sur de l'acronisme), ou puis
je trouver des tutos ? Est ce toujours a la mode ou je laisse tomber ?

Bien a vous,

Amicalement,

Régis.

--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien LE LEZ
Le #19486171
On Thu, 04 Jun 2009 15:43:05 +0200, Regis
si mes vieux bouquins de C, C++ pouvaient toujours
faire l'affaire ?
De meme, comment attaquer un programme graphique sous X ? Un lien ?



Pour C, je ne sais pas. Un conseil toutefois : programme ton
application en C, ou bien en C++. Mélanger les deux n'apporte rien de
bon.
(On peut toutefois encapsuler une bibliothèque C pour l'utiliser en
C++, mais c'est rarement un travail passionnant.)

Le langage C++ a pas mal évolué ces dernières années, et même ces
derniers mois. Le bouquin de Stroustrup
http://www.research.att.com/~bs/programming.html est probablement à la
page.

Si tu veux créer une application graphique en C++, je conseillerais Qt
http://www.qtsoftware.com/products/
Alternatives : wxWidgets http://www.wxwidgets.org/ ou GTK+
http://www.gtk.org/

Note que ces trois bibliothèques sont également accessibles en Python,
qui semble être le langage à la mode.
Luc.Habert.00__arjf
Le #19486391
Regis :

j'ai pas trouve de forum dedie a la programmation sous Linux, mais je
voudrais savoir si mes vieux bouquins de C, C++ pouvaient toujours
faire l'affaire ?



Pour le C, aucun problème. Le C++, par contre, ça change à chaque version de
chaque compilateur...

De meme, comment attaquer un programme graphique sous X ? Un lien ?



Prendre un cable RJ45, et se pendre avec, c'est moins douloureux.

En ce qui concerne le TCL/TK (je suis pas sur de l'acronisme), ou puis
je trouver des tutos ? Est ce toujours a la mode ou je laisse tomber ?



C'est totalement mort. Essentiellement, les gens utilisent gtk en C, ou
d'autres langages avec lesquels il y a une interface, et qt en C++.

Note : le C et le C++ sont des langages d'atrocement bas niveau. Tu pourrais
plutôt faire du java ou du C# (il y a une implémentation de .Net pour unix
nommée Mono), ce sont des langages bien plus simples, tout en restant
puissants, et avec des stdlibs très bien fournies, y compris au niveau de la
réalisation d'interfaces graphiques.
Regis
Le #19486491
Fabien LE LEZ a écrit :
../..
Note que ces trois bibliothèques sont également accessibles en
Python, qui semble être le langage à la mode.



Je viens de lire de la doc. provenant de Google (car Google est mon
ami), fichtre! Ca ne ressemble en rien de ce que j'ai connu comme
langage de programmation, il a l'air d'etre tres strict, puis ce _main_
ou les def me desorientent un peu...

Y a des adeptes dans le coin ? Histoire de discuter calmement en privé
ou dans un forum dédié...

Bien amicalement,

Régis.

--

"Un homme averti n'amasse pas mousse !" (c) 1988 - BettleJuice en V.F.

http://regux.com/
Vivien Moreau
Le #19486721
Regis
Fabien LE LEZ a écrit :
../..
Note que ces trois bibliothèques sont également accessibles en
Python, qui semble être le langage à la mode.



Je viens de lire de la doc. provenant de Google (car Google est mon
ami), fichtre! Ca ne ressemble en rien de ce que j'ai connu comme
langage de programmation, il a l'air d'etre tres strict,



Euh, c'est à dire ?

puis ce _main_ ou les def me desorientent un peu...



Il n'y a pas de quoi :-)

Si tu continues à t'intéresser à Python, lis un des bons tutoriels qui
existent et tu partiras sur des bases saines.

Y a des adeptes dans le coin ? Histoire de discuter calmement en privé
ou dans un forum dédié...



Il y a fr.comp.lang.python, vers lequel je redirige ;-)

N.B : j'ai modifié le sujet, mais libre à toi de le rechanger !

--
Vivien Moreau / vpm / Tuxicomane
Fabien LE LEZ
Le #19486651
On Thu, 4 Jun 2009 14:22:11 +0000 (UTC), Luc Habert :

Note : le C et le C++ sont des langages d'atrocement bas niveau. Tu pourrais
plutôt faire du java ou du C#



Le C est effectivement de bas niveau : faut s'emmerder à allouer la
mémoire soi-même, et surtout la libérer soi-même. Et je ne parle même
pas de la gestion des chaînes de caractères.

C++ et Java/C# sont assez proches, mais C++ a un mécanisme très peu
répandu : les objets sont détruits automatiquement à un moment
prévisible, ce qui permet de s'en servir pour qu'un objet "fichier" ou
"socket" se ferme automatiquement, exactement au bon moment.

Mébon, tout ça (C/ASM, C++/Java) est effectivement d'assez bas niveau
comparé à, mettons, Haskell.
Luc.Habert.00__arjf
Le #19488071
Fabien LE LEZ :

Le C est effectivement de bas niveau : faut s'emmerder à allouer la
mémoire soi-même, et surtout la libérer soi-même.



En C++ aussi.

C++ et Java/C# sont assez proches



Par la syntaxe, mais certainement pas par la sémantique.

Mébon, tout ça (C/ASM, C++/Java) est effectivement d'assez bas niveau
comparé à, mettons, Haskell.



Le java est beaucoup plus proche de Haskell que les autres que tu cites.
Fabien LE LEZ
Le #19488461
On Thu, 4 Jun 2009 18:13:10 +0000 (UTC), (Luc Habert):

Le C est effectivement de bas niveau : faut s'emmerder à allouer la
mémoire soi-même, et surtout la libérer soi-même.



En C++ aussi.



Non. Sauf bien sûr si tu programmes en C, mais que tu utilises g++
pour compiler (ce qui semble être fréquent, malheureusement.)
Luc.Habert.00__arjf
Le #19489371
Fabien LE LEZ :

Le C est effectivement de bas niveau : faut s'emmerder à allouer la
mémoire soi-même, et surtout la libérer soi-même.



En C++ aussi.



Non. Sauf bien sûr si tu programmes en C, mais que tu utilises g++
pour compiler (ce qui semble être fréquent, malheureusement.)



Bah si. Je vois ce que tu veux dire, mais ce n'est que du sucre. Les objets
alloués par new, il faut les deleter explicitement.
Fabien LE LEZ
Le #19489521
On Thu, 4 Jun 2009 20:10:06 +0000 (UTC), (Luc Habert):

mais ce n'est que du sucre.



Au contraire, c'est fondamental. Le principe RAII est ce qui
différencie C++ de la plupart des autres langages.

Les objets
alloués par new, il faut les deleter explicitement.



C'est quand même très rare. Beaucoup d'objets alloués par new savent
s'auto-détruire (C'est le cas, par exemple, des objets "fenêtre" dans
wxWidgets, et aussi probablement dans Qt) ; d'autres sont gérés par
des auto_ptr<>, shared_ptr<>, etc.

D'ailleurs, il est très difficile d'appeler delete directement : où
doit-on l'appeler ?
En particulier, le code ci-dessous est incorrect :

int* ptr= new int;
f();
delete ptr;

En effet, si f() lance une exception, le delete n'est jamais appelé !
(On peut bricoler avec des blocs try...catch mais c'est vite
ingérable.)

D'où (par exemple) :

{
auto_ptr<int> ptr (new int);
f();
...
}

Ici, C++ garantit que la mémoire sera libérée à la fin du bloc, quelle
que soit la méthode de sortie (exception, cours normal, return, break,
etc.)

Note qu'il y a des cas où on peut légitimement appeler delete, mais
ils sont rares dans un programme donné.
Luc.Habert.00__arjf
Le #19490491
Fabien LE LEZ :

Au contraire, c'est fondamental. Le principe RAII est ce qui
différencie C++ de la plupart des autres langages.



Blah...


Les objets
alloués par new, il faut les deleter explicitement.



C'est quand même très rare. Beaucoup d'objets alloués par new savent
s'auto-détruire (C'est le cas, par exemple, des objets "fenêtre" dans
wxWidgets, et aussi probablement dans Qt) ; d'autres sont gérés par
des auto_ptr<>, shared_ptr<>, etc.



Ça ne marche pas avec des structures récursives...


D'ailleurs, il est très difficile d'appeler delete directement : où
doit-on l'appeler ?



Bah oui, d'où la nécessité des GC, que l'on a dans les langages fonctionels,
mais aussi dans java et C#, mais pas C++.
Publicité
Poster une réponse
Anonyme