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

現在学ぶべき、迅速な開発ができる言語は? 115

ストーリー by hylom
宗教戦争がはじまる…… 部門より
headless 曰く、

本家Slashdot「Ask Slashdot: Best Rapid Development Language To Learn Today?」より

何年も前は私もプログラマーだったが、大学で習ったのはLispやCだ。現在は別の分野で働いているが、手早くデータ処理をする必要がある場合などにコードを書くこともある。Cを使うのは古臭く感じるし、無駄に難しいので、ほとんどの場合はUnixシェルスクリプト(bashとgrep/sed/awk/bcなど)やPHPで済ませている。しかし、これらもかなり古いものだ。私はもう若くないので、言語を選んでから数時間で作業を終えるのは難しい。現在はもっと人気があり、さまざまな利点があるとされる言語がたくさんあるが、私は今の仕事をやめるつもりはなく、プログラマーとして新たな仕事を始めるわけではない。ただ自分のコーディングスキルをアップデートして、現代の技術を活用したいのだ。

理想的には、Webやモバイル、GUIデスクトップなどに関連した言語で、コマンドラインを使用したデータ処理との統合も可能な、インタープリター型の言語を学びたいところだ。私はクライアントのためにコードを書くわけでも、市販用のソフトウェアを書くわけでもなく、データベースから落とした大きなCSVの処理や、現場のスタッフが一回限りのデータ収集に使用するモバイルアプリを作るだけなので、少なくとも手っ取り早い開発が可能なものがいい。今やっている作業も新しい技術を使えば効率よくできることがわかっているので、bashやPHPを使った作業にはうんざりしている。しかし、本来の私の仕事はプログラミングではなく、必要に迫られてコードを書いているだけで、複数の候補を試してみるような余裕はない。

