Choix d'un langage de programmation

Vous venez de déballer votre Raspberry Pi et vous vous posez des questions ? C'est ici que ça se passe !

Modérateur : Francois

ChPr
Messages : 40
Enregistré le : ven. 29 mars 2019 14:36

Re: Choix d'un langage de programmation

Message par ChPr » mer. 1 janv. 2020 11:10

Artemus24 a écrit :
mar. 31 déc. 2019 20:00
...
ChPr a écrit :J'ai commencé avec du Pascal sur disquette de 5.5" et calculateur (MICRA de mémoire en 1978) de 20 ko (je dis bien ko et pas Mo) de mémoire vive.
J'ai débuté sur des iris 80, solar 16-40, pdp-11. Cela ne nous rajeunit pas.
Micra, c'est une voiture, comme la Nissan Micra. Ne serait-ce pas plus Mitra (CII) ?
Les disquettes, c'est le format 5 pouces 1/4 que l'on nomme aussi floppy disk. Et plus récemment, les disquettes 3 pouces 1/2.
Les disquettes 5 pouces 1/2, ca n'existe pas. ...
Oui, tu as raison, j'ai la mémoire qui flanche. C'est bien 5 " 1/4 et certainement Mitra. PDP-11 me parle bien aussi.

Cordialement et bonne année à toutes et à tous.

Pierre

Lodwig
Messages : 9
Enregistré le : jeu. 26 déc. 2019 19:21

Re: Choix d'un langage de programmation

Message par Lodwig » mer. 1 janv. 2020 12:33

Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Salut à tous.
Lodwig a écrit :Je me pose la question d'un choix de langage de programmation relativement polyvalent.
Ca n'existe pas un langage polyvalent.
Et pourtant, il y a des langages qui sont quand même plus polyvalent que d'autre. J'aurais été d'accord avec toi si j'avais été a la recherche d'un langage ubiquitaire mais ca, c'est une tout autre histoire ...
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Lodwig a écrit :Python : parce que dès qu'on parle raspberry, on finit par parler python ...
J'utilie beaucoup la raspberry, mais je ne fais strictement rien en python. Attention au généralité !
Il faut garder en tête que je début sous Raspberry en tant qu'outil de développement de projet. Et dans ce sens, tous les livres que j'ai compulsés se servent de python comme outil, de même pour une partie non négligeable des tutos sur le web.

