Hello. Although I have a question about Go, I will briefly tell you my path as a developer. Oh, and also, to be completely frank, I will mention: I am 16 years old. I became interested in programming at the age of 9, and since then I can not tear myself away. The fact is that I'm not one of those "shkoloty" who clip sites one by one on WordPress, or write code in php + html. I went this way: pascal (three months, helped me with the basics of programming) -> html, css, php -> c (three years ago) -> c ++ (two months after the start of learning C, I decided that it would be more expedient to learn pluses) -> java (after I learned the basics of OOP; in Java, after 7 months I wanted to get acquainted with EE, I immediately didn’t want to study further at all; it was very cumbersome) -> php -> python (plus a little Django) -> php (with python, things were not going very well, but it took to write a testing system for two and a half thousand lines of code for the school) -> RoR (the framework is amazing, but stopped considering it because: performance problems, it is popular now, but this won't last forever, but I'm still learning) -> Play framework + Scala (everything went very well, another web project until it got to the bottom of the rock; although I liked the language, but: it's too complicated – this time, there are too many possibilities in it, you have to choose, you don’t know which one is better; about problems with concurrency compared to go) -> and finally, go. I liked him right away.
And now, after two and a half months of studying Go, I have a question: I want to write a large-scale web project. I will not write it alone, but only I will be responsible for the backend. In any case, at first. The project is completely new, it has no analogues. I will not disclose the idea, I will just say that there will be frequent database queries. Information, at least at first, will be only textual, and a few pictures. But there will be many queries to the database. I could write it in PHP much faster than in Go, but I don’t just want to write a website, I want to build a large-scale web project, as if it will be used by millions of people (although this is unlikely to happen; but there will be experience). I want to divide web applications into 4 layers, well, there is a front end, application logic , back end, datastorage. Question: Can I use Golang as a server language for this purpose? Will it give me great performance, and will there be problems with missing libraries or language features, which will make it impossible to continue writing the project?
What advice can you give me on building a highload service? And which database is better to use: Sql or nosql. I know that postgresql was used for the hash, but you never know. There are very good drivers for nosql, for example Mgo, and I saw for radish.
It is very important for me to know your opinion.
Can I use Golang as a server language for this purpose?
As well as you can, Go is designed for this.
Will it give me great performance
It only depends on you, how to write and "float".
will there be problems with the lack of libraries or language features
I even find it difficult to imagine what you may need that cannot be implemented in Go? But here is a small selection, it is quite possible that some of this will be useful to you.