[Index Software] Coin des développeurs :]

Pour les gens qui ont simplement envie de discuter sans souhaiter faire passer d'information particulière.
leresidue
Occasionnel
Messages : 25
Enregistré le : mercredi 19 juin 2019 à 1:08

Re: Coin des développeurs :]

Message par leresidue »

J'ai un projet, mais je ne veux pas utiliser le mot 'projet' car ce mot est lourd de sens chez moi. Disons que j'ai une nouvelle activité. J'ai l'intention de continuer de travailler sur un framework que j'avais commencé à écrire en 2017.

Je n'ai pas encore de nom, mais je pense à 'toyframework'.

Une motivation pour faire mon framework c'est de dédouaner les développeurs de cette motivation qui cherche à recréer de zéro le code structurel avant de pouvoir faire quelque chose de nouveau. Ce n'est pas une motivation qui est très répandue, mais c'est quelque chose qui m'a beaucoup nuit dans le passé.

Je suis motivé à écrire la documentation. Je pensais à le mettre (en fait j'ai mis une version rudimentaire dans mon compte github) dans github, mais pour l'instant au niveau de la licence ce n'est pas clair (j'ai tous les droits d'auteur). Alors ça va émerger sur un site que je détiens pour le moment.

Une autre idée que j'ai avec ce framework, c'est l'idée que le framework est lui-même le logiciel. Ça sera un travail lent et méthodieux (en passant depuis les dernières versions, Firefox a le correcteur d'orthographe qui fait des siennes), mais chaque marche montée ajoutera à l'édifice.

Le framework est écrit en C++. Pour l'instant il ne fonctionne que sous Windows.
Sans diagnostic officiel de HPI
Diagnostiqué Autiste par une psychologue et un psychiatre
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

leresidue a écrit : vendredi 13 décembre 2019 à 22:08 J'ai un projet, mais je ne veux pas utiliser le mot 'projet' car ce mot est lourd de sens chez moi. Disons que j'ai une nouvelle activité. J'ai l'intention de continuer de travailler sur un framework que j'avais commencé à écrire en 2017.

Je n'ai pas encore de nom, mais je pense à 'toyframework'.

Une motivation pour faire mon framework c'est de dédouaner les développeurs de cette motivation qui cherche à recréer de zéro le code structurel avant de pouvoir faire quelque chose de nouveau. Ce n'est pas une motivation qui est très répandue, mais c'est quelque chose qui m'a beaucoup nuit dans le passé.

Je suis motivé à écrire la documentation. Je pensais à le mettre (en fait j'ai mis une version rudimentaire dans mon compte github) dans github, mais pour l'instant au niveau de la licence ce n'est pas clair (j'ai tous les droits d'auteur). Alors ça va émerger sur un site que je détiens pour le moment.

Une autre idée que j'ai avec ce framework, c'est l'idée que le framework est lui-même le logiciel. Ça sera un travail lent et méthodieux (en passant depuis les dernières versions, Firefox a le correcteur d'orthographe qui fait des siennes), mais chaque marche montée ajoutera à l'édifice.

Le framework est écrit en C++. Pour l'instant il ne fonctionne que sous Windows.
Pourquoi ne pas choisir le Java pour ton Framework, si ce n'est pas trop tard?
Il serait comme ça exécutable sous Windows, Linux, et Mac OS (et Android) . Directement.
D'autant que le portage C++ vers Java n'est pas le plus difficile.

Ils croient avoir révolutionné le monde avec le garbage collector. Les prétentieux ! Car en fait il faut écraser les références par null pour que le garbage collector les supprime réellement. Quelle différence avec le fait d'invoquer delete sur un objet. Et pire, l'objet reste vivant même une fois ses ressources libérées…. Donc il faut aussi mettre null sur l'objet qui encapsulait ses ressources… pour qu'il soit lui aussi détruit explicitement.
Ah c'est sur, pour les ressources gérées par Java, c'est un confort indéniable. Mais quand on utilise des librairies graphiques (ce n'est qu'un exemple), les ressources doivent être détruites explicitement. Le garbage collector ne peut rien pour ces ressources( textures, shaders, etc).
Donc on réimplémente des sortes de destructeurs, même en Java (genre méthodes UnloadResources()) mais les objets restent vivants. Je crois que c'est encore plus difficile de gérer les objets dans les langages avec garbage collector qu'en C ou C++.

Pour moi, l'avantage indéniable du Java, n'est pas son garbage collector, mais qu'il utilise une machine virtuelle (un processeur virtuel). Et de ce fait, le même code est exécutable sur n'importe quelle machine ayant un OS connu. (C'est à dire un OS pour lequel il existe une VM Java. Soit quasiment tous).
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
leresidue
Occasionnel
Messages : 25
Enregistré le : mercredi 19 juin 2019 à 1:08

Re: Coin des développeurs :]

