[02:36:52] <dash> won't have the symbol clash issues, has an object-space abstraction that might help
[02:37:29] <kayhayen> isn't CPython2.7 compatible, and how good is it at Python3 already?
[02:38:24] <kayhayen> But honestly, I don't want to consider that route at all. What I care about, is how feasible it will be to plug CPython2.7 based functions and objects into CPython3.x
[02:38:42] <kayhayen> And how much changes it will take to the CPython code.
[02:39:02] <kayhayen> I have positive experience with my compiled objects in Nuitka, they integrate very well.
[02:39:52] <kayhayen> To me, it's basically about loading the bytecode interpreter of Python2 into the Python3 process, and having wraping objects that proxy stuff.
[02:40:22] <kayhayen> The different "dict" implementations probably will be giving the hard times there.
[02:41:58] <kayhayen> also shared libraries might hurt a bit, as they will not expect to be loaded more than once, and say both Python2 and Python3 modules use their own lxml, that may collide.
[02:58:32] <dash> the other idea would be to just ignore python 3 as a project entirely
[02:58:39] <dash> and port its useful parts to python 2.
[02:59:21] <kayhayen> you mean like porting yield from syntax and stuff?
[03:02:39] <kayhayen> but that's not going to be source compatible and solve the fork issue, so why bother.
[03:04:13] <dash> what do you mean "be source compatible"?
[03:04:26] <dash> what would the incompatibility be
[03:09:06] <kayhayen> unicode, bytes, print statements, dictionary run time behavior, stdlib names
[03:09:52] <kayhayen> i mean, to the people who are on Python2.7, the difficult part is not to change the syntax, but the ability to execute old code unchanged.
[03:10:42] <kayhayen> for new syntax, use new Python, simple as that. What you propose means to abandon Python3, which I don't see a point in.
[03:11:37] <kayhayen> Recently on planet python, people were pressed to name annoyances of python not fixed in Python3. Except for unicode not being done in a sane way, I couldn't name stuff.
[03:25:28] <dash> most of the problems I see in python can't be fixed
[03:25:52] <dash> without making a rather different language
[03:26:14] <dash> so there's no value in making an incompatible language that keeps those problems; might as well keep compatibility
[03:27:15] <eriknw> dash, can you be more specific? what problems?
[03:29:07] <eriknw> the target isn't necessarily a path to Python 3.4. If python2 is improved incrementally in a way that python3 should also be improved, then the trajectory of nearest convergence between python 2 and 3 will be a later python 3 version
[03:30:45] <dash> eriknw: lack of encapsulation, mutable module objects, bad concurrency story, stdlib full of tools that should be avoided
[03:30:51] <kayhayen> to me, it would be OK if I could say "from python3 import python3_module_name" and "from python2 import python2_module_name"
[03:31:24] <dash> eriknw: presence of inheritance and classes, and poor support for message forwarding, are kind of minuses to me as well
[03:34:10] <kayhayen> Mercurial provides an __import__ that wraps every loaded module, just a bit of code.
[03:34:19] <eriknw> regarding mutable objects, Python is a language for "consenting adults". Just because it's probably not a good idea, it's up to the user (or library developer) to decide
[03:34:23] <dash> tos9: but yeah if you had a ruby/smalltalk style doesNotUnderstand method forwarding would be convenient
[03:34:28] <kayhayen> And it's fairly easy to make these wrappers disallow writes.
[03:34:39] <dash> eriknw: what you mean is "python is for small programs"
[03:34:45] <eriknw> many modules have used mutability responsibly
[03:34:48] <tos9> dash: where you marked who did understand how?
[03:35:21] <dash> eriknw: I want to work on large programs, and I do
[03:35:25] <eriknw> dash, not at all. I've created large applications taht get deployed in the field. If the hardware breaks, it's hella-expensive to send a technician out there
[03:35:48] <dash> eriknw: and it's completely poisonous to maintainability to allow modification of modules
[03:36:03] <eriknw> yeah, dash, and I also used the ABC module to ensure specific interfaces for classes are adhered to
[03:39:29] <dash> can be seen and modified by everything
[03:39:53] <kayhayen> so, I suppose, you have no reason to use Python, do you. This is honestly confused. But why use Python when we want it to be like say Ada.
[03:40:13] <dash> kayhayen: i use python because there's tons of useful libraries written in python
[03:40:20] <dash> i don't have to like python to benefit from it :)
[03:55:36] <dash> python has many behaviors that discourage readability though and those are what most of my complaints are about. so I am hoping for a better language in that regard someday...
[03:56:34] <dash> meanwhile, python 3 addresses none of them, so people who say python 3 is "inevitable" or "the future" are telling me that my concerns aren't real and that the code I've written isn't valuable to them
[03:56:39] <kayhayen> no, that duck typing, monkey patching, meta classes, and all, is part of the deal.
[03:59:54] <dash> and this is why people are developing new languages to replace C++ :)
[04:00:14] <kayhayen> We review our code for adherence to it, and so the ability comes in handy, occasionally, but you don't do monkey patching for the final solution.
[04:00:19] <dash> kayhayen: what this means is that you need very disciplined programmers on your projects
[04:00:31] <dash> kayhayen: and that training becomes expensive
[04:00:48] <dash> kayhayen: because you have to teach your new programmers how to ignore most of the code examples they find on the internet
[04:01:30] <dash> If you have a facility or a library in your language that's always bad, why keep it?
[04:01:36] <kayhayen> these rules are really that much of a deal to programmers, are they.
[04:01:50] <dash> (the reason you keep it, of course, is because you have old bad code you need to run)
[04:02:09] <dash> If you're designing a new language, why not forbid as much bad style as possible?
[04:02:26] <dash> (and make it easy to build tools to forbid more bad style)
[04:02:40] <kayhayen> Because the bad things are frequently useful.
[04:03:07] <eriknw> I recently assigned to `sys.stdout` :)
[04:03:12] <kayhayen> With monkey patching it's fairly easy to e.g. trace the writes to a module, and prove things about it in tests.
[04:03:15] <dash> It's possible to keep the usefulness without the badness in all the cases I've mentioned, I believe.
[04:03:44] <kayhayen> I don't see why the language should impose style limitations.
[04:04:22] <dash> kayhayen: python already does impose style limitations
[04:04:38] <dash> kayhayen: the value of a language is as much in what it forbids as in what it allows
[04:04:58] <dash> kayhayen: the reason a language should impose limitations is to support readability
[04:05:23] <dash> kayhayen: do you know the story of smalltalk-76?
[04:05:28] <kayhayen> Python does impose no limits on flexibility