Why I Picked Up Go After 20 Years of Web Development
Preface
I’ve been a web developer for roughly 20 years, starting with Macromedia Flash and Dreamweaver. My journey began with PHP and jQuery, moving through Ruby, Python, Node, and Elixir. While JavaScript/TypeScript is my favorite for its syntax and ecosystem, I know it’s not always the best tool.
Recently, I’ve seen Go (Golang) heralded for its performance and Developer Experience (DX).
Why Go?
Go was designed at Google in 2007 to improve programming productivity in an era of multicore, networked machines and large codebases.
Designed partially out of frustration with C++, Go offers a robust standard library, static typing with excellent IDE support, and no VM requirement. It excels in networking and CLI applications.
Why Go?
Go was designed at Google in 2007 to improve programming productivity in an era of multicore, networked machines and large codebases.
Designed partially out of frustration with C++, Go offers a robust standard library, static typing with excellent IDE support, and no VM requirement. It excels in networking and CLI applications.
The Plan: Rebuilding Network Mapper
After completing the website walkthrough, I found Go’s syntax readable and intuitive. To accelerate my learning, I used this GitHub repo which highlights syntax differences for Node.js developers.
I plan to rewrite my network-mapper app in Go. The original JavaScript application (Fastify + Solid.js) struggled with performance during nmap scans. Go should resolve these issues.
- Frontend: Solid.js (switching to Kobalte for accessible components).
- Database: Switching from PostgreSQL to SQLite for portability.
- Backend: Echo framework.
- Deployment: Embedded Vite SPA within a single Go binary (using this guide).
I will share the GitHub repo once I make more progress. If you are a Node developer curious about Go, the golang-for-nodejs-developers cheatsheet is the fastest on-ramp I have found.