HACKER Q&A
📣 tomerbd

Does Go has webframework like Hilla/Vaadin/RoR on Golang?


I'm going to need to align to a company's language Golang mostly backend. Some work would be to create admin UI interfaces, I started looking for its web frameworks, but I really wonder and could not find yet if it has something like RoR/Vaadin/Hilla ? If so, do you use it?


  👤 simne Accepted Answer ✓
I think, Go is just not suited for web. It is mostly system level platform, and now it is very young, so sure, most forces are at system direction.

For example, I have hear many times, about large investments (millions) into C++ web frameworks, or even made some really large backends in C++ (evernote). And they mostly have not much success, because exists much more suited platforms for web.

You sure could argue that Go is fast, and i will absolutely agree - Go is very good in its main niches, but in real life web dev, speed of language usually is not MOST limiting factor - mostly limiting db, file access, system calls.

Imagine, how large should be project (or how special), to include db, fs, sc inside Go, to avoid those slow things so much, so speed of lang itself will matter.

BTW, for slow dynamic languages, people have success running Python Django on Cython, which is compiled to native code via C, and it is very fast, and basically, Cython is just compiled Python, most code work without significant changes.

So sorry for many words. To be constructive, if I will be in place, where have to find Golang web framework, I will try to find viable C++ web framework, and make bindings, so in beginning will replace some modules with Go modules, and in long time perspective, rewrite all C++ code to Go. All other solutions, I could imagine, are too stranger for Go.


👤 umen
I was looking also , there is not . there are some mostlly back end orinted framework , none are Dominate . Gorilla , gin , che . fiber , echo .. and many more

👤 simne
BTW I don't think, write micro framework is too hard. From my view (I seen really many things, tried nearly all wide known web frameworks), all worthy frameworks have similar parts, and most of parts are easy to get ready made and to bind to your project.

Most important difference, is that Ruby itself could been used as script language for declarations; Python is less suited for declarations, but also possible; most usable functional languages (Python is semi-functional), or languages with very powerful preprocessor (like most functional are); json is just subset of javascript.

But for C-like languages (Java, C#, Objective-C, etc), need to make compiler or interpreter of Domain Specific Language (lua, or some intermediates), which will be used to define system structure, or use some sort of XML/json/yml or binary editor, to define structure (as in Android and in Ios).

For example, Java Spring use boot assembler, specially created to parse declarative configurations of framework, and to apply some logic.


👤 jakobwellick