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

Stack Overflow調べ、Rustが5年連続で最も愛されているプログラミング言語に」記事へのコメント

  • by Anonymous Coward on 2020年05月30日 20時28分 (#3824761)

    しかし、やはり入門者にはあまり優しくないと思う。
    非常に丁寧なチュートリアルがあって入門自体は容易なのだが、そこから一歩踏み出すと急に突き放された気分になる。

    致命的なのがドキュメントが検索しづらく読みにくい上に情報が(まだ)あまりない。
    それにも関係するが、多くの言語なら(準)標準ライブラリに入っているようなものが、個別のコミュニティでメンテナンスされている。
    開発サイクルを考えるとそれ自体は悪いことではないのだが、情報が分断されてしまっている。

    標準ライブラリが「薄い」点はC言語も似たようなものかもしれないが、
    C言語のライブラリは(命名規則の不統一に目を瞑れば)適当に組み合わせても何となく動かせる。(何となく動いてしまう)
    一方でRustはトレイトの制約を満足させる必要があるので、使うパッケージそれぞれの流儀をよく理解しないといけないが、それは入門者にとって困難。
    このトレイトの抽象化度合いがライブラリ毎にだいぶ異なるので、チュートリアルで感銘を受けるほど、現実では魅力的に機能していない。

    でも、もうC++は愛せないな。

    ここに返信
    • by Anonymous Coward on 2020年05月30日 23時41分 (#3824833)

      >致命的なのがドキュメントが検索しづらく読みにくい上に情報が(まだ)あまりない。
      1.0以前から使ってるけどほんと改善されない。ドキュメントの質は全体的に悪い。
      特にrustdocは完全にオーバーエンジニアリングでまるで利便性に貢献してないのが初学者が苦労すると思う。

      • by Anonymous Coward

        良くなったと思ったら改悪したり機械翻訳に戻したりコロコロ変えるし、ドキュメントは良いとは言えないが、情報量や説明内容ともにphpなんかと比べればはるかにマシ。

    • by Anonymous Coward

      最近、Software DesignやInterfaceが特集組んだり特集の中で大きく取り上げたりしてるね。
      > 致命的なのがドキュメントが検索しづらく読みにくい上に情報が(まだ)あまりない。
      こういう状況だからなんだろうか。

      • by Anonymous Coward
        そのInterfaceを読んでRustに興味を持ち、環境をインストールしてみました。
        しかし、確かに情報やサンプルの少なさがちょっとがっかりでした。

        あとはライブラリですかね。言語そのものは今後使ってみたいと私も思いましたが、今まで使ってきた、作ってきたライブラリが使えないのが難点だと思って、「お試し」程度しか使ってません。
        これまでのC++のクラスがそのまま使えれば便利だろうけど、言語仕様的に無いだろうなぁ。

        余談だけど、このストーリーでさえもRustそのものの話題は少ない事が、Rustの現状を物語っているようにさえ思いました。
        • by Anonymous Coward

          >これまでのC++のクラスがそのまま使えれば便利だろうけど、言語仕様的に無いだろうなぁ。
          rustbindgenがc++のabi対応してる。何を言っているかわからないと思うがry

          そもそも、rustとパラダイムが違うのと、c++が他言語から呼び出すのに向いてない。
          今のrustbindgenがc++に対応したのだってmozillaが既存の資産使うから魔改造したんだよ。

    • by Anonymous Coward

      あとエラーメッセージもあまり親切でないね。
      何が起こったかは分かるけど、何故そうなったか(何を直せばいいか)をほとんど教えてくれない。

      まぁ、例えばC++のテンプレートのエラーも似たようなもんだけど、
      大抵は、エラーの箇所を適当にコメントアウトしたり、スタブに置き換えたりして、
      作業を進めながら原因究明ができる。

      Rustの場合、そういった一時的な取り繕いが他のエラーにどんどん波及していくので、
      前から順番に問題解決していくことを暗に強いられる。
      安全性とのトレードオフあるいはランタイムエラーとの格闘に対する先行投資ではあるのだけれど、
      壁にぶち当たった時の時間の浪費感が半端ない。

      • by Anonymous Coward

        >何が起こったかは分かるけど、何故そうなったか(何を直せばいいか)をほとんど教えてくれない。
        かなり初期の段階でエラーメッセージに答えそのものを載せるようになったし、
        今は該当仕様のドキュメントのリンクも載せる。
        逆にエラーメッセージがbloat起こして煩わしいよ。

        • by Anonymous Coward

          だからまさにそれが「何が起こったかは分かるけど、何故そうなったか(何を直せばいいか)をほとんど教えてくれない」ってことでしょ。

          https://doc.rust-lang.org/edition-guide/rust-2018/the-compiler/improve... [rust-lang.org]
          これ読んで、「そういうことじゃねーよ」って思わない?

          • by Anonymous Coward

            >これ読んで、「そういうことじゃねーよ」って思わない?
            思うけど、今はドキュメントのリンクも載せるって言ってるじゃん。

            • by Anonymous Coward

              そのドキュメントが何が起こったかを多少丁寧に説明するだけでないの?

              エラーはそれ自体が原因であることも多いが、別の問題の結果であることもあり、厄介なのは後者。
              同じエラーでもコンテキストに応じてメッセージを変えるのが「親切」。「丁寧」とはまた違う。

              勿論、他の言語でもエラーメッセージが不親切な例はいくらでもあるが、
              Rustのドキュメントの質と到達可能な情報量、歪な丁寧さが問題を際立たせている。

    • by Anonymous Coward

      これがいわゆるデレツンというやつなのか。1週間くらいしつこいくらいに連絡を入れるけど、その後パタッと連絡がなくなるとかえって気になるというあれだろうか?
      そしてこの「ツン」を乗り越えたときに、強く代えがたい愛着が生まれる。高い代償を払っているのだから、そこには価値があるはずと思ってしまい、このままでは不幸になるとわかっていても別れることができなくなってしまう、そういうことなのか。

      • by Anonymous Coward

        元カノの鼻から悪魔をだす癖が受け入れられなくて……。

    • by Anonymous Coward

      Rust は文法がちょっと汚い(Scala あたりよりははるかにマシだけど)のと演算子のオーバーロードがあるのと暗黙の型変換(強制)に頼らないとまともにコードが書けないのがちょっと。

      基本的にはいい言語だと思うんだけどね。

      • by Anonymous Coward

        Rustの位置付けからして、文法の比較対象はC/C++であるべきでないの? 見た目の問題はIDEがそのうち何とかしてくれるだろう。
        宗教的な理由以外で、Rustの演算子オーバーロードの何が問題なのか分からない。

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

処理中...