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

新たにプログラム言語を学ぶとしたらScalaがお勧め? 89

ストーリー by nabeshin
お仕事と鍛錬と 部門より

あるAnonymous Coward 曰く、

本家記事より。思考の幅を広げ、プログラミング自体に対する理解を深めるためにも他のプログラミング言語を学ぶことが大切だそうだ。新しい言語を学ぶことによりスキルを大きく伸ばせるとChris Diggins氏はブログで説いている。彼はC++やJavaの経歴を持つ人たちが次に学ぶ言語として、Rubyを挙げている。「ダイナミック言語の力量を試すことが出来、SmalltalkやPerl、そしてLispの概念を活用できる」からだそうだ。しかしどれか1つに絞るとすれば「どんなバックグランドをもつプログラマであろうと取っ付きやすい」Scalaが一番のお勧めとのこと。

このScalaを知らなかったのですが、使っている、使ったことのある方はいらっしゃいます? 新たにプログラミング言語を学ぶとしたら何を学びたいか、もしくはお薦めの言語などありましたらそれもぜひ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2008年03月19日 15時52分 (#1315887)
    ちょっと草植えときますね型言語 Grass [sky.or.jp]

    実用性はともかくとして、こういうのも知っておいて損はないかと。
  • 面白そうですね (スコア:3, 参考になる)

    by Deasuke (34806) on 2008年03月19日 16時03分 (#1315893) 日記
    とりあえず簡単な日本語の解説記事です。
    http://www.thinkit.co.jp/free/article/0711/4/3/
    --
    Best regards, でぃーすけ
  • そもそものハナシですが (スコア:2, おもしろおかしい)

    by duenmynoth (34577) on 2008年03月19日 19時12分 (#1316002) 日記
    C++とJAVAだけで精一杯
    どちらか一方だけでもマスターできるかどうか怪しいのに
    この上さらに新しい言語を学ぼうなんて大それた事は考えてもいませんでしたよ

    私が無能なだけ?
    • by Ryo.F (3896) on 2008年03月19日 19時26分 (#1316015) 日記
      C++とかJAVAとかを学ぶ、というのは、言語仕様・文法を学ぶことに加えて、それに付随する膨大なライブラリの使い方を学ぶ、ということを含んでるよね。
      他の言語もそう言ったスタンスで学ぶと、無理が出てくる。
      そうでなくて、言語仕様や文法のみ、あるいはそれに加えてごく基本的なライブラリの使い方だけを学ぶ、というスタンスでも、「プログラミング自体に対する理解を深める」ことになら十分役立つと思うよ。
      親コメント
      • C++とかJAVAとかを学ぶ、というのは、言語仕様・文法を学ぶことに加えて、それに付随する膨大なライブラリの使い方を学ぶ、ということを含んでるよね。

        C# や Java ならともかく、C++ の場合は膨大なライブラリの使い方というよりも、無限の可能性を秘めたテンプレートの使い方こそが肝で、この部分をマスターできるという人は世界的にもトップクラスの C++ 使いだと言えると思いますよ。

        C++ をマスターするとか、幻想過ぎて困る。

        中身が switch だけのテンプレートを利用したインライン関数でテンプレートへのパラメータが定数の場合、分岐で switch (3) とかになるようにすると、case 3: 以外はすべて通らないコードになるので「コード自体は他の状況にも対応している」が「コンパイルされるコードは必要最低限」で、「生成されるバイナリはインライン展開された上に switch 部分がコンパイラの最適化で消える」コードとか、目から鱗というか唖然としたというか……。

        # Java/C# の Generic はよくできているけど、C++ template 使いにはおもちゃにしか見えない。

        親コメント
    • by Anonymous Coward on 2008年03月19日 20時30分 (#1316055)
      息抜きとして全然違う言語で遊ぶと、メインで使っている言語を新たな視点で見られる様になります。
      そういう意味でも、毛色の違う言語を覚えるのはおすすめです。
      親コメント
      • by Anonymous Coward on 2008年03月19日 21時50分 (#1316088)
        >息抜きとして全然違う言語で遊ぶと、メインで使っている言語を新たな視点で見られる様になります。
        そしてlispを覚えるためのついでとしてエディタをemacsにして以後他のエディタにさわれない呪いをうけるのであった。

        #ちぇー
        親コメント
  • by kmizu (29449) on 2008年03月19日 19時14分 (#1316004)
    Scalaは仕事では使ってませんが(というか学生なのですが)、趣味のプログラミングでは
    普通に使っています。Scalaは

    ・処理系がJVM上で動作し、Javaのクラスに容易にアクセス可能
    ・クラス指向OOP(手続き型)と関数型のハイブリッド
    ・静的型付けでかつJavaの型システムとのギャップが少ないため、
        Javaのクラスを継承してScalaのクラスを作成することが問題無く可能

    などの特徴を持っているため、特にJavaプログラマが新たに学ぶ言語として
    お勧めです。また、単にオブジェクト指向と関数型のハイブリッド型であるに
    とどまらず、

    ・implicit conversionによるユーザ定義の自動型変換(Views)
    ・ユーザ定義可能なパターンマッチング(Extractor)
    ・structural typing
    ・path-dependent type

    などの、他の言語にはあまり見られない面白い機能も持っているので、言語オタクの
    方にもお勧めできる言語になっていると思います。
  • by Anonymous Coward on 2008年03月19日 19時22分 (#1316011)
    微妙に違和感を感じて気持ち悪い、が正解じゃね?

    まぁ、それはさておき、
    「いろんな経験者が移行しやすい」事と「新たに学ぶのに適している」事は全く相関性がないと思うが如何か?
  • 提案 (スコア:2, 興味深い)

    by paprika (5024) on 2008年03月19日 19時54分 (#1316034) 日記
    新たにプログラム言語を学ぶとしたら、「オレ言語」を自作してみるのがお勧め。

  • by foobar2006 (30156) on 2008年03月19日 21時09分 (#1316071) 日記
    日本ではかなりマイナーみたいですが(^^;
    http://pike.ida.liu.se/ [ida.liu.se]

    Cの知識でほとんどなんとかなるから(構文がほぼそのまま)。
    クラスも使えるんで、Cの次にC++に行かずにPikeってのもありかも。

    また、ちょっとアルゴリズムのテストってな時に良くて、
    sscanf()、sprintf()やらsizeof()まであるので、後でCにもコピペしやすい。
    • by i12o (35348) on 2008年03月19日 23時28分 (#1316144)
      今Pike使っていろいろやってるんですが、コンパクトなサンプルコードとか見当らなくて
      苦労してます。なんかいいオブジェクト・モジュールの書き方とか使い方の情報源ありませ
      んかね。
      # いや、すんげー量の英語ドキュメントちまちま見てはいるんですが、今一つリファレンス
      # マニュアルの見方がわからない(- -;)

      理解できてないためにいろいろ(?_?;)連発ですが、なんとなく書いてて安心しますね。
      型指定を明示できるあたりがいいのかな。
      親コメント
      • by foobar2006 (30156) on 2008年03月20日 16時11分 (#1316465) 日記
        > 今Pike使っていろいろやってるんですが、コンパクトなサンプルコードとか見当らなくて
        > 苦労してます。なんかいいオブジェクト・モジュールの書き方とか使い方の情報源ありませ
        > んかね。
        私の場合は改造したい既存のプログラムがPikeで書かれていた。ってところから入ったんで
        そのへんあまり悩みませんでした。
        後はちょっとしたツールや、対向テスト用に通信相手側をちょろっと書くくらいなので(^^;

        参考になるかわかりませんが、ここなどどうでしょう。
        http://modules.gotpike.org/ [gotpike.org]
        親コメント
  • by elderwand (34630) on 2008年03月19日 21時58分 (#1316096) 日記
    必要になったら勉強します。
  • 使用例 (スコア:1, 興味深い)

    by Anonymous Coward on 2008年03月19日 15時20分 (#1315872)
    私自信も使ったことはありませんが、どう書く?org [doukaku.org]に scala での解答例が結構あります。
    といっても、ほとんど一人で書かれているようですけど。

    同じお題の、他の言語での解答例と見比べてみると、どんな言語かわかりやすいかもしれません。
    • by Anonymous Coward
      そう言えば scala使いいたなぁと思ってアクセスしたら、
      またアクセスできなくなってる... orz

      最近落ちやすくなってません?

      # スラドとは別名で投稿しているのでAC。
  • いま俺に必要な言語は (スコア:1, すばらしい洞察)

    by Anonymous Coward on 2008年03月19日 15時53分 (#1315888)
    英語、だな

    日常会話というプログラムを組み立てるのも一苦労ですよ
  • 最近、「最適なー用言語は?」
    って話題に触れる機会が多いのだけどなんなんだろう?
    それはそうと、

    やりたいことが明白なら
    それにそって選べばいいでしょ?

    思考の幅を広げるためなのに
    とっつき易さとかどうでもいい要素でしょ。
    知ってる概念(過去の遺産)が活用できたら勉強にならんし。

    # #define begin {
    # #define end }
    # なんというPascal
  • by Anonymous Coward on 2008年03月19日 15時44分 (#1315883)
    タグが

    programming, ruby (タグ beta)
    なぜruby。そしてなぜrubyだけ。
    • by Anonymous Coward
      そうですね。Rubyに似たクロージャが利用可能にしても、メインはJavaプラットフォームなんだから。
  • by Anonymous Coward on 2008年03月19日 16時55分 (#1315918)
    手続き型言語だと何を使っても大同小異だし、発想の転換をするなら関数型言語でしょう。
    Schemeあたりなら良書があるし、新し物好きならGaucheかな。
    まあscalaも関数型言語だから良い選択じゃないかな。
    • by Ryo.F (3896) on 2008年03月19日 17時13分 (#1315924) 日記

      手続き型言語だと何を使っても大同小異だし、発想の転換をするなら関数型言語でしょう。
      そういう意味なら、論理型言語のProlog [wikipedia.org]も。
      親コメント
    • Erlangもお薦めリストに入れておいてもらえますか?
      既にJava,PHP,Perl等をやってきた方であれば、

      ・諸先輩方が言われてるように、関数型言語から新しい考え方を学べるのは楽しい。
      ・言語仕様がかなりコンパクト(その分、変と言われてるようだけど)なので、覚えるこ
        と自体は楽。
      ・専用のシェルで評価実行しつつ、コンパイルして実行、他スクリプトやGUIやWebでも
        実行できるので、試しやすいし、ほとんどのプラットフォームが抑えられているので間
        口が広い。
      ・標準でかなり広範囲のモジュールが附属してて、CEANやjungerl等のライブラリサイ
        トもあるので、それほど自分で拡張とか考えなくていい
      ・特性としては軽量プロセスの生成を基本とした、分散並列処理がすごく得意で、そっ
        ち方面へのプログラミングのステップアップとしては最良だと思う。
      ・Ejabberd(Jabber)、Yaws(Web)、Erlyweb(RoRみたいなやつ)、Mnesia(分散DB)等
        勉強がてらに触って楽しそうなものもでてきてる。
      ・最近「プログラミングErlang」という良本が出た!

      逆に、

      ・最近はあまり流行ってない?
      ・国際化とか頭っからないらしい。日本語を扱えないことはないけど、不便。

      という感じですが、Amazon EC2とかで何十台も計算機資源をつかってなんかし
      たいなと夢を見ながら学んでます。
      親コメント
typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...