# [gentoo] développement

## philius

un post plus ou moins utile à vous de voir ?

n'étant pas forcément à l'aise avec la langue anglaise je ne sais pas se qu'il se dit forcément du coté des autres forums ?

quelques idées un peu en vrac :

un emerge qui travaillerait sur une base de donnée, idéalement en sqlite

pour avoir de meilleur performance dans les recherches

en option un flag supplémentaire dans cette BDD, permettant de gérer plusieurs options de compilation (-0s,-02, par  exemple)

ce qui permettrait de ne plus avoir un flag générique pour l'ensemble des compilations

voir plus d'options en partant d'une BDD plus compléte

la gestion/analise/recherche plus  aisé/avancé du système, des flags, version, etc...

ca vaut ce que ca vaut comme idée (utopique/réalisable)

mais je trouverai cela pas mal

autre idée:

que je vais peut être mettre en pratique

j'ai peu de connaissance en language de programmation, mais j'aimerai bien me mettre à python (voir un jour au C, si je me sens courageux)

et le peu de fois ou je me suis lancé dans l'aventure, j'ai au final réussi ce que je voulais faire

le mieux dans ce cas c'est de trouver un projet à sa portée, et utile par la même occasion

un programme en python+gtk, donc avec interface graphique

pour gérer au départ package.use

mais pourquoi ne pas l'étendre à package.keywords et au make.conf

pourquoi:

pour gérer les options de compilation plus facilement/visuellement par paquet

gérer les transitions ou des options apparaissent ou disparaissent, sont atives par défaut ou ne le sont plus

éviter de garder des flags obsolétes sur des paquets ou des dépendances

au final découvrir python

sachant que je ne n'ai pas de prétention pour réinventer ce qui marche actuellement (c'est pas si mal aujourd'hui)

ou partir sur un projet pour la communauté et le maintenir ensuite

juste quelques idées du jour...

----------

## kwenspc

Tout ça a déjà été proposé (et rejeté il me semble)

