[JAVA] Caractéristiques du langage de programmation [Memo]
Motivation pour écrire cet article
Je viens de terminer la création d'un portfolio de travail et, depuis quelques jours, je passe mon temps à chercher des entreprises pour participer et à étudier la préparation aux entretiens.
À part publier mon propre résumé du tutoriel Rails l'année dernière et laisser une note sur CicleCI le mois dernier, je n'ai pas beaucoup posté, mais la sortie est toujours importante, donc j'écrirai le contenu des notes manuscrites. J'ai décidé de le laisser pour Qiita.
Pour le moment, j'écrirai sur les langages basés sur le Web.
Langage basé sur le Web
Il existe différents types de langages utilisés dans l'industrie du Web, chacun avec ses propres caractéristiques et son caractère inapproprié.
Certains d'entre eux sont actuellement populaires dans la communauté des ingénieurs et sont activement utilisés, tandis que d'autres deviennent progressivement un héritage et ne sont plus utilisés.
L'utilisation d'un langage populaire et actif dans la communauté contribue aux performances des applications, à l'efficacité du développement et à la convivialité, et améliore également la capacité d'ingénieur, donc même si vous n'utilisez pas réellement ce langage, Il est utile de connaître les caractéristiques.
Pour le typage dynamique et le typage statique, cet article a été utile.
Typage dynamique et statique
Langue typée dynamiquement
Ruby
--Une langue utilisée dans tous les domaines, en particulier ** souvent trouvée dans les start-up et les entreprises de médias **.
Pour des raisons traditionnelles, PHP est souvent utilisé pour les jeux sociaux et EC, et Java est souvent utilisé pour la technologie publicitaire.
- ** Existence d'un framework web appelé Ruby on Rails **
- De nombreuses bibliothèques utiles (gemmes) sont disponibles
- Informations japonaises abondantes et faible coût d'apprentissage (le développeur est japonais)
――Pour les raisons ci-dessus, il est populaire, la communauté est active et il y a de fortes chances qu'il continue à être utilisé à l'avenir.
Cependant, il semble qu'il y ait eu une tendance à la baisse ces dernières années.
PHP
- ** Wordpress a une grande présence **
Application CMS (Content Management System) (application de création de sites Web tels que des blogs) réalisée en PHP
- ** Existence de frameworks web tels que Laravel et CakePHP **
- Informations japonaises abondantes et faible coût d'apprentissage
- ** C'était la norme de facto pour le développement de jeux sociaux **.
Par conséquent, il existe de nombreux ingénieurs qui peuvent utiliser PHP, et cela a l'avantage qu'il est facile d'attirer les développeurs (on peut dire qu'il y a un inconvénient que l'offre est importante par rapport à la demande, compte tenu du déclin de Soshage lui-même).
Python
- Plus populaire à l'étranger qu'au Japon (** langue standard interne de Google **)
- ** Existence de frameworks Web tels que Django et Flask **
- ** Standard de facto en apprentissage automatique **
Il n'y a aucun avantage par rapport à Ruby ou à PHP en tant que langage côté serveur, mais il est utilisé par les entreprises développant des services d'apprentissage automatique pour unifier le langage d'apprentissage automatique et le langage côté serveur. Faire
--Il y a un problème mixte de la série 2.7 et de la série 3
JavaScript
- ** Requis pour le développement frontal avec Node.js **, qui est un environnement d'exécution côté serveur
--AltJS (un langage alternatif qui traite JavaScript comme un langage à typage statique) ** Typescript est populaire ** et deviendra courant dans le futur
- ** SPA (Single Page Application) est populaire **
Une application qui effectue la communication de données sans passer d'une page.
** Les frameworks SPA tels que vue.js et React ** sont très populaires
-Utilisé pour développer des applications de bureau et des applications pour smartphone à l'aide d'outils tels que ** Electron **
Langue typée statiquement
Go(Golang)
--Une langue assez populaire ces dernières années, souvent utilisée en combinaison avec des ** microservices ** (comme Mercari)
- Principalement utilisé pour ** développer des serveurs d'API à haut débit **
Lors du développement d'un serveur API avec uniquement des fonctions simples, un framework Web haute performance tel que Rails ou Laravel n'est pas nécessaire, et Go est parfaitement adapté en tant que langage pour traiter les demandes à grande vitesse.
--Utilisé avec Docker et Terraform
** Il est compatible avec Docker car il peut rendre l'image plus petite **
- ** Bonne compatibilité avec les services GCP **
Utilisé dans GAE, qui est un PaaS
- Faible coût d'apprentissage et facile à introduire
Langage JVM
Le langage basé sur JVM est un langage compilé et le code d'octet généré après la compilation s'exécute sur une machine virtuelle appelée JVM (Java Virtual Machine).
À l'origine, il ne s'agissait que de Java, mais si le code d'octet généré a le même format, il fonctionnera sur JVM, de sorte que des langages tels que Scala et Kotlin sont utilisés en plus de Java, et ils sont appelés langages basés sur JVM. ..
Java
- Taux d'utilisation élevé en SIer
Dans le système Web, Kotlin a abandonné la position dominante. Il n'est pas utilisé pour le développement de nouveaux services dans les entreprises Web.
--Beaucoup utilisé par les entreprises de technologie publicitaire
C'est un langage hérité, mais ** a beaucoup de savoir-faire accumulé **
Kotlin
- ** meilleur Premier choix en Java ** (un langage qui est compatible avec Java)
- ** Langage de développement officiel Android **
Populaire et souvent utilisé côté serveur
- Coût d'apprentissage inférieur à Scala
--Concurrence avec Go en tant que langage à typage statique
En tant que langage JVM, il se distingue par le fait qu'il peut utiliser le savoir-faire et les atouts de Java.