Pages : 1
#1 Le 22/10/2007, à 13:47
- Compte supprimé
démarrer un projet open source
Bonjour à tous
Comme pas mal de personnes ici je pense, j'ai appris la programmation, d'abord au collège avec les bons vieux Basic, puis les calculatrices graphiques avec des dizaines de GOTO qui pointent dans tous les sens, en passant par les quelques options qu'on pouvait trouver au lycée, et bien sûr les études supérieures.
Mon problème, je sais "programmer", notamment parce que j'ai eu pas mal de calcul scientifique derrière moi (en C, Fortran, Perl ou Python entre autres), mais je me rends compte que je n'ai aucune idée du "comment" développer bien proprement une application digne de ce nom.
A aucun moment, je n'ai suivi de cours sur la méthodologie, les modèles (c'est à peine si j'ai dû toucher un diagramme UML), structures de données et autres choses qui ont l'air d'aller de soi dans les filières d'info. Si c'est pour faire des scripts de 1.000 lignes qui s'appellent les uns les autres, pas de problème, mais pas vraiment très sexy...
A l'heure actuelle, j'ai dans l'idée de me faire une application pour l'étude du japonais qui couvrirait mes besoins, et je ne sais absolument pas comment structurer tout ça de façon propre et facile à maintenir.
Côté complexité, ça devrait frôler les 10.000 lignes je pense, donc pas de quoi fouetter un chat, mais si quelqu'un avait des conseils à me donner avant de me lancer, je suis preneur !!!!
#2 Le 22/10/2007, à 14:06
- g_barthe
Re : démarrer un projet open source
Salut,
Je suis pas professionnel mais je te donne mon avis.
D'abord quel langage comptes tu utiliser ?
Moi perso je regarde un peu les fonctions que je vais devoir appeler plusieurs fois pour les sortir et les mettre dans un fichier à part. (PHP, python)
Après si tu utilises le modèle de programmation orientée objet l'étude de ce que tu veux faire doit être plus approfondie.
Je met sur papier mes idées, ce que mon prog doit faire...
Je découple l'interface graphique du code pur. Plus facile à maintenir et à développer surtout pour une application d'une taille conséquente.
Auras-tu une interface graphique ?
Voilà déjà un début je pense. Tu nous en diras peut etre un peu plus.
Mon forum perso sur le génie climatique http://le-genie-climatique.positifforum.com/
Le forum des travaux manuels : http://pausebroderie.fr/
Hors ligne
#3 Le 22/10/2007, à 14:18
- Compte supprimé
Re : démarrer un projet open source
Pour ce qui est du langage, je pensais utiliser Python.
Un, ça me permet de prototyper assez rapidement mes algos.
Deux, une fois qu'ils marchent, je pense qu'ils resteront en Python.....
Pour ce qui est GUI, je pensais m'initier un peu à QT avec PyQT, dont j'ai entendu beaucoup de bien. En plus je tourne sous KDE, donc ça me semble logique
#4 Le 23/10/2007, à 09:50
- Martopioche
Re : démarrer un projet open source
D'abord quel langage comptes tu utiliser ?
Ben moi, je suis professionnel, et même si souvent c'est comme ça que ça marche (parceque plate-forme existante, compétences disponibles...), c'est la manière la plus improductive pour débuter un projet.
L'idéal, est de définir l'objectif du produit : une application pour l'étude d'une langue. Bien, quelles sont les fonctionnalités ? Est ce une sorte de dictionnaire, un traducteur, un générateur d'exercices ?
Pose à plat ce que tu veux que ça fasse (écriture, schémas de navigation). Pas besoin de connaissances en UML, Merise ou autre, du moment que ce soit parlant.
A un moment, quand tu aura une vue d'ensemble, renseigne toi sur ce qui existe. Par exemple, si l'objectif est un portail d'éducation, il y a l'excellent moodle (http://moodle.org/) qui existe déjà et qu'il n'y a plus qu'à paramétrer.
Sinon, tu va te rendre compte que tu a peut être besoin d'un applicatif, d'une source de données (fichiers ou base), d'interface(s)...
Ok, mais question : que veut tu en faire ? Est ce un projet perso ? Alors tu aura de grandes libertés. Un truc que tu veux distribuer ? A qui ? Si c'est n'importe qui qui veut étudier la langue, il ne faudra pas oublier que c'est une population qui veut un produit simple, et que beaucoup sinon tous sont sous Windows.
Enfin, après ce sera de la méthode : en langage procédural (en scriptes), penser à grouper tes fonctions par bibiothèques. En objet, il y a toute la conception.
Je ne veux pas par cette intervention décourager un projet, hein mais pour la survie du projet, il faut un minimum de réflexion et de conception.
Bon courage
Hors ligne
#5 Le 23/10/2007, à 10:54
- kooma
Re : démarrer un projet open source
En effet, le langage est un des derniers choix avant le passage à la programmation. En cours, on nous explique plus ou moins une démarche du genre:
- Réflexion : Les fonctionnalités du projet
- Analyse (Merise, etc...)
- Ecriture d'un "schéma général" de ton algo, pour que tu sois pas surpris ensuite par un truc du genre héritage, emplacement d'une fonction etc.
- Une fois que tu as ça, tu peux commencer à penser au langage.
Cela dit, Python est un bon langage pour commencer la programmation.
Et PHP est plutôt mauvais, car il n'est pas assez restrictif, et lorsque tu passeras à un autre langage, tu feras un nombre de fautes de syntaxe et de typage impressionant (expérience inside).
Dernière modification par kooma (Le 23/10/2007, à 10:55)
Hors ligne
#6 Le 23/10/2007, à 11:04
- nainbuss
Re : démarrer un projet open source
Le choix du langage est à faire assez tôt. En particulier, ça peut influer sur l'organisation du projet. Si c'est du Java, tout sera dans des classes.
L'important, c'est de choisir un langage qu'on connaît (sauf pour des petits projets qui peuvent servir à apprendre à programmer), qui nous plait (hautement subjectif mais important surtout si c'est fait pendant ton temps libre) et adapté à ce qu'on veut faire.
Un point important, c'est d'essayer de s'organiser pour faire d'abord un squelette puis rajouter des fonctionnalités peu à peu. Déjà parce que ça rend plus facile le repérage des erreurs, et aussi parce que c'est sympa de voir "grandir" son programme.
Hors ligne
#7 Le 23/10/2007, à 11:07
- kooma
Re : démarrer un projet open source
Le choix du langage est à faire assez tôt. En particulier, ça peut influer sur l'organisation du projet. Si c'est du Java, tout sera dans des classes.
L'important, c'est de choisir un langage qu'on connaît (sauf pour des petits projets qui peuvent servir à apprendre à programmer), qui nous plait (hautement subjectif mais important surtout si c'est fait pendant ton temps libre) et adapté à ce qu'on veut faire.Un point important, c'est d'essayer de s'organiser pour faire d'abord un squelette puis rajouter des fonctionnalités peu à peu. Déjà parce que ça rend plus facile le repérage des erreurs, et aussi parce que c'est sympa de voir "grandir" son programme.
Le type du langage, mais pas le langage en lui même.
Parce que sinon en construisant ton projet, tu tiens compte des restrictions du langage, ce qui n'est pas terrible. Pour moi, tu construis ton projet, et au final tu choisis le langage qui te permet de le faire.
Cela dit, si cela se fait pendant un temps libre, tu as tout a fait raison de dire qu'il faut prendre un langage qui plait, parce que faudrait quand même pas que ca devienne une corvée.
Hors ligne
#8 Le 23/10/2007, à 11:20
- nainbuss
Re : démarrer un projet open source
Tu n'as pas un exemple sous la main, parce que la plupart des langages actuels permettent de faire à peu près tout (c'est juste plus ou moins long), non?
Et si jamais ton langage a des restrictions, genre un switch qui ne marche que sur les entiers (j'ai pas donné de nom ) autant en tenir compte le plus tôt possible.
Hors ligne
#9 Le 23/10/2007, à 11:24
- kooma
Re : démarrer un projet open source
Ben rien que la différence entre PHP et Python ou RoR. Php est restreint, gère mal l'objet, mais convient pour un projet simple. Dès que ca se complexifie, les deux autres langages sont plus intéressant.
Donc faut bien connaitre ton projet, savoir si ca va être objet ou procédural, etc...
Et justement, un langage qui comprends des restrictions, on verifie à la fin si elles nous gênent ou pas. Si oui, on en prends un autre.
Cela dit je ne te cache pas que généralement, tu as un langage en tête dès le départ. Mais vaut mieux y réfléchir plusieurs fois quand même.
Hors ligne
#10 Le 24/10/2007, à 01:12
- Martopioche
Re : démarrer un projet open source
Tu n'as pas un exemple sous la main, parce que la plupart des langages actuels permettent de faire à peu près tout (c'est juste plus ou moins long), non?
Un langage est un outil. Mon menuisier utilise des outils. En effet, il peut, plus difficilement, arriver à planter des clous avec un tourne-vis.
Ceci est aussi vrai pour les langages. J'ai un petit développement web à faire (genre 3 interrogations de base de données, 3 pages dynamiques) > PHP
Je dois créer une application plus importante avec gestion des accès, connexion LDAP/Bdd et persistance des données, je m'orienterai surement vers Java.
Je dois faire des traitements qui nécessitent une certaine performance, et beaucoup d'accès système > C/C++
Il y a du gros calcul ? > Fortran.
Alors oui, tout langage permet de tout faire (ou presque) plus ou moins facilement. Mais ça aussi c'est un choix à faire
Hors ligne
#11 Le 24/10/2007, à 01:35
- nainbuss
Re : démarrer un projet open source
La différence c'est que quelqu'un qui n'a jamais utilisé un marteau trouvera plus facile d'utiliser ce dernier qu'un autre outil pour planter des clous.
Et surtout sauf cas très particuliers, et hormis la distinction fondamentale script/compilé, je pense qu'on a souvent beaucoup de liberté.
Par exemple, faire du C peut permettre d'accélérer le programme mais utiliser un algo efficace serait peut-être aussi rentable.
Hors ligne
#12 Le 24/10/2007, à 02:16
- maskott
Re : démarrer un projet open source
Holà... on s'égare un peu!!
Je ne vois pas ce qui empêche d'utiliser plusieurs langages, une interface html/xml/php, des petits scripts python/shell, pour attaquer des morceaux de codes plus importants qui se charge du gros du travail.
Ben oui votre menuisier il n'a pas besoin que d'un marteau pour monter son étagère....
Backups are for wimps. Real men upload their work to an ftp server and have everybody mirror it. - Linus Torvalds
[RESOLU] dans les posts qui le sont, merci
(Et si vous y arrivez tout seul, indiquez aussi la solution, remerci)
Hors ligne
#13 Le 24/10/2007, à 06:59
- kooma
Re : démarrer un projet open source
Holà... on s'égare un peu!!
Je ne vois pas ce qui empêche d'utiliser plusieurs langages, une interface html/xml/php, des petits scripts python/shell, pour attaquer des morceaux de codes plus importants qui se charge du gros du travail.
Ben oui votre menuisier il n'a pas besoin que d'un marteau pour monter son étagère....
Tout à fait, mais je crois bien que ce n'était pas le thême de la discussion.
Pour l'instant, c'est plutôt : quand le menuisier va-t-il décider qu'il va utiliser des clous plutôt que des vis ?
Après y'a rien qui empeche d'utiliser plusieurs langages, et dans le web tu te retrouves facilement avec 4 ou 5 langages différents pour un seul projet.
Hors ligne
#14 Le 24/10/2007, à 10:29
- Martopioche
Re : démarrer un projet open source
Je ne vais pas citer les messages, mais dans l'ensemble : oui. Oui, en informatique, un langage peut se substituer à un autre. Les conséquences seront une facilité de développement avec les langages que l'on connait, mais une inadaptation au problème.
Un exemple : j'ai une unique donnée à afficher sur mon site web, celle-ci est dans une base de données. En PHP, c'est 10 lignes max incluses dans une page HTML. En Java, c'est une JSP et 2 classes... C'est donc bien faisable, mais bien lourd...
Oui aussi, les langages peuvent s'associer entre eux, mais là aussi quel investissement est on prêt à prendre ? En effet, j'ai eu le choix entre faire une appli tout Java ou Java + C/C++ pour optimiser un certain traitement. Après analyse, on en a déduit que l'investissement pour interfacer Java et C++ aurait été trop important par rapport au gain de performances (par rapport aux attentes).
Donc oui, l'informatique permet beaucoup de choses, mais la réflexion précoce permet de faire les choix les plus avisés quand à l'objectif que l'on se fixe.
Et donc pour répondre à la question initiale : le meilleur conseil est de bien définir ton projet avant d'avancer trop loin (on n'empêchera jamais un codeur à essayer des trucs )
Hors ligne
#15 Le 24/10/2007, à 15:21
- Compte supprimé
Re : démarrer un projet open source
Bonsoir à tous
Pour ce qui est de ce que je souhaite faire, effectivement ce n'était pas clair dans mon post, aussi je vais préciser un peu.
En gros, l'application serait divisée en 3 parties :
- une partie dictionnaire (recherche dans des fichiers de type Edict. Je pensais faire quelques fonctionnalités de recherche avancées, du style Google+regexp, par exemple "mean:name phon:めい.*" pour rechercher tous les mots dont la signification contient "name" et la prononciation commence par めい.)
Grosso modo, cette partie correspond à ce que fait Gjiten depuis longtemps, mais en un peu plus évolué... du coup je me demande si ça ne serait pas plus productif de faire une demande d'ajout de fonctionnalité
- une partie kanji : possibilité de tri selon divers critères (statut d'apprentissage, index dans les différents dicos), ainsi que de les ranger dans diverses catégories persos (et du coup combiner les résultats de recherche : ex kanji non appris de niveau JLPT2 mais pas dans Jougyou inférieur à 6, etc).
La possibilités de faire ses propres kanji cards serait un plus, mais je ne vois pas du tout comment faire ça par contre....
La partie Kanji serait reliée aux dictionnaires pour afficher tous les mots composés comprenant le kanji sélectionné.
- une partie vocabulaire, pour créer ses propres listes à partir de la fenêtre kanji et/ou dictionnaire (possibilité de filtrer les sorties comme pour les kanji, avec opérateurs logiques ET OU NON en fonction des catégories).
De ce côté là, ce serait plutôt une évolution du logiciel Wakan (que j'adore et me comble de bonheur malgré un Wine qui marche un peu bancal... http://wakan.manga.cz/ son seul défaut est qu'il est n'est pas libre, et qu'il n'a plus évolué depuis maintenant près d'un an T_T, bien qu'une libération des sources soit prévue... mais malheureusement pas le temps de nettoyer le code, et la base utilisateur est plutôt sous Windows si l'on en croit le forum...).
Mon choix s'était arrêté sur Python pour les raisons suivantes :
- j'ai pas mal scripté avec, principalement pour du traitement de fichiers textes et du calcul
- j'avais envie de me mettre à Qt, et oh joie, un binding qui marche du feu de dieu paraît-il est dispo
- je suis une quiche en C++ (et puis bon, pour lire des fichiers, je me rappelle avoir eu beaucoup de mal avec les encodages exotiques, peut être à cause de l'effet quiche)
- je ne veux pas installer de machine virtuelle Java pour pouvoir faire tourner un programme que je veux assez léger quand même
Voilà, c'était pour faire un peu avancer le schmilblick. Entre parenthèses, s'il y en a qui s'intéressent au japon(ais), qu'ils n'hésitent pas, ça fait déjà 2 ans pour moi, d'où les horaires décalés...
#16 Le 24/10/2007, à 15:51
- Fabounet
Re : démarrer un projet open source
Plutôt que de réinventer la roue, essaye de partir de Gjiten qui fait déjà toute la partie dictionnaire, et améliore/rajoute des fonctionnalités (avis perso).
Sinon du point de vue apprentissage (parce qu'apprendre en lisant un dico, c'est pas le top niveau méthodologie ^_^), est-ce que tu comptes faire un truc qui gère des cartes avec des kanjis dessus ? je sais pas si tu vois ce que je veux dire, avant j'en utilisais un qui était en Java, t'as des cartes avec dessus le kanji+les pronociations+des mots l'utilisant+éventuellement sa décomposition en kanjis élémentaires. Après tu peux classer les cartes par niveau/année d'étude/ou autre, ou faire tes propres listes. Ca aide bien pour ça.
Python je connais pas mais ça a l'air puissant, et comme tu l'as remarqué, il a beaucoup de bindings.
"Quiconque est prêt à sacrifier sa liberté pour une sécurité provisoire ne mérite ni l'un ni l'autre." (Benjamin Franklin)
>> Changez le look de votre bureau, essayez Glx-Dock ! [http://glx-dock.org] <<
Hors ligne
#17 Le 24/10/2007, à 21:11
- kooma
Re : démarrer un projet open source
Oui aussi, les langages peuvent s'associer entre eux, mais là aussi quel investissement est on prêt à prendre ? En effet, j'ai eu le choix entre faire une appli tout Java ou Java + C/C++ pour optimiser un certain traitement. Après analyse, on en a déduit que l'investissement pour interfacer Java et C++ aurait été trop important par rapport au gain de performances (par rapport aux attentes).
Oui mais l'association C++ Java c'est assez originale.
On parle surtout des associations PHP/HTML/JS, C++/Langages de script etc...
En tout cas, je dirai que Python semble bien adapté à ton projet, vu qu'il est sur le papier assez 'simple', et que en effet tu auras pas trop de mal pour Qt ou Gtk.
Dernière modification par kooma (Le 24/10/2007, à 21:12)
Hors ligne