@nixCraft that's why. Gatekeeping.
Though, I really don't like its approach to types.
@nixCraft significant whitespace makes it very easy to introduce invisible bugs and harder for people who need to customise whitespace for their own legibility (this applies to YAML, too)
And it seems that a significant portion of the industry has chosen static types for various benefits (with some downsides, too, of course) which isn't sufficiently supported by Python yet
@jokeyrhyme @nixCraft how could significant whitespace introduce invisible bugs? The entire point of it is that itâs easily visible.
Only way I can think of is mixing spaces and tabs in indentation in a way that on some editors will make a block appear to have the same indent but not be treated as such, but Python 3 already thought of that:
Indentation is rejected as inconsistent if a source file mixes tabs and spaces in a way that makes the meaning dependent on the worth of a tab in spaces; a TabError is raised in that case.
@nixCraft runtime errors, the GIL, non-static typing, formerly mediocre support for concurrency, bad package/environment management, mutable versus immutable data types, is versus ==
I actually love Python, but it does have some problems. Many of those problems have been mitigated or solved over the years though
@nixCraft I think one reason is gatekeeping, another reason is a sometimes deeply entrenched inability to see that different people have different needs, work with different constraints, etc.
So I like to remind people that: https://ciberlandia.pt/@villares/109885982178235703

Attached: 1 image Friendly reminder: It's easy to forget there are many more people in the world that write code and are *not developers* than there are professional software developers. Scientists, journalists, lawyers, activists, med. doctors, writers, educators, artists, designers, and many others, can create computer programs! This paper from 2012 shows an 2005 estimate (for 2012) that there are almost 4x more people programming ("end user programmers") than professional programmers https://dl.acm.org/doi/10.1145/2212776.2212421 #EndUserProgramming #NotADeveloper
@vandys @nixCraft What about mysock.send(b'The data') ?
Personally I'm super grateful for the consistency introduced in Python3.
Sure, you might need a encode/decode more, but you don't have to guess what data type you're operating on anymore. Explicit rather than implicit is one of the core values after all.
@nixCraft Because itâs actually not that easy. It has a number of things that *seem* easy but are in fact quite complex for beginners.
Itâs also a complete disaster in terms of dependency management, and has no coherent packaging and distribution story.
@nixCraft Being a hobbiest and coming from C++ I had lots of issues with white spaces.
Being a long time Linux user I avoid Python apps due to them breaking when the distro inevitably no longer supports the version of Python they were written for.
@nixCraft The number of times I had some runtime error I couldn't figure out, so I added some debug prints, only to then get runtime errors on those prints, because I wrote int + string, which it obviously has no chance to resolve by itself, even if string * int is perfectly acceptable.
It is okay for small scripts, but debugging is painful.
Also, whatever the hell it does with optional non-scalar values.
def foo(bar = []):
bar.push(1)
print(bar)
foo()
foo()
@nixCraft The BASIC comparison is spot on. Itâs a great language for education and for carrying out (relatively) small, well defined tasks. And yes, Iâd include training LLMs in that scope.
Itâs not great for building enterprise scale applications (dynamic typing, dreadful dependency management etc.), but that doesnât mean itâs the wrong choice for everything.