Message par leresidue »

Bubu a écrit : samedi 14 décembre 2019 à 10:10 Pourquoi ne pas choisir le Java pour ton Framework, si ce n'est pas trop tard?
Il serait comme ça exécutable sous Windows, Linux, et Mac OS (et Android) . Directement.
D'autant que le portage C++ vers Java n'est pas le plus difficile.
Le début de framework est déjà commencé. Ce n'est pas tant que j'avais choisi le C++, mais plutôt que c'est le C++ qui m'a choisi. Programmer en C++ permet d'être aussi près du "métal" que possible. J'ai déjà essayé de m'intéresser au Java, mais je n'y ai eu que des contraintes. Entre le Java et le C#, je préfère le C# (qui est maintenant universel comme le Java). Mais si c'est possible de programmer sur une plateforme avec son langage naturel, alors je préfère programmer sur une plateforme avec son langage naturel.

La 'collecte à ordures' n'est pas la partie la plus contraignantes pour moi. Ce que je trouve le plus contraignant c'est l'architecture. Comment écrire le code une seule fois, et le rendre facilement utilisable à chaque fois que le besoin s'en fait sentir?

Si jamais je devais changer de langage, je choisirai le Rust. C'est comme le C, mais en plus sécuritaire.
Sans diagnostic officiel de HPI
Diagnostiqué Autiste par une psychologue et un psychiatre
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

D'accord, choisis le langage qui te convient.
Mais je ne vois pas de réelles différences entre le C# et le Java. Ce sont des clones mais faits par des entreprises différentes.
Quant à la réutilisation du code, n'importe quel langage orienté objet convient. Si tu vois que tu vas écrire la même chose a posteriori, tu crées une classe mère qui a ce code commun et tu fais de l'héritage.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
leresidue
Occasionnel
Messages : 25
Enregistré le : mercredi 19 juin 2019 à 1:08

Re: Coin des développeurs :]

Message par leresidue »

C'est une question un peu philosophie que j'ai, mais je l'expose ici:

Quels sont les écueils d'apprendre un premier langage de programmation?
Une réponse facile c'est de dire que c'est la syntaxe. Mais il y a aussi les idées. Avoir des idées exprimables par un langage de programmation ce n'est pas du tout la même chose que d'avoir des idées pour écrire un roman, par exemple. Je crois alors qu'un environnement de programmation qui sert de soutien à l'imagination du programmeur en devenir est plus important que le langage lui-même. Le langage doit donc servir d'interface entre l'environnement, et le programmeur. Donc, sachant cela...
Quel est le meilleur premier langage de programmation à apprendre, compte tenu de l'environnement que le langage permet d'explorer?

C'est une question sérieuse. Parce que pour mon framework j'aimerais permettre aux néophytes de l'utiliser sans pour autant avoir à apprendre le framework lui-même. Avez-vous des idées?
Sans diagnostic officiel de HPI
Diagnostiqué Autiste par une psychologue et un psychiatre
Avatar du membre
Tugdual
Modérateur
Messages : 41279
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: Coin des développeurs :]

Message par Tugdual »

TCS = trouble de la communication sociale (24/09/2014).
Avatar du membre
Tugdual
Modérateur
Messages : 41279
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: Coin des développeurs :]

Message par Tugdual »

TCS = trouble de la communication sociale (24/09/2014).
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

leresidue a écrit : samedi 14 décembre 2019 à 22:33 C'est une question un peu philosophie que j'ai, mais je l'expose ici:

Quels sont les écueils d'apprendre un premier langage de programmation?
Une réponse facile c'est de dire que c'est la syntaxe. Mais il y a aussi les idées. Avoir des idées exprimables par un langage de programmation ce n'est pas du tout la même chose que d'avoir des idées pour écrire un roman, par exemple. Je crois alors qu'un environnement de programmation qui sert de soutien à l'imagination du programmeur en devenir est plus important que le langage lui-même. Le langage doit donc servir d'interface entre l'environnement, et le programmeur. Donc, sachant cela...
Quel est le meilleur premier langage de programmation à apprendre, compte tenu de l'environnement que le langage permet d'explorer?

