パスワードを忘れた? アカウント作成
10649314 story
プログラミング

いまだにテキストベースでコードを書いているのはなぜ? 205

ストーリー by headless
鉛筆 部門より
本家/.「Ask Slashdot: Why Are We Still Writing Text-Based Code?」より

私は自分をコードの書ける人間だと思っているが、プログラマーではない。アルゴリズムを考えることや、簡単なスクリプトを書くことは楽しいが、少し複雑なコードになるとお手上げだ。これは我慢強さが足りないだけかもしれないが、実際いつまでテキストベースでコードを書かなくてはいけないのだろう。言語に依存せず、暗号のような専門用語を使わずにアルゴリズムをコンピューターの理解できるものに変換する、より単純で堅牢な方法が必要ではないだろうか。今はまだアセンブリコードの1つ外側の抽象化レイヤーの中にいるように感じる。誰もがコードを書けるようになるグラフィカルなコード生成方法がないのはなぜだろうか。少なくともシンタックスエラーを修正するのにかかる時間をなくすことができればいいと思う。疑問は尽きないが、私の見落としているところがあれば教えてほしい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • いまだに (スコア:5, すばらしい洞察)

    by Anonymous Coward on 2014年02月09日 11時26分 (#2542268)

    テキストベースの数式に依存している数学だの何だのの立場は……?

    • Re:いまだに (スコア:5, すばらしい洞察)

      by USH (8040) on 2014年02月09日 11時40分 (#2542274) 日記

      まさしくこれに尽きるな。

      グラフィカルなインターフェースというのは、2次元空間の制約にうまく合う対象にはよいが、それ以外のものについては、必ずしも適しているとは限らない。エクセルとかは2次元を意識するが、それがかえって邪魔なときもよく有る。

      少なくとも、2次元や3次元で、再帰構造をテキスト以上にうまく表す方法を知らない。

      今のところ、テキストという1次元の列に、シンタックスという構造をいれるのが、構造を扱う汎用的かつ強力な手法。これを超える方法を、人類はまだ発明していない。

      親コメント
      • んー?それは文法上再帰として解釈されるだけであって字面には再帰構造は表現されてないよ。
        ただ名前がそのブロック自体やその「呼び出し元」と同じなだけじゃん。

        親コメント
        • by USH (8040) on 2014年02月09日 15時04分 (#2542403) 日記

          まさしくそういうことなのだけれど。

          その部分は、1次元のテキストだろうと、2次元の図形だろうと、大して差はない、ということで、テキストより優れた表現になっていない。(「以上」と書いたのがまずかったか)

          さらに、「名前」というテキスト表現は、一致関係を表現するのには優れているが、それに相当する平面的あるいは立体的表現を知らない。(結局名前というテキスト)

          親コメント
    • #どこに書くか悩んだが、ここにぶら下げることにする。

      絵文字が便利なら今でも絵文字を使っていただろうよ。

      しかし不特定多数の様々な抽象概念を記述するには、グラフィカルな絵文字よりも
      普通の文字/テキストの方が遙かに洗練され、進歩した技術だってだけの話。
      数学や物理やプログラムのような概念を記述する上で、グラフィカルなそれは
      テキストのそれより数段劣る。

      特定用途に関しては専用の記号が発明されることもあるけどね。
      数学におけるインテグラルとかシグマとかのように。
      でも、これも特殊な文字の範疇じゃ無いかな。

      親コメント
  • 勘違い (スコア:5, すばらしい洞察)

    by Anonymous Coward on 2014年02月09日 11時33分 (#2542270)

    私は自分をコードの書ける人間だと思っているが、

    思ってるだけで実際には違うってだけの話だよね?

  • まず (スコア:5, おもしろおかしい)

    by Anonymous Coward on 2014年02月09日 12時21分 (#2542312)

    質問をテキストで書くなよw

  • by sei5 (45140) on 2014年02月09日 12時40分 (#2542323)

    たかが実験の測定のために、テキストベースのプログラミングするのが嫌になって、
    HPのVEE使い始め、ここ10年は、LabVIEWでデータ収集や簡単な計算しています。
    ブロックを線で結ぶだけなので、立ち上がりは速いです。
    立ち上がりだけは。

    線の繋がりで、データフローが直感的に掴めるので、
    簡単な測定するのに、ダラダラッ と書いて、データを取りっぱなし にするには優れています。
    しかし、グラフィカル=直感的=非論理的 なんですよね。
    後で見ても分かるようにするには、かなり綿密に「文字で」コメントを入れておく必要があります。

    論文や数式が、"文字"という抽象化されたツールを用いて表現されるのは、論理的であるための必然で、
    (極論すば)絵画で論理が展開できないのと、根本的には同じことなのでしょう。

    • by Anonymous Coward on 2014年02月09日 13時01分 (#2542344)

      うちだと、MATLABで信号シミュレーションする時には、簡単なやつはSimulinkで
      ぱぱっとやっちまうので、やっぱりブロックを線で結ぶだけですね。

      ただ、性能出しで細かい調整をする場合には最初からMATLABでテキスト表記した方が
      速いし楽ですが。特に後でC++とかに落とすのならテキストのが楽。Simulinkだと
      アルゴリズム検証くらいにしかならないので。コード自動生成? 速度問われない所なら
      それでもいいんだけどねえ。

      親コメント
  • 語学と一緒 (スコア:4, すばらしい洞察)

    by AnotogasterSieboldii (37677) on 2014年02月09日 11時19分 (#2542264)

    誰もが外国人と会話ができるようになるグラフィカルなコミュニケーション方法がないのはなぜだろうか。少なくとも母国語以外の言語を習得するための時間をなくすことができればいいと思う。

  • by Anonymous Coward on 2014年02月09日 11時56分 (#2542289)

    図形プログラミングと自然言語プログラミングは素人さんが夢見る二大巨頭ですねぇ。実際には過去何度も登場しては討ち死にし続けてるわけですが。

    まあ、このタレコミ主が本当に必要としているのは、ユーザーから対話的に要件を聞き出してコードを生成してくれる人工知能なんだと思います。

  • by gnaka (17369) on 2014年02月09日 11時59分 (#2542294) 日記

     マウスよりキーボードの方が大量の情報を素早く入力するのに長けているというのが一つの原因でしょう。
     出来上がったものを出力して見るには図式的な方が見やすいこともあるが、それはIDEのクラスビューとかで既にある程度実現されています。

  • せっかく築いてきた「パネル/ブロック組み合わせプログラミング」の系譜が途絶えたことが、人類が袋小路に行き着いてしまった原因という仮説を…

    #レゴ・マインドストームならやってくれるか!?

  • by Anonymous Coward on 2014年02月09日 13時39分 (#2542361)

    これまでの流れを見ると

    インターフェース的には、
    ・スイッチとランプ
    ・キーボードと文字ディスプレイ
    ・マウスとグラフィックディスプレイ
    ・タッチパネルとグラフィックディスプレイ
    ・マイクとヘッドマウントディスプレイ+イヤホン
    ・ブレイン・マシン・インタフェース

    言語的には
    ・機械語
    ・アセンブラ
    ・高級言語
    ・プログラミングパラダイムの多様化

    という流れかと。

    それぞれの利用する立場で最適な方法を使うことになるのでしょうが、インターフェース技術と人工知能が進歩すれば要求する概念を考えただけでシステムが実現してくれるという形になるような気がします。

  • ハッキングツール作ったりするときの画面みたいな感じで実際に作れたらいいんじゃね?
    ってことだと思うが、攻殻機動隊くらいのSFまで技術が進歩すれば出来るんじゃないかと思ってる。

  • by Anonymous Coward on 2014年02月09日 11時34分 (#2542271)

    20年ぐらい前の学生の頃、GUIを使って部品を組み立てるタイプのなんかの特集を見て、これからのプログラミングはこうなるんだ、じゃあもうプログラム言語なんて覚えなくていいんだなー、と思っていた頃がありました。
    それから数年して、一向に巷でそんなのを見かけないことに気づいて、あれアカン奴だったんや、と気づきましたが・・・。

    ビジュアルな奴って発想は判りやすいのかもしれませんが(使ったことない)、出来ることが制限されたり、細かいことをしようとすると結局テキスト書かなくちゃいけないんでしょ?という印象があります。

    # ステルヴィアの謎のプログラミング環境はよ!

    • むかし dbMagic という環境を使ったアプリケーションを
      保守する仕事をしたことがありますが、違和感ありまくりでした。
      アプリ側の仕様書が従来のやり方で書かれていたのに対し、
      プログラミングはいきなりグラフィカルになっちゃうので、
      「この処理はどこでやってる?」的な、一覧性に欠けるシステムだと
      感じました。新規開発の案件なら効率良いのかもしれないですけどね。

      親コメント
    • ビジュアルプログラミングはピクセル面積あたりの情報密度が低くてなー。

      うまいこと階層化と抽象化を強制するようにでもなってなければ実用には耐えまい。
      でも仮にそのようなものができたとしてもこの記事が主張するような「わかりやすさ」はないだろうし。
      既存言語でも記述の抽象レベルは高められるんだから、抽象レベルが低い云々ってのは単に酷いコードを扱っているというだけだろう。

      # ジーンシャフトのアレ...はダメダメな結果が見えてるかw

      親コメント
  • by duenmynoth (34577) on 2014年02月09日 12時22分 (#2542314) 日記
    まともなコードを書いた事が無い奴特有の寝言

    要するにプログラム言語を覚えずにプログラムを作りたいと言ってるわけで、
    それは電気を使わずにPCを使いたいと言ってるのと同じで、無茶にもほどがある

    #その手の開発ツールは複雑なロジックの実装が通常よりも高コストになるからプロユースに向いてないんだよ
  • by the.ACount (31144) on 2014年02月09日 12時51分 (#2542330)

    並列な論理思考が出来ない人間には無理。

    --
    the.ACount
  • ほかの方も言っているとおり、用途を限定すれば案外使いやすいモノはすでに
    あったり、作れたりするかもしれないですね。

    と思ってふと周りを見ると、ExcelなどのOffice製品用VBAが未だにアレ。
    Office 2013になってもアレなのは正直どうなのよマイクロソフト、とか思う。
    おかげで「若いけどVBAでVB6.0ライクな実装しか覚えていない」とかって変な
    人種が登場したりする温床に。

  • by Anonymous Coward on 2014年02月09日 13時57分 (#2542375)

    テキスト以外ではバージョン管理が難しい
    ってのが大きいのではないかな。
    特にマージが難しいのでロック型ならざるを得ない。

    • 私もこれに賛成です。テキストベースで組んでおけば、バージョン管理ツールの恩恵を受けやすいです。継続的ビルドの書籍でも、開発環境の構成情報すらバージョン管理に含めろと書いてあります。

      テキストベースでのメリットを生かせるようにいろんなツールが既にできているわけで、グラフィカルなものだとどうしてもこれらの仕組みを生かせません。

      グラフィカル中心でやるということは、diff/merge に当たるものからその他もろもろ用意しないといけないわけで、それらの開発コストもそうなんですが、利用者側にもツールの使い方を覚えてもらわないといけないわけです。かえってコストがかかります。

      ただ、向き不向きはありますので web サービスを強化して、BPM で連携とか、そういったところはグラフィカルなものが主流になっていくんでないかと思います。

      親コメント
  • ただそれだけのことだとおもうんだが。

typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...