[RUBY] Pourquoi je suis une boutique Java et démarre Python

À propos de cet article

Par contre, si je disais Python! Python! Lors d'une session d'étude, on m'a demandé de parler de Python parce que cela n'a pas d'importance, et j'ai résumé le matériel. C'est la première fois que j'écris un long blog, donc je suis désolé pour la connexion des phrases.

Qu'est-ce qui vous a donné envie de faire Python

Je fais Java depuis environ 15 ans et je craignais que cela prenne du temps en termes d'environnement et de méthode de construction en Java. Aussi, comme je souhaite développer en contrat avec une petite entreprise, je dois le faire rapidement et avec un petit budget, J'ai senti qu'il n'était pas efficace de simplement préparer un environnement de construction et d'utiliser un coût raisonnable.

Il ne sert à rien d'écrire tout en Java

Nous, ingénieurs, essayons de résoudre le problème en utilisant les méthodes que nous pouvons. Cela aura un impact important sur le choix d'un langage de programmation. Nous essayons de mettre en œuvre non seulement la construction de systèmes à grande échelle, mais également des fonctions simples dans l'environnement de développement existant et les langages que nous connaissons. Certes, c'est rationnel, et maintenant que les ingénieurs Java débordent, il est facile de recruter des ingénieurs et c'est facile à maintenir grâce à une technologie unifiée. En outre, en raison du typage statique, réduire autant que possible les erreurs d'exécution peut être l'une des raisons pour lesquelles il est utilisé dans les systèmes à grande échelle. Mais qu'en est-il du choix de Java simplement parce que vous pouvez l'écrire maintenant? Votre système doit-il être construit en Java parce que vous pouvez l'écrire?

Dois-je encore écrire en Java? (Ce que je déteste Java)

L'environnement de développement est compliqué

Il existe des aides à la construction fourmi, maven, gradle et autres, mais plus le système est grand, plus il devient compliqué avec les fichiers de définition ésotériques. Je comprends le mécanisme du couplage lâche, mais plus le couplage est lâche, plus il devient compliqué. Je le fais depuis plus d'une douzaine d'années et je peux voir que c'est plus pratique maintenant que les beaux jours de Struts. Mais ce n'est pas facile à comprendre pour tout le monde dans le projet.

lourd

Pour les applications Web Lors du déploiement sur un serveur d'applications tel que Tomcat ou Weblogic, les bibliothèques dépendantes sont tous les fichiers jars et wars qui sont en mémoire. Lors de l'implémentation d'un lot qui s'exécute en parallèle en Java, il est difficile de s'exécuter en tant que processus unique. Si vous utilisez une mémoire de la taille d'un gigaoctet pour chaque processus, vous devrez la placer sur le serveur d'applications, même par lots. Dans un système à grande échelle qui s'exécute en parallèle, il serait difficile d'économiser de la mémoire en tenant compte des dépendances pour chaque lot et en réduisant la dépendance jar en exécutant.

Il faut du temps pour vérifier le fonctionnement

Il faut du temps pour construire et déployer juste en fixant un endroit. De nombreux ingénieurs construisent et vérifient à plusieurs reprises le fonctionnement lors de la mise en œuvre de la fonction, C'est beaucoup de travail d'accumuler build et déployer pendant plusieurs secondes à plusieurs dizaines de secondes. C'est dommage que cela demande beaucoup de travail à cause du temps d'attente. Il est également stressant pour les ingénieurs de prendre du temps. Déploiement Le déploiement peut être effectué un peu plus rapidement, mais il n'est pas dans le même état que lors de sa sortie, donc un autre problème attend.

Attentes pour un langage de script

Je me suis souvenu que lorsque j'ai développé un système avec PHP, je pouvais déboguer à grande vitesse. J'aimerais pouvoir développer un langage de script plus facilement. C'était la raison pour laquelle je le pensais.

Par conséquent, j'ai réduit les langues à comparer aux suivantes.

Caractéristiques de chaque langage de programmation (du point de vue de la boutique Java)

Java

PHP

Ce n'est pas mauvais. Mais. .. C'est une image d'une extension d'une page Web. Je ne veux pas l'utiliser pour autre chose que la génération HTML. PHP: C'est un préprocesseur hypertexte, n'est-ce pas? Ce n'est pas mauvais. ..