周囲からはPythonやLua、JavaScript+Node、Rubyなどを勧められたが、私はスラッシュドットの意見を聞きたいと思う。内輪で使うツールを手早く開発するのに使用する言語を、便利さやパフォーマンス、利用可能なプラットフォームの幅広さなどのバランスを考慮して1つだけ推薦するとしたら、何を選ぶだろうか。また、その理由もお教え願いたい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by deleted user (13014) on 2014年06月18日 20時08分 (#2623414)

    Webサービス: Google App Engine に最適な Python、何か理由があれば Go や Java もオーケー(Google App Engine は絶対的に強力。使わない選択肢なし)

    モバイルクライアント: Android や iOS の提供する API にアクセスしたければ、Java / Obj-c しかない

    HTML5 クライアント: JavaScriptで書くことが多いでしょうが、Dart もいいでしょう

    データ分析: RでもHaskellでもなんでもいい。既存のライブラリがあるときは、その言語でそのまま書くべき

    リアルタイムゲームサーバ: なんでもいいけど、C++ よりは何か高級言語のほうが楽

    ゲームクライアント: cocos2d-x /C++ や Unity/C# を使ってクロスプラットフォームにする。なぜならゲームのようなOSが提供する API にアクセスしなくていいし UI ガイドラインとかブランディングのために無視できるから。

    • by Anonymous Coward
      モバイルクライアント Swift ←new!
      も追加で
    • by Anonymous Coward

      > Google App Engine に最適な Python、何か理由があれば Go や Java もオーケー
      いまさらPython2に戻るくらいならGoでも勉強しますかね。

    • by Anonymous Coward

      ゲームほどOSのAPIにアクセスするアプリケーションもそうないのでは、ファイルIOもグラフィックのネットワークアクセスもOSのAPIを使わずに出来ない。
      OSのAPIの殆どは、OS非依存な形でラップできるし、既にライブラリもあるから、モバイルクライアントもJava / Obj-c以外の言語で開発できる。

      • by deleted user (13014) on 2014年06月18日 22時16分 (#2623509)

        ゲームで使うAPIっていうのは、OS非依存なAPIだらけだから、クロスプラットフォームでいいんです。むしろ、iOS と Android と違う動きをしてもらっては困る。同じように動いてほしいから、同じコードベースで組むしかない。しかし、それ以外のアプリは、iOS / Androidが元から提供している API を使うのが最適なんだろうと思います。主に UI、ナビゲーションの部分で、OS ごとに違うのだから、違う実装にするのが自然であると、それが Android / iOS のデザインした人の意図でしょう。

        とはいえ、Apple / Google の中の人にしてみれば、iOS / Android が提供する API をがっつり使ってもらう予定だったんでしょうが、実際に動いてるアプリケーションはじつのところ、そうでもない。機能的にHTML5と大差なかったり、一貫性のある UI がモバイルアプリのあるべき姿と想像していたら、悪いデザインのアプリでも、それはそれで、機能するものなら人は案外、適応して、嫌々ながら使い続けてしまう。なんだか真面目にデザインして地道に Apple / Google の意図通りのアプリを書く人がバカを見てるような、ぎこちない状況です。

        親コメント
  • 手を動かせ

  • by esuta (40045) on 2014年06月18日 18時05分 (#2623318)

    目的のことに適したライブラリがあればその言語を使う

    • by Anonymous Coward

      うん
      自動的にpython一択になるね

  • by Anonymous Coward on 2014年06月18日 18時09分 (#2623324)

    マクロの記録結果のコード読むだけで勉強できて手軽だし。

    • Re:Excel+VBA (スコア:3, おもしろおかしい)

      by Anonymous Coward on 2014年06月18日 18時22分 (#2623338)
      ぎやあぁぁぁぁぁぁ
      親コメント
    • by FlakTower (32689) on 2014年06月19日 11時24分 (#2623815) 日記

      初めはそれでよいと思いますが、
      「マクロで記録されないものがある」とか
      「書き換えて汎用できるようなコードで記録しない」とか
      わかって、侮蔑のスラングを吐きまくることになります。

      結局、セルコピーについても「マクロ記録と関係なく」
      自前の汎用ルーチンを作って使い回す形に。

      エクセルマクロで楽になるのは、それからです。

      どっちにしろ、使えるプラットフォームは限られますが。

      親コメント
    • Re: (スコア:0, おもしろおかしい)

      by Anonymous Coward

      ぎやあぁぁぁぁぁぁ

    • Re: (スコア:0, おもしろおかしい)

      by Anonymous Coward

      いやあぁぁぁぁぁぁ

      • by Anonymous Coward on 2014年06月18日 22時22分 (#2623515)

        【見栄エンジニア講座】
        VBAと聞いたら脊髄反射でテンプレ反応しときましょうね。
        具体的に何が悪いのかなどと問われたときには、
        「そんな質問が出ること自体が悪夢」「話にならない」
        とか何とか言って封殺しとけば大丈夫です。

        親コメント
  • データベースから大きなCSVを落とすくらいなら
    SQL で加工して、適当なレポートツールで見るのがよさそうだ。

    デベロッパであればもっと自由度の高い言語を選ぶだろうが
    業務プロフェショナル向けには問題に注力できるようシンプルなものが好ましい。

    SQL で作ればパフォーマンスもよく、利用可能なプラットホームも幅広い。
    コマンドラインを使用したデータ処理との統合も容易だし、
    書き捨てのコードにも、寿命の長いコードにも対応できる。

  • スクリプトでちょちょいと処理しようとしてもファイル名の漢字コードとファイル内の漢字コードが違うだの、そもそもファイル名ASCIIじゃなきゃダメだのがあって、文字コード関係の処理が充実していない言語が候補から外れる。
    だもんで、ソースファイルを扱う場合は(ファイル名の問題がないから)目新しい言語に手を出してみても、文書ファイルを扱うときはPythonに頼りきり。

  • by Anonymous Coward on 2014年06月19日 3時03分 (#2623630)

    この程度のことで悩むのがおかしいし、スラッシュドットの意見を聞く必要も無い
    今までUnixシェルスクリプト(bashとgrep/sed/awk/bcなど)やPHPで済ませていたのなら、どんな言語を使っても問題ないだろう
    機能が限定された古いものがお好みならAWKでも十分だし、より新しいものを使いたければ必要に応じてPyton, Ruby, Perl, Javascript等を使い分ければよい
    (こんなことで悩むのはいろんなプログラミング言語をいじって、いろんなプログラムを組んだ経験の少ない人に多い)

    • そうですよね。
      それで間なぐ時間が足りず、書くプラットフォーム共通で使い回したいなら、
      まず自分が使う可能性があるプラットフォームで共通に
      使える言語を確認して、それを学べばよいことです。

      例えば、私ならWinとlinux、過去の経験を考慮するとperlを選びます。
      でも、大抵は共通かするより、それぞれのプラットフォームで別々に作っていた経験があるので、
      共通化はせずにいます。

      親コメント
  • Lisp 使ったことがあるなら、 Clojure や Ruby が学習コストが低くて、いろんな用途に使えると思う。

  • TypeScript は大雑把に言うと今策定中の ECMAScript6 に静的型チェックを追加したものだが、想像以上に JavaScript との親和性が高い。
    JavaScript のビルトインオブジェクトや jQuery に正しく型を付けられる言語が他にあるだろうか?(いいやない)

    JavaScript を使う機会があったら、TypeScript を考慮に入れてみるのもいいと思うよ。

  • by Anonymous Coward on 2014年06月18日 18時14分 (#2623330)

    自分の端末内のみで完結するならライブラリの充実度。
    他のホストに持って行って動かすならある程度の利便性は我慢して既にある言語環境||構築しやすい言語環境を選ぶ。
    なので、私も結局はMacでもAWSでもどこでも大体動くbash+Perl/awk/sedとかPHP。
    たまにスキル低下しないように必要も無いのに端末内アプリでRubyやPythonとか使ってます。

    そもそもデータ処理で最新の言語と過去の言語で、コーディングコストや実行パフォーマンスってそんなに変わるのかな。
    今も数百Mのログを精査してDBマスタと比較して特殊アクセス解析したりしてるけどどれも対して変わらない・・。
    一番いいのはDBをメモリに保持するとかキャッシュするとかコーディングテクニックな気がする。

    • by Anonymous Coward

      演算処理がタイトループを含んでいるならJITのある言語だろうねえ。
      文字列処理なら違わないだろうけど。

  • by Anonymous Coward on 2014年06月18日 18時25分 (#2623340)

    「bashやPHPを使った作業にはうんざりしている。」

     bashとPHP極めてから言えば?としか思わない。

    「私はクライアントのためにコードを書くわけでも、市販用のソフトウェアを書くわけでもなく、データベースから落とした大きなCSVの処理や、現場のスタッフが一回限りのデータ収集に使用するモバイルアプリを作るだけなので、少なくとも手っ取り早い開発が可能なものがいい。」

     なおさらPHPでいいだろとしか思わない…。

    • 「bashやPHPを使った作業にはうんざりしている。」

       bashとPHP極めてから言えば?としか思わない。

      一つの言語に飽きて別の言語に移ってもいいんじゃないか。にんげんだもの。

      とは言うものの、時間がないならスラッシュドットなんかで聞いているより、

      周囲からはPythonやLua、JavaScript+Node、Rubyなどを勧められたが

      と勧められた中のどれでもいいから一つ使ってみる方がいいんじゃないの、とは思う。それで「Python は使ってみたけれどここが困る」とか言えれば、他の案を人に聞きやすいし。

      親コメント
    • by Anonymous Coward on 2014年06月18日 20時32分 (#2623437)

      とりあえずPHPとZendをちゃんと使えるようになってからモノを言おうという気は強くする。

      だいたい、言語を選んで数時間で目的を達成したい、みたいな事を言っているが
      ”それならなおさらPHPをちゃんとつかいこなせ”

      親コメント
    • 選り好みできる状況なら構わないだろ。
      極める極めないは好き好きだし。
      マゾじゃないんだからうんざりしてるならやめようよ。

      個人的には人それぞれだからそれぞれ試した方が良いとか思うけど、それも人それぞれだからな。
      #てかPHP押しも選り好みだと思うがなー

    • by Anonymous Coward

      > 今やっている作業も新しい技術を使えば効率よくできることがわかっているので、bashやPHPを使った作業にはうんざりしている。

      効率よくできることがわかっているのか。それ使えや。
      ・・・何がわかってるんだ?

  • by Anonymous Coward on 2014年06月18日 18時26分 (#2623342)

    Python一択。

    ちょっとした使い捨てスクリプトを作るだけなら、パフォーマンスやオブジェクト指向関連の機能なんて関係ない。ましてやNodeの並列性とか、まったく不要(誰だ薦めたのは)。
    簡潔で欠点の少ない言語だし、PHPが書けるなら、ベテランでもすぐに覚えられる。ライブラリの集積はピカイチ。所在国は不明だが、英語圏ならユーザーの多さも圧倒的。
    普段のちょっとした作業にも使えるし、本人の希望にあるようなWebやGUIアプリもかなり上手にこなせる。
    PHPから移行すれば、シンタックスの簡潔さに、「移行した満足感」が得られる。

    とはいえ、PHPのままでもたいして変わらない気もする。
    なんといっても慣れている言語が一番だと思うし。あまり言語に過大な期待を抱かないほうがよいとは思うなあ。

    #と、思う私はRubyユーザー。

  • by Anonymous Coward on 2014年06月18日 18時32分 (#2623355)
    sed、awk、grepだけでいいよね…いい……
  • by Anonymous Coward on 2014年06月18日 18時42分 (#2623360)

    フォームが1つか2つのちょっとしたツールを作るなら Visual Studio で C# が最強ですねー。
    30分ぐらいでなんでも作れる感じ。
    一昔前は Delphi だったと思いますけど。

  • by Anonymous Coward on 2014年06月18日 20時03分 (#2623411)

    OSによってbatやsh、派生としてjspとJavascriptも入れてあげれば何でもできる
    BASIC…?保守運用頑張ってください

  • by Anonymous Coward on 2014年06月18日 20時55分 (#2623449)

    質問の文面があまりに不明瞭すぎ。まず自分の要求を明確化することからはじめよう。

  • by Anonymous Coward on 2014年06月18日 21時05分 (#2623456)

    > Cを使うのは古臭く感じるし、無駄に難しい
    それでプログラマを名乗るとは片腹痛いなー

    > 1つだけ推薦するとしたら、何を選ぶだろうか
    君をクビにする。

typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...