C'est une question sérieuse. Parce que pour mon framework j'aimerais permettre aux néophytes de l'utiliser sans pour autant avoir à apprendre le framework lui-même. Avez-vous des idées?
Utilises-tu Bison ? Car il permet de transformer la grammaire de ton langage en code C.
Tu utilises un script qui définit la grammaire du langage et c'est tout. Pas besoin de gérer le code au niveau ascii ou autre norme. Il le gère et te donne directement les jetons par mots-clés, etc.
L'autre difficulté est de définir le paradigme du langage. Est-ce un langage impératif, orienté objet ?
Ensuite il faut définir des mots clés. (Pour les tests logiques, la création de classes, les fonctions voire les méthodes. Ce n'est pas une mince affaire.
Ensuite veux tu que ce soit un langage interprété ou compilé ?
Bon courage.

En deuxième année, on avait fait un langage interprété de calcul (comme pour les calculatrices graphiques CASIO par exemple). En Caml.
On créait une chaine de caractères genre 1 + 5 * (2 + 3 * 6) et on avait le bon résultat.
La difficulté est de créer la grammaire. Respecter les priorités des calculs (par exemple, * est prioritaire sur +, les parenthèses sont prioritaires sur tout, et elles peuvent être imbriquées)

Et en troisième année, un langage de programmation compilé que l'on pouvait définir comme on voulait, mais qui était transformé en code C. Grâce à Bison. Très intéressant aussi.

Bison est un Framework très sophistiqué qui permet de transformer des chaines de caractères brutes en jetons utilisables plus haut niveau, selon ce que tu définis dans la grammaire. Elle est exprimée sous forme de filtres qui doivent être formulés selon l'ordre de priorité des opérations. En plus, il est utilisable à la fois pour créer des langages interprétés et compilés. Il transforme le texte en suite hiérarchique de mots clés.(appelés jetons). Il fournit des fonctions C vides pour chaque jeton reconnu. A toi de dire ce qu'il faut faire pour chaque jeton.
Après c'est à toi de voir. Compiler ou interpréter. C'est propre à ton code que tu rajoutes au code C généré par Bison.

Et rien ne t'empêche de programmer en C++, car le C++ est rétro compatible avec le C. Dans tout compilateur C++ normal, le code C est compilable. Ce qui n'est évidemment pas vrai pour l'inverse.

Donc tu peux intégrer le code C généré par Bison dans un projet C++.

Je veux une sucette Chuppa-Chups.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Hokusai
Régulier
Messages : 51
Enregistré le : mardi 27 novembre 2018 à 12:26

Re: Coin des développeurs :]

Message par Hokusai »

leresidue a écrit : samedi 14 décembre 2019 à 22:33 C'est une question un peu philosophie que j'ai, mais je l'expose ici:

Quels sont les écueils d'apprendre un premier langage de programmation?
Une réponse facile c'est de dire que c'est la syntaxe. Mais il y a aussi les idées. Avoir des idées exprimables par un langage de programmation ce n'est pas du tout la même chose que d'avoir des idées pour écrire un roman, par exemple. Je crois alors qu'un environnement de programmation qui sert de soutien à l'imagination du programmeur en devenir est plus important que le langage lui-même. Le langage doit donc servir d'interface entre l'environnement, et le programmeur. Donc, sachant cela...
Quel est le meilleur premier langage de programmation à apprendre, compte tenu de l'environnement que le langage permet d'explorer?

C'est une question sérieuse. Parce que pour mon framework j'aimerais permettre aux néophytes de l'utiliser sans pour autant avoir à apprendre le framework lui-même. Avez-vous des idées?
Bonjour (j'ai vu la question assez tard),

Ayant commencé l'informatique en ayant une vie tournée vers autre chose et ayant été "formé" sur le tas (étant resté d'ailleurs un débutant), je pense avoir une idée.

Je verrais bien le C comme premier langage idéal. Il est peu étendu pour commencer.
Pour moi, la priorité absolue ou presque d'un débutant est qu'il n'aie qu'un minimum à bidouiller pour des questions de configuration. Donc ce sont soit des langages vraiment haut niveau, comme python, ruby ou php, soit du c/C++ ou rust. Un vrai débutant ne comprendra pas trop l'installation de Java ou Golang ou pourra beaucoup merder.

Le C est parfait de ce point de vue, parce que sous Linux, l'installation du compilateur est enfantine, et pour MinGW sous Windows, ce n'est pas bien compliqué, les modifs de variables d'environnement restent basiques. D'ailleurs, je crois que l'installation de codeblocks peut faire tout le travail.
Le C a une documentation de très grande qualité. Notamment de remarquables manuels en anglais assez facile. Je pense à "C programming au modern approach" (2è édition, King), qui passe être le meilleur manuel de C sur les forums anglo-saxons, qui mentionnent également :
- Beginning C (Horton), 5ème édition
-C primer plus, 6ème édition (Prata)
-Programming in C, 4eme édition (Kochan)

