Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider renaming lowlevel to help avoid confusion towards newcomers #4

Closed
tannergooding opened this issue Feb 5, 2020 · 18 comments
Closed

Comments

@tannergooding
Copy link
Collaborator

@tannergooding tannergooding commented Feb 5, 2020

It has come to my attention that the term lowlevel may be confusing to certain newcomers. Namely, in a majority of professions "high level" means complex and "low level" means simple (and not close to machine code/metal).

To that, I'd like to propose we consider renaming the channel if we feel there is a sufficient alternative. Some of the initial alternatives that were proposed were:

  • lowlevel - Keeping the current name
    • Move #lowlevel to the TOPICS category, it is very topic specific, after all
  • lowlevel-advanced - Using the previous name
  • advanced-lowlevel - Swapping the parts of the name to immediately distinguish it is advanced
  • il-and-interop - Covering two of the most discussed topics
  • codegen-and-interop - Covering two of the most discussed topics but also covering asm, IL, and other forms of codegen
  • baremetal - An alternative also meaning "lowlevel" but possibly less confusing

All of these have some drawback, and I'd be open to hearing alternatives. After a number of users have commented; I'd like to take the most popular and put it towards a vote.

@Tylertron1998

This comment has been minimized.

Copy link

@Tylertron1998 Tylertron1998 commented Feb 5, 2020

I think lowlevel is the most fitting - because that's exactly what it is. il-and-interop and codegen-and-interop are too specific; generally #lowlevel has wider discussion fields then just those specifics.

I don't think the name here is the issue - to give an example: a newcomer might not know the C# compiler is called Roslyn. So one could say #roslyn is confusing too.

I understand that in most professions the meaning of low/high level are swapped compared to programming - but in theory all that having the channel named as such will cause is people asking for clarification - and then thus; learning; that the term 'lowlevel' means complex & down to the barebones.

@tannergooding

This comment has been minimized.

Copy link
Collaborator Author

@tannergooding tannergooding commented Feb 5, 2020

That's fair. Could you elaborate a bit as to which topics you think il-and-interop or codegen-and-interop wouldn't cover?

codegen itself is a fairly broad term and could cover things from expression trees, to C# source code generation, to the IL the compiler produces, or even to the assembly that the JIT produces (which then itself extends to things like HWIntrinsics which are just specialized codgen for the JIT).

@Tylertron1998

This comment has been minimized.

Copy link

@Tylertron1998 Tylertron1998 commented Feb 5, 2020

it isn't so much a case of what it "doesn't" cover - more a case of what it sounds like it only covers. il-and-interop sounds like it only covers well... IL and interop - and the same for codegen-and-interop. in reality, #lowlevel (as it currently stands) is a hub for so many different and low level discussions such as:

  • C/C++
  • interop
  • intrinsics
  • hardware design and implementations
  • compiler optimizations
  • OS APIs
  • different hardware architecture (i.e. CPU vs GPU)

and many, many others. Names which are inclusive of certain topics; imo; sound like restrictions rather then inclusions.

Edit: also, considering the fact the idea that this discussion is to simplify the naming of the channel; codegen/il-and-interop can also be quiet confusing - to someone who doesn't do lowlevel programming much or at all; it isn't easy to tell what fits under those categories.

@tannergooding

This comment has been minimized.

Copy link
Collaborator Author

@tannergooding tannergooding commented Feb 5, 2020

In my mind (which might not be the case for everyone) many of those fall under one of the two:

  • Codegen
    • intrinsics
    • compiler optimizations
  • Interop
    • C/C++
    • OS APIs

Different hardware architectures falls a bit under both, depending on what you are doing, as does hardware design and implementation.

But these are all good points. It would be interesting to see what other people have to say as well and then in a few days we can have a vote.
At least based on the preliminary question I had done in #lowlevel already; there was a good split between "keep the current" and "change it to something else"

@333fred

This comment has been minimized.

Copy link

@333fred 333fred commented Feb 5, 2020

My thoughts on these suggestions:

  1. Honestly fine with me.
  2. Definitely not while we have an #advanced channel, and I'm not thinking that should go away either.
  3. See 2
  4. I'd be ok with this.
  5. I'd be wary of this. Some people might look at codegen and see something that would appropriately belong in #roslyn. Also, the number of T4 questions in the channel would definitely increase.
  6. Eh. I don't have super strong feelings either way, but I think I'd probably prefer keeping #lowlevel

One thing I didn't see in the list is "Move #lowlevel to the TOPICS category." I don't understand why it's in the main category today, given it's a very specific topic and everything else in the main category is a general question channel.

@tannergooding

This comment has been minimized.

Copy link
Collaborator Author

@tannergooding tannergooding commented Feb 5, 2020