Par contre, étant un linuxien depuis plus d'une dizaine d'année, je sais que les langages de développement sur cette plateforme sont légion. On peut également ne jamais programmer dessus...
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Lodwig a écrit :NodeJS : je suis tombé a quelques reprises sur le topic lui étant dédié sur ce forum. J'ai peur que comme PHP, ce langage soit trop orienté web.
Vous confondez NodeJS et Javascript. Si Javascript est totalement orienté web, on peut très bien se servir de NodeJS pour faire autrement qu'un serveur web.
Je le conseille !
Lodwig a écrit :(et peur de lancer un troll sur cette phrase). J'avoue ma méconnaissance (quasi) totale sur le sujet
Dans ce cas là, on s'abstient de tout commentaire.
Encore une fois, il faut se placer dans l'optique d'un programmeur débutant dans ce langage en particulier (et dans les autres que j'ai cité). Je cherchais juste a obtenir des informations sur les potentialités du langage.
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Lodwig a écrit :C: Complexe mais justement séduisant par cette complexité qui permet d'être polyvalent.
Il n'a rien de polyvalent car c'est un langage qui est plus destiné à faire du système que de la gestion.
Mais si je dois vous conseiller un langage, apprenez le 'C/C++'.
Je ne considère pas que ce sont deux langages différents, mais le même avec une évolution.

Le choix du langage dépend de ce que vous désirez faire au final.
Si je dois faire une application de gestion, le mieux est encore le cobol.
Si je dois faire une site web, je préfère de loin le php.
Si je dois m'occuper d'aspect système, rien ne vaut, surtout sur une raspberry, d'utiliser le 'c'.
Voire aussi les script bash à l'identique du JCL pour le cobol.
L'informatique n'étant pour moi qu'un loisir, je ne peux me permettre de chercher à développer des compétences dans plusieurs langages au risque de n'en maitriser finalement aucun. Il me semble plus pertinent de me spécialiser dans un qui me permette une certaine aisance sur l'ensemble de mes projets même si clairement ca ne sera pas le plus adapté pour chaque. Sinon, je suis toujours en train de me former dans quelques années ...
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Lodwig a écrit :J'avoue qu'une part de mes interrogations vient d'une certaine psychorigidité ..
Ouh là là, être psycho-rigide et faire de l'informatique ne vont pas du tout ensemble.
Il faut savoir s'adapter à toutes les situations que vous rencontrez.
Le terme psychorigidité est peut être excessif mais l'idée en est la. J'ai des bases dans certains langages et de ce fait des habitudes (typiquement les accolades et les ; en fin de ligne d'instruction). Et la, pour le coup, Python s'en éloigne pas mal...
Mais bon, encore une fois, c'est probablement des difficultés de débutant.
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
On ne vous demande pas d'aimer tel langage, mais de l'utiliser pour résoudre un problème.
Il arrive que le langage ne soit pas du tout adapté à ce que vous cherchez à faire.
Vous devez quand même l'utiliser ! Pourquoi ?
Imaginez un seul instant, une grosse application écrit dans une centaine de langage ???
C'est l'usine à gaz et bonjour la maintenance.
Tout a fait d'accord, c'est cette réflexion qui m'a mené a ouvrir ce topic sur le forum.
De plus, en dehors de la maintenance, il y a aussi la nécessité de formation et de maitrise a prendre en compte
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Lodwig a écrit :Egalement la gestion des chartsets, je trouve ca relativement lourd quand ca génère des erreurs pour pas grand chose.
Je ne vois pas où est le problème. On ne vous demande pas d'utiliser une centaine de charsets différents.
J'utilise que l'ISO-8859-1. Pourquoi ? Parce que j'écris en français ou en anglais et rien de plus.
C'est un charset qui occupe un octet par caractère, à l'inverse de l'UTF-8 qui peut utiliser quatre octets par caractères.
Et pourtant sur le bot que j'ai créé (en suivant un tuto pour les fonctionalités de base), ca m'a générer quelques erreurs ... et il y en a encore peut être certaines dont je n'ai pas encore conscience.
Encore une fois, peut être que j'ai voulu aller trop vite et je ne suis pas sur que la solution que j'ai mise en place soit valable même si fonctionnelle. De toute façon, j'en viendrai surement a revoir le code une fois que j'aurais un peu évolué.
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
destroyedlolo a écrit :Python : très lourd et très lent par rapport a Lua.
Je n'aime pas les langages interprétés. Attention, j'ai dit langage et non les scripts.
Parce qu'il sont très lents et ne sont pas temps réel.
C'est aussi un des points négatif de python.
En contrepartie, mes projets actuels ne devraient pas se révéler trop lourd et surtout vont être utilisés sur une échelle de temps humaine. Donc un paramètre a prendre en compte mais pas nécessairement prioritaire. Et dans le pire des cas, il y a des solutions permettant d’accélérer le code (Numba en python, etc.)

Mes meilleurs voeux a tous pour l'année a venir.

cbalo

Re: Choix d'un langage de programmation

Message par cbalo » mer. 1 janv. 2020 13:05

Bonjour
Bonne année à tous.
J'étais loin de m'imaginer qu'on avait tous tant de chose à dire sur ce sujet :D :D :D

Pour en revenir à Python : moi non plus je n'aime pas les langages interprété encore moins les problèmes inérant à Python (indentation, codage de caractère, etc...)

Cependant pour quelqu'un qui fait un projet juste pour la maison pour passer le temps, franchement, Python rend bien service, ça ne je ne peux pas le lui retirer.

Pour apprendre la base de la programmation, il est quand même pas mal (même si pour moi, les meilleurs sont les langages structurant type Pascal parce qu'avec, on a pas de mauvaises surprises à l'exécution on est obligé de savoir ce qu'on fait et c'est clair).

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Choix d'un langage de programmation

Message par Artemus24 » mer. 1 janv. 2020 14:46

Salut à tous.

Bonne année, bonne santé, mes meilleurs à toutes et à tous pour l'année 2020.
cbalo a écrit :J'étais loin de m'imaginer qu'on avait tous tant de chose à dire sur ce sujet :D :D :D
Nous avons tous un parcours professionnel qui nous a conditionné dans notre façon de travailler.

Un débutant n'aura pas la même vision de l'informatique qu'un ancien ayant été aguérri à d'autres difficultés.
Je me rappelle quand j'ai débuté que l'informatique se faisant dans un espace de 64K de RAM (pdp-11).
Et à l'époque, c'était des cartes perforées et non de l'interactivité.
Il fallait apprendre à gérer les segments de façon à les charger selon les besoins.
On devait gérer ce que l'on nomme les swap_in et swap_out.

Aujourd'hui, les débutants n'ont plus les mêmes difficultés que nous avions quand nous avons débuté l'informatique.
Nous n'avions pas le choix, sinon l'assembleur ou le cobol.

Pour débuter, python peut amener de mauvaises habitudes de programmation, comme pas de typage.
Le b.a.-ba de la programmation consiste à faire de la programmation structurée, l'organisation des données, les tris, les fils, les pointeurs ...
Je ne sais même pas si aujourd'hui, on enseigne encore ces notions.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Lodwig
Messages : 9
Enregistré le : jeu. 26 déc. 2019 19:21

Re: Choix d'un langage de programmation

Message par Lodwig » mer. 1 janv. 2020 15:49

Artemus24 a écrit :
mer. 1 janv. 2020 14:46
Pour débuter, python peut amener de mauvaises habitudes de programmation, comme pas de typage.
Le b.a.-ba de la programmation consiste à faire de la programmation structurée, l'organisation des données, les tris, les fils, les pointeurs ...
Je ne sais même pas si aujourd'hui, on enseigne encore ces notions.
Dans les études qui ne sont pas axées informatiques, je dirais non.

Mes premiers cours d'informatique portaient sur word et excel ou je connaissais mieux les logiciels que mes profs.

Les cours un peu plus sérieux que j'ai eu par après portaient sur java ou l'on a un peu parlé des typages (parce que requis par le langage), un peu de programmation structurée (sans prononcer le mot, j'ai du aller voir la signification), pas d'organisation de donnée (même pas de liaison avec une base mysql), le reste je connais par culture générale, mais ca n'est pas enseigné.
Pour info, c'était un cours de 4h/semaine (moitié théorie, moitié application pratique) sur une année entière.

Dans le domaine informatique, on a également survolé le logiciel Matlab (pour les analyses statistiques, j'ai profité du peu de connaissance que j'en avais pour étendre l'utilisation à de l'électrotechnique sur les régulations) et un peu plus en profondeur un logiciel (dont le nom m'échappe) de modélisation visuelle de procédé (appliqué a la chimie puisque c'était mon option mais probable qu'on pouvait l'utiliser dans d'autres domaines)

cbalo

Re: Choix d'un langage de programmation

Message par cbalo » mer. 1 janv. 2020 16:12

Je suis d'accord avec toi Lodwig.

Les seuls mauvaises habitudes qu'ils peuvent prendre en utilisant python c'est oublier de déclarer une variable ou utiliser un mauvais type.
A moins d'un débordement de taille (integer au lieu de long), ça ne compile pas donc le problème se règle vite.

Par contre, ayant été enseignant au Greta, voilà ce que je constate :
Les élèves (la 20 aine) arrivent en remuant des mécaniques en disant "on va faire du python , beurk, c'est pour les débutants, moi je fais début du java, j'ai même fait des sites web"-) et ils se croient les meilleurs du monde, n'écoutent même pas le cours.

Et là, on creuse :
0) ils sont infoutus d'expliquer à l'oral un algorithme simple.
1) ils sont infoutus de faire une boucle avec condition de sortie multiple.
2) ils sont infoutus de trouver la plus grande valeur d'un tableau
3)Trier un tableau semble être réservé à une espèce vivante encore inconnue.
4) ils ne connaissent pas les règles de priorité entre OR et AND

