Hacker News new | ask | show | jobs
by lobster_johnson 3067 days ago
I'm not overly familiar with Pony, but I'm curious, and the code looks nice and clean. One oddity though; so many of the identifiers have "Kafka" in them. Does Pony not have module namespacing?
1 comments

It does.

But the point you raise...

"Should this be HTTPLogger or Logger given that it is in the HTTP package"

and variations thereof is something that has been a point of contention at almost every job I've been at.

by default with Pony if you use a package, you'll have the classes imported directory into your namespace so...

HTTPLogger is more clear in that case, but you could use a qualified import and then have something like http.Logger.

It's a matter of preference.

I understand, but the sheer amount of duplication is rather overwhelming. Also, a lot of it seems like implementation details related to the API/protocol and so on that don't need this kind of naming uniqueness.

Go solves this by never dumping namespaces into another namespace: You have http.Request, and that's it, which is both unambiguous and self-explanatory. Name clashes can occur (e.g. packages have the same name, or a local variable has the same name), but that's rare.