惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
S
Securelist
P
Proofpoint News Feed
H
Help Net Security
S
Schneier on Security
T
Tenable Blog
C
Cisco Blogs
S
Security @ Cisco Blogs
博客园 - 司徒正美
博客园 - 叶小钗
Cisco Talos Blog
Cisco Talos Blog
Google DeepMind News
Google DeepMind News
C
Cybersecurity and Infrastructure Security Agency CISA
Google Online Security Blog
Google Online Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News: Ask HN
Hacker News: Ask HN
NISL@THU
NISL@THU
云风的 BLOG
云风的 BLOG
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Jina AI
Jina AI
腾讯CDC
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog
Vercel News
Vercel News
小众软件
小众软件
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
雷峰网
雷峰网
Forbes - Security
Forbes - Security
The Hacker News
The Hacker News
博客园 - 聂微东
F
Full Disclosure
量子位
Scott Helme
Scott Helme
宝玉的分享
宝玉的分享
A
About on SuperTechFans
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Schneier on Security
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
K
Kaspersky official blog
AI
AI
SecWiki News
SecWiki News
Webroot Blog
Webroot Blog
Martin Fowler
Martin Fowler

ValeriaVG

Agentic Development Survival Guide Simplicity Police The sunset of Arrogance as a Service How do I delegate when I can do it faster myself? Implementing custom Calendar component Plug & Play Modular Architecture for Scalable and Maintainable Apps ES Modules & Import Maps: Back to the Future Me & React: 5 Years in 15 Minutes How Build a Web App in 11 Minutes and Fall in Love With Sveltekit Master Git in 7 Minutes Crc 32 Checksum in Wasm and Raw Js Tutorial and Benchmark Master Binary in Five Minutes Five Pro Tips to Master Promises in Js How to Use Custom Files as Modules in Nodejs How to Do Magic With Numbers 5 Ways to Use Redis in Your Next Project
10 Reasons NOT to Use Go for Your Next Project
Valeria Viana Gusmao · 2021-12-06 · via ValeriaVG

They say Go is the language of the web. Of course, with Google backing it up it sounds very objective! But is it as good as they say? I can think of cases where it wouldn't be a good fit

1. You need your app to compile for at least an hour so you can get a break

Totally relatable. With Go compile speed you won't be able to even stand up from your chair, let alone grab a coffee! No, really, do they even compile it all?! I had TypeScript taking longer to check a small project than go run!

2. You love code puzzles

With Go, it's really hard to write frustrating code. No classes, no multiple inheritances, no overriding. Heck, there is only one way to do loops! It's almost impossible to create a great puzzling labyrinth of dependencies so that your team could enjoy a nice challenge every once in a while. Who would settle for a tool like that?!

3. You hate default values

In Go, every variable always has a value. An integer would be created with a 0, a string would be an empty string and so on. Why would you leave JavaScript with its variety of null, undefined and empty values for such a limited language?!

4. You don't like to handle errors

While Go programs can panic, the Go way of handling errors is to return them as a last return value and handle them explicitly or explicitly ignore them. Every! Time! Ugh! Where's the fun in it? So much boilerplate and so little debugging! Don't you feel the joy every time an exception is thrown somewhere inside of a dozen try{}catch{} wrappers?

5. You are a true patriot of your favourite language

Those devs these days have no loyalty, am I right? They hop from one mainstream train to another! I think they are just lazy! Back in the day, we were writing code in Notepad without any checks and we've done just fine. Nowadays some program does half of the programmer's job, no one even needs to remember the proper syntax or care about formatting. And Go is the worst: it won't even compile with an unused variable!

6. You like to watch spinners

Go is fast and so are the requests to API, written in Go. So fast that you'll barely see a spinner in the client application! Are we supposed to set a timeout now or what? How would the users enjoy our unique spinner designs if they can't see them?!

7. Your server is running on Windows'98

I don't know how you guys put up with it. Go won't even launch on my dedicated Windows'98 server! It was with me my whole career and now I'm supposed to abandon it?! For what? Your cloud servers have no personality! You won't even notice if it'd be replaced by another machine. And Go is all about the cloud!

8. Your hosting provider only supports PHP & MySQL

Who do you call a dinosaur?! This technology has withstood the test of time and no new fancy tech can say that. Go was released just the other day, in 2009, while PHP dates back to 1995!

9. Your application requires full control over memory

Jokes aside, everything comes at a price and Go is great for a lot of things, but Go was intentionally created "less memory safe". And as long as you run your application in a dedicated cloud container it will not become an issue, but if you're dealing with strict security requirements for a consumer application, you are probably better off with Rust or another system language.

10. You are writing embedded software or an OS

Go will only compile to a supported platform. You can't write a custom operational system in Go or run it on bare metal. Once again, Rust could back you up here since Go is simply not made for it.

I've run out of reasons not to write in Go. I love Rust, but Go is almost as fast yet much, much simpler to learn and write in. I love Node.js + TypeScript, but I love performance and runtime type-checks more.

For the next CLI or API, I'm going with Go. What about you?