你用过最丑的编程语言是哪个？
golang。 golang的类型设计有根本缺陷:nil。golang不使用nil就无法表示optional,使用nil就意味着使用指针和interface{}，不仅不方便而且陷入到java曾经遇到的NullPointerException陷阱。这种错误的设计直接导致了golang做序列化和反序列化时表现非常糟糕：比如你无法区分一个bool类型的成员在反序列化之前究竟是不存在，还是是false——bool类型的零值是false。 golang的首字母大小写规则与常用的命名规范不相容，典型例子就是一般的成员命名都是首字母小写，这导致golang的项目里最常见的代码之一就是Field type `json:"field"`。我在V2EX上看见有人以“什么语言都要配置这样的映射作为借口”来搪塞，只能说这反倒暴露出他自己的无知了。 golang把map作为内置类型的做法非常值得商榷。首先为什么偏偏是map？为什么就没有set,list（链表）甚至于queue和stack？所以golang说起来大道至简，实际上处处偏见。尤其是set,明明可以用map简单地包装，但golang就是不包装，结果让114个人弄出514个set。而且在语法层面内置map意味着以后扩展非常困难，且带来了和非原生map语法不一致的问题。 还有别的很多问题，但是这里就不多赘述了。以上的这些问题都是非常影响使用，甚至影响程序正确性的问题，所以golang是最丑的编程语言。