Ensuite, on regarde leurs propres réalisations :
1) base de données non normalisée.
2) format de date non précisée et ils utilisent la notation française : alors tantôt ça marche tantôt le jour deviens le mois.
2) base de données accédée par le compte du super admin !!!!!!!!
3) zone d'éditions non protégée contre l'injection SQL

Et en 1 minute, je vide la table des utilisateurs de leur base de données via la page d'identification de leur site.

Bref mes meilleurs élèves à la fin étaient ceux qui n'avaient pas appris en regardant des tutos sur youtube.

Bon je sors.

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Choix d'un langage de programmation

Message par Artemus24 » mer. 1 janv. 2020 16:15

En ce qui me concerne, j'ai fait un DUT d'informatique et une école d'ingénieur en informatique (E.S.I.).
Au départ, je faisais de l'assembleur, du cobol et du basic.
De l'algorithmique, puis de la programmation structurée.
De l'organisation des données, la façon de gérer les données au sein de la mémoire.
Pas de base de données car à mon époque, cela n'existait pas encore. C'est apparu dans les années 1980.
De la télématique, et de la téléinformatique.
Coté mathématique, le programme normal avec en plus de la recherche opérationnel, des probabilités, des statistiques, l'analyse des données, tout ce qui est tourné vers l'informatique.
Sans compté l'analyse fonctionnel, la programmation de plus haut niveau, et tout ce qui touche aux systèmes.
Je ne me souvient plus trop de ce que nous faisons en plus.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Choix d'un langage de programmation

