Hi Everyone,
At our company, we have an application called POS (Point of Sale), which is responsible for performing customer transactions. To visualize it, think of the billing system at a supermarket or convenience store, where items are scanned, discounts are applied, and payments are processed. Our current POS is built using a legacy programming language, and management is now looking to rewrite it using modern technologies.
As part of this initiative, we’re evaluating various programming languages, and Go (Golang) is one of the options under consideration.
The existing POS is a monolithic Windows-based application, and we aim to modularize it into individual services, potentially following a microservices architecture. Based on my research, Go appears to be well-suited for:
- Backend development
- Building microservices
- Writing device drivers and performing hardware integrations
However, Go is not widely recommended for UI development, primarily due to limited mature libraries and ecosystem support for creating rich desktop interfaces.
I’d like to gather your input on the following:
- Is Go a viable choice for building a POS application end-to-end, including the UI?
- If not, what language or tech stack would you recommend for developing a modern, maintainable POS system?
Since we are starting from scratch, feel free to suggest cross-platform or web-based solutions as well, beyond just Windows-based development.
Looking forward to your thoughts and suggestions.
Hi, I have an old .NET app installed as kiosk app. So I am think to migrate them to go and have the same questions that you have now. I googles and there is a many UI libraries can be used with Go. The most used are Fyne Wails and Gio and other (just google “UI golang libraries”). I think you would need to evaluate them to select the most appropiate for you
Hello,
for the UI … really depends on your needs/constraints.
If you need a standalone app (a UI app that does also the BE part), I can suggest:
For a client/server application I can suggest to use Go for the backed and a Web Application (Angular, React, Vue, …) for the UI.
To make the deployment simple you can also embed the UI app in the backend executable
I’ve done some research, and based on everything I’ve found so far, Go is generally not recommended for UI development. The UI ecosystem for Go is still immature and lacks the level of community support and tooling typically expected for building production-grade interfaces.
Given that this isn’t a traditional client-server setup and our intention is to run both the UI and backend on the same machine, would you still recommend using frontend frameworks like Angular or React?
Additionally, there has been a counter-suggestion to use C# instead of Go for developing the POS application. I’d appreciate your thoughts on that as well—especially in the context of building a full-featured POS system.
Thanks,
Madhusudan
Interesting and good because there is a lot of options available. I think a web UI could be easier to build because there is a lot of tools, frameworks and can be tested outside the kiosk device. In this case Wails fits best to use go for development your UI.
Said this, it seems Javascript could do the trick too using for example Electron. C# also offers a good option if you are .NET oriented developer.
In my case the application was written in .NET and C# and connects with a Web API. My problem is we need to install the runtime for .NET and the kiosk offers a limited hardware but until now it is working fine.
So if you want to use Go as base tool, there is a lot of UI libraries, web based and native components (QT for example). Go is a excellent choice to develop your backend code