On the other hand, if you say Python! Python! At a study session, I was asked to talk about Python because it doesn't matter, and I summarized the material. It's my first time to write a long blog, so I'm sorry for the connection of sentences.
I've been doing Java for about 15 years, and I've been worried that it will take time in terms of Java environment and build method. Also, since I want to develop on a contract basis with a small company, I need to make it quickly and with a low budget, I felt that it was not efficient to just prepare a build environment and use a reasonable cost.
We engineers try to deal with the problem at hand using the methods we can. It will have a big impact on your choice of programming language. We try to implement not only large-scale system construction but also simple functions in the existing development environment and languages we know. Certainly, it is rational, and now that Java engineers are overflowing, it is easy to procure engineers and it is easy to maintain due to unified technology. Also, static typing may reduce run-time errors as much as possible, which may be one reason why it is used in large systems. But what about choosing Java just because you can write it now? Should your system be built in Java because you can write it?
There are ant, maven, gradle and other build aids, but the larger the system, the more complicated it becomes with esoteric definition files. I understand the mechanism for loose coupling, but the looser the coupling, the more complicated it becomes. I've been doing it for over a dozen years and I can see that it's more convenient now than the heyday of Struts. But it's not easy for everyone in the project to understand.
For web applications When deploying to an application server such as Tomcat or Weblogic, the dependent libraries are all jars and wars that are in memory. When implementing a batch that runs in parallel in Java, it is difficult to run it as a single process. If you use gigabytes of memory for each process, you will need to put it on the application server even in batch. In a large-scale system that executes in parallel, it would be difficult in reality to save memory by considering the dependencies for each batch and reducing the jar dependency by executing.
It takes time to build and deploy just by modifying one place. Many engineers repeatedly build and check the operation when implementing the function, It is a lot of man-hours to accumulate build and deploy for several seconds to several tens of seconds. It is very unfortunate that man-hours are required due to waiting time. It is also stressful for engineers to take time. Deployment Deployment can be done a little faster, but it's not in the same state as when it was released, so another problem is waiting.
I remembered that when I developed a system with PHP, I could debug at high speed. I wish I could develop a scripting language more smoothly. That was the reason I thought so.
Therefore, I narrowed down the languages to be compared to the following.
Java
PHP
It's not bad. But. .. It is an image of an extension of a web page. I don't want to use it for anything other than HTML generation. PHP: It's a Hypertext Preprocessor, isn't it? It's not bad. ..
<?php
//This enclosure looks like a premise of mixing HTML and logic, and it causes a slight rejection.
?>
There is a strongest library in the CMS world called WordPress
JavaScript
At first it was the most promising candidate. Is it a web system curse? It's JavaScript, but if you can master it, you can finally create a Web system in one language. However, I don't want to write or read.
Python
It's my favorite right now. I like how easy it is to read. Programs are overwhelmingly read rather than written. Other than that, I like the fact that it is strong in machine learning, which is now popular.
Ruby
I was considering Ruby as a candidate equivalent to Python, The more I investigated, the more subtle it seemed.
=begin
This would be Nai ...
I thought
Is it possible to do it with one shortcut key in IDE?
=end
list.times{|num|
p "test"
}
list.times do |num|
p "This way of writing is also OK"
end
puts "hello"
puts "You can add a semicolon";
for i in 0..4 do
puts "for statement"
end
for i in 0..4
puts "can be omitted"
end
Let's take a look at the language ranking.
micro web-framework (RESTful framework)
Web application using bottle. DB uses SQLite. The front end was implemented in vue.js.
** Typing game **
Click here for Puru Puru Typing
I created a game using pygame. I first made it to teach children how to make games. I made it according to the following article.
** Invaders game **
I tried to output the invoice in Excel using xlsxwriter.
Invoice
Image of using Ruby because Rails is good.
~~ Sorry for the lack of information on PHP and Ruby. ~~ I added the information provided in the comments. Thank you everyone.
- | PHP | Python | Ruby | Java |
---|---|---|---|---|
CMS | WordPress,Drupal | Mezzanine,django-cms,Wagtail | Refinery,ShimanePrefectureCMS,Joruri,Zomeki,Egret | Liferay |
Web Framework | Laravel,CakePHP | django,Bottle,Flask | Rails,Sinatra | Play,Jersey,Spring |
package manager | composer | pip, Pipenv | gem | maven, gradle |
IDE | PhpStorm | PyCharm | Whichisfamous? | Eclipse |
code checker | PHPStan | pycodestyle,autopep8 | Whichisfamous? | CheckStyle(inEclipse) |
I'm just getting started with Python, so I don't know much about it.
Go
- | Python | Ruby | PHP | Java | Go | Remarks |
---|---|---|---|---|---|---|
speed | 3 | 3 | 3 | 5 | 5 | GoのspeedはJava並み? |
Easy to read code | 5 | 4 | 1 | 3 | 3 | Python is easy to see and I don't want to maintain PHP |
Easy to learn | 5 | 4 | 4 | 3 | 2 | Go is a little difficult |
Object-orientation | 3 | 5 | 4 | 5 | 2 | 純Object-orientationならRuby。Goでは構造体。 |
Machine learning | 5 | 2 | 2 | 3 | 2 | R language except Python |
World popularity ranking | 5 | 2 | 4 | 5 | 3 | Go is skyrocketing. |
Domestic popularity ranking | 2 | 4 | 5 | 5 | 1 | It seems that Japan is still going to make it with PHP. |
annual income | 4 | 3 | 1 | 4 | 5 | High for machine learning projects. Python and Go have few Web projects. |
area | Only in Tokyo | Only in Tokyo | Also in Osaka | Also in Osaka | Only in Tokyo | Osaka new motivation. |
Simple score total | 32 | 27 | 24 | 33 | 23 | It is not something that can be judged simply by totaling, but as a guide. |
Recommended Posts