I've just finished creating a portfolio for employment, and for the past few days I've been spending my time searching for companies to enter and studying interview preparation. Except for posting my own summary of the Rails tutorial last year and leaving a note about CicleCI last month, I haven't posted much, but the output is still important, so I'll write the contents of the handwritten notes. I decided to leave it for Qiita. For the time being, I will write about Web-based languages.
There are various types of languages used in the Web industry, and each has its own characteristics and unsuitability. Some of them are currently popular in the engineering community and are being actively used, while others are gradually becoming legacy and are no longer used. Using a language that is popular and active in the community contributes to application performance, development efficiency, and usability, and also improves the ability as an engineer, so even if you do not actually use that language, It is useful to know the characteristics.
For dynamic typing and static typing, this article was helpful. Dynamic Type and Static Type
Ruby --A language used in all fields, especially ** often found in start-up companies and media companies . In addition, PHP is often used in social games and EC systems for traditional reasons, and Java is often used in ad tech systems. - Existence of a web framework called Ruby on Rails ** --Many useful libraries (gems) are available --Abundant Japanese information and low learning cost (developer is Japanese) ――For the above reasons, it is popular, the community is active, and there is a high possibility that it will continue to be used in the future. However, it seems that the past few years have tended to go downhill.
PHP -** Wordpress has a big presence ** CMS (Content Management System) application (application for creating websites such as blogs) created using PHP -** Existence of web frameworks such as Laravel and CakePHP ** --Abundant Japanese information and low learning cost -** It was the de facto standard for social game development **. Therefore, there are many engineers who can use PHP, and there is an advantage that it is easy to attract developers (it can be said that there is a drawback that supply is large for demand considering the decline of social games themselves).
Python --More popular overseas than in Japan (** Google internal standard language ) - Existence of web frameworks such as Django and Flask ** -** De facto standard in machine learning ** There is no advantage over Ruby or PHP as a server-side language, but companies developing machine learning services use it for the purpose of unifying the machine learning language and the server-side language. doing --There is a mixed problem of version 2.7 series and 3 series
JavaScript -** Required for front-end development together with Node.js , which is a server-side execution environment --AltJS (an alternative language that treats JavaScript as a statically typed language) ** Typescript is popular ** and will become mainstream in the future - SPA (Single Page Application) is popular ** An application that performs data communication without transitioning from one page. ** SPA frameworks such as vue.js and React ** are very popular -Used for developing desktop apps and smartphone apps using tools such as ** Electron **
Go(Golang) --A fairly popular language in recent years, often used in combination with ** microservices ** (such as Mercari) --Mainly used for ** developing high-speed API servers ** In developing API servers with only simple functions, high-performance web frameworks such as Rails and Laravel are unnecessary, and Go is highly suitable as a language for handling requests at high speed. --Used with Docker and Terraform ** It is compatible with Docker because it can make the image smaller ** -** Good compatibility with GCP services ** Used in GAE, a PaaS --Low learning cost and easy to introduce
The JVM-based language is a compiled language, and the bytecode generated after compilation runs on a virtual machine called the JVM (Java Virtual Machine). Originally it was only Java, but if the generated bytecode is in the same format, it will run on the JVM, so languages such as Scala and Kotlin are used in addition to Java, and these are called JVM-based languages. ..
Java --High usage rate in SIer In the Web system, Kotlin has been given the mainstream position. It is not used for new service development in Web companies. --Many used by ad tech companies ――It is a legacy language, but ** has a lot of accumulated know-how **
Kotlin -** better First choice in Java ** (a language that is upward compatible with Java) -** Android official development language ** Popular and often used on the server side --Lower learning cost than Scala --Competitive with Go as a statically typed language As a JVM language, it is differentiated in that it can utilize Java know-how and assets.
Recommended Posts