One thing I didn't see in the list is "Move #lowlevel to the TOPICS category." I don't understand why it's in the main category today, given it's a very specific topic and everything else in the main category is a general question channel.

This is a great point. I have added it as a sub-bullet under keeping lowlevel, although it could equally apply to any of them if we did decide a rename was in order.

@Tylertron1998

This comment has been minimized.

Copy link

@Tylertron1998 Tylertron1998 commented Feb 5, 2020

not sure if this belongs here or on a new issue; feel free to let me know if not - but the channel description(s) could use a rework; currently:

  • #lowlevel: Low level programming discussion, centred around the very intricate implementation details of the C# language, its speed, quirks and optimisations.
    nothing here that really mentions the CLR; C/C++, etc.

  • #advanced: Discuss more intricate C# details, complex designs or lower level concepts otherwise beyond the beginner levels of programming in C#
    the term 'lower level concepts' seems to mash with the idea of having a seperate channel for these things.

@Pyrobolser

This comment has been minimized.

Copy link

@Pyrobolser Pyrobolser commented Feb 6, 2020

As a newcomer to the Discord myself, I don't think #lowlevel is a bad name. It being some kind of generic term might even help. It's where you ask your low-level programming related questions, you don't need to know anything else about the C# vocabulary to spot that channel.

That being said, I would understand moving this channel to the TOPICS category. By doing so, no need to change the name and it also avoid people who don't know what is lowlevel in this context to get confused. Usually, you notice "beginner/advanced/general-csharp" before you even go down to #lowlevel.

@Tylertron1998

This comment has been minimized.

Copy link

@Tylertron1998 Tylertron1998 commented Feb 6, 2020

+1 for moving it to topics

@AdmiralSnyder

This comment has been minimized.

Copy link

@AdmiralSnyder AdmiralSnyder commented Feb 6, 2020

what about #lowlevel_unsafe ?

@Tylertron1998

This comment has been minimized.

Copy link

@Tylertron1998 Tylertron1998 commented Feb 6, 2020

Lowlevel doesn't have to be unsafe; you could be taking about jit codegen which itself is not unsafe. Plus unsafe is a keyword in the C# language

@AdmiralSnyder

This comment has been minimized.

Copy link

@AdmiralSnyder AdmiralSnyder commented Feb 6, 2020

i like it because it is a c# keyword - one that usually isn't something beginners come upon

@tannergooding

This comment has been minimized.

Copy link
Collaborator Author

@tannergooding tannergooding commented Feb 6, 2020

not sure if this belongs here or on a new issue; feel free to let me know if not - but the channel description(s) could use a rework; currently

It would be great if you could open a new issue for this and provide some suggestions (just so we aren't trying to cover two things in the same issue).

This is mainly about avoiding confusion around newcomers and the description unfortuneatly doesn't play a big impact towards that IMO (mainly because it isn't visible on mobile and I would bet most people don't read them 😄).

@Inzanit Inzanit added the suggestion label Feb 7, 2020
@333fred

This comment has been minimized.

Copy link

@333fred 333fred commented Feb 11, 2020

So what's the next step on this issue?

@SuperBrain

This comment has been minimized.

Copy link

@SuperBrain SuperBrain commented Feb 11, 2020

I suggest keeping it lowlevel as this is a software development community and we should promote a more professional attitude, even with total beginners.

Adding the appropriate channel description should suffice and perhaps creating a tag that outputs the same description in chat would help quickly explaining that to anyone who asks.

@tannergooding

This comment has been minimized.

Copy link
Collaborator Author

@tannergooding tannergooding commented Feb 11, 2020

we should promote a more professional attitude

I'm not sure how lowlevel is "more professional" than any other term.

Adding the appropriate channel description should suffice

The biggest problem here is the description isn't readily available on mobile. Given all of the above, however, it sounds like most people think it should stay lowlevel and it should just be moved under the Topics grouping.

@tannergooding

This comment has been minimized.

Copy link
Collaborator Author

@tannergooding tannergooding commented Feb 13, 2020

Ok, seems this is down to roughly four options and I think I see the winner already...

Please react with one of the following to indicate which you would prefer (I wish GitHub had numbers for reactions):
❤️ - Keep the name, keep under C# Development
👀 - Keep the name, move under Topics
🎉 - Rename, keep keep under C# Development
🚀 - Rename, move under Topics

I'll keep this open for 48 hours and then will move forward from there.
If enough votes for rename occur, we can have a separate vote on the name.

@Inzanit

This comment has been minimized.

Copy link
Member

@Inzanit Inzanit commented Feb 16, 2020

Conclusion: the channel will retain its name but move under the Topics category.

@Inzanit Inzanit closed this Feb 16, 2020
@Inzanit Inzanit added actioned and removed under-review labels Feb 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
7 participants
You can’t perform that action at this time.