Conversation started Mar 30, 2023 at 16:51.
Mar 30, 2023 16:51
@pxeger using is weird
Usually you use imperative verbs not present tense ones
use, do, let, import, etc.
It makes sense because using doesn't do anything
It's just a assertion on the environment
Yeah it does, it says to use the definition of a thing from elsewhere
No, the other things is used no matter if you add a "using" or not
All it does is say you assume it's in scope
use isn't a descriptive statement about what you're using, it's a command says which thing for the compiler/interpreter to use in certain places
No it's a descriptive statement, you can use the thing without a using statement
You just need to type the full path
Mar 30, 2023 16:55
No you can't
Exactly
You literally can
You need to say which to full path to...*use*
Not which you are using
You are using things from that path
But you aren't unless you specify that, and it's not being specified
Unlike for example "import" which would actually run the module
Using doesn't do anything
Mar 30, 2023 16:56
^
It does tho. It disambiguates which of a thing you're using.
also i wanted using so i can say continue using
That's a declaration, not a action
You're reassigning something to a different name. That is an action
but thats not how it works
Mar 30, 2023 16:56
That's like arguing let isn't an action and should be letting
@mousetail In what sense is a declaration not an action?
you are saying that "the symbols from path are available in this file"
The state is the same before and after
fn is also a declaration
@Seggan That's not what use does
Mar 30, 2023 16:57
while def from python is a action
@RydwolfPrograms thats what it does in rol :P
Same in rust
No, in Rust it doesn't specify where to find the thing in the filesystem whatsoever
It just tells the compiler "I am using this name as a shorthand for this full name"
Would you call type a "declaration" too? How far does it go?
Yep
That's a declartion
See this:
Rust, 45 bytes: [`fn main() {
io::stdout();
}

use std::io;`](https://ato.pxeger.com/run?1=m72kqLS4ZMGCpaUlaboWN3XT8hRyEzPzNDQVqrkUgCAz38qquCQlv7REQ9Oaq5aLq7Q4VQEoYGWVmW8N0QTVCzMDAA)
And a declaration..._is an action_
I am telling the compiler something
Mar 30, 2023 16:59
No
Telling the compiler something is not a action
Okay, telling it to do something
use doesn't do anything
Then delete it and see if your code runs
it does something or it wouldn't exist
Mar 30, 2023 17:00
You just need to change the code a little and it does the same thing
binary is exactly the same
You're just drawing a meaningless distinction between things that are one thing and things that are a different thing
@RydwolfPrograms but it doesnt do anything during runtime
@mousetail That's true of all sorts of things
You criticized the word
@RydwolfPrograms Most of those things are declarations, not actions
Plenty of let statements can be optimized out. Should let be letting?
Mar 30, 2023 17:01
Let is a declaration
not a action
So you agree it should be letting?
no because the assignment that comes afterwards is a action
let does something at runtime, using doesnt
let x; is a bit odd grammar but let x = 5 makes sense
and it does do something at runtime
So...you're drawing a distinction between "let" and "the thing that comes after it"?
Mar 30, 2023 17:02
it's both a declaration and a action I guess
I mean if you do that every keyword is a "declaration" about what comes after it
@mousetail This whole declaration vs. action dichotomy is pointless
Yes
But it's why use is use
and that makes 100% sense
@Seggan Does it tho? Your code doesn't actually "let" anything equal anything. Your code at runtime doesn't contain any variables
let is both a declaration and a action, Seggan is right
@RydwolfPrograms but it does. it possibly changes (depending on optimizations) some memory/registers during runtime
Mar 30, 2023 17:04
@mousetail The whole point of this argument is use vs. using and I'm arguing for use. If you also think it should be use, why are we even discussing this?
IDK
I like use because it's shorter, not because it's correct
use is an imperative; it implies the compiler is doing something. An action.
It doesn't do anything
Declaring something necessarily causes the compiler to do something
Mar 30, 2023 17:05
Otherwise it would be useless
the IL is exactly the same
But the compiler still does something
Wtf are you on about, yes, it does something differently depending on whether the use exists or not
It doesn't do anything
Mar 30, 2023 17:06
If I delete a use and change nothing else, the code does not work
You need to use absolute paths
That's not doing anything
Thus, the use changes something. And it's not changing me, and it's not changing the rest of the world, it's changing how the compiler understands the code
It doesn't change the code at all
@mousetail But what if I don't?
The use is necessary, right?
The compiler doesn't care
Mar 30, 2023 17:07
It sure does, because otherwise, it errors
Yes but the exact same way as with the use
No? If the use exists it no longer errors
Not if the thing you referenced doesn't exist
Assume it does
That's not what we're talking about here
Then both with and wihout use it works
Mar 30, 2023 17:09
No it doesn't, because without use, it doesn't know which io is which
is it std::io? or tokio::io?
it uses the exact same import logic
just you need to pass the correct path
but that's not doing anything
which is different
AND WHAT IF I FUCKING DON'T
The use changes things
that doesn't count as an action
because the compiler does nothing
It does though, because everything is an action
and the program does nothing
no it's not
Mar 30, 2023 17:10
To do is to act. They are synonyms.
it's just being
not acting
But the compiler has to do in order for the library to be
that's like saying a string in a config file is an action
of course it's not
@RydwolfPrograms are text based macros the compiler doing something? bc this is technically what use does
 
Conversation ended Mar 30, 2023 at 17:11.