Pythonのここがうんち
全体的に単語の区切りが分かり辛い。区切り文字省きすぎだろ。
String#startswith
"start switch" だと思う人多数
os.path.isfile()
と Path.is_file()
がある。
どっちかが deprecated とか?誰か詳しい人追記よろ

os.path.isfile()
は低レベルな操作、
Path.is_file()
高レベルな操作なので両方残ると思われる

標準ライブラリ内の命名規則すら統一できてない。
Javaのlog4jとかってライブラリから持ってきたからそのままって話らしい
公式ドキュメントの読みづらさが異常
「f-strings の式部分でバックスラッシュを使えない」とかいうイミフ仕様。
pythonprint(f" a\n b\n {'c'}\n d")
# Output:
# a
# b
# c
# d
print(f" a\n b\n {'c\n'} d")
# SyntaxError: f-string expression part cannot include a backslash
某
Python に詳しい人曰く、実装が大変だから禁止ということになったらしい。
>Simple is better than complex. This idea extends to the parser. Restricting Python's grammar to an LL(1) parser is a blessing, not a curse. It puts us in handcuffs that prevent us from going overboard and ending up with funky grammar rules like some other dynamic languages that will go unnamed, such as Perl. https://www.python.org/dev/peps/pep-3099/
実装のためならばインターフェースの綺麗さを捨てるのが
Python流。ジョブズ激おこ案件。
for 文がスコープを作らない
true の場合の値と false の場合の値の位置が離れてるのやばい
>To explain the List data type it's better to start with a little bit of theory, as the term List is often used in an improper way by information technology folks. For instance "Python Lists" are not what the name may suggest (Linked Lists), but rather Arrays (the same data type is called Array in Ruby actually). https://redis.io/topics/data-types-intro
for 文でイテレートできる。
リストから tuple()
で変換できる。
非同期周りがクソらしいけどよく知らないので誰か書いて
thread の例外が thread の外で捕捉できない
lambda が使いづらいみたいだけど詳しくないので誰か書いて
無名関数がlambdaキーワードをいちいち要求するのがうざい(感想)

Pythonがいちいち式ではなく文を使うことを要求するのに、lambdaが書くことを許しているのは式のみなので、表現力に限度がある
yieldとtry-catchは使えないね
break も使えない
実行ファイルとして扱いたいときにしんどい
pyinstaller とか、色々あるけどどれも微妙
それはスクリプト言語はどれもそう

Python はスクリプト言語なので、Python のうんちポイントとしても並べて良さそう
mruby「呼んだ?」
高階関数を組み合わせると、読みづらさがヤバい
pythonl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
map(lambda x: x ** 2, filter(lambda x: x % 2 == 0, l))
map object とか filter object とか、よくわからない
private がない
list は append なのに、set は add
dict は update
組み込み関数が pathlib.Path を返さない
string で返すな
それ「明らか」じゃなくてあなたの感想ですよね?
bool が int のサブタイプなのキモい。
C の負の遺産を継ぐな。

Julia も
Integer
の具象型なんだなこれが

CはC99でちゃんと論理型を作った
だが実態は1ビットのオブジェクトで、算術演算もできちゃうし暗黙の型変換もできてしまう
「"リスト内包表記"と"ジェネレーター式"は違うからちゃんと区別しろ。」うるせえ。評価が先行か遅延かの違いだけじゃねてか。なんで全然違うものみたいな命名してんだよ。

クラス変数
FooClass.bar
に対し
foo_instance.bar
の形でアクセスできる。メタレベルの情報とオブジェクトレベルの情報をごっちゃにするのキモすぎ。

Luaでも流石に出来ない。キモいのに同意。

リストのメソッド名が
append
,
pop
,
popleft
とか対称性が全然表現できてなくてキモい。

Ruby:
push
<->
pop
,
unshift
<->
shift
C++:
push_front
<->
pop_front
,
push_back
<->
pop_back
エラーに怯えながらプログラムを書かなければならない

それは型チェックを実行時にしか行わない言語全般
