JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.59k stars 5.48k forks source link

Rename parse(::String) #24349

Closed KristofferC closed 6 years ago

KristofferC commented 6 years ago

I keep seeing new users (on Discourse) accidentally using e.g. parse("1") to go from a String to a literal. This is a few hundred times slower than parse(Int, "1") but in most cases, it works. I think that the function to parse source code should be named differently to avoid this. I also think it is ok if it has a slightly uglier name, e.g. parse_sourcecode just to be clear about what it does.


x-ref: see https://github.com/JuliaLang/julia/pull/24455 for the resolution.

yuyichao commented 6 years ago

Also import is also independent of extending and what you are asking for is local extending, which is a self contradicting concept

StefanKarpinski commented 6 years ago

@chakravala, while your enthusiasm is much appreciated, it's generally a good idea to get some implementation experience under your belt before redesigning how namespaces, generic functions, imports and exports behave. Until you get some hands on experience with how the Julia compiler actually works, this will continue to be a frustrating and less-than-fruitful interaction all around.

yuyichao commented 6 years ago

but I just like to keep the door really wide open into the space of infinite possibilities and ideas, the super-position of many different universes and realities is stacked inside, resolution of any issue is of course an act of wavefunction collapse, sometimes preceded by a crescendo of infinite possibilities

That is not a good way of solving problems without a good understanding of the system. (And I really hate when people use quantum mechanical concepts incorrectly like this.) There's absolutely no "infinite possibilities" in practice. You can of course set your own goal that's incompatible with everything existing in the system and claim that you can find a solution ignoring every constraint out there. It's likely that's theoritical doable when you ignore all the important things but that's not the same theory anymore and in practice it's basically the same as saying you can just rewrite everything so that it gives you c++ semantics.

yuyichao commented 6 years ago

Clearly you do not have any appreciation for the imagination of different possibilities

I do, but I have more appreciation on respecting the constraint of existing system and rule out solutions that are too incompatible with them. At no point did anyone said you can't think about those and the only thing we are pointing out is how incompatible your solution is with the contraint that you didn't know about because of your lack of understanding of how things actually works. No one would expect you to know immediately how things works but as @StefanKarpinski said, before you do, there are no chance of having a useful discussion about your idea since there's no other way we can explain why it doesn't work without constantly referring to how things actually works.

and all of your condescending personal attacks really add nothing to the discussion, only demonstrating a closed mind.

It is personally because it's all about lack of understanding of existing system. It may be condescending but that's because it's an attempt to describe the issue in a different and much more abstract way since it was replying to an abstract statement. It's not an attack though if you are calling us closed mind I don't really feel sorry about it anymore.

StefanKarpinski commented 6 years ago

Folks, let's stop this conversation right here, please, as it has become non-constructive. Any more replies not narrowly focused on the topic at hand – i.e. what to rename parse(::String) to – will be deleted and if necessary, the thread will be locked.