[GO] Try to select a language

Language selection materials

table of contents

-[Judgment criteria](#Judgment criteria) --By language

Evaluation criteria

--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

merit

Demerit

――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

merit

Demerit

――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)

merit

--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.

Demerit

――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

merit

--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.

Demerit

-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.

Reference URL

-Popularity of programming languages 2017/05 -Qiita Advent Calendar 2017 Ranking

Summary

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

As of April 13, 2018

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

Try to select a language
Try to make a Python module in C language
[Go language] Try to create a uselessly multi-threaded line counter
[C language] [Linux] Try to create a simple Linux command * Just add! !!
Try to make a kernel of Jupyter
Try to make a web service-like guy with 3D markup language
Try using a stochastic programming language (Pyro)
Try to calculate a statistical problem in Python
Ported a naive homebrew language compiler to Python
Try to draw a life curve with python
Try to make a "cryptanalysis" cipher with Python
Try to create a new command on linux
Try to make a dihedral group with Python
Try to write a ping confirmation script appropriately
Introduction to Python language
Try to implement yolact
Try to make a command standby tool with python
Try to dynamically create a Checkbutton with Python's Tkinter
(Python) Try to develop a web application using Django
[GCP] Try a sample to authenticate users with Firebase
A sample to try Factorization Machines quickly with fastFM
Machine learning beginners try to make a decision tree
A quick introduction to pytest-mock
Try to factorial with recursion
Try to build a deep learning / neural network with scratch
A super introduction to Linux
Try to analyze Twitter trends
Try programming with a shell!
Try to understand Python self
Add a dictionary to MeCab
Upload a file to Dropbox
Send a signal to subprocess
How to temporarily implement a progress bar in a scripting language
Try creating a CRUD function
Let's try a shell script
Try to bring up a subwindow with PyQt5 and Python
[Python] Try to classify ramen shops by natural language processing
How to hack a terminal
Try to model a multimodal distribution using the EM algorithm
[Introduction to Tensorflow] Understand Tensorflow properly and try to make a model
Try HeloWorld in your own language (with How to & code)
Just try to receive a webhook in ngrok and python
I tried to divide with a deep learning language model
Use a scripting language for a comfortable C ++ life-OpenCV-Port Python to C ++-
Created a package to support AWS Lambda development in Go language
Try to get a list of breaking news threads in Python.
Try to create a python environment with Visual Studio Code & WSL
Try to extract a character string from an image with Python3
Rails users try to create a simple blog engine with Django
Try to edit a new image using the trained StyleGAN2 model
[C language] How to create, avoid, and make a zombie process
Try to write a program that abuses the program and sends 100 emails
Try to make a blackjack strategy by reinforcement learning ((1) Implementation of blackjack)
Try adding a wall to your IFC file with IfcOpenShell python
Try to create a Qiita article with REST API [Environmental preparation]
How to make a Japanese-English translation
How to write a Python class
Try implementing Yubaba in Go language
How to put a symbolic link
Try throwing a query in Redash
Convert A4 PDF to A3 every 2 pages