-[Judgment criteria](#Judgment criteria) --By language
--Consideration when providing packages such as BtoB --Compilation language --Multi-platform
--For recruitment (many denominators) --Number of users
--Maintainability --Compile language (compilation error judgment) --OS dependency (If ruby, if you don't put mysql in OS, it won't work even if you put library) --Is there a function that cannot be reassigned such as let? --Language format freedom (like Python is noisy) ――It is a prerequisite to include both tests and code formats, but if there is language specificity, it feels like ◯
--Implementation of required security standards? ――Is it adopted by the financial system or the government?
Java/Kotlin
--Object-oriented, structured, procedural --Strong static typing --Compiler language, parallel programming
――There are many people, but there are also many people with low skills. --Language specifications are pretty old. A little solved with Kotlin ――I can't help the old impression.
Ruby
--Structured, imperative, object-oriented --Strong dynamic typing
――There are many people, but there are too many people here as well, and the skill level is different. --Although the language specifications are being updated violently, the version upgrade is severe. Old is basically not recommended --Because it depends on the OS, infrastructure is also considered. You have to put mysql etc. in the basic os. --The code is round when the package is provided. --Image with less batch processing. Mainly web-based
Node.js
--Event-driven programming environment --AltJS needs to be selected again. --TypeScript (when you want to statically type)
--There are many related libraries in the blockchain industry. --Can be written in the same Javascript as front. ――If you are a front engineer, it is essential as a tool during development in the first place ――The number of venture companies is increasing.
――Currently, people do not gather. --There is a big change from ES6 and the version update is intense --Code Marumie when the package is provided --When altJS etc. was added, compilation occurred and it was slow. (Introduced in the early days of TypeScript.)
Go
--Strong static typing --Compiler language, parallel programming
I'm sorry if I made a mistake. I'm reading lightly
--There are many related libraries in the blockchain industry. (Implementation of geth in Go) ――Personally, the impression that it is a new language and a modern language --Prepared at the language level such as test and fmt. (Although it is the same in other languages, fmt is probably the first one) --There is a uniformity in the way of writing or the influence of Python. There are restrictions on how to write the language. ――The number of venture companies is increasing.
-Maybe there are few people as well. --It should be possible to compile and deliver. ――Unlike before, there is no concept of classes, and the design concept of the language is quite different.
-Popularity of programming languages 2017/05 -Qiita Advent Calendar 2017 Ranking
Personally, there is no criticism of the language. It's just a premise to make a hard object. Node and Ruby are easy to make prototypes and initial development of services I want to use it easily.
The following is a simple but arbitrary table.
language | Number of users | pkg sale | Maintenance degree | Security aspect | Document amount |
---|---|---|---|---|---|
Java | ◎ | ◎ | ◯ | ◎ | ◎ |
Ruby | ◯ | △ | △ | △ | ◎ |
Node | △ | △ | △ | △ | ◯ |
Go | △ | ◯ | ◯ | ◯ | △ |
In the first place, we recognize that it is old to provide services by jarging in this era Compiling with the option of SaaS eliminates the need for the item pkg sale I thought it was Kotlin, but the possibility of Go and the preparation of Go's test / fmt In other words, we judge that the code of others on github is also highly readable. Considering the filter of legacy code articles in java etc., I think that it will affect the future of Go.
Recommended Posts