Ces livres sont disponibles sur Amazon, ou en téléchargement payant (ou gratuit, pas sûr que ce soit tout à fait légal d'ailleurs). Avec ce type de bouquins, leur rythme, leurs explications, plus ce qu'est le C, un débutant sera guidé vers la compréhension de ce qu'est la programmation et aura l'impression de comprendre ce qu'il fait.

Je doute d'ailleurs que faire apprendre un langage non fortement typé soit une bonne chose, ça a été mon cas (javascript premier langage) et je n'en suis pas convaincu avec le recul.

J'ai entendu dire du bien également de l'assembleur, du scheme, du Caml comme premiers langages, mais je ne les ai pas pratiqués. Dans ceux que je peux soupçonner, le Fortran ou l'Ada pourraient faire l'affaire. Par contre, hors d'un contexte universitaire ou avec au moins un support important et rapproché, il y a la question d'une documentation/tutos/livres moins importante que pour le C.

Le C++ premier langage ? Potentiellement possible, mais les bons livres dessus ne sont souvent pas pour des débutants, ils abordent très vite la POO et confrontent très vite à l'immense extension de ce langage. Trop vite pour moi.

Python ? Pas de typage fort, sa syntaxe par indentation assez atypique font que ce n'est pas pour moi une bonne idée. Les langages web ? Pour moi à éviter au début.
Je maintiens, en l'état actuel de mes quelques connaissances, le C.
Diagnostiqué Asperger en 2007
Avatar du membre
rauw
Familier
Messages : 107
Enregistré le : samedi 21 mars 2015 à 13:38

Re: Coin des développeurs :]

Message par rauw »

...........
Modifié en dernier par rauw le mardi 14 janvier 2020 à 12:22, modifié 3 fois.
2015 : Aucune démarche
2018 : Étiqueté schizophrène
2021 : Diag "oral" (non officiel, plutôt suspicion) TSA/aspie par un neuropsy, pas sûr de vouloir confirmer par un test
2024 : Diag par une psychiatre, et neuropsy (toujours sans test...)
Avatar du membre
freeshost
Intarissable
Messages : 37322
Enregistré le : lundi 15 juillet 2013 à 15:09
Localisation : CH

Re: Coin des développeurs :]

Message par freeshost »

À quoi sert le C ? Et le C++ ? Quelle différence entre le C et le C++ ? Y a-t-il un C+ ? :mrgreen:
Pardon, humilité, humour, hasard, confiance, humanisme, partage, curiosité et diversité sont des gros piliers de la liberté et de la sérénité.

Diagnostiqué autiste en l'été 2014 :)
Avatar du membre
rauw
Familier
Messages : 107
Enregistré le : samedi 21 mars 2015 à 13:38

Re: Coin des développeurs :]

Message par rauw »

...........
Modifié en dernier par rauw le mardi 14 janvier 2020 à 12:22, modifié 3 fois.
2015 : Aucune démarche
2018 : Étiqueté schizophrène
2021 : Diag "oral" (non officiel, plutôt suspicion) TSA/aspie par un neuropsy, pas sûr de vouloir confirmer par un test
2024 : Diag par une psychiatre, et neuropsy (toujours sans test...)
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

@Freeshost :
Il y a entre autres 2 familles de langages : pour créer des applications, et les langages pour le web.
Le C++, le C, le java (hormis pour les applets web), le C sharp sont des langages faits pour développer des applications, des exécutables.
Alors que des langages comme JavaScript, HTML, CSS, PHP sont faits pour le web. Créer des sites et des pages Internet.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
freeshost
Intarissable
Messages : 37322
Enregistré le : lundi 15 juillet 2013 à 15:09
Localisation : CH

Re: Coin des développeurs :]

Message par freeshost »

Ah ! Ok ! Merci pour les explications.

Mais une personne voulant créer un site internet, se retrouve-t-elle souvent obligée d'apprendre des langages d'exécutables ? [Elle ne savait pas des pages camouflaient des logiciels.]
Pardon, humilité, humour, hasard, confiance, humanisme, partage, curiosité et diversité sont des gros piliers de la liberté et de la sérénité.

Diagnostiqué autiste en l'été 2014 :)
leresidue
Occasionnel
Messages : 25
Enregistré le : mercredi 19 juin 2019 à 1:08

Re: Coin des développeurs :]

Message par leresidue »

Pas besoin d'apprendre un langage dans la famille du C pour faire des pages web. Le PHP est souvent suffisant (sans compter le HTML/CSS et possiblement javascript :-D).

Je ne fais que passer. J'avais inventé un langage dans le temps : le toy.
Je pense le continuer. Pour ce que c'est, c'est ici : https://github.com/leresidue/toysanta1/ ... age-syntax (oui j'avais écrit en anglais, mais quand je vais refaire la documentation ça va être en français).
Sans diagnostic officiel de HPI
Diagnostiqué Autiste par une psychologue et un psychiatre