Pour ce qui est de gérer les paquets "graphiquement" y a plusieurs projets qui existent depuis un bail. Kuroo, porthole... si il y manque des fonctionnalités autant y participer (kuroo a l'air plus actif que les autres ceci dit)

Pour découvrir python je dirais que le mieux c'est justement pas d'aller voir le code de portage  :Laughing: 

[edit] ah nan même kuroo est plus maintenu...[/edit]

----------

## Kazuya

Hello,

pour portage en graphique il ya himerge (pas testé):

 *Quote:*   

> 
> 
> * app-portage/himerge
> 
>      Available versions:  (~)0.30.36.2-r1!s 0.30.37!s
> ...

 

----------

## philius

oui je me doute que je ne suis pas le premier à avoir des idées de ce coté la ^^

oups, pour les interfaces graphique je n'avais pas vu en effet...

je suis souvent sur le site packages.gentoo.org pourtant...

je viens de trouver himerge qui au final ressemble à ce que je pensais, et qui semble maintenu à cette date

mais un soucis de version de xulrunner (je viens de passer en ~arch pour firefox)

je vais regarder...

comme je disais aucune prétention et je n'ai pas envi de réinventer ce qui existe déjà

ce qui est souvent le cas vu la multitude de projet sous linux...

pour découvrir python en effet portage ne semble pas le mieux à ce que j'ai put lire   :Very Happy: 

bon je trouverai autre chose 'si il existe déjà" pour faire mes premiers pas en python

par contre intégrer une equipe

je pense que la première étape est d'avoir de bonne base en programmation au départ

ce que je n'ai pas actuellement

au risque d'être perdu et de ne pouvoir suivre

de plus ce n'est pas mon objectif aujourd'hui

merci de ta réponse, 

la fonction recherche plus en détail sur le net est toujours une bonne idée ^^

edit:

grillé par Kazuya pour himerge   :Very Happy: 

edit:

le mode console me va bien

l'idée de l'interface graphique c'est une visualisation plus facile/compléte, qu'en mode console

et au final dans le cas d'un développement, cela peut être plus facile pour l'interface

----------

## Fenril

 *Kazuya wrote:*   

> Hello,
> 
> pour portage en graphique il ya himerge (pas testé):
> 
>  *Quote:*   
> ...

 

Ah, j'allais le dire. Je n'ai pas encore testé, mais il semblerait qu'il soit performant, programmé en Haskell (langage hautement parallélisable). En plus il gère tout de portage.

----------

## ghoti

 *kwenspc wrote:*   

> (kuroo a l'air plus actif que les autres ceci dit)

 

Il est tellement actif que son auteur a officiellement arrêté le développement en janvier 2008 (des annonces avaient déjà été faites un an auparavant !)   :Laughing: 

Kuroo a donc malheureusement été retiré de portage !  :Sad: 

http://kuroo.org/

Fin de l'année dernière, galiven a cependant pris l'initiative de tenter de remettre le projet sur les rails (http://sourceforge.net/projects/kuroo/).

Pour l'instant, les volontaires pour l'aider ne semblent pas se bousculer ...

Dommage. Pour moi, c'est le meilleur projet du genre, même si on pourrait lui reprocher d'être "kde"

----------

## philius

en faite avec le recul

je cherche surtout à avoir une maintenance de package.use

fichier que j'utilise principalement

pour éviter les flags inutiles/obsoletes

car avec le temps je trouve que l'on peut avoir rapidement du n'importe quoi dans ce fichier

l'idéal:

un scan complet de l'ebuild pour un paquet

savoir ce qu est actif ou non par défaut et disponible

et comparer avec package.use 

afin d'identifier ce qui n'est plus d'actualité pour mes besoins

pour himerge j'hésite

il est dépendant via gtk2hs de xulrunner en version 1.8

ce qui est pas forcément compatible aujourd'hui avec firefox

dommage...Last edited by philius on Thu Aug 27, 2009 6:47 pm; edited 1 time in total

----------

## Fenril

 *philius wrote:*   

> 
> 
> pour himerge j'hésite
> 
> il est dépendant via gtk2hs de xulrunner en version 1.8
> ...

 

???

Xulrunner ce n'est qu'un interpréteur de langage XUL, il n'interfère pas avec firefox (qui a son propre interpréteur).

----------

## ppg

Il me semble que sabayon propose une interface graphique d'entropy (un gestionnaire de ports binaires basé sur portage, et compatible puisqu'il est possible d'utiliser les 2 gestionnaires en même temps).

Après si ça correspond à ce que tu veux.

A mon sens le mieux pour débuter en programmation ça reste d'apprendre les bases en développant un petit projet qui te plaît (c'est important, sinon on y mets moins d'ardeur).

Après il faut surtout comprendre et assimiler les concepts fondamentaux du langage, mais surtout du paradigm de programmation.

Il bien plus intéressant d'avoir une solide connaissance de l'orienté objet que de savoir faire une assignation multiple en python.

Regarder les sources des logiciels déjà existant est aussi très instructif, je me suis beaucoup inspiré de la glib pour pondre une fonction qui échappe les caractères spéciaux (genre \n \r ' " etc.), car ce que proposait glib ne couvrait pas entièrement mes besoins. Mais encore faut-il comprendre la solution proposée par les autres développeurs ; recopier bêtement n'apprend pas grand chose.

Je pense que le plus fun c'est de faire un jeu, c'est ludique et ça permet de toucher à pas mal de domaine dans un language ; j'ai commencé avec java en cours (je sais c'est bloated, mais au moins c'est libre, enfin à l'époque c'était moins vrai :p)

----------

## ghoti

 *Fenril wrote:*   

> ???
> 
> Xulrunner ce n'est qu'un interpréteur de langage XUL, il n'interfère pas avec firefox (qui a son propre interpréteur).

 

Il semble que ce ne soit plus le cas avec les dernières versions de Firefox; par exemple, la 3.5.2 dépend explicitement de xulrunner-1.9.1 ...

(Cela provoque d'ailleurs certains problèmes )

Mais il est vrai que les versions plus anciennes offraient le choix au travers d'un flag d'utiliser un xulrunner "partagé" ou de compiler une version privée.

----------

## Fenril

OK, et pas moyen d'empêcher l'utilisation de xulrunner pour FF 3.5.2 ? Je demande car je suis resté en stable. Ca explique pour la 3.5.2 tarde à passer en branche stable.

----------

## philius

EDIt : ok on a poster ensemble nos réponses, je laisse ce que j'avais écris^^

 *Fenril wrote:*   

>  *philius wrote:*   
> 
> pour himerge j'hésite
> 
> il est dépendant via gtk2hs de xulrunner en version 1.8
> ...

 

euh ??

si j'installe aujourd'hui firefox ca installe automatiquement xulrunner

encore plus vrai sur la version 3.5.2 puisqu'on n'a même plus la flags xulrunner pour le désactiver

j'avais testé avant sans et la compilation ne se faisait pas...

edit : il me semble que sur une première install puis suppression du flag la recompilatation echouait

si tu peux m'expliquer ce que je n'ai pas compris dans l'install avec xulrunner ?

@ppg

j'ai fait un peu de programmation loisirs et un peu au boulot

basic,qbasic,VB,php

sur windows 3.1 j'avais fait une refonte du bureau avec un panel façon de se qui se fait aujourd'hui

(on n'a du me voler l'idée depuis lol)

dans les dernières années un peu de VB ,php, sql

enfin rien de compliquer (1semaine à 1 mois maxi de dev)

je suis d'accord avec toi avoir une vrai idée de projet est certainement plus intéressant que de copier/coller voir de faire des bouts de codes

et pour moi refaire ce qui existe n'est pas utile

merci pour tes conseils

----------

## ghoti

 *philius wrote:*   

> j'ai fait un peu de programmation loisirs et un peu au boulot
> 
> basic,qbasic,VB,php

 

Mmmh, à mon avis, Gambas devrait te plaire !  :Wink: 

D'autant plus que son IDE est écrit ... en gambas : extrêmement instructif !  :Smile: 

----------

## mrpouet

 *kwenspc wrote:*   

> 
> 
> Pour découvrir python je dirais que le mieux c'est justement pas d'aller voir le code de portage 
> 
> 

 

Un peut violent comme apprentissage   :Wink: 

----------

## philius

 *ghoti wrote:*   

>  *philius wrote:*   j'ai fait un peu de programmation loisirs et un peu au boulot
> 
> basic,qbasic,VB,php 
> 
> Mmmh, à mon avis, Gambas devrait te plaire ! 
> ...

 

ce qui est énervant sous linux c'est qu'on en découvre tous les jours   :Laughing: 

sympa je suis en train de regarder...

par contre un peu proche de VB (je voulais en profiter pour découvrir autre chose)

et python me semblait idéal, et plus standard aussi sous linux

merci pour l'info !

----------

## ppg

 *philius wrote:*   

> 
> 
> par contre un peu proche de VB (je voulais en profiter pour découvrir autre chose)
> 
> et python me semblait idéal, et plus standard aussi sous linux
> ...

 

Et multi-plateforme, ça compte aussi !

(Bon C est aussi multi plateforme, mais c'est plus délicat à gérer).

----------

## ghoti

 *ppg wrote:*   

> Et multi-plateforme, ça compte aussi !
> 
> (Bon C est aussi multi plateforme, mais c'est plus délicat à gérer).

 

Sinon, il y a ruby : un peu plus jeune mais fort comparable à python, la différence essentielle étant que ruby est véritablement du "pur objet".

[troll]... et puis en n'est pas em*dé par cette #@! d'indentation et ces blocs qui ne se terminent pas !   :Twisted Evil:  [/troll]

Multi-plateforme aussi ...  :Wink: 

----------

## kwenspc

 *ghoti wrote:*   

> 
> 
> [troll]... et puis en n'est pas em*dé par cette #@! d'indentation et ces blocs qui ne se terminent pas !   [/troll]
> 
> 

 

[troll continued]Si t'as des blocs à rallonge c'est que tu code mal  :Mr. Green: [/troll continued]

Et sinon l'objet pur on s'en fout ça. L'important c'est ce qu'on fait du langage. (Et puis c'est prouvé que python est plus facile d'approche que ruby) [troll?]De tout manière l'avenir est aux langages fonctionnel pures qui apporte la preuve automatiquement de ce qu'on code avec une syntaxe cool à la python ^^... ok ça existe pas encore.[/troll]

Question langage, le seul le vrai ça reste le C.   :Razz: 

----------

## ghoti

 *kwenspc wrote:*   

> Question langage, le seul le vrai ça reste le C.  

 

C'est vrai ça ! 

D'ailleurs, on se demande pourquoi il y a des gus qui perdent leur temps à inventer autre chose !  :Wink:   :Laughing: 

Quelqu'un a déjà essayé de scripter en C avec tcc ?

----------

## kwenspc

 *ghoti wrote:*   

> 
> 
> D'ailleurs, on se demande pourquoi il y a des gus qui perdent leur temps à inventer autre chose !  
> 
> 

 

Mais complètement!

----------

## ppg

 *kwenspc wrote:*   

> 
> 
> Question langage, le seul le vrai ça reste le C.  

 

Entièrement d'accord  :Twisted Evil: 

(Et un peu de bash de temps en temps).

----------

## Pixys

 *kwenspc wrote:*   

>  *ghoti wrote:*   
> 
> D'ailleurs, on se demande pourquoi il y a des gus qui perdent leur temps à inventer autre chose !  
> 
>  
> ...

 

roooo les barbus ! 

Ruby et python c'est très bien aussi   :Cool: 

----------

## ppg

 *Pixys wrote:*   

> 
> 
> roooo les barbus ! 
> 
> Ruby et python c'est très bien aussi  

 

Comment t'as su  :Question: 

Python j'aime pas l'obligation d'indenter son code. On peut me dire que ça force les gens à coder en indentant correctement, et qu'on fait moins de truc moches, mais quand on veux faire de la crotte, on peut toujours language permissif ou pas. Rien n'empêche d'indenter son code proprement en C (emacs le fait pour moi)   :Wink: 

----------

## kwenspc

 *ppg wrote:*   

> 
> 
> Python j'aime pas l'obligation d'indenter son code. 

 

Boah c'est la critique habituelle des gens qui ont rien d'autres à dire sur python ça, juste "qu'ils aiment pas".  :Laughing:  (je conçois hein, perso je supporte pas php... ah nan c'est vrai on parle de langage de prog ici ^^)

D'ailleurs y a aucun désavantages à l'indentation "forcée" ni de véritables avantages non plus d'ailleurs... Comme tu dis, quand on veut faire du crade on trouve toujours les moyens (cf portage ah ah!) . 

En fait ces critiques sur les aspects esthétique du langage c'est trollesque (sauf pour php! et perl tiens aussi ^^), exactement de même acabit que vim vs emacs. Les goûts et les couleurs hein  :Wink:  (ou du même genre que "aaah j'aime pas le self je préfère le this, c'est nul"  :Mr. Green:  )

Je code pas mal en python bah la seul critique, qui finalement va très bien à ruby aussi, c'est que si vous voulez faire des softs système, d'ia... avec nécessité de bonne perfs bah... circulez y a rien à voir, c'est pas fait pour. Par contre un point intéressant pour python: c'est très bien pour prototyper. Peut être ruby aussi d'ailleurs, quoique pour un débutant je me suis laissé dire que ça serait peut être un poil plus difficile comme langage (ce qui reste facile finalement, c'est sans doute la seule vraie différence entre ces 2 langages).

Finalement philius essais les deux, et prends celui qui "te parle" le plus. Je crois qu'on peut pas se faire une idée sans y mettre les mains dans ce cas précis.

----------

## ppg

En fait je trouve que python s'écrit bien, mais se lit mal, c'est surtout une question de goût   :Razz: 

Mais je reconnais volontiers que python possède d'excellentes qualités. J'ai très souvent utilisé des languages compilés et non interprétés au cours de ma scolarité, et c'est devenu "un réflexe".

Et c'est tellement beau de se prendre un bon segfault dans la poire, au bout de la 10ème compile   :Laughing: 

Un jour il faudra que je me bouge un peu et que j'appenne à faire du perl (parce qu'un sort en 3 lignes c'est tellement beau et illisible).

----------

## philius

en mode utilsateur/loisirs/et découverte   :Very Happy: 

le python ca me semble bien au premier abord, j'ai commencé à me faire un ou deux progs (plus des scripts q'un programme)

l'indentation oui ca peut énerver. Je lui metterai cela comme défaut.

les perfs pour l'instant, sur un scan/analise de repertoire et fichiers, 5000/6000 fichiers prend 4/5 secondes

ca me va bien pour l'instant comme perf..., jai connu pire

enfin tout dépend des besoins/optiques

mes critères sont le plus polyvalent possible, pas trop fermé et ayant de l'avenir, et je n'ai pas de prétention pour faire aujourd'hui de la programmation de bas niveau.

facile d'accés, le plus lisible, et facilement débuggable (je débute)

partant de la passer par un interprèteur qui se fige sur la première ligne qui cloche, ca me va bien...

au final:

python ou similaire (ruby ?), tcl et perl ne me parlant pas trop en ouvrant un code source

puis appronfondir bash et pourquoi pas le C par la suite

si je devais m'orienter plus professionnel je choisirai le C peut être d'office. puis voir les autres ensuite

----------

## kwenspc

tcl c'est has been, perl ça commence à l'être (son  âge d'or ça a été les 90's avec les début d'internet.)

Professionnellement parlant le C c'est pas porteur, à moins d'être un bon. C++ idem (sauf que là en Qt ils cherchent plein de monde, fin là où je suis en tout cas, nokia oblige.)

Si tu veux un langage porteur sans pour autant être un crack t'as le Java, le C#/.net (c'est le *mal*, n'oublies pas ^^) après je vois pas trop. Le python a pas mal de débouché (en web notamment: django et autre comme framework etc...). Pareil pour ruby. Faut aimer le ouèb, moi c'est pas ma tasse de thé.

Dans les non-langages t'as le php qui est assez porteur. (faut juste aimer faire du crade, du qui sert à rien, refaire la roue, faire n'importe quoi quoi.) le VB, ah ah hum...

----------

## guilc

 *kwenspc wrote:*   

> tcl c'est has been, perl ça commence à l'être (son  âge d'or ça a été les 90's avec les début d'internet.)

 

Merde, je suis has-been  :Laughing: 

Non, sérieux, perl, c'est tout sauf has-been. Pour l'administration, c'est le langage ROI. Il dispose de bindings pour à peu près tout ce qui existe dans le monde de l'admin, est très souple pour ça. Certes, ça fait pas pour tout, mais dans le domaine de l'administration de machines, on n'a toujours pas fait mieux !

Et puis zut, j'en fais toute la journée chez mon employeur qui a tout son SI codé en perl :p (qui a dit Free  :Wink: )

 *Quote:*   

> Professionnellement parlant le C c'est pas porteur, à moins d'être un bon. C++ idem (sauf que là en Qt ils cherchent plein de monde, fin là où je suis en tout cas, nokia oblige.)

 

Tout dépend du domaine.

J'ai été à plusieurs reprises démarché par des boites faisant de l'embarqué (pour des modems ou pour des firmwares d'imprimante par exemple). Et dans ce domaine, point de salut hors du C !

Dans les applicatifs proche du matériel, le C est toujours (et amha sera encore pendant de très nombreuses années) le langage roi.

On n'a pas encore fait des firmwares en Java ou .Net hein  :Wink: 

----------

## philius

dans un cadre professionnel, je parlais du C, puis aller vers le haut pour se faire une bonne connaissance en la matière.

mai on peut faire la démarche inverse aussi...

dans un cadre plus loisirs et découverte, je pense que commencer par un langage haut niveau est plus sympa

après on voit selon la motivation et les besoins pour descendre vers le C (ou C++)

bon je reste sur python pour l'instant, et je vais faire quelques recherches pour ruby et pourquoi pas le C++.

----------

## ppg

 *philius wrote:*   

> 
> 
> dans un cadre plus loisirs et découverte, je pense que commencer par un langage haut niveau est plus sympa
> 
> après on voit selon la motivation et les besoins pour descendre vers le C (ou C++)
> ...

 

J'ai commencé avec de l'assembleur 68k, pour voir du java puis du C (logique imparable, mais j'ai pas eu le choix).

Déjà il faut voir ses centres d'intérêts, découverte/apprentissage (language "haut niveau") => python me semble très bien ; dès que tu touches au matos (et surtout à l'embarqué) C ça reste le must ; d'ailleurs c'est pas pour rien qu'on définit de nouveaux standards (ex C99).

J'aime beaucoup le C mais dès fois ça me fait grave chier de me traîner des pointeurs pour gérer la mémoire (au risque de me planter en plus) alors que python l'aurait fait à ma place. Le meilleur language de progammation n'existe pas ; celui qui te permet de faire ce que tu veux le plus facilement est "meilleur". Exemple : pour l'administration système, perl reste la référence, pour le calcul scientifique octave/scilab, pour l'objet C++/python/ruby, pour le matos et POSIX C, pour le web PHP (même si c'est pas du goût de notre ami kwenspc   :Laughing:  ).

----------

## kwenspc

 *guilc wrote:*   

> 
> 
>  *Quote:*   Professionnellement parlant le C c'est pas porteur, à moins d'être un bon. C++ idem (sauf que là en Qt ils cherchent plein de monde, fin là où je suis en tout cas, nokia oblige.) 
> 
> Tout dépend du domaine.
> ...

 

Ah j'ai pas dis le contraire. Mais ça reste un marché de niche, et les employeurs visent les bons devs en C dans ces cas là. Sinon si si y a du java très proche du matos(et .net ça commence à venir... malheureusement  :Sad:  ) sur les puces jvm, les java card etc...

Bon sinon l'administration c'est pas du dev  :Wink:  (troll inside, je sais...)

[edit] @philius: la démarche inverse y pense pas trop. commence par le low level puis monte ensuite. L'inverse est beaucoup plus compliqué, tu prends de mauvaises habitudes etc...

Euh le C99 il est implémenté nulle part à 100% (et ça me saoule d'ailleurs... ). Gcc est même pas un bon élève à ce sujet   :Confused:  [/edit]

----------

## Leander256

 *kwenspc wrote:*   

> @philius: la démarche inverse y pense pas trop. commence par le low level puis monte ensuite. L'inverse est beaucoup plus compliqué, tu prends de mauvaises habitudes etc...

 

Je ne suis pas d'accord sur ça. Commencer par un langage de haut niveau permet de se concentrer sur le concept de programmation procédurale sans devoir se casser la tête sur des problématiques liées à la machine. On peut ensuite "descendre" et intégrer au fur et à mesure des concepts plus compliqués et proches de la machine comme le typage des variables, les pointeurs, etc. Je me rappelle que la première fois que j'ai vu la programmation des sockets en C, ça ressemblait plus à de la magie qu'autre chose (union de structures, low-endian et big-endian, etc.).

----------

## mrpouet

Il faut dejà commencer par apprendre le concept de la programmation procédurale comme le souligne Leander256, et aussi essayer de t'apprendre les concepts de base de l'algorithmique (les fondamentaux) car vouloir bien coder sans aucune notions en algo c'est pas toujours super évident (voir possible)

La chose primordiale étant d'apprendre le language que tu souhaites avec un excellent bouquin (et pas siteduzero.com, car bon .. voilà.. à ce moment là optes plutot pour developpez.com tu y trouvera des ressources trés intérrèssantes), bouquin qui va t'inculquer les bases de la programmation avec les rudiments primordiaux s'il est bien fait, et qui peut t'amener à un super niveau (généralement le niveau est crescendo).

Aprés j'ai pas plus de conseil à te donner concernant un language plus qu'un autre, tout dépends de ton besoin et de ce que tu souhaites faire avec...

Si t'es à fond sur le language que tu apprends, et que tu ne grilles aucunes étapes, et surtout que tu lis beaucoup de code çà devrait aller tout seul (aprés avoir passez des fois des heures à chercher un bug à la con   :Laughing:  )

Si tu souhaites un jour te mettre au C , permet moi de te conseiller mon livre de chevet http://www.dunod.com/livre-dunod-9782100490189-methodologie-de-la-programmation-en-c.html  (c'est un dieux ce mec... et en plus je crois que je vais l'avoir comme prof cette année  :Very Happy: )

----------

## kwenspc

Mouais, de mon expérience tous les mecs qui sont partis du haut vers le bas ont quasi tous lâchés à un moment "parce que trop compliqués, y a pas de garbage collecor, les pointeurs c'est chiant, c'est nuuul" (je schématise). Alors que l'inverse est tellement simple justement. Quand j'étais étudiant, on été 3-4 à survolés les cours de prog parce qu'on s'étaient formés seul avec le C comme premier langage (voir l'asm pour certain, bon ceux là c'est à part ^^'), pour les autres: c'était la croix et la bannière. Ce qui veut pas dire qu'un petit nombre à côté s'en soit bien sortis au final. J'ai donné des cours... ça a été le même topo, et pourtant je suis repartis de la base en ré-expliquant tout depuis le début alors qu'ils étaient censés déjà connaitre le C (qu'ils ont appris APRÈS avoir appris le java et le C#...). Les seuls qui s'en sont tirés haut la main? Des élèves qui avaient appris d'abord le C/C++ seul chez eux avant même d'entrer à l'école.

Un truc: apprendre les concepts de la prog procédurale? Ça se fait en C sans utiliser rien de "compliqué", c'est un faux arguments ça, idem pour les bases de l'algorithmique.

Poser vous la question: c'est mieux de commencer "bête et méchant" et d'aller vers la difficulté (toute relative mais quand on commence "simple" ou trouve ça compliqué) ou bien d'aller direct vers une petite difficulté mais qui fera que tout le reste ensuite parait simple?  :Wink: 

Bon après on en revient à la même conclusion: si votre finalité c'est de coder des applis end-user sans contraintes de performances, des sites web... bah là ok vous tournez pas vers le C.

----------

## ppg

L'algo ça se fait très bien en C, d'ailleurs un excellent bouquin aux éditions O'Reilly (donc introuvable en français maintenant) Mastering Algorithms with C. Sinon il ya aussi le C en action, mais celui là il doit être hard à trouver (O'Reilly mais en français uniquement, d'où la quasi impossibilité de le trouver neuf). 

Pareil je pense que bas vers haut est une meilleure approche. De ceux qui ont commencé par le Java chez nous, yen pas des masses qui ont accroché le C :

"Msieu c'est quoi l'étoile là ?

Bah un pointeur !

Oui mais c'est quoi un pointeur ?"

Déjà entendu alors que les mecs sont sensé avoir fait de la prog en C depuis 2 ans...

----------

## philius

Maintenant que vous en parlez, je viens de me rappeller que la première fois ou j'ai cherché à programmer c'est en assembleur   :Laughing: 

En faite c'est le deuxième language que j'ai essayé, j'avais acheté bien avant une console + magnétophone comme disque dur, ayant comme language un basic. Mais une fois mon premier ordinateur (un 486sx33 de mémoire), je suis tombé sur l'assembleur. Bon j'ai laissé de coté le language, puis plus tard je me suis tourné sur le basic et ses dérivés. Un essai en turbo pascal aussi, mais je n'ai pas appronfondi.

Pour l'assembleur ce que je peux en retenir de mémoire, c'est que ça en faisait un language simple à utiliser. Hormis sa difficulté à partir de zéro...

----------

## Leander256

Peut-être que même pour ces élèves ayant appris le C avant de rentrer dans cette école. il ne s'agissait pas de leur premier langage. Et puis j'ai dans l'idée que c'est un problème mêlant plusieurs facteurs comme le temps et la motivation.

La plupart des élèves dans les cursus informatiques sont-ils là parce qu'ils sont passionés? Je ne pense pas. En tout cas il y a quelques années ça se résumait surtout à "papa/maman veulent que je fasse des études avec des débouchés" et "je veux coder un counter strike." Peut-être tes camarades de classe et tes élèves étaient-ils différents, mais je ne serais pas étonné que la majorité d'ente eux se soient dit "de toute façon le C c'est mort maintenant dans les entreprises c'est C#/Java et pour les notes je me rattraperai dans les autres matières."

----------

## ppg

 *Leander256 wrote:*   

> Peut-être que même pour ces élèves ayant appris le C avant de rentrer dans cette école. il ne s'agissait pas de leur premier langage. Et puis j'ai dans l'idée que c'est un problème mêlant plusieurs facteurs comme le temps et la motivation.
> 
> La plupart des élèves dans les cursus informatiques sont-ils là parce qu'ils sont passionés? Je ne pense pas. En tout cas il y a quelques années ça se résumait surtout à "papa/maman veulent que je fasse des études avec des débouchés" et "je veux coder un counter strike." Peut-être tes camarades de classe et tes élèves étaient-ils différents, mais je ne serais pas étonné que la majorité d'ente eux se soient dit "de toute façon le C c'est mort maintenant dans les entreprises c'est C#/Java et pour les notes je me rattraperai dans les autres matières."

 

Si seulement ils étaient bons en Java, je pourrais le croire. Du coup ils se rattrapent en électronique   :Wink: 

----------

## mrpouet

 *Leander256 wrote:*   

> Peut-être que même pour ces élèves ayant appris le C avant de rentrer dans cette école. il ne s'agissait pas de leur premier langage. Et puis j'ai dans l'idée que c'est un problème mêlant plusieurs facteurs comme le temps et la motivation.
> 
> La plupart des élèves dans les cursus informatiques sont-ils là parce qu'ils sont passionés? Je ne pense pas. En tout cas il y a quelques années ça se résumait surtout à "papa/maman veulent que je fasse des études avec des débouchés" et "je veux coder un counter strike." Peut-être tes camarades de classe et tes élèves étaient-ils différents, mais je ne serais pas étonné que la majorité d'ente eux se soient dit "de toute façon le C c'est mort maintenant dans les entreprises c'est C#/Java et pour les notes je me rattraperai dans les autres matières."

 

C'est çà le plus grave, c'est qu'aujourd'hui à 22 piges la plupart des gars qui sont avec moi je me demande ce qu'ils foutent là... je ne critique pas leur compétences attention, car je respecte les compétences et les acquis de chacun, mais tu as vraiment l'impression qu'il s'en foute et que çà les intérrèssent qu'a moitier ^^

à 22 ans si tu sais pas ce que tu fais à la fac ou dans une école excuses moi c'est grâve au final quand même...

tout çà pour dire que je plussoie ce que tu as dis car tu voix entierement juste.

@ppg: l'algorithmique c'est un raisonnement est une approche mathématique pour résoudre un problême donné, donc tu peux faire de l'algo en C , en python, en Common lisp, en JAVA, en ce que tu veux  :Wink: 

j'aime bien ton "monsieur c'est quoi l'étoile là ?"   :Very Happy: 

----------

## swilmet

Personnellement j'ai commencé par le PHP pcq je m'étais lancé dans la création de sites web. J'ai appris aussi la POO avec ça.

Ensuite je sais plus si j'ai d'abord fait un peu de C (sur le siteduzero) ou un peu de Python (avec ce livre), en tout cas j'ai fait les 2.

Mais le problème c'est que je n'avais pas de projet pour pratiquer un de ces deux langage...

Puis à l'unif j'ai appris le Java (oui, on commence par de la POO, logique non ?), ensuite le Oz (pour apprendre plusieurs paradigmes), puis le C et l'assembleur (MIPS et x86).

Et là j'ai commencé il y a un mois un nouveau projet en C et GTK : LaTeXila

Pour ce qui est de l'apprentissage, c'est vrai que le plus logique c'est de commencer par le bas niveau puis de monter, c'est d'ailleurs ce qu'on faisait pour le cours d'architecture (on commence par les circuits du processeur, puis on voit le langage asm, etc). Moi qui ait pas fait vraiment dans cet ordre-là, je préfère quand même le C aux autres langages que j'ai appris...

----------

## ppg

C'était juste pour souligner le fait que l'algorithmique se fait aussi bien en C, qu'en Java, Python, Perl ou encore en LISP. Il y a simplement des languages qui offrent des facilités dans certains domaines relativement aux autres.

Le plus important c'est l'aspect mathématiques de la chose, comme tu le dit mrpouet, j'ai beaucoup aimé les problèmes de graphes que j'ai connu cette année. Le language utilisé était le C, mais avec une bibliothèque fournie par le prof, pour faciliter le travail.

Car au final on s'en fout de gérer la mémoire, quand on fait un cours sur l'algorithme de manière générale. On apprend à optimiser les solutions bien sûr mais en se basant sur un language particulier mais sur l'algo lui même, et éventuellement la manière de représenter le problème (tableau ou liste).

Pour notre ami philius si tu as la chance (comme moi) d'être (encore ?)  à la FAC ou en école, tu auras sûrement accès à ce livre : Introduction à l'algorithmique à la bibliothèque   :Wink: 

----------

## philius

 *ppg wrote:*   

> Pour notre ami philius si tu as la chance (comme moi) d'être (encore ?)  à la FAC ou en école, tu auras sûrement accès à ce livre : Introduction à l'algorithmique à la bibliothèque  

 

Et non malheureusement l'école est assez loin pour moi. J'ai d'ailleur pris à l'époque l'optique de me former sur le tas, n'ayant pas d'ambition particulière pour des études. Donc à 16ans boulot, et je me suis donné par principe de changer de secteur d'activité quand je me sentais arrivé à une maîtrise complète de se que je faisais. Ce qui je pense me donne aujourd'hui des qualités, mais aussi des défauts dans ma façon de travailler.

En l'occurence travailler sur la théorie/méthode vers la pratique me pose soucis. Pour recentrer cela au niveau informatique, je dirais que je me place d'abord coté utilisateur pour évaluer les besoins , et ensuite je vais vers le software, puis le hardware en faisant les meilleurs choix et compromis.

Bon ca vaut ce que ca vaut, mais la démarche à toujours satisfaite pleinement les utilisateurs. Je me suis même des fois confrontés à des optiques inverses, qui voulait imposer des technologies au détriment des réels besoins cotés utilisateurs.

En partant de mes experiences, je pense que les deux optiques se complétent, le tout est de se rejoindre à mi-chemin.

----------

