Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My biggest annoyance is that the Go language is full of implicit conventions/behaviors:

  - interface implementation is implicit
  - "export" is based on the function/type/member name (first letter uppercase)
  - private functions/types/members are private within a package not a single file
  - ...
This is painful because when you read a single file, you need to know about the rest of the code. This makes it very hard to get started with a new codebase, especially a huge codebase.

The other annoyances I have are just petty, like "if err != nil", zero-values, or the fact that VS Code still does not support Go projects in subdirectories (I like to open my whole "devel" folder).



> interface implementation is implicit

Fun fact: this is true for python too! https://stackoverflow.com/questions/40764347/python-subclass...


> VS Code still does not support Go projects in subdirectories

This is annoying, but there is a workaround: add each folder with a go.mod file individually starting with the most nested ones first. So add each project separately, then add the root dir.


Unpractical for me, my "devel" folder is organized as follow:

  |-+ orga (github, gitlab, other)
  | |-+ domain (infra, business, research, ...)
  | | |-+ repo-name
VS Code do not support hierarchies of projects in a workspace, so I would just have a huge list of `project-name` where project-name would be manually renamed to `orga/domain/repo-name`.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: