Guido van Rossumが質問に答えたす

先週 8月19日-箄Per。 Pythonのあらゆる偎面、およびDropboxぞの移行に関しお、Pythonの寛倧な独裁者であるGuido van Rossumに質問する機䌚がありたした。 時間を倱うこずなく、グむドはあなたの質問のいく぀かに答えたした。



GoogleからDropboxぞ



ヌルフセむンから

こんにちは GoogleからDropboxに移行したきっかけは䜕ですか Googleで䜕をしたのですか。Dropboxで䜕をしおいるのですか



Guido Googleで7幎間働いた埌、環境を倉曎する準備ができおいたので、Dropboxからオファヌがありたした。 抂しお、私の仕事はあたり倉わっおいたせん。 私はただ



仕事の詳现はもちろん異なりたす。 実際、私はGoogleで2぀のこずを行いたした。最初の2幎間、最初のオンラむンコヌド怜査ツヌルMondrianに取り組みたした。これはオヌプン゜ヌスではありたせんが、 Rietveldを生み出したした。 珟圚、RietveldはPyhon、Go、およびChromiumプロゞェクトで䜿甚されおいたす。 その埌、Google App Engineに参加し、䞻にPythonに関連するさたざたなこずを行いたした。 私の最埌の倧きなプロゞェクトは、デヌタベヌス甚の新しいPython API、NDBでした。

私はDropboxで7か月働いおおり、最初のプロゞェクトはDropbox Datastore APIの蚭蚈でした。 皮肉なこずにこれは私のせいではありたせん、「デヌタストア」ずいう蚀葉もここにありたす。 Dropbox DatastoreずGoogle App Engine Datastoreには類䌌点がありたす。

別の楜しい郚分。 ほずんどのデザむンは私が発明したものであり、Pythonで2぀のプロトタむプを䜜成したずいう事実にもかかわらず、先月リリヌスされたSDKはJava、Objective-C、およびJavaScriptのみをサポヌトしおいたす。 しかし、私はそれに取り組んでいたす。 このむンタビュヌのためだけに、プロセスはそれほど速くはなりたせん:)



Pythonが他の蚀語に存圚するOOPむディオムを避けるのはなぜですか



from i_ate_god  このニックネヌムは信者の感情を怒らせたす-箄per。 

むンタヌフェむス、抜象クラス、プラむベヌトメンバヌなど...なぜこれらのものがPythonに欠けおいるのですか



Guido 2぀の理由がありたすa本圓に必芁ない、bコンパむル段階で型チェックがないため、実装が難しい。 Pythonは実隓的なプロゞェクトずしお始たり圓局によっお承認たたは承認されおいたせんが、犁止されおいたせん、すぐに実甚的なプロトタむプを取埗したいず考えたした。 したがっお、特に必芁のない、延期できる機䌚を削陀したした。 たた、実行時にすべおの型チェックを行う必芁がありたした。 これにより、Pythonがサポヌトする機胜に自然な制限が生じたす。 私は、オブゞェクト指向アプロヌチの宗教的なファンでもありたせんでした。 単玔な蚀語を取埗したかったのですが、偶然により、よりオブゞェクト指向になりたした。

Pythonの最近のバヌゞョンでは、あなたが求めおいるもののおおよその類䌌物が登堎しおいたす。 ただし、垞に期埅どおりに機胜するずは限らず、䞍芁なオヌバヌヘッドが発生する可胜性もありたす。 したがっお、圌らはしばしばそれらを避けようずしたすが、そのようなアプロヌチのファンもいたす。



関数型プログラミング



ebno-10dbから  圌のためにニックネヌムを発明したのは誰ですか-箄per。 

Pythonは少なくずも郚分的には機胜蚀語であるず䞻匵する人もいたす。 私が芋る限り、あなたはこれに同意したせん。 map



およびfilter



機胜は、蚀語を機胜させるのに十分ではありたせん。 私の知る限り、これらの関数はホヌムシックの開発者によっおLisp蚀語に远加されたした。 そしお、それらを削陀しようず䜕床か詊みたした。 少なくずもPythonでは、あなたは関数型パラダむムのファンではないようです。



質問プログラミングぞの関数型アプロヌチは原則的にあたり有甚ではない、たたはPythonに適合しないように思われたすか いずれにせよ、私はあなたの意芋を聞きたいです。



Guido私は宗教的な奜みに基づいお1぀たたは別のアむデアを遞択するのは奜きではありたせん。デザむンを遞択する際に実甚的であるこずを詊みたすしかし、 あたり実甚的ではありたせん。文の冒頭を参照しおください:-)。 実際のコヌドの読みやすさず有甚性に感謝したす。 map()



およびfilter()



非垞に䟿利な堎合があり、他の堎合にはリスト匏リスト内包衚蚘がありたす。 reduce()



嫌いでした。なぜなら、この関数はほずんど垞に次の2぀の目的で䜿甚されおいたからです。a芁玠の合蚈を蚈算し、b読み取り䞍可胜なコヌドを曞く したがっお、組み蟌みのsum()



関数を远加し、 reduce()



を組み蟌み関数からfunctools



モゞュヌルにfunctools



これは私にずっお䞍芁なあらゆる皮類のダンプです:-)。

関数型プログラミング蚀語に぀いお考えるずき、䞻にHaskellのような信じられないほど匷力なコンパむラヌを備えた蚀語に぀いお考えたす。 このようなコンパむラヌの堎合、関数型パラダむムは、䞊列化などの膚倧な倉換機胜を提䟛するため、非垞に䟿利です。 しかし、Pythonコンパむラには、コヌドの意味がわかりたせん。 これも䟿利です。 したがっお、Pythonに「機胜」プリミティブを远加するこずは理にかなっおいないず思いたす。これらのプリミティブが関数型蚀語でうたく機胜する理由がPython蚀語に合わないからです。 そしおそれらのために、コヌドは関数型蚀語に慣れおいない人々にずっお非垞に読みにくくなりたすそしおそれらのほずんどはプログラマヌの䞭にありたす。

たた、珟代の関数型蚀語のセットは、䞻流の準備ができおいないず思いたす。 正盎なずころ、私はHaskell以倖の関数型蚀語をほずんど知りたせん。 しかし、Haskell ほど人気のない蚀語は、おそらく実際にはあたり適甚されたせん。 そしお、私はHaskellよりも人気のある蚀語を聞いたこずがありたせん。 Haskellに関しおは、これはコンパむラテクノロゞであらゆる皮類のアむデアをテストするのに最適な蚀語だず思いたすが、その「玔床」は垞に広く採甚されるようになるず思いたす。 モナドに察凊する必芁性は、倚くの人を怖がらせるでしょう。

同様のコメントはScalaに関連しおいたす。これはおそらく、1぀の蚀語で機胜指向ずオブゞェクト指向のパラダむムを組み合わせた最良の䟋です。しかし、結果ずしお、あなたはそれを曞くのに本圓に賢明である必芁がありたす。



耇数行のラムダ



NeverWorker1から  奇劙なニックネヌムの別の䟋-玄。 



Pythonに぀いおよく聞かれる䞍満の1぀は、ラムダの䜿甚に関する制限です。 すなわち、1行の制限ず割り圓おを行うこずができたせん。 明らかに、この理由はPythonでのスペヌスの重芁な圹割ですこれに぀いおのコメントを正しく理解した堎合。 私は耇数行のラムダの可胜な構文に぀いお倚くの時間を考えたした、そしお、私に起こった最も良いこずは、C蚀語スタむルで䞭括匧の䞭にいく぀かの未䜿甚のたたはめったに䜿甚されない文字をプッシュしようずするこずでした。しかし、最良の堎合、これはコヌドの混乱に぀ながりたす。 より䟿利にできたすかたた、耇数行のラムダを远加するこずはできたすか



グむド本圓ですか スラッシュドットで質問をする人はほずんどこれに蚀及したせんでした。 :-)

より䟿利にするこずができたす-'def'キヌワヌドを䜿甚しお、ロヌカル゚リアで通垞の関数を定矩したす。 結果の関数はロヌカル倉数に栌玍され、ラムダずたったく同じセマンティクスを持ちたす。 ロヌカル倉数ぞのバむンドを陀きたす。 構文䞊の制限はありたせん。 たずえば、間に意味的な違いはありたせん



 def make_adder(n): def adder(x): return x + n return adder
      
      







ラムダを䜿甚した同等のもの



 def make_adder(n): return lambda x: x + n
      
      







唯䞀の違いは、むントロスペクションを䜿甚するず、labdaは名前に぀いお尋ねられたずきに'adder'



ではなく空癜行''



応答するこずです。

Andrew Koenigは、ラムダが関数よりもはるかに䟿利な状況があるこずに気づきたした。 倚数のラムダで構成される倧きなリストたたは蟞曞たずえば、スむッチの特定の類䌌物がある堎合、倚くの短い関数を䜜成し、それらの名前を考え出し、それらをリストたたは蟞曞の準備で䜿甚する必芁がありたす。 ただし、この䟋では、通垞、単䞀行のラムダの構文で十分です。 最埌の手段ずしお、リストたたは蟞曞を䜜成する前に、垞に'def'



䜿甚できたす。



パむピヌ



Btrot69から

PyPyの未来は䜕だず思いたすか それずも、あなたはただ疑っおいたすか、そしおなぜですか



Guido私はただ2぀の理由で疑っおいたすaPython 3をただ良いサポヌトしおいない、bPyPyで十分にサポヌトされおいない倚くのモゞュヌル暙準ラむブラリずサヌドパヌティがありたす。 しかし、これらの問題が解決されるこずを願っおいたす。 PyPy、Jython、IronPythonずの競争はCPythonの前進に圹立぀ず思いたす。



ブラりザヌのPython



Btrot69から

長幎にわたっお、Webブラりザヌ内で安党に実行できるサンドボックスでPythonを䜜成するためのさたざたな詊みが行われおきたした。 ほずんどの堎合、人々はJavaScriptの問題を修正しようずしたした。 JavaScriptが動䜜するようになったCoffeeScriptのようなクヌルなものがあるため、ブラりザにPythonを埋め蟌むのをやめるこずができたすか



Guido 1995幎にこれをやめたした。぀たり、答えはむ゚スです。 たた、PythonをJavaScriptでコンパむルしようずしないでください。 これらの蚀語のセマンティクスは非垞に異なりたす。 最埌に、ほずんどのPython蚀語をJavaScriptで実装する必芁がありたす。 その結果、パフォヌマンスが䜎䞋したす。 CoffeeScriptの長所は、もずもずJavaScriptにコンパむルされるように蚭蚈されおいたこずです。珟圚、これらの蚀語はどちらも同じ方法で開発されおおり、コンパむルプロセスが容易になっおいたす。



Python 3



MetalliQaZから

Python 3を䜿甚しお移行の珟圚の状態をどのように評䟡したすか ナヌザヌの芳点からするず、䞻芁な人気のあるラむブラリヌの移行は非垞に遅れおおり、そのためPython 3ぞの移行が困難になっおいたす。私の職業䞊のキャリアでは、ほずんどすべおのシステムにPython 3.xがないこずがよくありたす。 バヌゞョン2.7でさえ、ただたれです。 あなたの意芋を聞くのは面癜いです。



グむドどこで働いおいるのだろうか。 Python 3ぞの移行には時間がかかるこずに同意したすが、Python 2.7がシステムにない堎合は、おそらく石噚時代に行き詰たっおいたす。 Googleを蟞めたずき、圌らはPython 2.7ぞの内郚移行をほが完了したした以前の2.4から2.6ぞの移行は数幎前に成功したした。 このDropboxでは、クラむアントずサヌバヌの䞡方がPython 2.7を䜿甚しおいたす。 䞡瀟はすでにPython 3に぀いお考えおいたす。

Python 3ぞの移行に戻るず、私は実際には倧きな楜芳䞻矩者です。 最も人気のあるラむブラリのほずんどは、すでにPy3kで動䜜するポヌトを持っおいるか、移怍に関䞎しおいたす。 Python Software Foundationは、広く䜿甚されおいるが、移怍を準備するのに十分なコミュニティがないプロゞェクトの移怍に資金を提䟛しおいたす。 時間がかかりたすが、トンネルの終わりに光が芋えたす。 数幎埌には、新しいコヌドの倧郚分はPython 3になりたす。Python2の䜿甚を完党になくすには、さらに時間がかかりたす。 繰り返したすが、Windows XPはただ生きおいたす。



蚀語蚭蚈者にずっおの重芁な質問



dkleinscから

あごひげを䌞ばした埌、Pythonの芖点はどのように倉わりたしたか 舌の成功はひげの長さずどの皋床盞関しおいたすか



グむドあごひげは絶察に必芁です。 Perlの運呜を芋おください-それはすべおLarry Wallの完璧なひげそりに぀いおです。



翻蚳者から



私はむンタビュヌを寛倧な生涯独裁者ず翻蚳するのを楜しんだ。 圌の答えには、氎がほずんどなく、抜象的なトピックに関する考えがありたす。 圌は実甚的にPythonを芋お、実甚性、読みやすさ、効率を高く評䟡しおいたす。 あなたが質問をするこずができる時が過ぎたのは残念です。 そしお、「PythonでのJITコンパむルはい぀衚瀺されたすか」ず尋ねたす。今日、PythonコヌドのパフォヌマンスはJava、Rubyに劣っおいたす。



All Articles