Pour l'un des touts premiers logiciels que j'ai écrits (pour réviser mes tables de multiplications), je ne connaissais pas les boucles et je n'avais pas compris que l'ordinateur pouvait calculer le résultat des multiplications à ma place pour vérifier les résultats. J'avais donc programmé à la main, une par une, toutes les questions (de type "3 x 6 = ?") et toutes les réponses, avant d'apprendre à faire tout ça.
Ce logiciel a ensuite été entièrement réécrit 2 fois, pour migrer de QBASIC à RapidQ (un langage similaire à QBASIC mais qui permettait d'avoir une interface graphique sous Windows) puis en Delphi. J'ai arrêté son développement après avoir installé Linux sur mon PC, n'ayant pas réussi à faire fonctionner mon projet avec Kylix et n'ayant pas eu le courage de le réécrire une nouvelle fois en C++ et WxWidgets (j'avais commencé mais ce n'est jamais allé très loin).
Argh les monstruosités !!! J'espère que c'est un post ironique, sur la débauche de moyens et les codes sous-optimaux mais acceptables parce qu'on a des SSDs et des CPUs qui tabassent.
La façon la plus efficace de déterminer si un nombre est pair c'est de regarder le bit de poids faible.
Le logiciel présenté ne fonctionne qu'avec une représentation binaire des entiers non-signés, et la solution de bobo38 utilise bien une comparaison, et non l'opérateur modulo.
Si on utilise les compléments de 2 pour les entiers signés (ça aussi c'est courant :-), ça doit être bon aussi. -1 en 8 bits serait "11111111" et -2 "11111110".
Sans vouloir être pédant, en base 3, les chiffres ne sont plus équivalents à des bits (contraction de Binary Digit), et les chiffres existants pour écrire les nombres sont 0, 1 et 2.
En base 3, le nombre 4 s'écrit 11 mais vaut toujours 4, qui est encore pair. Démonstration avec bc :
~ $ bc
> ibase=3
> 11%2
0
En base 1, ça pourrait donner ···· ou xxxx. Mais la calculette a bc les bras :
~ $ bc
> ibase=1
Runtime warning (func=(main), adr=3): ibase too small, set to 2
J'arrivais précisément à la conclusion contraire : on voit bien qu'il s'agit d'un expert programmeur widows et qu'il déploie le summum de l'art de son école. C'est d'ailleurs ce qui explique la réputation des mises à jour dans cet écosystème.
sauf que les IDE Jetbrains ne sont ni open-source ni disponibles gratuitement mais par contre t'innondent de pub partout (developpez.com en tête).
Alors Jetbrains c'est le mal.
Je préfère encore VSCodium ou Atom… Ou Éclipse, Netbeans ou QtCreator pour les plus "lourd"
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
Posté par fearan .
Évalué à 3.
Dernière modification le 31 décembre 2023 à 07:03.
sauf que les IDE Jetbrains ne sont ni open-source ni disponibles gratuitement
La version communautaire java est accessible gratuitement; et au vu des suggestion d'amélioration de code ou capacité de refactoring, c'est largement au dessus de la concurrence. J'apprécie tout particulièrement lorsqu'une extraction de fonction ou remontage de cette dernière te propose de remplacer dans le code les endroits où ce putain de morceau code a été dupliqué 150 fois.
Plus tous les petit hints comme 'là t'as utilisé .collect(Collectors.toList()) mais maintenant on a .toList(); ou transformer les vieux switch vers les nouveaux, remplacer les
caseMACHIN:caseTRUC:caseBIDULE:
par
caseMACHIN,TRUC,BIDULE:
Je pense que la création de classe ou de record automatique lorsqu'on code new TrucMuch(a,b,c) doit déjà exister ailleurs, par contre eclipse n'a pas l'air de prévenir que dans une interface tout est publique; et donc que c'est inutile de le mentionner.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
La faute aux 2 qui font du partenariat qui ressemble plus a du bourrage de crane lourd dingue qu'autre chose.
En fait généralement, ce genre de pratique éveille chez moi un gros warning : S'il y a autant de pub pour lui c'est qu'il y a sans doute de l'arnaque derrière.
Cela ressemble aux pratiques des sites porno (Surtout années 2000 sur internet) ou aux pratique d'appel téléphonique pour de l'isolation gratuite…
J'exagère un peu, et JetBrain n'est certainement pas aussi mal intentionné. Mais tout de même, ils sont sur une mauvaise pente. Et je n'ai pas envie d'installer un soft proprio (Dont je n'ai pas confiance de ce qu'il fait) qui plus et va me demander toutes les 5 minutes d'acheter la version payante avec une super remise… Je comprends la position de JetBrain mais je trouve qu'il y a suffisamment de développeurs qui développent des solutions open-sources, parfois payé par Google/microsoft (Même si du fait de la dispersion elle sont moins "puissantes")
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
L'IDE JetBrains est excellent, plus rapide que VSCode (même si VSCode est plus léger), et ne te demande jamais de payer.
Intellij IDEA (pour Java) est gratuit pour toujours. L'essayer, c'est l'adopter.
Perso j'utilise JetBrains Rider pour tout ce qui est .NET sous Linux, et c'est vachement mieux (ne serait que sur la complétion du code ou l'aspect "tout intégré d'un vrai IDE") que VSCode et son extension C# Dev Kit / Omnisharp qui est lente et complète n'importe comment.
Tous leurs IDE sont disponibles gratuitement pour les projets OpenSource ou en version d'évaluation. Encore une fois, ils sont souvent au dessus de Visual Studio.
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
Ancien non : Atom ou VSCode datent de 2014/2015 alors que par exemple PHPStorm date de 2009.
Par contre avec moins de fonctionnalités avancées, sans doute quoiqu' Atom/VSCode aient pléthore de fonctionnalités alors je ne suis pas si sûr que cela.
Disons que les IDE JetBrain sont plus "pré-maché".
Mon principale reproche à VSCode et surtout Atom (Qui est plus open-source) c'est surtout leur lenteurs (Consommation CPU/RAM). JetBrain est sans doute meilleur sur ce plan.
Mais pour le C/C++ QtCreator est tout à fait performant.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
Quand je code en Python, ya pas photo, c'est emacs le meilleur IDE.
Quand je code en C, les IDE sont majoritairement équivalents, man est mon principal ami, donc c'est mon shell le plus utile.
Quand je code en ansible, de toute façon, quel que soit l'IDE, je souffre, et mon principal allié est de ne pas avoir internet, ni de jeu vidéo installé sur ma machine, histoire de bien me contraindre à avancer, faut aussi que je décharge complètement mon téléphone, et que j'oublie le câble USB ailleurs, sinon ça avance pas.
Quand je code en JS… Ah, non, j'ai arrêté ça, le PHP aussi.
Bref, je suis pas prêt de lâcher mon emacs, en vrai.
Quand je code en ansible, de toute façon, quel que soit l'IDE, je souffre, et mon principal allié est de ne pas avoir internet, ni de jeu vidéo installé sur ma machine, histoire de bien me contraindre à avancer, faut aussi que je décharge complètement mon téléphone, et que j'oublie le câble USB ailleurs, sinon ça avance pas.
Par curiosité, quels problèmes rencontres-tu avec Ansible ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
La façon dont c'est utilisé. Pour faire du code sans code, construire des algorithmes complexes à base de modules maison, et de templating Jinja.
C'est devenu extraordinairement difficile de savoir comment fonctionne un playbook.
En plus certains rôles, certaines tasks, utilisent des variables d'environnement, définies très loin de là.
C'est du bricolage très éloigné de l'utilité normale d'ansible…
Je suis plus traumatisé par l'utilisation qui est faite que par ansible lui-même, mais j'en viens à haïr le yaml+jinja…
Ah oui, je te comprends (et plussoie) : beaucoup ont voulu en faire un langage de programmation… et utiliser de la configuration pour mettre des ronds dans des carrés ou l’inverse…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Posté par Fulgrim .
Évalué à 3.
Dernière modification le 31 décembre 2023 à 10:13.
C'est clairement un post ironique, si ça avait été un vrai professionnel il aurait mis en place une CI/CD permettant de construire une image docker reproductible et un micro service REST exposant une API pour pouvoir le déployer sur kubernetes afin de permettre une vraie scalabilité horizontale. Ma principale interrogation aurait été de savoir de quelle image partir pour minimiser la taille de l'image finale.
L'article est super drôle, et en même temps rigoureux, le bonhomme va au bout de son idée. J'adore comment il contourne les limites du compilo en générant le code machine, pour finir avec une monstruosité.
# Limité par le compilateur MS?
Posté par THE_ALF_ . Évalué à 5.
Est-ce que gcc aurait rencontré les mêmes limites que le compilateur utilisé (MSVC)?
[^] # Re: Limité par le compilateur MS?
Posté par SpaceFox (site web personnel, Mastodon) . Évalué à 2.
D’après cette documentation ça devrait passer, mais j’avoue avoir la flemme de faire le test par moi-même pour vérifier.
La connaissance libre : https://zestedesavoir.com
# ça peut arriver à tout le monde
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 9.
Pour l'un des touts premiers logiciels que j'ai écrits (pour réviser mes tables de multiplications), je ne connaissais pas les boucles et je n'avais pas compris que l'ordinateur pouvait calculer le résultat des multiplications à ma place pour vérifier les résultats. J'avais donc programmé à la main, une par une, toutes les questions (de type "3 x 6 = ?") et toutes les réponses, avant d'apprendre à faire tout ça.
Ce logiciel a ensuite été entièrement réécrit 2 fois, pour migrer de QBASIC à RapidQ (un langage similaire à QBASIC mais qui permettait d'avoir une interface graphique sous Windows) puis en Delphi. J'ai arrêté son développement après avoir installé Linux sur mon PC, n'ayant pas réussi à faire fonctionner mon projet avec Kylix et n'ayant pas eu le courage de le réécrire une nouvelle fois en C++ et WxWidgets (j'avais commencé mais ce n'est jamais allé très loin).
Il faut bien commencer quelque part :)
# le bit de poids faible
Posté par bobo38 . Évalué à 1.
Argh les monstruosités !!! J'espère que c'est un post ironique, sur la débauche de moyens et les codes sous-optimaux mais acceptables parce qu'on a des SSDs et des CPUs qui tabassent.
La façon la plus efficace de déterminer si un nombre est pair c'est de regarder le bit de poids faible.
nombre & 1 == 0
On n'a pas fini de se marrer avec les AIs
[^] # Re: le bit de poids faible
Posté par Benoît Sibaud (site web personnel) . Évalué à 7.
11 en base 3 est pair (ça vaut 4). Ça n'est vrai que sur les bases paires (ce qui est assez commun en informatique).
[^] # Re: le bit de poids faible
Posté par geegeek . Évalué à 3.
Le logiciel présenté ne fonctionne qu'avec une représentation binaire des entiers non-signés, et la solution de bobo38 utilise bien une comparaison, et non l'opérateur modulo.
[^] # Re: le bit de poids faible
Posté par bobo38 . Évalué à 2.
Si on utilise les compléments de 2 pour les entiers signés (ça aussi c'est courant :-), ça doit être bon aussi. -1 en 8 bits serait "11111111" et -2 "11111110".
[^] # Re: le bit de poids faible
Posté par cg . Évalué à 6.
Sans vouloir être pédant, en base 3, les chiffres ne sont plus équivalents à des bits (contraction de Binary Digit), et les chiffres existants pour écrire les nombres sont 0, 1 et 2.
En base
3
, le nombre4
s'écrit11
mais vaut toujours4
, qui est encore pair. Démonstration avecbc
:En base 1, ça pourrait donner
····
ouxxxx
. Mais la calculette abc
les bras :[^] # Re: le bit de poids faible
Posté par cg . Évalué à 7.
Ça ne fonctionne pas sur l'ordinateur quantique que j'ai eu à Noël (ou que je n'ai pas eu, c'est selon).
[^] # Re: le bit de poids faible
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 5.
On t'a refilé l'ordinateur de Shrödinger ?
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: le bit de poids faible
Posté par fearan . Évalué à 9.
ben en fait il est toujours emballé, mais y'a 50% de chance que la boite soit vide :D
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: le bit de poids faible
Posté par cg . Évalué à 7.
Shrödinger n'est qu'un arriviste, les Normands maîtrisaient le concept bien avant !
[^] # Re: le bit de poids faible
Posté par gUI (Mastodon) . Évalué à 7.
Déjà ça programme sous Windows, donc oui, c'est un gros fake.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: le bit de poids faible
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 7.
J'arrivais précisément à la conclusion contraire : on voit bien qu'il s'agit d'un expert programmeur widows et qu'il déploie le summum de l'art de son école. C'est d'ailleurs ce qui explique la réputation des mises à jour dans cet écosystème.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
[^] # Re: le bit de poids faible
Posté par cg . Évalué à 4.
Tut tut tut, le mieux IDE n'est disponible que sous Windows, c'est connu !
[^] # Re: le bit de poids faible
Posté par steph1978 . Évalué à 3.
Je sais pas si ça valait une vidéo mais la blague est marrante.
[^] # Re: le bit de poids faible
Posté par xcomcmdr . Évalué à 3.
En vrai Visual Studio est clairement loin au dessus de la concurrence.
En fait, jusqu'à l'arrivée des IDE JetBrains.
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
[^] # Re: le bit de poids faible
Posté par abriotde (site web personnel, Mastodon) . Évalué à 1. Dernière modification le 31 décembre 2023 à 03:41.
sauf que les IDE Jetbrains ne sont ni open-source ni disponibles gratuitement mais par contre t'innondent de pub partout (developpez.com en tête).
Alors Jetbrains c'est le mal.
Je préfère encore VSCodium ou Atom… Ou Éclipse, Netbeans ou QtCreator pour les plus "lourd"
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: le bit de poids faible
Posté par fearan . Évalué à 3. Dernière modification le 31 décembre 2023 à 07:03.
La version communautaire java est accessible gratuitement; et au vu des suggestion d'amélioration de code ou capacité de refactoring, c'est largement au dessus de la concurrence. J'apprécie tout particulièrement lorsqu'une extraction de fonction ou remontage de cette dernière te propose de remplacer dans le code les endroits où ce putain de morceau code a été dupliqué 150 fois.
Plus tous les petit hints comme 'là t'as utilisé .collect(Collectors.toList()) mais maintenant on a .toList(); ou transformer les vieux switch vers les nouveaux, remplacer les
par
Je pense que la création de classe ou de record automatique lorsqu'on code new TrucMuch(a,b,c) doit déjà exister ailleurs, par contre eclipse n'a pas l'air de prévenir que dans une interface tout est publique; et donc que c'est inutile de le mentionner.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: le bit de poids faible
Posté par Jérôme FIX (site web personnel) . Évalué à 2.
Leur faute ou celle de developpez.com ?
[^] # Re: le bit de poids faible
Posté par abriotde (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 05 janvier 2024 à 23:27.
La faute aux 2 qui font du partenariat qui ressemble plus a du bourrage de crane lourd dingue qu'autre chose.
En fait généralement, ce genre de pratique éveille chez moi un gros warning : S'il y a autant de pub pour lui c'est qu'il y a sans doute de l'arnaque derrière.
Cela ressemble aux pratiques des sites porno (Surtout années 2000 sur internet) ou aux pratique d'appel téléphonique pour de l'isolation gratuite…
J'exagère un peu, et JetBrain n'est certainement pas aussi mal intentionné. Mais tout de même, ils sont sur une mauvaise pente. Et je n'ai pas envie d'installer un soft proprio (Dont je n'ai pas confiance de ce qu'il fait) qui plus et va me demander toutes les 5 minutes d'acheter la version payante avec une super remise… Je comprends la position de JetBrain mais je trouve qu'il y a suffisamment de développeurs qui développent des solutions open-sources, parfois payé par Google/microsoft (Même si du fait de la dispersion elle sont moins "puissantes")
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: le bit de poids faible
Posté par xcomcmdr . Évalué à 2.
L'IDE JetBrains est excellent, plus rapide que VSCode (même si VSCode est plus léger), et ne te demande jamais de payer.
Intellij IDEA (pour Java) est gratuit pour toujours. L'essayer, c'est l'adopter.
Perso j'utilise JetBrains Rider pour tout ce qui est .NET sous Linux, et c'est vachement mieux (ne serait que sur la complétion du code ou l'aspect "tout intégré d'un vrai IDE") que VSCode et son extension C# Dev Kit / Omnisharp qui est lente et complète n'importe comment.
Tous leurs IDE sont disponibles gratuitement pour les projets OpenSource ou en version d'évaluation. Encore une fois, ils sont souvent au dessus de Visual Studio.
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
[^] # Re: le bit de poids faible
Posté par xcomcmdr . Évalué à 1.
Tu compares des IDE modernes à des éditeurs de texte ou IDE anciens. L'aisance pour développer n'a rien à avoir.
Sans compter que j'évoquais d'abord Visual Studio, qui n'est pas libre non plus… Mais c'est JetBrains que tu dénonces…?
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
[^] # Re: le bit de poids faible
Posté par abriotde (site web personnel, Mastodon) . Évalué à 2.
Ancien non : Atom ou VSCode datent de 2014/2015 alors que par exemple PHPStorm date de 2009.
Par contre avec moins de fonctionnalités avancées, sans doute quoiqu' Atom/VSCode aient pléthore de fonctionnalités alors je ne suis pas si sûr que cela.
Disons que les IDE JetBrain sont plus "pré-maché".
Mon principale reproche à VSCode et surtout Atom (Qui est plus open-source) c'est surtout leur lenteurs (Consommation CPU/RAM). JetBrain est sans doute meilleur sur ce plan.
Mais pour le C/C++ QtCreator est tout à fait performant.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: le bit de poids faible
Posté par Lutin . Évalué à 3.
Leur police est super chouette en tous cas.
[^] # Re: le bit de poids faible
Posté par abriotde (site web personnel, Mastodon) . Évalué à -1. Dernière modification le 05 janvier 2024 à 23:37.
Ca m'intéresse autant que ta couleur de cheveux :D
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: le bit de poids faible
Posté par Yth (Mastodon) . Évalué à 3.
Quand je code en Python, ya pas photo, c'est emacs le meilleur IDE.
Quand je code en C, les IDE sont majoritairement équivalents, man est mon principal ami, donc c'est mon shell le plus utile.
Quand je code en ansible, de toute façon, quel que soit l'IDE, je souffre, et mon principal allié est de ne pas avoir internet, ni de jeu vidéo installé sur ma machine, histoire de bien me contraindre à avancer, faut aussi que je décharge complètement mon téléphone, et que j'oublie le câble USB ailleurs, sinon ça avance pas.
Quand je code en JS… Ah, non, j'ai arrêté ça, le PHP aussi.
Bref, je suis pas prêt de lâcher mon emacs, en vrai.
[^] # Re: le bit de poids faible
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Par curiosité, quels problèmes rencontres-tu avec Ansible ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: le bit de poids faible
Posté par Yth (Mastodon) . Évalué à 3.
La façon dont c'est utilisé. Pour faire du code sans code, construire des algorithmes complexes à base de modules maison, et de templating Jinja.
C'est devenu extraordinairement difficile de savoir comment fonctionne un playbook.
En plus certains rôles, certaines tasks, utilisent des variables d'environnement, définies très loin de là.
C'est du bricolage très éloigné de l'utilité normale d'ansible…
Je suis plus traumatisé par l'utilisation qui est faite que par ansible lui-même, mais j'en viens à haïr le yaml+jinja…
[^] # Re: le bit de poids faible
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Ah oui, je te comprends (et plussoie) : beaucoup ont voulu en faire un langage de programmation… et utiliser de la configuration pour mettre des ronds dans des carrés ou l’inverse…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: le bit de poids faible
Posté par Fulgrim . Évalué à 3. Dernière modification le 31 décembre 2023 à 10:13.
C'est clairement un post ironique, si ça avait été un vrai professionnel il aurait mis en place une CI/CD permettant de construire une image docker reproductible et un micro service REST exposant une API pour pouvoir le déployer sur kubernetes afin de permettre une vraie scalabilité horizontale. Ma principale interrogation aurait été de savoir de quelle image partir pour minimiser la taille de l'image finale.
[^] # ironie
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Je n’ai pas compris les moinssages alors que C juste…
Et sinon c’est purement ironique ; je l’ai grillé dès qu’il a parlé de performance…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# J'ai ri et je suis impressionné
Posté par cg . Évalué à 8.
L'article est super drôle, et en même temps rigoureux, le bonhomme va au bout de son idée. J'adore comment il contourne les limites du compilo en générant le code machine, pour finir avec une monstruosité.
Top !
# Autres discussions
Posté par Misc (site web personnel) . Évalué à 5.
https://lobste.rs/s/dbwciq/4_billion_if_statements
https://news.ycombinator.com/item?id=38790597
# Dans un registre un peu différent
Posté par jeanas (site web personnel, Mastodon) . Évalué à 1.
https://chriswarrick.com/blog/2019/02/15/modern-web-development-where-you-need-500-packages-to-build-bootstrap/
section « Copyrighted one-liners »
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.