I usually touch Python and am trying to create a web application for the first time. C also touched for about two years.
So, when I thought about creating a web application, Django, Rails, and Vuejs were recommended. I also want to use the knowledge I learned here for my work


Which language (framework) should I develop?
I usually touch Python, and the number of Python engineers has increased recently, so the demand for Django is inevitably increasing.
Ruby on Rails has always been in absolute demand, learning costs are low, and there is still high demand.
Vuejs is a framework that has recently attracted attention, and it can be used on the client side.
There were a lot of things like this, and I didn't know which one was good after all.
It was also written that Golang is a fast and fast language. (I didn't understand Go's framework well.)
So what language (framework) should we learn considering the future demand?

  • Answer # 1

    I don't really understand the demand, but ... (or Java or PHP if you decide on demand)

    The code that establishes the Go application is mostly written in Go.
    So you can read the back of every feature.
    You can follow the TCP/HTTP mechanism, TLS, certificate handling, etc. without wrapping up.

    When you create a web application with Go, combine "small responsible functions"
    You can see how the application is being built without being hidden.
    (Thanks to this, I have deepened my understanding of how the server and client verify each other's certificates, TLS handshake, and HTTP.)

    The use of the framework hides these and requires how to get on the framework.
    You can implement a general app without touching the backside of it.

    The framework doesn't matter if you don't know the backside while on the rail,
    As for the details, you don't have to worry because the framework takes care of it and has the processing.

    However, as soon as it was required to come off the rail,
    An understanding of the mechanism behind the framework is required.

    If you follow the framework, it may be difficult to follow the behavior using an external library written in a language different from the application. And the richer the framework, the harder it is to understand its behavior.

    I used to build web apps in Python using Django and other frameworks, but now I only write in Go. Totsuki feels that writing web apps with Go is a bit annoying (especially around DB), but Go feels easier to follow and easier to maintain.

    In addition, Python and Go have very different characteristics in building web applications.

    Since static content cannot be served efficiently in Python, it is common to place a high-throughput proxy server in front of production servers.

    Go can perform the role of a high-throughput proxy server by itself, so the deployment configuration is simple.

    Although Python is a flexible template and good at generating HTML compared to Go, the demand for dynamic HTML generation on the server side seems to be steadily decreasing. I think that the structure that does not handle HTML and DOM on the server side by offloading processing to the browser side by static content and Vue.js or React is becoming mainstream.
    "Web application implementation" = "API server and front end implementation".

    Go is recommended if you are creating a new web app and want to delve into the knowledge about the mechanism between the browser and the web application server. Once you dig deeper, I think that understanding of the reverse side of the framework will be quicker no matter what framework you use.

  • Answer # 2


    Which language (framework) should be learned considering the future demand?

    If you are thinking about future demand, there is only one conclusion.Anything is fine, start first.

    As the times change, what appears and disappears is constantly changing, and it's no wonder that "a framework that doesn't exist" becomes mainstream five years later.

    The ability to adapt to anythingis the most important factor in walking around the world. If you look at the outline of "Web application based on HTTP", if you wear one, you will not learn so much when you move to another framework.