Python 2 ou Python 3 ?
:monty python:
Disons que ta question est un peu floue et vaste. Par rapport à TOUS les autres langages ? Et sur quels aspects ?
Histoire d'aller plus loin que : c'est un langage interprété, OO, un peu fonctionnel, avec une syntaxe claire et dont le grand intérêt repose sur le très grand nombre de bibliothèques disponibles.
Rien ne me choque moi, je suis un scientifique ! - I. Jones
Ca dépend de quel facette on parle, syntaxiquement ? Rien de spécial, ça s'apprend vite, l'indentation compte et on s'y fait rapidement.
Conceptuellement tu peux aussi bien faire du procédural pur (scripts sysadmin par ex) que de l'Orienté Objet (pour applis lourdes ou web), comme le disait Helix quelques constructions fonctionnelles (list comprehension, map-reduce-filter) qui ne font pas de mal non plus.
La vraie force c'est la standard lib "batteries included" qui permet déjà énormément de choses.
Et avec les paquets tiers (le packaging a d'ailleurs beaucoup progréssé depuis quelques années) y a peu de sujets qui n'ont pas déjà une lib mature qui fait le job.
Pas d'optique particulière à la création à ma connaissance, c'est généraliste, les efforts pour spécialiser ont été faits a posteriori notamment dans le calcul scientifique (numpy, scipy) mais ça passe par des libs, pas le langage lui-même.
Y a aussi un très riche écosystème pour le web (frameworks: django pyramid flask).
EDIT : note to self, ne jamais parler de perl à vectra.
La syntaxe est simple, pas claire.
Vu le nombre d'alternatives qui existe à la plupart des actions, et que c'est pas franchement évident toujours.
This. Y'a quelques bizarreries contre-intuitives quand on vient d'autres langages - de scripts ou non -, tel l'opérateur ternaire conditionnel par exemple. Maintenant, si c'est le principal langage utilisé, un investissement minimal permet d'en connaître suffisamment pour pouvoir faire beaucoup de choses. C'est pour cela que c'est le langage d'initiation au développement par excellence.
Va falloir que je mette en place un logiciel pour gérer du code-source au boulot. On est que trois à coder, mais ça commence à être le bordel avec chacun qui stock ses sources dans des endroits différents.
Dans mon précédent boulot, on utilisait svn à peut-être 10% de ses fonctionnalités, mais ça nous allait bien vu qu'on avait ankhsvn pour l'intégration visual studio et tortoise svn pour l'intégration au navigateur windows. Quand je vous lis, github c'est génial toussa, mais n'est-ce pas overkill par rapport à mon besoin ?
Le but n'est pas d'avoir des forks ou autres, mais juste d'avoir un lieu de stockage unique des codes sources, avec la possibilité de faire des "diff", et autres trucs basiques.
Plutôt Gitlab que Github, et non, ce n'est pas overkill même pour des besoins basiques.
Le consensus que j'ai vu régner, c'est plus aucun projet créé sous SVN.
Comme dit, pour des trucs "simples" (et bien plus), Gitlab permet de faire de l'auto-hébergé à 0 euros.
Après, comme déjà dit, des solutions comme Atlassian, c'est seulement 30 balles dans votre cas...
GitHub permet désormais d'avoir des repositories privés gratos. A voir combien de comptes peuvent y accéder.
Nan, toujours hébergés sur GitHub, mais pas publics.
Avant c'était payant, maintenant il y a une offre gratos pour les repos privés (stratégie Microsoft ans doute).
C'est surtout leur business model de faire payant le moindre truc en plus que je trouve abusé
Non, l'éditeur de confluence c'est de la grosse merde. Ne pas savoir gérer correctement les retours à la ligne dans un copier-coller c'est pas acceptable en 2019. Quand tu sais pas faire ça correctement, /au moins/ tu abandonnes le wysiwyg et tu files un language de markup au format texte; de préférence un de ceux qui ont fait leur preuves, c'est à dire Markdown ou RestructuredText, HTML (au pire), BBCODE (au pire du pire).
Ensuite y'a le problème du wiki en tant que tel, je pense que la plupart du temps ce n'est pas à jour parce que les gens ne font pas l'effort. Ensuite c'est difficilement corrélable à des versions de l'application. A mon avis, la bonne solution, c'est une doc intégrée et versionnée au projet, dans un format de markup comme ça se fait actuellement, et ensuite tu génères un wiki à partir de ça (ou tu le browse directement dans le repo comme pour les fichiers .md sur github). Github permet aussi des wiki séparés (qui sont des repos avec des fichiers markdown pour chaque page), c'est pas mal mais à mon avis c'est dommage de les avoir séparés des projets.
Idem, je parle même pas de la quantité astronomique de boutons, au pire on peut s'en passer. Mais l'éditeur de commentaires est à chier. Même bugzilla est plus utilisable en se contentant du texte brut.
Les issues pour moi le meilleur outil actuel c'est github (gitlab peut être aussi, j'aime bien leurs reviews intégrées), avec un éditeur Markdown, des notifs et réponses possibles par mail. Le contrôle de l'état des bugs par mail aussi est un truc appréciable que j'ai vu surtout chez Debian dans leur bugtracker custom, mais c'est dans une certaine mesure possible aussi sur github (genre Closes: #xxx dans le commentaire de commit).
Bamboo je connais pas, Jenkins c'est pourri mais ça fini par faire un truc potable avec beaucoup d'énergie investie. Les pipelines sauvent enfin un peu l'outil en permettant de versionner les scripts de build dans les projets, c'est pas du niveau de simplicité de Travis / Appveyor mais j'ai pu m'en sortir (demandez à Tramb je suis sur qu'il est ravi de devoir faire du Groovy).
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
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
@rOut bon en fait je suis complètement d'accord avec tout ce que tu dis...
Je me suis tellement habitué aux outils Atlassian que je ne prête plus attention à tous ces défauts, et que je me contente d'appliquer mes petites recettes et autres workaround qui me permettent de ne pas trop galérer.
Et il y a qd même quelques trucs sympa dans l'ensemble, même si c'est souvent bien planqué au fond d'une usine à gaz pleine de réglages obscures.
Pour la partie 'prix', je dirais que je m'en fout un peu car je ne suis pas directement impacté par les coûts de licenses, mais quand je regarde les prix de gitlab c'est un peu le même ordre de tarification, non ?
C'est quoi le setup moderne et pas cher pour des outils type Jira/Confluence/Bitbucket qui soient un minimum intégré entre eux ?
C'est un programmeur Python
- - - Mise à jour - - -
Y'a moyen d'avoir Gitlab à 0 euros pour de gros effectifs si tu fais avec les limitations de la version de base. C'est déjà bien généreux.
Côté Atlassian, tu es obligé de débourser environ 30€ HT lifetime pour le premier grade, avec AMHA beaucoup plus de features, mais déjà une limite de 10 utilisateurs.
Ensuite, selon les features dont tu as besoin, tu as intérêt à calculer précisément ce que ça va coûter, sachant que chacun a sa grille tarifaire opaque. Atlassian garde basiquement une tarification basée sur des tranches d'effectifs, tandis que Gitlab bascule très vite à une tarification par tête de pipe dont le montant est fixé par tranche de fonctionnalités.
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
Tiens, je serais peut-être amené à travailler avec un Jira/Bitbucket/Confluence dans un conteneur Docker.
Je sais que ça se fait et que c'est même officiellement supporté par Atlassian, mais j'y entrave rien à Docker, et je me demandais si des gens avaient des retour d'expérience concernant un tel usage?
ça marche bien. Surtout si c'est officiellement supporté. Bon, j'ai pas testé pour la suite Atlassian, mais j'ai fait tourner des instances perso de Team City et You Track dans des containers, et aucun soucis.
Après, faut voir comment sont gérer les processus de mise a jour des logiciels dans ce genre de cas.
Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09
Je vais regarder Gitlab, merci
On peut faire tourner des services dans des conteneurs?
Genre un serveur mysql en plus des services Atlassian? Sachant qu'Atlassian repose sur mysql le plus souvent en configuration typique...
Ensuite, le mappage des ports des services du conteneur vers l'extérieur, j'avoue que je comprends pas trop comment ça marche. Mais j'ai pas d'expérience Docker aussi...
L'idée des conteneurs c'est de faire tourner un seul processus, même si les conteneurs à multiples processus sont possible. Ici tu aurais dans l'idéal un conteneur pour Atlassian et un conteneur (ou pas, d'ailleurs), pour ta BDD. L'idée est de penser en terme de brique indépendantes que tu assembles (le plus simplement avec docker-compose, généralement). Pour exposer c'est simple, ça fonctionne ainsi $HOST_IP_INTERFACE:$HOST_PORT:$CONTAINER_PORT. Ton $HOST_IP_INTERFACE, ça peut être 127.0.0.1, avec un reverse proxy http, pour router. Sinon tu exposes sur ton interface publique directement. Tu peux également omettre l'ip en mettant simplement $HOST_PORT:CONTAINER_PORT et ça sera bind sur toutes les interfaces de ton host.
Sachant qu'une BDD ça se mutu très facilement, j'ai tendance à utiliser la DB vanilla de la distro (Debian la plus part du temps) et d'y brancher mes services conteneurisés, dedans.
"Nobody exists on purpose. Nobody belongs anywhere. We're all going to die. Come watch TV." - Morty Smith
Attention, une bdd dans un conteneur est une mauvaise idée de manière générale.
Wokay, je vais voir mes options.
L'idée était pour moi d'avoir tout l'environnement Atlassian dans un 'sac' transportable sur une autre machine sans devoir racheter une licence et surtout sans avoir à copier les fichiers de configuration et données de chaque service Atlassian et en plus des tables Mysql pour chacun.