Message par destroyedlolo » jeu. 2 janv. 2020 01:01

Salut et bonne année a tous,

Je vois qu'on en profite pour ouvrir la boite à souvenirs :D
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
Lodwig a écrit :En contrepartie, C/C++/C#, j'ai de mauvais souvenir d'incompréhension totale dans les pointeurs qui m'avait fait abandonner l'apprentissage.
N'ayez pas peur, vous n'êtes pas le seul, j'ai encore des difficultés aussi.
Ayant fait avant de l'assembleur (sur un CPU réduit, le SC-61860), ca ne m'a jamais posé de pb en C. Au contraire, c'est une des grande force de ce langage je trouve ;)
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
destroyedlolo a écrit :Java : si je suis obligé de l'utilisé dans le monde pro, il n’empêche que c'est lourdingue.
C'est redondant avec le 'C/C++'. Selon moi, aucun intérêt.
Redondant ? Pas vraiment : java a un très gros éco-systeme plus structuré que ce qu'on trouve en C. Mais le problème est qu'il est trop éloigné de la machine et beaucoup de dev font de la bouse. S'ajoute dessus la fameuse JVM et surtout son ignoble garbage collecteur ... on ont obtient des trucs très lourds et difficile a gérer.
Je n'ai jamais accroché a ce langage donc je ne qualifierai pas de dev, mais j'administre des middleware fait avec et ce qui fait ma valeur ajoutée est justement que j'arrive bien tuner ce machin.
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
ChPr a écrit :J'ai commencé avec du Pascal sur disquette de 5.5" et calculateur (MICRA de mémoire en 1978) de 20 ko (je dis bien ko et pas Mo) de mémoire vive.
J'ai débuté sur des iris 80, solar 16-40, pdp-11. Cela ne nous rajeunit pas.
J'ai fait mon stage de fin d'étude chez DEC en 92 et il y avait encore quelques PDP qui traînaient ici ou la :lol:
Artemus24 a écrit :
mar. 31 déc. 2019 20:00
J'étais chez de projet et en fin de carrière, je suis devenu administrateur DBA (pas architecte).
En fait, je faisais beaucoup de maintenance coté exploitation.
De mon coté :
Intégrateur -> Admin appli -> et maintenant architecte ;)
Next : gagnant de l'€uromillion :lol:

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Choix d'un langage de programmation

Message par Bud Spencer » jeu. 2 janv. 2020 11:05

Lodwig a écrit :
sam. 28 déc. 2019 18:44
En contrepartie, C/C++/C#, j'ai de mauvais souvenir d'incompréhension totale dans les pointeurs qui m'avait fait abandonner l'apprentissage.
:shock:
Heuuu la tu dois faire erreur. J’utilise massivement et professionnellement C# depuis que ça existe pour toutes sorte de projet et je peux compter sur les doigts d’une main le nombre de fois où j’ai eu à avoir recours à des pointeurs. L’intérêt d’un langage comme C#, c’est justement que tu peux faire tout ce que tu ferais en C++, mais avec un langage beaucoup plus riche et sans les contraintes de gestion de la mémoire. C# te permet bien sûr de faire aussi de l’unsafe avec des pointeurs que tu peux ensuite compiler en AOT pour exécuter directement du code machine mais tant qu’à se priver du JIT, autant faire du C++.

