Kotiln, Rust et Python progressent et de plus en plus de développeurs les adoptent (et c'est très bien).
J'ai été une grande utilisatrice de Python il y a un peu plus d'une quinzaine d'années lorsque je travaillais en labo sur du Data-Mining (l'ancêtre du Machine Learning). J'avais laissé de côté Python pour trois raisons à l'époque :
- Les problèmes de performance.
- Les problèmes d'outillage autour du build.
- Le fait que les programmes écrits en Python, pour être rapides, doivent utiliser des libs écrites en C, et donc avec un code orienté procédure.
Aujourd'hui, si je devais produire un système temps-réel et très peu énergivore, je partirais sur Rust.
Dans tous les autres cas de figure, je prendrais Kotlin sur OpenJDK ou Kotlin native (via le compilateur Kotlin-native ou GraalVM).
Par contre Python n'est plus du tout dans ma liste car pour moi à présent, si l'exécution d'un langage n'est pas prouvée à la compilation, c'est un stop immédiat. La majorité des développeurs n'écrivant pas de tests et maîtrisant mal le code (en tout cas en industrie) c'est indispensable.
MER - CI !!
Via Eric Bugnet
Et si on pouvait rendre les tests plus simples à écrire et à lire, aussi simple qu’un assert, mais un résultat plus clair que unittest en sortie ?
C'est vrai que les TU avec Pytest sont concis et élégants. Un bon tuto !
Merci à @Lenny pour ton thread sur imgur.
Ok Python est de plus en plus utilisé et c'est cool mais celui qui m'intéresse le plus, c'est Kotlin !
D'ailleurs pour un bref historique sur TIOBE :
- Janvier 2017 : Kotlin classé 65ème (de mémoire)
- Janvier 2018 : Kotlin classé 38ème (de mémoire)
- Janvier 2019 : Kotlin classé 31ème
- Janvier 2022 : Kotlin classé 29ème
- Septembre 2023 : Kotlin est classé 20ème
- Novembre 2023 : Kotlin est classé 15ème
Pour info, voici l'évolution de la Google Trend propre à Kotiln.
Pour comprendre les bases de Python.
Un tutoriel sur la cryptographie dans le langage Python. Très sympa.
# N.B : le $6$ dans le sel signifie utiliser l'algorithme SHA-512. $5$ c'est SHA-256 par exemple
# Et le sel doit finir par Salt$
python -c 'import crypt; print crypt.crypt("MON_MOT_DE_PASS", "$6$MON_SELSalt$")'
Un comparatif de performance entre différents serveur web expressifs du type Sparkjava (en java) et Sinatra (en Ruby). Pour rappel, un serveur web expression vous permet d'écrire ce genre de choses :
get("/mon/url", monAction);
post("/mon/url", monAction);
Avec "monAction" qui peut être au choix :
- une lambda
- une instance
- un pointeur sur fonction
En résumé, nous avons les résultats suivants sur un Retina Macbook Pro i7@2.7GHz and 16GB RAM :
-
Golang + bmizerany Pat + GOMAXPROCS(7):
51684 Requests/sec => 1550508 requests in 30s -
Sparkjava:
48631.24 Requests/sec => 1458768 requests in 30s
Average Latency 1.29ms -
Golang + bmizerany Pat:
42222 Requests/sec => 1266661 requests in 30s
Average Latency 1.52ms -
Golang + Gorilla Pat (using Gorillas Muxer)
37756 Requests/sec => 1132689 requests in 30s
Average Latency 1.71ms -
PyPy2.7 Python + Twisted:
12633 Requests/sec => 379001 requests in 30s -
Python + Flask:
11751 Requests/sec => 16393 requests in 30s
Average Latency 55.54ms -
Node + Express:
8962 Requests/sec => 268866 requests in 30s
Average Latency 7.14ms -
Python + Twisted:
3425 Requests/sec => 102781 requests in 30s
Gestions des fichiers et des dossiers en python - Manipuler path chemin absolu et relatif - lister fichiers - cours tutoriel langage de programmation python
Compresser et décompresser des fichier 7zip en Python. Animal... :)
Quelques règles d'écritures lorsque l'on code en Python
Quelques tricks sur Python et les particularités du langage
Depuis le temps que j'attendais un projet similaire !
PyInstaller : comme l'utilitaire py2exe est capable de convertir un script Python en un binaire exécutable. Sauf que ce dernier gère Windows, Linux et OSX.
Un tuto sur comment s'en servir ici : https://mborgerson.com/creating-an-executable-from-a-python-script
Vraiment sympa !
py2exe : convertir un script Python en exécutable pour Windows.
Un debugger de regexp qui permet de les visualiser sous forme d'arbre. Je relais le post.
Une lib de debug par aspect en Python
Accéder à une base MySQL en Python via le driver MysqlDB. Très facile à faire et très sympa à utiliser (quand on vient du monde Java).
À noter que pour installer le driver MysqlDb il suffit de lancer : sudo aptitude install python-mysqldb