パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

PowerShellがオープンソースに、LinuxおよびMac OS X版も提供へ」記事へのコメント

  • by Anonymous Coward

    シームレスに.NET Frameworkも (やりたくないが) COMも叩けるから今までのスクリプティング環境から世界が変わる。
    調子こいて長大なバッチ処理書いたりするとめちゃくちゃ遅くて悶絶するが…

    • by Anonymous Coward

      PowerShellだととにかくスクリプトが長くなる。

      ぱっと書くにはめんどくさいし
      かっちり長々と書くと他の言語で書くより圧倒的に遅くなる

      既存の言語から乗り換える人いるのかなーというのが正直な感想。
      PythonやBashやPHPやJavaScriptで事足りてる人に何かアピールできるところって有りますか?

      マルチプラットフォームってことなら他の言語のほうが実績も資産もあるし、何より早い。
      例えば、下記のようなキメラな処理でもPowerShellより圧倒的に早い上に書くのも簡単。
      grep "hoge*" hoge.txt | gawk 'BEGIN{FS=";"}{print $3}' |

      • PowerShellは、コレクションを戻り値にしたときの扱いによく嵌まる。
        http://www.pine4.net/Memo/Article/Archives/203/ [pine4.net]
        大抵はObject[]だろうがArrayListだろうがどちらでも良いのだが、要素数が1つの場合に解かれて、ListのListみたいなものを扱うとわかりづらいバグになった。
        • by Anonymous Coward on 2016年08月20日 18時06分 (#3066854)

          これなあ…
          lsの結果とか、空の時とファイル1個の時と2個以上の時とで型が変わっちゃうんだよね。
          知ってて問題に気付けばすぐ直せるんだけど、初心者は必ず嵌るし、スクリプト適当に書いてると後で問題が発覚する。
          何気なく対策入れてるコードは何やら呪文めいてる(リンク先では不思議なカンマが入っている)し、
          この自動変換いらんかったんじゃないかなあ…

          親コメント
          • by Ryo.F (3896) on 2016年08月20日 18時41分 (#3066864) 日記

            lsの結果とか、空の時とファイル1個の時と2個以上の時とで型が変わっちゃうんだよね。

            それって例えば、

            $list = @(ls)

            で解決しない?

            確かにハマりやすい点ではあって、PowerShellの最初の方で教えとくべき。

            親コメント
            • by Anonymous Coward

              うん、ls自体がコレクションを返すイメージがあるのに、
              1次元のコレクションを$listに入れるのにこう書いてると、よく知らない人は@()余計じゃねって思うでしょう。
              思わないかな、PowerShell覚えたての人にとってどうなんだろ。単純な配列リテラルと認識してると思うんだけど。

              その辺常識化されてる気がしないから 「#@()で常に配列を返す」 とかコメント入れようとか思うけど
              でも毎回コメント書くのか?みたいな。

              後でパイプライン通すだけのものを一時的に$listに入れる時は@()とかは要らないわけで、
              類似の複数のコードの中@()してるのしてないのが出てくるし、
              じゃあ逆に全部@()で括るの統一するかっつうと変数挟まないものでも @(ls)|%{$_.FullName} とかしないとバランス悪い気がするし、なんかなー。

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

処理中...