Cela dit, si tu cherches un langage polyvalent, C# est un excellent candidat et il peut faire tout ce que font tous les langages cités depuis le début du sujet.

Du bas niveau compilé comme le ferait du C ou C++. Je n’irais pas jusqu’à dire qu’il peut remplacer ces langages dans tous les cas. Si tu as besoin d’une librairie de bas niveau, le c reste ce qu’il y a de plus adapté mais cette lib sera sans probleme utilisable depuis un programme développé en C# puisque ce langage permet tout sorte d’interopérabilité avec une facilité déconcertante.
Tout ce que font PHP, Java, Python, Lazarus/Pascal, NodeJs/JavaScript il sait le faire. Il peut aussi remplacer VBA si tu veux exploser les possibilités tes applications Office et meme faire du script et de l’interactive en ligne de commande comme avec python. Non seulement il peut remplacer tout ça mais permet bien plus encore et avec des performances sans comparaison.

L’apprentissage de C# n’est pas plus compliqué qu’avec les autres langages. On peut commencer avec des choses très simple en ligne de commande ou dans des applications console et surtout en utilisant une syntaxe très conventionnelle. Ensuite, on peut monter crescendo pour arriver jusqu’à des méthodes d’usage professionnel hautement sécurisées en utilisant toutes les technologies le plus modernes. On peut l’utiliser simplement dans un éditeur de texte ou en utilisant un IDE si on vise la productivité ou des projets conséquents. On peut reprocher a C# d'etre souvent trop sévère avec sa documentation qui ne s'adresse pas toujours a des débutants, mais elle a le mérite d'etre complète et il ne faut pas oublier que ce langage n'était destiné à l'origine qu'a des usages professionnels. C'est en train de changer et ce langage se démocratise de plus en plus pour venir à la porté de tous sans rien perdre de sa puissance et de sa richesse

Lodwig a écrit :
sam. 28 déc. 2019 09:16
Quel langage de programmation pourrait s'avérer suffisamment versatile que pour générer en même temps des GUI, tout en permettant d'avoir des fonctions dynamiques en backend permettant d'interroger d'autres sources d'information ?
C’est exactement ce que j’ai fait dans cette petite présentation. Une appli self hosted capable d’héberger des services, de fournir des GUI dynamique, des API, d’interagir avec les GPIO … Bien sûr pour la plupart des gens ici, c’est du chinois quand je parle d’interface, d’injection de dépendance, de MVC mais c’est parce que je n’ai pas cherché à etre didactique ou à apprendre aux gens à programmer mais juste présenter .Net Core avec C# sur le PI en donnant une idée du niveau des possibilités et surtout de productivité que cela permet. Si tu regardes bien, j’ai fait tout ça sans installer aucune librairie tierces pour le C#, tout est inclus dans la boite .Net Core et ça, aucun autre langage ne te le permettra (et c'est un gars qui pratique quotidiennement pratiquement tous les langages cités pour gagner sa croute qui te le dis).

PS: Bonne année a tous. Prenez soin de vous, de vos proches et de vos Raspberry Pi pour que tout ce beau monde garde la santé et la joie de vivre :)
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Choix d'un langage de programmation

Message par Artemus24 » jeu. 2 janv. 2020 12:36

Salut à tous.

@ destroyedlolo : merci !
@ Bud Spencer : merci !
Destroyedlolo a écrit :Au contraire, c'est une des grande force de ce langage je trouve ;)
Vous avez raison.
Pourtant je sais ce qu'est une indirection, voire le passage par valeur ou par adresse, mais j'ai toujours des difficultés.
Destroyedlolo a écrit :Redondant ? Pas vraiment
Je voulais dire que quelqu'un qui connait le 'C/C++' n'a aucun intérêt à se mettre au java.
Destroyedlolo a écrit :Next : gagnant de l'€uromillion :lol:
J'aimerai bien aussi.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Répondre

Retourner vers « Débutants »