パスワードを忘れた? アカウント作成
1227 story

日本Pythonユーザー会、始動 53

ストーリー by Oliver
蛇の道はオブジェクト指向 部門より

aish 曰く,"日本でのメジャー度は今ひとつなプログラム言語 Python 。失地を挽回すべく、日本のPython者達が立ち上がった!というわけで、我々日本Pythonユーザー会(PyJUG)網元衆は、日本語によるPython情報を提供すべく、サイトを構築したのでありました。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 毒舌なPython使いがrubyを見て書いたものが…
    Do you have any opinions about the Ruby language, especially compared to Python?
    にあります。

    その翻訳が、
    あんたRubyにいいたいことがあるんじゃないんですか? とくにPythonと比べてみて。
    にあります。

    Rubyホームページ内の
    Rubyと他言語の比較
    で、言語仕様について比較がされています。

    あと、ruby-talk MLの
    Ruby as opposed Python?

    というスレッドで比較してるみたいです。

    本家/.でも、
    Why not Ruby?
    なんて記事が。

    私はRubyをほとんど知らない(本を2,3冊読んだくらいで、まともにプログラミングに使っていない)ので比較する気も能力もありませんが、
    まあこんな風に言う人もいるということで紹介まで。
  • EmacsのPythonモードではclass、def、if、for、whileなどのブロックがネストされるところの次の行でTABを叩くと自動的に直前のコードのネストの深さより一段深く下げるようになってます。たとえば、

    if hoge == arege:
        (TABでここにくる)

    こんなかんじです。ただし、ブロックの終わりの指定はユーザに委ねられています。あんまり深いネストを作ると、自分でもよくわからなくなりがちです。こういうときは新しく関数とかクラスを用意する方が得策です。そういう点では綺麗なコードを書かされている、という意味にも繋がるかもしれません。

    # ちなみに、インデント機能に頼りまくっている軟弱者です(w

  • PythonML JPでは割と知られているみたいですが、

        #!/bin/sh
        "exec" "python" "$0" "$@"
        ... 以下コード

    とやると/usr/bin/envを呼ばずにshが$PATHからpythonインタプリタを引っ張って来るみたいです。これをするのは、BeOSだと/usr/bin/envが無いから、らしいです。(Beには/bin/envにある)

  • Rubyと比べてどの辺がイケてますか?

    最初に使えるようになったスクリプト言語がPython だから、RubyとかPerlはよくわからんというお粗末な回答になったりしますが。(ぉ

    って言うと酷いので、ぶら下がりelseからバイバイできることと、Emacs上のPythonモードでC-c C-cで即実行できるところでしょう。あとは(パブリックアクセスしかできんけど)OOとして書けるところです。

    まとめれば、Emacs上で使うとすこぶる快適に開発ができて、オブジェクト指向に書けるということです。

    ハッカーになろう」を読むと、Pythonをプログラミングの学習に使うことを薦めていますね。

  • 「あんたRuby...」の

    すばらしい本が山ほどあるしぃ。

    ってのはちょっと日本だと事情が違いますね。洋書はけっこうある感じですね。(O'ReillyのPrograming Python 2nd)はでかくて、可搬性がないけど。

    日本語リソースがまだまだ少ないってのが日本のPython事情だと考えられますね。(てめえが書けゴルァと言われそう。)

    和書では、ピアソンの「Pythonプログラミングリファレンス」がわかりやすいと思います。理由は、一番手垢で汚れているからですが(笑)

  • by shimpei (1499) on 2001年10月03日 13時59分 (#26588)
    @listvarがあまり大きくならないのなら
    $flag = 'on' if grep {$_ eq 'nanika'} @listvar;
    とかいう風に書いた方がかっこいいかも。(慣れれば こっちの方がむしろ意図が分かりやすいと思うし)
  • > EmacsのPythonモードではclass、def、if、for、whileなどの
    >ブロックがネストされるところの次の行でTABを叩くと自動的に直前の
    >コードのネストの深さより一段深く下げるようになってます。

    これは自分でタイプしていく場合の話で、たいていのEmacsの言語モードで類似の機能は実装されていますよね。

    他所のコードから貰ってきてペーストする場合にインデントがそこだけまるごと深く/浅くなるけど、どうするの、というのが元の質問の意図だと思います。

    でも、それ(元の質問)って、何もPythonに限った問題ではないと思うのですが?

    --
    "Quidquid latine dictum sit, altum videtur."
  • ちょっと思い違いがあったようです。

    ペーストした場合も同じで、要は、ペーストしたコードの各行でTABを打てば、適切な深さまでインデントしてくれるよ、ということなのですね。どこからインデントを浅く(Python用語ではoutdentでしたっけ?)しはじめるかの判断はユーザー任せだけれども。

    それも大抵の言語モードでサポートされているであろう機能なので、やっぱり元の質問はPythonのインデントの使い方に固有の事情とは言えないんじゃないかなぁ、と思います。
    --
    "Quidquid latine dictum sit, altum videtur."
  • >この本、Python版「できるかな」でして、Mark Lutsはノッポさんです。

    ごん太くんは?
    --
    char *A;
    モータースポーツ部 [slashdot.jp]
  • by dai75 (557) on 2001年10月03日 22時45分 (#26700) 日記
    Ruby は嫌われてるんですかひょっとして?
    上の方にある過激なアンチ主張といい、やけに敵対されてるなぁとは感じます。

    Python方面は Zope しか知らないんで、元記事のような認識が普通なのか特殊なのかイマイチ判別しがたい。

    --
    -- wanna be the biggest dreamer
  • つられて思い出したけれど、
    「表層が本質を規定する」
    というポストモダン(コンテンポラリー)の標語があったな。
    --
    -- wanna be the biggest dreamer
  • by dai75 (557) on 2001年10月04日 10時56分 (#26796) 日記
    元記事ってのは親記事「やめてくれ」のことです。分かりにくくてすまぬ。

    Python界で Ruby は言い知れぬ圧迫感がありそうで躊躇してたんですが、大丈夫そうですね。

    僕は言語は仕事によって最適なのを選ぶようにしたいのでそのうち Python もいじるかも。

    言語の機能的な部分は Ruby と比べて変わりないのでこの点では Python を使う理由はないのですが、Python は構造化されてるな、という印象があります。コミュニティ・ライブラリまで含めて。

    システム作るのに向いてそう。
    大規模になると Java が出てくるから、小中規模くらいの。

    --
    -- wanna be the biggest dreamer
  • emacsでpython-modeを使っているなら
    1) C-yなどで適当に挿入
    2) C-c < または C-c > でインデントを修正
    でok。

    C-yで挿入すると、先頭にマークがついて、
    カーソルは最後にくるので、そのままインデント調整の対象にできます。

    たぶんC-x iなどでも同様ですが、不安があれば最初にC-SPCを押して安心しましょう。
  • Perlと比較されることの多いPythonですが、言語の性質からすると重なる部分が多いのはむしろJavaだと思います。Javaと違ってTk、Gtk+、Qtなど色々使えるのでデスクトップアプリケーションにも最適。
    Jythonなどとゆうものもあるので、Pythonで書いちゃって上司には後で、「Java で作りました」って報告するってのもよし。
  • Pythonを使ったことが無い人間の素朴な疑問。
    Rubyと比べてどの辺がイケてますか?

    使ってる方、熱いアピールをカモンカモン!

    --

    --- (´-`)。oO(平和な日常は私を鈍くする) ---
  • by soramine (1131) on 2001年10月03日 13時11分 (#26577) 日記
     たとえば Perl 言語で、

    {
     foreach my $myvar (@listvar)
     {
      if($myvar eq 'nanika')
      {
      $flag = 'on';
      last;
      }
     }
    }

     などという記述の仕方をしているボクなら、好きになれるかもですの。(逆に、気をつけている限りは触らなくても同じ?)

     ところで、これはダウンロードしてインストールして使うものですの? FreeBSD(98) で使えるかなあ。

     そのうち、Ruby とともに「触ってみる」ことにしてみるですの。

     こういったユーザのみなさんの活動が、ボクみたいな「よく知らない人」への啓蒙となる一例でしたです(^^;
    --
    -------- SORAMINE Yukino
  • 私は普段Rubyを使っているのですけど、都合でPythonをかじったことがあります。インデントがループやブロックで使われる言語ということも知ったのですけど、他のPythonコードをコピーしてペーストしようとすると、そこだけインデントが乱れます。で、修正しようとして多量のtabを入力したりスペースを入力したり。

    ということでその時以来Pythonは手を出してません。Pythonがメインの方ってこのあたりをどう処理されているのかが不思議です。EmacsのPython-modeとか使えば適当にインデント処理してくれるんでしょうけど、自分で考えてインデントを調整しないといけなくのではと思っています、実際そんな感じでした。

    それともエディタのインデント機能に頼るなんて軟弱?

    --
    -- やさいはけんこうにいちば〜ん!
  • by yasusii (125) on 2001年10月03日 14時30分 (#26597) ホームページ
    Programing Python 2ndこそ翻訳出してほしいんですけどね。この本、Python版「できるかな」でして、Mark Lutsはノッポさんです。エディタ、Webサーバ、グラフィカルなメーラなどのコード例が豊富に掲載されていて、「よし、オラも自分でWebサーバ作るぞ」という気にさせてくれる本です。
  • by sou (883) on 2001年10月03日 14時33分 (#26598)
    LightFlowとか、Blenderとか。

    私はコレでPython本買いました。
    結局Python本も買ってから忙しくなってオブジェになっちゃってるのですが、Zopeとか、Pythonで出来る事はめちゃ面白そう。

    という事でPyJUGの活動に期待しています(_ _)
  • by rug (55) on 2001年10月03日 15時01分 (#26607) 日記
    いまだにPython.orgのPython Compared to Other Languagesの Ruby の項に

    Bruce Eckel doesn't think Ruby is worth learning.

    しかないのは、何とかならないものかな。
  • ソースの見た目の好みでPythonのほうがRubyより好きです。
    おそらく「begin~end」が好きならRubyが、「{~}」が好きならPythonがあうのではないでしょうか?
    インデント法も統一されてるから、余計なこと考えずに済むし(逆に自分好みの記法ができないって場合もある。)

    ただOO的にはRubyのほうが理想的(悪く言えば理想的)なんじゃないでしょうか?
    Pythonにはオブジェクト以外の型(Javaで言うプリミティブ型)が多いですし。
  • by okusa (5692) on 2001年10月03日 15時45分 (#26613)
    emacsenから実行とオブジェクト指向って、
    両方ともRubyにも備わっていると思います。

    Pythonのいいところは、ライブラリの多さ、ってのはどうでしょう。
    Rubyな方々も頑張られてますが、やはりpythonの方がライブラリ多いですよね。
  • ええ、その部分がやはり気になる部分です。
    ブロックが予約語や括弧の類で判別できる言語(RubyやCやC++やらいっぱい)だと、そういう文字を使ってだいたい自動でインデント調整ができるのですけど、Pythonだとそうもいかなそう、という部分です。
    --
    -- やさいはけんこうにいちば〜ん!
  • by aish (3117) on 2001年10月03日 16時37分 (#26626)
    Pythonにはオブジェクト以外の型(Javaで言うプリミティブ型)が多いですし。

    これについては、現在対応が進行中.次のPython 2.2 では、組み込み型もクラスのように継承したりできるようになる予定です.
  • コピー&ペーストしたときインデントの調整が面倒って話、以前もここに書かれてましたよね。確かに理屈ではその通りなのですが、メーリングリストなんかでもそれが不便という話は聞いたことがないなあ。

    たぶん、オブジェクト指向言語でたくさんのコードをコピー、階層の違うブロックへペーストして利用しなければならない状況というのが、現実にはほとんどないからなのだと思います。

  • > で、修正しようとして多量のtabを入力したりスペースを入力したり。

    エディタの使い方を工夫しましょう。

    vi なら例えば、ペースト後に
    1) インデントしたい範囲の先頭で ma
    2) 範囲の末尾へ移動 (たぶん } 数回で済む)
    3) >'a
    とやれば、1つ分インデントされます。

    Emacs なら indent-region を使えば一発かな? (未確認)
  • いやいや、そんなつもり全く無いっスよ。
    僕は使えるものは何でも使う主義なので、今まで触れたことがなかったPythonの評判を聞きたかっただけです。

    まあ、誰にでも言語の好き嫌いってありますよね。
    僕はVisualBasicが嫌いです。でも仕事で一番使ってる。(T_T)
    --

    --- (´-`)。oO(平和な日常は私を鈍くする) ---
  • >オブジェクト指向言語でたくさんのコードをコピー、階層の違うブロックへペーストして利
    >しなければならない状況というのが、現実にはほとんどないからなのだと思います。

    それを「ほとんどない」ってのは言えないように思えるのは
    俺だけでしょうか? #OOPかどうかはさておくとしても
    3行くらい似たコード(同じコードでなくてもいい)が複数箇所に
    「一切」出てこないソースって、ちょっと想像できないんですけど…。
    それともそういう言語なんでしょうかPythonって?あ。使ったことないです。

    まぁvi(やvim)でさほど面倒でもなく修正できそうだとは思いますが、
    ただcbみたいなツールを用意できない(ってことだよね?)ってのは辛いかもとも思います。
    #あと個人的には好きになれそうにないノリだなあ(^^;。
  • やっぱ、Pythonを使うのは、Zopeの実装言語
    だからというのはないだろうか?

    昔、Zopeの存在を知った後、Pythonを使おうと
    思ったが、Rubyから離れられず、挫折経験あり。;P
    --
    ---moto
  • by hmr (4234) on 2001年10月03日 23時11分 (#26712) 日記
    やっぱPySolでしょ。Windowsにソリティアあり、PythonにPySolあり。 数百種類のトランプの一人遊びが入ってます。

    俺のPCにPythonが入ってる理由はPySolを遊ぶためだけ(藁
  • そうそう、PerlよりJavaと比べたほうが、いろんな意味でいいと思います。

    それも、JavaとPythonどっちか!?というよりは、Javaも使いつつ、「イージーJava」としてPythonも使う、という感じで。

    いまJavaでやられているプロジェクトのうち、Python / Zopeでやれば、実はわりとかんたんにできちゃう、というものはけっこうある気がします。
  • by Nowake (5100) on 2001年10月04日 0時35分 (#26721)
    ですよね,ここ.
    コピーペーストがやりづらい……と言うわけではなくて, Tabという見えない属性でソースが縛られるのがどうも怖い……
    ということで,とりあえずRubyから触ってます.
    MS-Win&Delphi使いに嬉しいAppoloもあるし.
    #あ,PythonだとAppoloみたいなのってどんなのがあります?

    とりあえず Ruby王道編(^^;をやっつけて,それからPythonの解説本も読んでみようかな……
  • by shuna (99) on 2001年10月04日 0時57分 (#26725) 日記
    私は python 使いですが、まつもとさんが ruby とからめ
    て python を批評するのは当然だし勉強にもなるので、や
    めて欲しいなんて思いません。いずれは ruby も使ってみ
    たいし。

    ただ、ruby 信者(まつもとさんじゃないよ)の発言にげん
    なりする事はありますが… (反面教師としては有用)

    外国だと、python があるのに歌い文句が似ている ruby
    を持ち出すのは車輪の再発明だと思われてるんじゃないで
    しょうか。
  • by aish (3117) on 2001年10月04日 1時26分 (#26734)
    Python方面は Zope しか知らないんで、元記事のような認識が普通なのか特殊なのかイマイチ判別しがたい。
    元記事投稿者ですが... 別にRubyと比較して云々、と言うつもりで書いたわけではありません。他と比較する以前に知名度があまり高くないので、その辺を何とかしよう、というのが目的です。
    また、Pythonコミュニティで Ruby が嫌われてるか、というと、それは別にないと思います。python-ml-jpでRubyの話が出ることはめったにありませんし。
  • by Nowake (5100) on 2001年10月04日 1時30分 (#26735)
    なんとなく興味がわいてきたので,ざっとチュートリアルを見たのですが,クラスのところを見て,
    『Delphi Pascalで言うproperty,Rubyで言う仮想属性って無いの?』
    と思いました.

    それに,なんとなくクラスに関する機能が貧弱……というよりは何か霞をつかむような感じが
    ・完全なプライベート変数が存在しない
    ・インスタンス/メソッド・オブジェクト
    このあたりはなんとなく不思議ですね.
  • by shuna (99) on 2001年10月04日 1時38分 (#26737) 日記
    この辺は、「嫌でも綺麗に書かざるを得ない」事が
    許容範囲に入るかどうかですね。
    (私はこれが好きなので python を使ってますが)

    > MS-Win&Delphi使いに嬉しいAppoloもあるし.
    > #あ,PythonだとAppoloみたいなのってどんなのがあります?

    http://www.multimania.com/marat/delphi/python.htm

    これかな?
  • by kyle (3923) on 2001年10月04日 3時44分 (#26754) 日記

    kyle@職業蛇使いです。

    『Delphi Pascalで言うproperty, Rubyで言う仮想属性って無いの?』 と思いました.

    ありますよ。たとえば、現在時刻を 取得するプロパティ Clock.curtime

    class Clock:
      def __getattr__(self, key):
        if key == "curtime":
          import time
         return time.localtime(time.time())
        return getattr(self, key)

    clock = Clock()
    print clock.curtime

    "__" のつくメソッド定義で、 いろんなことができます。 演算子オーバーロードとか。

    ・完全なプライベート変数が存在しない

    "_" を使えば継承には問題が 出ないようになっているので、 あとは慣れの問題です :-)。 いずれ平気になっちゃいます。

    ・インスタンス/メソッド・オブジェクト

    何が分からないのかが分かりませんです。

    今後とも Python をよろしく。

  • by kyle (3923) on 2001年10月04日 4時05分 (#26757) 日記

    Ruby でやろうとしたら、 一・二行目で無限ループに おちいりました。 Ruby って "#!/bin/sh" を理解するのね。

    なにげに余計よ > されど愛しの Ruby

  • by Nowake (5100) on 2001年10月04日 8時28分 (#26776)
    >"__" のつくメソッド定義で、 いろんなことができます。
    ふむふむ.あとでよく見てみよう
    #代入もOKですよね?

    >"_" を使えば~~~
    確かに,『あえて』犯さなければ問題ないですかね.
    あとはモラルの問題か……

    >>・インスタンス/メソッド・オブジェクト
    >何が分からないのかが分かりませんです。
    あっと,失礼.
    これは『分からない』ではなくて,『なんとも不思議な機能だな』と言う意味です. オブジェクトを生成した後に,あとから(動的に)ぺたぺたつけられる感覚がなんとも……
    自分好みにクラスをカスタマイズする感じですかね?
    このような機能はPython以外に見たことないです.

    では.
    ご回答どうもありがとうございました.
  • by Nowake (5100) on 2001年10月04日 8時31分 (#26777)
    Tab嫌いじゃ無くて,Tab恐怖症なんですけど.
    見栄えが本質に影響を与えるのはなんとなく怖い……
    #まあ,馴れでしょうけどね.
  • アプリケーションの中にアプリケーション記述言語を組込み、その言語でさらにアプリケーション自身を記述する、ってアプローチ。EmacsとEmacs LISPがその典型ですけど、インストーラにも同様の拡張性が要求されますよね。
    ZopeやCML2なんかもやはりこうした手法で作られています。Zope以外にもPythonで書かれたアプリケーションサーバの類いがやたらたくさんあるのは、このテの動的処理分野にPythonが強いことの証なのではないかと。
  • by kyle (3923) on 2001年10月04日 13時32分 (#26830) 日記
    これは『分からない』ではなくて,『なんとも不思 議な機能だな』と言う意味です. オブジェクトを生成し た 後に,あとから(動的に)ぺたぺたつけられる感覚がなんとも…… 自分好みにクラスをカスタマイズする感じですかね? このような機能はPython以外に見たことないです.

    Ruby には特異メソッドがありますし、 JavaScript などでは、クラスがなく、 インスタンスしかありません(テンプレートベースとか言うんだっけな)。 インタプリタ型の OO 言語では、こういう 実装は簡単ですから。

    むしろ C++ とかが、柔軟性なさすぎなんです。

  • by Anonymous Coward on 2001年10月03日 15時56分 (#26614)

    「あんたRuby...」の

    すばらしい本が山ほどあるしぃ。

    ってのはちょっと日本だと事情が違いますね。

    英語圏でもすばらしい(<希望的観測)本が山ほど出るそうです。

  • by Anonymous Coward on 2001年10月03日 15時59分 (#26616)
    ていうか

    最初の Programming Python の二分冊の翻訳ひどすぎ。

    第二版の翻訳出すときは、たのむから訳者だけは変えてほしい。

    Learning Python 「はじめてのPython」のほうはいい訳です。
  • やめてくれ (スコア:0, フレームのもと)

    by Anonymous Coward on 2001年10月03日 16時36分 (#26625)
    onoyanさんの意図とは違うかもしれませんが...
    Ruby使いの人がPython話に割り込んでRubyの宣伝するのには毎度ウンザリですね。やめてもらいたい。

    以前PythonのMLでmatzさん(Ruby作者)が、あらゆる話題にこじつけてRubyを持ち出すのに辟易しました。
    彼はRubyカンファレンスでPython嫌いを公言してますし、明らかに悪意があったものと思います。
  • by Anonymous Coward on 2001年10月03日 18時58分 (#26648)
    そういえば昔、MSのSQLServerのMLにOracleを擁護したい輩が乗り込んできて、あれこれ馬鹿にしたことを言っていて顰蹙だったな。どうでもいいけんども。
  • by Anonymous Coward on 2001年10月03日 19時14分 (#26658)
    特に困ったということはありませんね。 ブロックごと同量のインデントすれば良いんだし。
  • by Anonymous Coward on 2001年10月03日 21時04分 (#26686)
    ああ、つまイさんを思い出した(謎)
  • by Anonymous Coward on 2001年10月04日 1時47分 (#26740)
    なんであれ原理主義者はウザい、というだけの事では。
    pythonでもrubyでも、vimでもemacsでも、linuxでもBSDでも、oracleでもSQL serverでも。
    ただ、自分がどうかは、案外自覚できないもんだけどね<g>
  • by Anonymous Coward on 2001年10月04日 3時20分 (#26751)
    Tab嫌なら、here documentのあるスクリプト言語ぜんぶやめとけ(藁
typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...