612 karma · joined April 6, 2012
Saying I am "self aggrandising" is disingenuous and misleading at best.
Actually my favorite part of CS is the instance var intitialization. e.g.:
constructor(@x, @y) ->
would initialize @x and @y to the arguments.
It makes writing records much nicer.Says the person missing that it's an opinionated list, lol. It was more meant to provoke discussion, not hurt feelings (like your obviously seem to be).
Then right back at you -- that triggers the same problems as the original statement. :D
You could very well have stated your point more constructively with that.
I retract the "ignorance" sentiment, as I do not actually know what Python developers are considering.
I do apologize for that, and thank you for your contributions. It is still by far one of my favorite languages, and I use it daily. :)
People seem to be missing that sentiment -- I do love Python and use it almost daily. This is merely a list of thorns I run into frequently.
>Regarding the FP comments, since it lacks TCO, my take away has always been that Python can only ever become a quasi-functional language. Its hard to be more than that in its current state.
I mean, it could always encourage playing with functions more -- and importantly, providing an stdlib that encourages that.
>These questions made me want to ask you - what languages do you think are better in comparison?
That is a somewhat loaded question: my counter question would be, "In what regards?"
I cannot say a certain language is better than Python in every or most circumstances, but I can in regards to specific points/features, if you'd like to elaborate.
Except numpy arrays have a much richer interface and can still store dynamic objects (dtype=object). So what's your point?
>I love duck-typing
So do I. Where does this come from? I don't believe I ever considered it a contra.
Depends on your needs, but there is at least Kivy.
It's funny because I preface it by saying "Remember that it's a matter of opinion" (and, well, the title alone) and people come out of the woodwork completely disregarding this, or outright misinterpreting sections of it.
I maintain that a large reader base here does not actually... read.
Obviously you've never met State and/or lens then.
Yes, you can do it -- and no, I never said it should follow pure FP principles.
No, I /really would/ like to be able to write:
foo.on_click(lambda: x += 1)
The language not supporting this (when most others do) is just silly.
I mean, you have a good point on C extensions but code relying on them (without a really portable API) is almost never going to be forward compatible anyway. (There are still quite a few C extensions not up to CPython 3 yet.)
Sure, that and it's far easier to write a new language and transpile than it is to fork and modify existing implementations.
>There's ample discussion on these topics to simply brush existing decisions off as "Incompetence? Politics? Both? Who knows."
If you would like to link to such discussions I would not hesitate to add them as footnotes/amendments.
>For the fifth point, `list.index` works fine in Python 2 and 3 for me.
Sorry, mixed up `index` and `find`. `[].find` is not a function, but `[].index` is. Thanks for catching that, I keep confusing them (another minor annoyance of having both).
Certainly, it is titled "Problems I Have" for a reason. :-) I do not expect everyone to agree with me, but it is what I feel I personally lack when using it quite a lot.
> I imagine this statement could offend some of the smart and hard-working people who are working on improving the python language.
That was certainly not my intention -- as stated, I do love the language and appreciate all work going into it. I do not intend to undermine their efforts, just point out some of my perceived design flaws.
>- the community does not agree with the author's subjective idea of what Python should look like
I think we all agree there should be a good solution to concurrency (and "stackless" variants which power eventlet, etc. have been used for ages; as has Twisted, of which asyncio is not a sufficient clone.), parallelism, etc.
The standard library in general encourages use of higher-order functions and concepts borrowed primarily from FPLs (see: comprehensions, map/reduce, sort, etc.) I could not imagine seeing them backtracking on this -- it only helps them to go further in that direction.
>- the solutions to a problem (I'm thinking GIL) come with a lot of consequences which are not readily acceptable
I did not propose a solution because there are many, as you note; there are, however, implementations with decent solutions like AFAIK Jython.
>- solving some of the issues would exacerbate backwards compatibility.
Such as what?
Could you please elaborate a bit on how you work with the TCP window size -- how might I set it to 0 and back? Do you simply use SO_RCVBUF or is there more to it?
If you happen to go through with making more variants of this, it would be amazing if you could make them open source as well (even just the backend). It's a clever idea that solves a very real problem!
Stack: Python, Haskell, C, C++, Ruby, JavaScript, CoffeeScript, TypeScript, C#, Racket, Haxe, OCaml, Lua
Resume: http://darkf.anapnea.net/work/resume.html
Contact: [See resume]
Any company that does not follow the typical enterprise stack of ugly Java code is fine with me. I am a talented/experienced developer and I would love a chance to work with any interesting companies looking to hire me.
It runs a few commercial games, but probably not all that well. I wonder why not a lot of people bothered to contribute.
Is that not slower (requiring a memory store and a SUB, then a load and an ADD to pop) than just MOVing a register?