アカウント名:
パスワード:
PowerShellより先に発表していればともかく、今になっての発表で、PowerShellの一文字も出さないで「Erlangの影響を受けました(キリッ」とか。
でも、RubyがSmalltalkの影響を受けていることを認めなかったように、今度もまつもと氏は認めないんだろうな。で、Smalltalkのときと同じ言い訳(Smalltalkなんてマイナー言語使ったことなかった)をするんだろう。
PowerShellなんてWindows系のプログラマですらろくに触ってないと思うんだが…
PowerShellは、プログラマが開発に使うようなもんじゃないよ。クラスすら定義できないしね。# C#を埋め込むような形では可能だけど。
でも、Linuxでもプログラマが開発言語にbashを選ぶことは稀だろ?それと同じ。
一方、インフラエンジニアはよく使ってる。てか、WindowsやVMwareを運用するなら、使わざるを得ない。Linux上のbash程じゃないにせよ。
PowerShellは便利なんだけどオブジェクト指向の知識が無いと使いこなせんテキストベースのパイプラインスクリプト言語しか使った事無いエンジニアが挙動を理解できずにハマっている印象が強い
PowerShellは便利なんだけどオブジェクト指向の知識が無いと使いこなせん
「オブジェクト指向の知識」は大袈裟でしょう。だって、継承も仮想関数も知らなくて構わないんだから。せいぜい、.Net Frameworkとメソッド呼び出しを知ってればいい程度。
でも、ハマるのは事実。Cmdlet相当の関数をちゃんと定義するのだけでも、PowerShell固有の知識が必要とされるしね。
大袈裟じゃないですcmdletで取得したオブジェクトのプロパティがcmdlet実行時に決まらずにプロパティアクセス時に決まるとか理解してもらえない場合があります
cmdletで取得したオブジェクトのプロパティがcmdlet実行時に決まらずにプロパティアクセス時に決まるとか理解してもらえない場合があります
その人は関数すら理解してないのでは?オブジェクト指向以前の問題だと思うな。
$hoge = Get-Hoge$hoge.state2行目で関数呼び出ししていると言って理解できるのはオブジェクト指向言語を使った経験がある人だけ
オブジェクト思考なんか知らなくても、構造体を知ってたり、関数ポインタを知ってたりしても不思議は無いと思うが。先にオブジェクト指向って言葉を知ってるから、メッセージパッシングだとかメソッド呼び出しとかで説明したくなるけど、違う言葉でも説明できると思うよ。
ちなみに、PowerShellのメソッド呼び出しなら
$hoge.state()
になるはずだね。括弧必須。
プロパティ(getter)はメソッドじゃないから括弧は必要ない。やっぱりPowerShell知らないのか。話にならん
君の言ってるのは、ScriptPropertyだね。
で、()無しで手続きを呼び出すことは、オブジェクト思考の専売特許でも何でもないね。
加えて、すでに指摘した通り、
$hoge.state
で何らかの手続きを呼び出すのも、オブジェクト指向の専売特許でも何でもない。CとC++の関係を知ってれば、容易に理解できることなんだが。
君の説明を、他人が理解しなかったとすれば、その原因は君自身にあるんじゃないかな?
知らなかった事を認めずに苦し紛れの言い訳ですか。みっともない。
あなたが何と言おうとcmdletはobjectを返す仕様なのです。それを否定するならMSに言ってください。
Cmdletがオブジェクトを返すから、オブジェクト指向でないと説明できない。...という狭い考えを私は否定しているだけです。
ScriptPropertyは、文字通りプロパティを意識しているわけです。プロパティは、オブジェクト指向特有の考え方ではなく、それ以前の構造体のメンバとしてでも説明可能です。メソッド呼び出しだって、構造体のメンバを関数として呼び出すことで説明できます。ちょうど、C++が仮想関数でそうしたように、です。ScriptPropertyはその組み合わせに過ぎませんし、()を付けずに関数を呼び出すことは珍しいことではありません。相手がこれらを理解できないとすれば、あなたの説明が悪いか、相手が関数も構造体も理解してないかのどちらかでしょう。私は、前者の可能性が非常に高い、と推測しています。
私は、私の知識が十分でないことを認めてないわけではありませんよ。ScriptPropertyのことはすっかり忘れてました。あなたとはその辺りが違います(笑)。
cmdletでオブジェクトを取得してそのプロパティにアクセスする事で情報を得たりメソッドを呼び出して何らかの操作を行ったりする事はオブジェクト指向とは無関係と主張するならどうぞ。
そんなもの構造体のメンバと関数ポインタ使えばCでも簡単に実現できるぜといった実装と無関係な概念の話なのですが理解はしてもらえないようですね。
お、ついに出ましたな。相手が主張してもないことを否定して悦にいるメソッド(笑)。
よっぽど反論に窮したようですね(笑)。
あなたが説明した場合はそうなんでしょうね。
普通のレベルの人は、実装の話もできるし、コードの動作の話もできますし、相手に理解してもらうこともできます。事実、あなたは私の説明を理解しちゃいましたね。あなたにとっては、ひじょーにざんねんなことに(笑)。
いろんな意味で幸せな人ですね。
> 普通のレベルの人は、実装の話もできるし、コードの動作の話もできますし、相手に理解してもらうこともできます。十把一絡げで人月売りされているSEと呼ばれる集団での「普通のレベル」にそこまで期待できるとは。
そのあなたの脳内「普通のレベル」集団とオブジェクト指向を知らない集団の積集合がφになったりしませんかね。
十把一絡げで人月売りされているSEと呼ばれる集団での「普通のレベル」にそこまで期待できるとは。
あなたのレベルがそこまで低い…じゃなかった、あなたの周りのレベルがそこまで低いとは思ってませんでした。
でもならば、なおのこと「オブジェクト指向」なんて難しい概念でなく、構造体とか関数とかで説明した方がいいんじゃないかな。
なっても問題ありませんよ。私の言う「普通のレベル」の人達は、メソッド呼び出しやプロパティを、オブジェクト指向の言葉に頼らずに、その実装やコードの説明をできる人を言います。一般に、そういう「普通のレベル」の人達は、オブジェクト指向についてある程度知っているでしょうから、オブジェクト指向を知らない集団とは重ならないでしょうね。何か問題でもありましたか?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
どうみてもWindows PowerShellの二番煎じ (スコア:0)
PowerShellより先に発表していればともかく、今になっての発表で、PowerShellの一文字も出さないで「Erlangの影響を受けました(キリッ」とか。
でも、RubyがSmalltalkの影響を受けていることを認めなかったように、今度もまつもと氏は認めないんだろうな。
で、Smalltalkのときと同じ言い訳(Smalltalkなんてマイナー言語使ったことなかった)をするんだろう。
Re: (スコア:0)
PowerShellなんてWindows系のプログラマですらろくに触ってないと思うんだが…
Re: (スコア:1)
PowerShellは、プログラマが開発に使うようなもんじゃないよ。
クラスすら定義できないしね。
# C#を埋め込むような形では可能だけど。
でも、Linuxでもプログラマが開発言語にbashを選ぶことは稀だろ?
それと同じ。
一方、インフラエンジニアはよく使ってる。
てか、WindowsやVMwareを運用するなら、使わざるを得ない。
Linux上のbash程じゃないにせよ。
Re: (スコア:0)
PowerShellは便利なんだけどオブジェクト指向の知識が無いと使いこなせん
テキストベースのパイプラインスクリプト言語しか使った事無いエンジニアが
挙動を理解できずにハマっている印象が強い
Re: (スコア:1)
PowerShellは便利なんだけどオブジェクト指向の知識が無いと使いこなせん
「オブジェクト指向の知識」は大袈裟でしょう。
だって、継承も仮想関数も知らなくて構わないんだから。
せいぜい、.Net Frameworkとメソッド呼び出しを知ってればいい程度。
でも、ハマるのは事実。
Cmdlet相当の関数をちゃんと定義するのだけでも、PowerShell固有の知識が必要とされるしね。
Re: (スコア:0)
大袈裟じゃないです
cmdletで取得したオブジェクトのプロパティがcmdlet実行時に決まらずに
プロパティアクセス時に決まるとか理解してもらえない場合があります
Re: (スコア:1)
cmdletで取得したオブジェクトのプロパティがcmdlet実行時に決まらずに
プロパティアクセス時に決まるとか理解してもらえない場合があります
その人は関数すら理解してないのでは?
オブジェクト指向以前の問題だと思うな。
Re: (スコア:0)
$hoge = Get-Hoge
$hoge.state
2行目で関数呼び出ししていると言って理解できるのはオブジェクト指向言語を使った経験がある人だけ
Re: (スコア:1)
$hoge = Get-Hoge
$hoge.state
2行目で関数呼び出ししていると言って理解できるのはオブジェクト指向言語を使った経験がある人だけ
オブジェクト思考なんか知らなくても、構造体を知ってたり、関数ポインタを知ってたりしても不思議は無いと思うが。
先にオブジェクト指向って言葉を知ってるから、メッセージパッシングだとかメソッド呼び出しとかで説明したくなるけど、違う言葉でも説明できると思うよ。
ちなみに、PowerShellのメソッド呼び出しなら
になるはずだね。
括弧必須。
Re: (スコア:-1)
プロパティ(getter)はメソッドじゃないから括弧は必要ない。
やっぱりPowerShell知らないのか。
話にならん
Re: (スコア:1)
君の言ってるのは、ScriptPropertyだね。
で、()無しで手続きを呼び出すことは、オブジェクト思考の専売特許でも何でもないね。
加えて、すでに指摘した通り、
で何らかの手続きを呼び出すのも、オブジェクト指向の専売特許でも何でもない。
CとC++の関係を知ってれば、容易に理解できることなんだが。
君の説明を、他人が理解しなかったとすれば、その原因は君自身にあるんじゃないかな?
Re: (スコア:-1)
知らなかった事を認めずに苦し紛れの言い訳ですか。
みっともない。
あなたが何と言おうとcmdletはobjectを返す仕様なのです。
それを否定するならMSに言ってください。
Re: (スコア:1)
Cmdletがオブジェクトを返すから、オブジェクト指向でないと説明できない。
...という狭い考えを私は否定しているだけです。
ScriptPropertyは、文字通りプロパティを意識しているわけです。
プロパティは、オブジェクト指向特有の考え方ではなく、それ以前の構造体のメンバとしてでも説明可能です。
メソッド呼び出しだって、構造体のメンバを関数として呼び出すことで説明できます。
ちょうど、C++が仮想関数でそうしたように、です。
ScriptPropertyはその組み合わせに過ぎませんし、()を付けずに関数を呼び出すことは珍しいことではありません。
相手がこれらを理解できないとすれば、あなたの説明が悪いか、相手が関数も構造体も理解してないかのどちらかでしょう。
私は、前者の可能性が非常に高い、と推測しています。
私は、私の知識が十分でないことを認めてないわけではありませんよ。
ScriptPropertyのことはすっかり忘れてました。
あなたとはその辺りが違います(笑)。
Re: (スコア:0)
cmdletでオブジェクトを取得してそのプロパティにアクセスする事で情報を得たり
メソッドを呼び出して何らかの操作を行ったりする事はオブジェクト指向とは無関係と
主張するならどうぞ。
そんなもの構造体のメンバと関数ポインタ使えばCでも簡単に実現できるぜ
といった実装と無関係な概念の話なのですが理解はしてもらえないようですね。
Re: (スコア:1)
cmdletでオブジェクトを取得してそのプロパティにアクセスする事で情報を得たり
メソッドを呼び出して何らかの操作を行ったりする事はオブジェクト指向とは無関係と主張するならどうぞ。
お、ついに出ましたな。
相手が主張してもないことを否定して悦にいるメソッド(笑)。
よっぽど反論に窮したようですね(笑)。
そんなもの構造体のメンバと関数ポインタ使えばCでも簡単に実現できるぜ
といった実装と無関係な概念の話なのですが理解はしてもらえないようですね。
あなたが説明した場合はそうなんでしょうね。
普通のレベルの人は、実装の話もできるし、コードの動作の話もできますし、相手に理解してもらうこともできます。
事実、あなたは私の説明を理解しちゃいましたね。
あなたにとっては、ひじょーにざんねんなことに(笑)。
Re: (スコア:0)
いろんな意味で幸せな人ですね。
> 普通のレベルの人は、実装の話もできるし、コードの動作の話もできますし、相手に理解してもらうこともできます。
十把一絡げで人月売りされているSEと呼ばれる集団での「普通のレベル」にそこまで期待できるとは。
そのあなたの脳内「普通のレベル」集団とオブジェクト指向を知らない集団の積集合がφになったりしませんかね。
Re:どうみてもWindows PowerShellの二番煎じ (スコア:1)
十把一絡げで人月売りされているSEと呼ばれる集団での「普通のレベル」にそこまで期待できるとは。
あなたのレベルがそこまで低い…じゃなかった、あなたの周りのレベルがそこまで低いとは思ってませんでした。
でもならば、なおのこと「オブジェクト指向」なんて難しい概念でなく、構造体とか関数とかで説明した方がいいんじゃないかな。
そのあなたの脳内「普通のレベル」集団とオブジェクト指向を知らない集団の積集合がφになったりしませんかね。
なっても問題ありませんよ。
私の言う「普通のレベル」の人達は、メソッド呼び出しやプロパティを、オブジェクト指向の言葉に頼らずに、その実装やコードの説明をできる人を言います。
一般に、そういう「普通のレベル」の人達は、オブジェクト指向についてある程度知っているでしょうから、オブジェクト指向を知らない集団とは重ならないでしょうね。
何か問題でもありましたか?