{"action":"created","issue":{"url":"https://api.github.com/repos/eclipse/ceylon/issues/7273","repository_url":"https://api.github.com/repos/eclipse/ceylon","labels_url":"https://api.github.com/repos/eclipse/ceylon/issues/7273/labels{/name}","comments_url":"https://api.github.com/repos/eclipse/ceylon/issues/7273/comments","events_url":"https://api.github.com/repos/eclipse/ceylon/issues/7273/events","html_url":"https://github.com/eclipse/ceylon/issues/7273","id":262612695,"number":7273,"title":"package/module name recommendation is too heavy-handed","user":{"login":"lucaswerkmeister","id":2346599,"avatar_url":"https://avatars0.githubusercontent.com/u/2346599?v=4","gravatar_id":"","url":"https://api.github.com/users/lucaswerkmeister","html_url":"https://github.com/lucaswerkmeister","followers_url":"https://api.github.com/users/lucaswerkmeister/followers","following_url":"https://api.github.com/users/lucaswerkmeister/following{/other_user}","gists_url":"https://api.github.com/users/lucaswerkmeister/gists{/gist_id}","starred_url":"https://api.github.com/users/lucaswerkmeister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucaswerkmeister/subscriptions","organizations_url":"https://api.github.com/users/lucaswerkmeister/orgs","repos_url":"https://api.github.com/users/lucaswerkmeister/repos","events_url":"https://api.github.com/users/lucaswerkmeister/events{/privacy}","received_events_url":"https://api.github.com/users/lucaswerkmeister/received_events","type":"User","site_admin":false},"labels":[{"id":286511957,"url":"https://api.github.com/repos/eclipse/ceylon/labels/c-basic%20language","name":"c-basic language","color":"02d7e1","default":false},{"id":286512025,"url":"https://api.github.com/repos/eclipse/ceylon/labels/t-discussion","name":"t-discussion","color":"006b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2017-10-03T22:38:05Z","updated_at":"2018-04-17T17:34:02Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"The compiler currently produces four warnings in `ceylon.ast.samples`, about the package names `ceylon.ast.samples.turingMachine`, `….bodyReturnRewrite`, `….completeCompilationUnit`, and `….removeExtraInfoVisitor`:\r\n\r\n> warning: all-lowercase ASCII package names are recommended\r\n\r\nI also have some subpackages triggering this warning in other projects.\r\n\r\nSince the compiler’s policy bans both `camelCase` and `snake_case`, I see no option left to “correct” those package names, other than making them unreadable (`bodyreturnrewrite`). As such, I think this restriction is much too heavy-handed. I also don’t understand the rationale for it – if, as @jvasileff says, it’s just taken from Java, where it’s apparently supposed to prevent conflicts with class/interface names¹, then I think it makes no sense at all in Ceylon, which also features (lowercase) toplevel functions and objects.\r\n\r\n¹ John also argues that this policy doesn’t make sense in Java either, since the initial case should be enough to distinguish between a `Class` and a `package`."},"comment":{"url":"https://api.github.com/repos/eclipse/ceylon/issues/comments/382077844","html_url":"https://github.com/eclipse/ceylon/issues/7273#issuecomment-382077844","issue_url":"https://api.github.com/repos/eclipse/ceylon/issues/7273","id":382077844,"user":{"login":"Zambonifofex","id":12286722,"avatar_url":"https://avatars1.githubusercontent.com/u/12286722?v=4","gravatar_id":"","url":"https://api.github.com/users/Zambonifofex","html_url":"https://github.com/Zambonifofex","followers_url":"https://api.github.com/users/Zambonifofex/followers","following_url":"https://api.github.com/users/Zambonifofex/following{/other_user}","gists_url":"https://api.github.com/users/Zambonifofex/gists{/gist_id}","starred_url":"https://api.github.com/users/Zambonifofex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zambonifofex/subscriptions","organizations_url":"https://api.github.com/users/Zambonifofex/orgs","repos_url":"https://api.github.com/users/Zambonifofex/repos","events_url":"https://api.github.com/users/Zambonifofex/events{/privacy}","received_events_url":"https://api.github.com/users/Zambonifofex/received_events","type":"User","site_admin":false},"created_at":"2018-04-17T17:34:02Z","updated_at":"2018-04-17T17:34:02Z","author_association":"CONTRIBUTOR","body":"By the way, it’s interesting to note that [Oracle’s Java tutorial says that, when converting a domain to a package name, hyphens should be converted to underscores][Java Tutorial].\r\n\r\nAdditionally, [Google’s style guides for Java say that multiple words should simply be concatenated without underscores or different casing][Google Style Guide].\r\n\r\n[Java Tutorial]: https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html\r\n\r\n[Google Style Guide]: https://google.github.io/styleguide/javaguide.html#s5.2.1-package-names\r\n\r\nI myself would really hate to see camel case being used for packages/modules. Not only for the reasons @gavinking mentioned, but also because I’m *really* not used to seeing uppercase letters in package identifiers. Although I know it’s subjective, I just think that it feels off.\r\n\r\nAdditionally, I generally prefer underscores over camel‐case; if I could choose a convention for a language, I’d definitely choose underscores.\r\n\r\nMy list for naming package segments is, in order of preference is:\r\n\r\n+ `snake_case_for_the_win`\r\n+ `nocasewhatsoever`\r\n+ `camelCaseKindaSucks`"}}
{"actor":{"display_login":"Zambonifofex"}}