Erik Engheim
1 min readMay 3, 2021

--

Why reinvent the Go wheel? Go already has a well established convention for applications which works well and is widely used: https://github.com/golang-standards/project-layout

I saw the same as a Swift and Objective-C developer. Java guys would come in with whatever practice was common in Java and poison Objective-C/Swift projects with it.

Every language and community has their own practices and conventions tailored to that technology and preferences in that community. It is frankly somewhat arrogant to try to impose the habits of a different programming community on a new one.

Go, Swift, Python and many other languages tend to use a much more shallow structure than Java and C#. And this is preferable from an ergonomics and UX point of view. Deep nesting is simply not userfriendly: https://www.nngroup.com/articles/flat-vs-deep-hierarchy/

The Zen of Python even explicitly advice against it: Flat is better than nested.

Go follows many similar philosophies to Python. And okay this may come across as subjective and over opiniated but in my view Java coventions and practices are just not very healthy. They tend to overengineer and overcomplicate even the most simple thing. I don't think Java is a good community to take any inspiration from.

The times I have had to work with Java, I am just floored by how complicated people make things in the Java world.

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

Responses (1)