「ハードウエアに優しい」とは一言でいうと、アセンブリが該当します。これがうれしい状況は、コンピュータが起動した直後でなにも初期化されていない状況、ハードウェアの性能を極限まで引き出す必要な状況でしょう。loaderの実装とか、DSPでcodecのdecoderを実装しているときとか、CPUパワーが極端に制限されているとき、callスタックを直接操作してセキュリティホールを突きたい時、などでしょう。「計算に優しい」とはLisp系の言語とか、純粋関数型言語とか、です。メリットは計算そのものを表現する能力が高いこと、計算を表現するときに特殊な制限をかけることで自動変換可能になることなどが挙げられます。「人に優しい」とはまず、抽象度がそれなりに高いことが必須で、というのは「一定時間でかけるコードの行数は言語によらず一定である」という知見の存在があげられます。次にPEPの中にも出てきますが、コードはかかれる回数よりも読まれる回数が多いという点です。言語としてのコーディングスタイルが定まっているという点もあげられます。「コーディングスタイルが定まっている」が何を指しているかというと、そうでなくて無為に使われた時間を挙げるとわかってもらえると思います。C系の言語の{}をどうindentするかという宗教論争にどれだけの時間が割かれたか?とか、C++のメンバ関数の中でメンバ変数にアクセスするときにthisを省いてよいがメンバ変数のm_をつけるとか何とかでしょう。ミクロな項目を挙げるなら、メモリ破壊・メモリ管理だろう。うっかりでぶっ壊したメモリがめぐりめぐって引き起こすバグの原因を特定するのにかかる時間と労力、メモリをリークしないように気にしながら書く労力と時間、メモリリークのデバッグによって消耗される労力と時間を想像してみよう。それだけでぞっとする。それから標準的な環境を構築するために必要なコスト、実際に作業するために必要なライブラリの入手コストも挙げられるだろう。Xに入っているか?、windowsでbinaryのインストーラがあるか?などだ。shellがあることも大事だ。objectとの会話が許されない系はちょっとどうかと思う。サプライズがないことも挙げられるだろう。phpの==やsortの話とか検索すれば山盛り出てくる。0;とかもどうかと思う。どの評価軸を重要視すべきか?用途限定されていればその状況をみればよいのですが、もうちょっと高い視点で考えてみましょう。Mooreの法則によりどんどん性能は上がってきました。これからもマルチコア等によって上がり続けるでしょう。何らかの企画から始まって最終的に消費者に届くまでの過程を考えると、プログラムを設計する過程はしゃれにならないコストがかかっていて、一番生産性の向上が低い部分だろう。ネットワークもCPUもメモリもディスクも常に進歩し続けていて、対数グラフでプロットされるわけだから。いえ、AWSやGAEのおかげで、一人で世界を相手にするサービスを作ることは可能になっている。パワーを稼ぐことに労力をかけることよりも潜在的な競争相手に先んじて何かを作り上げることが大事で、その場合はスピードが肝になり、それは人に対する優しさに行き着くと思う。これからもアセンブリ等の需要はなくなることはないし、計算すること自体が大変なジャンルは存在し続けるだろう。この辺はどこに強みをおくかと、だれとくむか(ハードウェア製造業者か?AWSか?)ということにかかってくる。golferの方ですね、わかりますよ。いうのは冗談として、pythonがstatemnetな言語である以上ブロック構造を作らなければならず、インデントが宗教論争を引き起こしてきたことを考えれば、reasonableな落としどころだと思っています。なにかうまい方法があるなら教えてください。住めば都です、いい意味で。''.joinキモイどこぞで盛り上がっているらしいですが、ぶっちゃけどうでもいいかな、というのが私の意見です。+=でつなぐのだけはない。パフォーマンスが理由ではないです(Jythonだと遅くなるらしい)。",".join(xs)をforと+=を使って書くと「植木算」をすることになりますが、これがよくない。joinを使って書けば、どのようにつなぐかを記述する必要がない。命令的な何かを減らすだけでバグは減る。こんなコードにバグを入れるなという人もいるかもしれないが、それはマッチョだと思う。手段としてのプログラミングは、「ひろゆき」的低きに流れるにあるべきだ。「低きに流れる」は悪いことだとは思わない。いうものの、泳げるくらいにきれいな水であってほしい。xs)はできてくるobjectのtypeと作り手のtypeがマッチしないのが好きじゃない。str.joinだとタイプ量が多いので横着したととらえれば許せる範囲かな。str.joinだと思っている理由はstrのコンストラクタだととらえているからだ。投稿Atom投稿コメントAtomコメント。