<?php
//Cette façon d'enfermer ressemble à une prémisse de mélange de HTML et de logique, et elle réagit un peu.
?>

(Bonus) Pourquoi PHP se porte bien

Il existe la bibliothèque la plus puissante du monde CMS appelée WordPress

JavaScript

Au début, c'était le candidat le plus prometteur. Est-ce une malédiction du système Web? C'est du JavaScript, mais si vous pouvez le maîtriser, vous pouvez enfin créer un système Web dans une seule langue. Cependant, je ne veux ni écrire ni lire.

Python

C'est mon préféré en ce moment. J'aime la facilité de lecture. Les programmes sont largement lus plutôt qu'écrits. À part cela, j'aime le fait qu'il soit fort dans l'apprentissage automatique, qui est maintenant populaire.

Ruby

Je considérais Ruby comme un candidat équivalent à Python, Plus j'enquêtais, plus cela me paraissait subtil.

=begin
Ce serait Nai ...
j'ai pensé
Est-il possible de le faire avec une touche de raccourci dans l'IDE?
=end
list.times{|num|
  p "test"
}
list.times do |num|
  p "Cette façon d'écrire est également OK"
end
puts "hello"
puts "Vous pouvez joindre un point-virgule";
for i in 0..4 do
  puts "pour déclaration"
end
for i in 0..4
  puts "peut être omis"
end

Comparaison de langage (du point de vue Python)

Classement des langues

Jetons un coup d'œil au classement des langues.

Comparaison des langues

Inconvénients de l'utilisation de Python

Ce que j'ai fait avec Python

micro web-framework (RESTful framework)

Application Web utilisant une bouteille. DB utilise SQLite. Le frontal a été implémenté dans vue.js.

** Jeu de frappe **

pluplu.png

Cliquez ici pour la saisie Puru Puru

Jeu

J'ai créé un jeu en utilisant pygame. Je l'ai fait moi-même pour apprendre aux enfants à créer des jeux. Je l'ai fait selon l'article suivant.

** Jeu Invader **

invader.png

Sortie Excel

J'ai essayé de sortir la facture dans Excel en utilisant xlsxwriter.

Facture d'achat

seikyu.png

Penser aux tendances de l'industrie

La boutique Java pourrait diminuer à l'avenir?

(Au fait) Beaucoup de débutants font du Ruby

Image de l'utilisation de Ruby parce que Rails est bon.

L'avenir du système Web (réflexion personnelle)

Technologie spécifique à la langue

~~ Désolé pour le manque d'informations sur PHP et Ruby. ~~ J'ai ajouté les informations fournies dans les commentaires. Merci tout le monde.

- PHP Python Ruby Java
CMS WordPress,Drupal Mezzanine,django-cms,Wagtail Refinery,PréfecturedeShimaneCMS,Joruri,Zomeki,Shirasagi Liferay
Web Framework Laravel,CakePHP django,Bottle,Flask Rails,Sinatra Play,Jersey,Spring
package manager composer pip, Pipenv gem maven, gradle
IDE PhpStorm PyCharm Quiestcélèbre? Eclipse
code checker PHPStan pycodestyle,autopep8 Quiestcélèbre? CheckStyle(inEclipse)

Je suis encore nouveau sur Python, alors qu'en est-il de Python? Que penser

Python ne fait que commencer, donc il y a tellement de choses que je ne sais pas.

Autres langues préoccupantes

Go

Tableau des scores sans autorisation (sur 5 points)

- Python Ruby PHP Java Go Remarques
la vitesse 3 3 3 5 5 Goのla vitesseはJava並み?
Code facile à lire 5 4 1 3 3 Python est facile à voir et je ne veux pas maintenir PHP
Facile à apprendre 5 4 4 3 2 Aller est un peu difficile
Orientation objet 3 5 4 5 2 純Orientation objetならRuby。Goでは構造体。
Apprentissage automatique 5 2 2 3 2 Langage R sauf Python
Classement de popularité mondiale 5 2 4 5 3 Go monte en flèche.
Classement de popularité nationale 2 4 5 5 1 Il semble que le Japon va encore réussir avec PHP.
revenu annuel 4 3 1 4 5 Élevé pour les projets d'apprentissage automatique. Python et Go ont peu de projets Web.
zone Seulement à Tokyo Seulement à Tokyo Aussi à Osaka Aussi à Osaka Seulement à Tokyo Nouvelle motivation à Osaka.
Total de score simple 32 27 24 33 23 Ce n'est pas quelque chose qui peut être jugé simplement en totalisant, mais comme un guide.

