[RUBY] J'ai essayé de savoir dans quelle langue ce logiciel dont je m'occupe toujours est écrit

Pour réfléchir "Quelle langue devrais-je étudier ensuite?", J'ai dressé une liste des langues dans lesquelles un logiciel familier est écrit. La liste est entièrement à ma discrétion et je n'ai pas l'intention de le faire. La perspective est plus proche du middleware que de l'application. La classification par genre est également appropriée.

Genre Nom Langue
OS Linux Kernel C
OS Windows C++
RDBMS MySQL C/C++
RDBMS PostgreSQL C
WebServer Apache C
WebServer Nginx C
WebServer h2o C
KVS redis C
KVS memcached C
KVS tokyotyrant/tokyocabinet C
KVS kyototycoon C++
DB MongoDB C++
DB ElasticSearch Java
Logger Fluentd Ruby
Tool Embulk Java
CI Jenkins Java
PackageManager yum python
PackageManager apt python
PackageManager homebrew ruby
Firewall firewalld python
Browser GoogleChrome C++
ImageManipulation ImageMagick C
VCS git C
Language Perl C
Language PHP C
Language Ruby C
Language HHVM/Hack C++
Language go go
Language node/v8 C++
Tool Gnu coreutils C
Tool AWS CLI python
DevTool peco go
DevTool ghq go
DevTool Vagrant Ruby
ProccessManager supervisord Python
Provisioning Ansible Python
Provisioning Chef Ruby
Provisioning Berkshelf Ruby
Provisioning ServerSpec Ruby
Container Docker go
Container kubernetes go
Container rkt go

Impressions de la liste

Que penser de chaque langue

(Je n'ai pas l'intention de rejeter une langue en particulier) C La plupart des middlewares existants sont en C, donc la connaissance du langage C et des outils associés (make, gdb, ldd, etc.) est nécessaire pour le dépannage et la correction. La plupart des modules de langage de script qui nécessitent de la vitesse sont implémentés en C. (Perl XS, extension PHP, gemme Ruby) Il est très important que le noyau Linux soit écrit en langage C, et cela semble être la même chose pour le moment.

C++ Tout le monde n'utilise pas MongoDB, node.js, HHVM, etc., donc si vous n'utilisez pas d'outils C ++ sur le terrain, vous pourrez peut-être passer sans étudier. Il semble probable qu'il sera remplacé par go and rust à l'avenir.

Java Je ne peux considérer Jenkins que comme l'outil Java le plus populaire. On pensait qu'il était un peu désuet dans le bon vieux langage, mais il semble que Java 8 ait retrouvé sa sensation de scintillement, de sorte qu'il peut progressivement prendre fin.

Perl Je ne pense pas avoir beaucoup entendu parler des outils Perl ces jours-ci. Dans le passé, il y avait une image de Sabakan = Perl, mais ces dernières années, il semble que le marché ait été emporté par Ruby / Go. C'est vrai.

PHP Il n'y a presque aucun outil / middleware créé par PHP. Il y a beaucoup de choses comme PhpMyAdmin, Wordpress et «applications». Les programmeurs PHP ne peuvent pas se passer d'étudier d'autres langages, mais d'autres programmeurs de langage peuvent se passer d'étudier PHP. C'est pourquoi personne ne peut écrire du PHP avec rebuildfm.

Ruby Si vous utilisez l'infrastructure en tant que code, vous devez être capable de lire et d'écrire un peu. Avec l'avènement de Chef / Vagrant / Fluentd, il semble qu'il soit devenu tout à fait établi en tant que langage d'infrastructure. La facilité d'écriture DSL et la facilité de création d'un mécanisme de plug-in semblent avoir été les principaux facteurs décisifs pour l'adoption dans les systèmes d'infrastructure.

Python Python est désormais le seul langage de script pré-chargé avec les principales distributions Linux. Il fonctionne comme un héros méconnu dans la partie près du noyau du système d'exploitation, comme yum / apt / firewalld. ~~, mais j'ai l'impression que le nombre d'outils récents créés par python diminue. ~~ ~~ Il y a aws-cli qui est largement utilisé, mais je pense qu'il sera remplacé par le langage Go à l'avenir. ~~ ~~ python peut être capable de gérer sans étudier. ~~

