C'est juste Windev, ze french dizizze.
Rien n'a changé depuis... heu... le début?
Pour moi c'est une question de formation.
Je fais des data science, et mon laboratoire code tout en C, mais parce que c'est un laboratoire d'informatique à l'origine, avec des gens qui ont été formée aux langages bas niveau AVANT d'être formé au python.
C'est mon cas aussi par exemple, et je préfère de loin manipuler des réseaux de neurone en C++ avec les bibliothèques qui vont bien plutôt qu'en Python, même si on est une minorité dans ce cas.
Amha, le python est devenu très populaire du fait de son accessibilité pour des non-informaticiens, mais dés lors que tu te met à saisir, comprendre et formuler tes pensés sur un langage de bas niveau tel que le C, c'est alors difficile de ne pas voir les lourdes limites du python. Surtout si tu veut un peu sortir des sentiers battus.
Donc pour moi c'est principalement une question d'habitude.
- - - Mise à jour - - -
Quelques nuances toutefois :
- Tu ne gère pas la mémoire en Python, et c'est quand même quelque chose de très différent du C/C++
- Les bibliothèques Python sont souvent écrites en C/C++ donc souvent si tu veut mettre les mains dans le cambouis localement pour ton propre usage c'est plus pratique de parler le même langage qu'une éventuelle biblio open-source que tu retravaille.
Même pas, le graphe ne faisait que quelques Mo, on ne stockait que le minimum d'infos.
On avait une bête fonction lancée sur un profil Twitter, puis récursivité sur les N amis, etc. C'est bien la stack qui finissait par être pleine.
Le soucis de fond, c'est qu'il s'agit d'une récursivité infinie : il n'y a pas de condition pour l'arrêter étant donné que l'on voulait scrapper un maximum de comptes en un temps donné (genre 1 mois). Passé ce délai, le client voulait stocker les données et faire des stats. Le scrappeur allait tourner tant qu'il pouvait.
En général, quand tu fais de la récursivité, tu as une condition pour l'arrêter, car tout ce que tu veux faire c'est un gros calcul par exemple, donc tu as peu de chances de dépasser la taille de la pile, même s'il faut rester vigilant.
D'ailleurs, il est possible que la taille de la pile était différente sur nos machines de devs et le serveur du client, précipitant ou reportant le moment fatidique
Mais ouaip, il fallait clairement des tests d'integ. On était juste très jeunes, et les anciens faisaient des sites en full JSP. On ne savait même pas que les tests unitaires ça existait.
C'est dingue quand j'y repense. Depuis la boite a fait un gros bond technique, c'est chouette à voir.
Bah le truc pour la mémoire justement, c'est que c'est évident qu'une structure de donnée "A" va pomper de la mémoire et que si "B" est plus grosse ça va pomper plus, si tu la load en mémoire, ça va te pomper de la RAM si tu la persiste sur le disque ça va te pomper ton disque, si tu la copies ça va pomper le double. Si tu parcours la structure ça va faire bosser le processeur, d'autant plus pour "B" (enfin pendant plus longtemps). Y'a rien de bien méchant si t'as les bases, ensuite les détails certes, y'a des trucs à apprendre.
Mais je pense que tu peux tout à faire t'en sortir et aller très loins avec de simple sanity checks. Si tu sais l'opération que tu dois faire, sous forme abstraite, du genre:
On a 1 million d'utilisateurs, chaque utilisateur génère 50 Mo par heure, et on traite le tout à la fin de la journée (genre faire une moyenne/des stats sur l'ensemble des données) et on veut que le traitement soit fait en 30 secondes
Bah c'est assez clair quels seront tes besoins en terme hardware, que ce soit le throughput réseau, la RAM que ça va te prendre, l'espace disque, le CPU etc.
C'est quelque chose que je fais très souvent et que je vois qu'il manque à beaucoup de personne. Genre à chaque fois je débarque sur un projet, je demande combien ils ont de données à traiter, la complexité du traitement, quel hardware ils mettent en face, et 99% du temps le hardware est complètement overkill, mais le software est tellement à la pisse (et surtout mal compris dirons nous) que les mecs compensent en jettant plus de harware dessus.
J'ai vu des énormités que vous n'imaginez même pas, à base de 12 serveurs surpuissants pour gérer 3 spreadsheet excel.
Bref tout ça pour dire que ce genre d'analyses pragmatiques ne nécessitent pas une grande connaissance bas niveau non plus.
Genre les perfs du python s'pas compliqué, on sait que c'est de la merde, n'importe qui peut se faire un bête benchmark et le prouver, ensuite à voir quels sont tes besoins, mais la logique du software restera la même.
https://benchmarksgame-team.pages.de...st/python.html
Les benchmarks sont extrêmements simples, les conséquences aussi. Le reste "bas niveau" n'est pas si important (je résume l'idée en gros), après bien évidemment que ça peut le devenir selon son domaine.
---
D'ailleurs même en Python, ou tout ce que tu veux de lent, la majorité du hardware que je vois est overkill.
Rien que les ordres de grandeur ne sont pas respectés souvent, faut se souvenir qu'on a des gigas de mémoire et qu'on parle de cpu gigahertz multicoeur. La majorité des tâches tourneraient très bien avec une version obsolète de python, sur une machine virtuelle en java sur un Pentium 4, avec 100 Mo de mémoire.
Une bonne partie des boites tourneraient mieux avec un Raspberry PI en tant que serveur si le software était correct
Dernière modification par Anonyme20240202 ; 19/11/2020 à 17h02.
Sinon QtCreator, ça marche pas mal non plus. Et c'est snappy.
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
Merci !
Par contre je n'imaginais pas à quel point, merci pour le benchmark. Sur plein de tache, python vs C c'est du 50 pour 1
- - - Mise à jour - - -
Attention, ma spécialité c'est aujourd'hui l'IA bio-inspirée appliquée au robot, à la vision etc... j'évoluais dans un labo de data-science et je suis formé dans le domaine mais je n'irais pas jusqu’à dire que c'est mon domaine ou même ma spécialisation actuellement .
En vrai j'aime pas ça les big data
Et Eclipse, même si il est lourd.
Excellent, au passage.
une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
Canard lecture
Yeah mais ont-ils le même écosystème ? Python n'est pas très rapide, mais ça suffit pour énormément de cas d'usage, et tu auras plein de libs pour faire ce que tu veux. Comme en Java et JS (liste absolument non exhaustive), qui ont aussi chacun un super écosystème. Du moins... il est connu par les masses.
Parfois aussi, le choix de la techno est fait parce que la team qui fera la maintenance ne sait faire que du Pyhon
Perso désormais je fonctionne en mode hyper opportuniste et j'optimise plus tard si besoin. C'est à dire que si y'a une fonctionnalité cool qui fait ce que je veux, où quelle soit, je vais la chopper, s'pas non plus compliqué d'appeler un programme via un autre, voire une machine distante via un programme. Une fois que j'ai regroupé toutes mes fonctionnalités pour faire ce que je voulais, et que je suis pas satisfait des perfs, ou de la facilité de déploiement, de maintenance etc. Là je commence à éclaircir et améliorer le bazar.
C++ est le langage que j'utilise pour gluer le tout ensemble, simplement par habitude et que j'aime bien la communauté autour (cppcon etc.), c'est un environnement que je trouve fun. Et l'air de rien c'est devenu hyper simple de cross compiler pour n'importe quelle plateforme.
Mais généralement si tu choisis un truc un tant soit peu populaire il y aura tout ce que tu veux si tu prends le temps de chercher.
Sinon je suis tout à fait d'accord pour Jetbrains, j'aime beaucoup ce qu'il font, et je suis notamment sur CLion. Je suis un peu déçu qu'ils ne soient pas open source et gratos mais bon, je peux pas trop leur en vouloir vu la qualité du produit et le support etc.
PyCharm a sa version gratos au moins
Après franchement, Eclipse c'est bien aussi.
C'est un peu lourd mais sur un ordi moderne c'est pas franchement perceptible, et question fonctionnalités c'est très complet.
Si le mode debug d'eclipse ne merdait pas sur les variables ouais ça irait.
Moi je n'ai pas le choix d'utiliser Eclipse et franchement le mode debug me rend fou.
D'un point de vue professionnel, j'ai rarement vu de programmes en python. J'en connaissais un seul, mais je ne suis pas sûr qu'il n'ait pas été migré vers un autre langage. La majorité de ce que j'ai vu, c'est du Java ou du .Net, sinon, après c'est du web. Alors oui, le multi-OS tout ça, c'est bien, mais 99% des boites (chiffre sorti de mon cul) n'ont que du Windows. Allez, y'a bien des OS différents, comme l'AS400, avec parfois quelques routines en RPG/COBOL, whatever, mais généralement, c'est la base DB2 qui sert à stocker les infos, et basta.
bon là je vais pas coder pendant un petit moment mais j'en reparlerais avec + de détails... (genre dans 6 mois, si j'y pense).
Le problème d'eclipse c'est surtout l'ergonomie qui n'est clairement pas au niveau des produits Jetbrains (même si ça a tendance à s'améliorer sur les dernières versions).
D'ailleurs en parlant de Jetbrains, quelqu'un a pu tester leur outil "Code with me" pour faire du pair-programing à distance ?
C'est en early access pour l'instant mais ça a l'air prometteur : https://blog.jetbrains.com/blog/2020...e-with-me-eap/
C'est la faute à Arteis
- La version 3 est arrivée !
J'utilise massivement l'extension codetogether à la place : https://www.codetogether.com/
Ça s'installe sur les produits Jetbrain (https://plugins.jetbrains.com/plugin/14225-codetogether), sur Eclipse et sur VScode et ça permet d'être indépendant de l'interface, tu peut même mettre le lien simplement dans un navigateur web et choisir l'interface qui te sied puis coder directement dans le navigateur.
Je le préfère aux autres alternatives que j'ai pu tester, c'est gratuit et on l'utilise avec tout nos étudiants actuellement.
- - - Mise à jour - - -
Franchement je code avec les deux en parallèle (l'un pour l'enseignement, l'autre pour moi même) et je retrouve mes repères dans les deux, c'est quand même très semblable je trouve ...
La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!
Oui, parce que c'est Emacs qui vous roxxe tous, hein
Sinon, probable fin de partie pour Atlassian, en ce qui me concerne du moins.
https://www.atlassian.com/fr/migration/journey-to-cloud
Ils cessent (bientôt) toute vente de licences serveur au profit de licences cloud. En gros, il ne sera plus possible d'héberger en local les services Atlassian, seul moyen d'assurer la confidentialité des projets, en particulier de secteurs sensibles. Je n'ai pas beaucoup utilisé Gitlab à ce jour, j'en étais tenté, mais voilà que la question ne se pose même plus.
J'imagine que des licences serveur seront toujours dispo pour les grands comptes, mais pas pour le péquin moyen: en cela, c'est à peu près la même situation que pour Github.
D'ailleurs je ne sais pas si vous lisez régulièrement la section hardware advanced, mais j'ai créé un nouveau topic là-bas pour des conseils de lecture :
Le fameux topic.