Résumé

  1. En termes de popularité, la boutique Java devrait définitivement choisir Python ensuite
  1. Utiliser Python live n'est pas assez rapide
  1. Ruby est maintenant populaire au Japon, mais il est délicat car sa valeur est réduite de moitié sans Rails.
  1. Le CMS peut-il battre WordPress?
  1. Ruby a également "Oui" comme option compte tenu de la vitesse de développement
  2. En fin de compte, devrions-nous pouvoir choisir la technologie en fonction des exigences au lieu de choisir parmi la technologie?

Recommended Posts

Pourquoi je suis une boutique Java et démarre Python
J'ai écrit une classe en Python3 et Java
[Python] Démarrez un fichier de commandes à partir de Python et passez des variables.
Résolution avec Ruby, Perl, Java et Python AtCoder ATC 002 A
Python a + = b et a = a + b sont différents
Différence entre java et python (mémo)
Comparaison de la grammaire de base entre Java et Python
[Python] renvoie A [ou / et] B
[Python] Maintenant un codeur vert ~ [AtCoder]
Un peu plus sur les références ~ Prenant Python et Java comme exemples ~
Chevauchement d'expressions régulières en Python et Java
Différences entre la syntaxe Python et Java
Résolution avec Ruby, Perl, Java et Python AtCoder AGC 033 A Recherche de priorité de largeur
Connectez beaucoup de Python ou et et
Démarrer python
Une histoire sur Python pop and append
J'utilise tox et Python 3.3 avec Travis-CI
Créer un projet et une application Django dans un environnement virtuel Python et démarrer le serveur
Pourquoi le découpage Python est représenté par un deux-points (:)
Organisez les modules et les packages Python dans le désordre
MessagePack-Try pour lier Java et Python avec RPC
Construire un environnement python avec virtualenv et direnv
Un programmeur Java a étudié Python. (À propos des décorateurs)
Un joli nimporter qui connecte nim et python
ffmpeg-Construisez un environnement python et divisez la vidéo
Démarrez un serveur Web Python simple avec Docker
Créer une carte Web en utilisant Python et GDAL
[Mise à jour] Aide-mémoire de la syntaxe Python pour la boutique Java
Pourquoi Python doit-il écrire un deux-points?
Lancer un serveur Web avec Python et Flask
Écrivons un programme Python et exécutons-le
python memo- "sinon A et B" était "si (pas A) et B"
Une histoire sur la modification de Python et l'ajout de fonctions
[Python] Une compréhension approximative des itérables, des itérateurs et des générateurs
Prise en compte des forces et faiblesses de Python
Démarrage rapide de Python
[Python] Commencez à étudier
Essayez d'exécuter Schedule pour démarrer et arrêter des instances dans AWS Lambda (Python)
Python: création d'un environnement virtuel (venv), démarrage et arrêt
Essayez de créer un fichier compressé en utilisant Python et zlib
Création d'un environnement de travail Docker R et Python
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Benchmarks langage C, Java, Python avec factorisation prime
Pourquoi ne pas créer facilement une table élégante avec Python?
Essayez de créer un jeu simple avec Python 3 et iPhone
Une comparaison rapide des bibliothèques de test Python et node.js
Implémentation d'un générateur en utilisant Python> link> yield et next ()> yield
J'ai essayé de faire LINE BOT avec Python et Heroku
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Démarrer le calcul numérique avec Python (avec Homebrew et pip)
Étudiez l'échange de données Java et Python avec Apache Arrow
Un programmeur Java a étudié Python. (for, if, while instruction)
Tâches au démarrage d'un nouveau projet python
Créez un environnement shell et python décent sur Windows
Installez django sur python + anaconda et démarrez le serveur
Python: j'ai essayé menteur et honnête
Comment démarrer un serveur WEB simple qui peut exécuter des cgi de php et python
Comment démarrer le PC à une heure fixe chaque matin et exécuter le programme python