À l'origine largement utilisé en Europe et aux États-Unis, les bibliothèques de calculs scientifiques étaient abondantes, mais avec le fort vent arrière de l'apprentissage automatique, il semble devenir plus important à l'avenir.

Go De nombreux outils CLI écrits après 2014 sont fabriqués par Go. Dans le domaine CLI, il y a un élan qui dépasse Ruby. Par exemple, la commande hub a été créée à l'origine par Ruby, mais elle est symbolisée par le fait qu'elle a été réécrite en langage Go à partir de la version 2. De plus, comme il est souvent utilisé dans les systèmes de conteneurs, il est inévitable de creuser plus profondément dans la technologie des conteneurs.

Rust Il existe un concept / possibilité qui remplace les langages C et C ++. On ne sait pas jusqu'où la puissance se développera à l'avenir.

Conclusion

Est-ce à propos de C / Go / Ruby / Rust que je devrais étudier à partir de maintenant? (Il est également nécessaire d'étudier séparément JS / Java / Swift en tant que langage d'application)

Recommended Posts

J'ai essayé de savoir dans quelle langue ce logiciel dont je m'occupe toujours est écrit
J'ai essayé de savoir si ReDoS est possible avec Python
J'ai essayé de savoir ce que je pouvais faire car le tranchage est pratique
J'ai essayé de trouver le rapport de circonférence par 100 millions de chiffres
J'ai utilisé Python pour découvrir les choix de rôle des 51 "Yachts" dans le monde.
Comment savoir s'il y a une valeur dans "quelque part" de pandas DataFrame
[Traitement du langage naturel] J'ai essayé de visualiser les remarques de chaque membre de la communauté Slack
J'ai essayé de trouver la tendance du nombre de navires dans la baie de Tokyo à partir d'images satellites.
J'ai essayé de découvrir les grandes lignes de Big Gorilla
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé d'implémenter le blackjack du jeu Trump en Python
J'ai essayé de savoir si m est inclus dans ce qu'on appelle le type de plage ou une plage telle que n..m et plage (n, m)
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
J'ai essayé de faire 5 modèles de base d'analyse en 3 ans
les débutants en python ont essayé de le découvrir
J'ai essayé de mettre en œuvre un apprentissage en profondeur qui n'est pas profond avec uniquement NumPy
J'ai essayé de résoudre 100 traitements linguistiques Knock version 2020 [Chapitre 3: Expressions régulières 25-29]
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
J'ai essayé de développer un formateur qui génère des journaux Python en JSON
J'ai essayé de trouver l'itinéraire optimal du pays des rêves par recuit (quantique)
J'ai essayé différents modèles de chaînes de date à saisir dans pandas.to_datetime
Découvrez le nom de la méthode qui l'a appelée à partir de la méthode qui est python
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
J'ai essayé d'implémenter le jeu de cartes de Trump en Python
J'ai essayé de réveiller le nom de lieu qui apparaît dans les paroles de Masashi Sada sur la carte thermique
J'ai essayé de prédire le nombre de personnes infectées par le virus corona en tenant compte de l'effet de s'abstenir de sortir
J'ai essayé d'obtenir les informations du site .aspx qui est paginé à l'aide de Selenium IDE aussi sans programmation que possible.
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
J'ai utilisé gawk pour connaître la valeur maximale qui entre dans NF.
Comment savoir quel type de fichier est stocké dans S3 en Python
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
Un débutant en programmation a essayé de vérifier le temps d'exécution du tri, etc.
J'ai essayé de prédire les chevaux qui seront dans le top 3 avec LightGBM
[Azure] J'ai essayé de créer une machine virtuelle Linux avec Azure de Microsoft Learn
Comment trouver le coefficient de la courbe approximative passant par les sommets en Python
Correspondance de l'événement selon lequel le résultat de form.is_valid () est toujours False dans le système Django2
J'ai essayé de résoudre la version 2020 de 100 coups de traitement de langue [Chapitre 1: Mouvement préparatoire 00-04]
J'ai essayé de résoudre la version 2020 de 100 traitements linguistiques [Chapitre 1: Mouvement préparatoire 05-09]
J'ai essayé de créer OneHotEncoder, qui est souvent utilisé pour l'analyse des données, afin qu'il puisse atteindre l'endroit qui démange.
J'ai essayé de visualiser les paroles de GReeeen, que j'écoutais de façon folle dans ma jeunesse mais que je ne l'écoutais plus.