なぜ、いまScalaなのか?TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。Scalaは、Java VirtualMachine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。
オブジェクト指向言語と関数型言語の特徴を備えたプログラミング言語「Scala」は、JavaVM上で高速に動作する生産性の高い言語として最近注目されている言語です。Scalaは静的型付け言語としての高速性を実現しつつ、非常に柔軟なプログラミングが可能で、オブジェクト指向言語としてコードが記述できると同時に関数型言語の機能も発揮できるとされており、これらが高い生産性につながるといわれています。 また、関数型言語は並列処理を記述するのに適したプログラミング言語としても注目されています。 そのScalaを、子ども向けにやさしくプログラミングを学ぶための言語として採用したオープンソースの統合学習環境「Kojo」が、無償公開されています。 タートルグラフィック機能を搭載 Kojoは、いわゆるタートルグラフィックス機能を標準で備えたScala言語のサブセットで、タートルに命令を与えると画面上にグラフィ
● [Scala] playscala はじめの一歩 インストール インスコ手順scala本体 play framework playscala module 1.scala これからはじめる人は2.8系(まだRCだけど)がお薦めです。(2.7 からいい感じに進化してるので)。ディストリのパッケージはまだ2.7系のはずなので、本家http://www.scala-lang.org/downloads から取ります。 2.8の 最新版(2010/05/04現在はscala-2.8.0.RC1.tgz) をDL 適当な場所に展開 そのscala-2.8.0.RC1/bin に PATH を追加 あとjava も適当に入れます (ubuntu なら sun-java6-jre とか)scala と打って、console が立ち上がればOK。(終了はCtl-dで) 2. play
● [Scala]RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
Scala の追加パッケージscala-msil を使えば、Scala のスクリプトから .NET 用の MSIL(Microsoft Intermediate Language)テキストファイルを生成できる。ということで早速試してみる。 今回使った環境は以下の通り。Scala 2.7.3scala-msil インストール まずは、sbaz を使ってscala-msil をインストールする。sbaz (Scala Bazaars) はScala のパッケージ管理ツールで、Maven とかRubyGems みたいなもの。Scala の実行環境が整っていれば、以下のコマンドを実行する事でscala-msil がインストールされる。 >sbaz installscala-msilなお、プロキシサーバー経由でインターネットに接続している場合は、Scala のホームディレクトリに
以下のhello.scalaが変更無しに両方で実行出来るか試す。 object hello extends Application { println("Hello, world!") }Java編 コンパイル。これでhello.classが出来る。(一緒にhello$.classも出来る) >scalac hello.scala直接hello.classを実行 >java -cp c:\scala\lib\scala-library.jar;. hello Hello, world!ラッパーを使って実行 >scala hello Hello, world! .NET編 コンパイル。これでhello.exeが出来る。(一緒にhello.msilも出来る) >scalac-net hello.scala直接hello.exeを実行 > hello Hello, world!ラッパー
下記のWikiページは version 1.3 (July 13,2010) です。英文は表示されませんが、編集ページ上にコメントで残してあります。加筆・修正等はどうぞご自由に。 翻訳文のPDFはこちらです。 AScala Tutorial forJava Programmer version 1.2 AScala Tutorial forJava Programmer version 1.3 (表示コメントは昔のままですが) ver1.3は reStructuredTextで書いてあります。ソースや作り方はPDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 翻訳は完了しましたので、どなたか翻訳の不備をご指摘願います。 -- tmiya (2007-11-18 21:32:02) 翻訳おつかれさまでした。ファイル名を_jaをつけるなどし
val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)
2009年08月20日18:00 カテゴリ書評/画評/品評Lightweight Languages 理想の言語? -書評 -Scalaスケーラブルプログラミング インプレス石橋様より献本御礼。Scalaスケーラブルプログラミング Martin Odersky Lex Spoon Bill Venners / 羽生田栄一監 / 長尾高弘訳 [原著:Programming inScala] 素晴らしい言語の、素晴らしい入門本。 何が素晴らしいかというと、言語の思想が、頭ではなく体で覚えられるようになっていること。これなら言語オタクでなくとも、いや言語オタクでない方が、無名関数やActorの素晴らしさがよくわかる。 それだけに、結構残念である。Scalaが、Java上の言語であることに。本書「Scalaスケーラブルプログラミング」の原題は、「Programming inScala
Java仮想マシン上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、本連載ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 はじめにJava仮想マシン(以下JVM)上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、本稿ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 対象読者Javaは知っているが、Scalaも学んでみたいと思っている方ScalaでのWebアプリケーション開発に興味がある方 必要な
IBMにて2008年2月より毎月開催されている勉強会「IBM Japan Geeks」。40名以上の“Geek”が登録しているというこの会では、さまざまな言語や最新技術をディープに情報交換しています。そこで CodeZineがこの勉強会に参加し、これまで発表のあったもののうち、反響のあった4編をバージョンアップして再現していただきました。この会の模様を2回に分けてレポートします。 IBM Japan Geeksとは まず、「IBM Japan Geeks」(Geeks)発足の経緯から現在までの活動内容について、伊尾木氏から発表がありました。Geeks発足のきっかけは、2007年に社内で開催された「ITLMC RoR(Ruby onRails)勉強会」だったと言います。この勉強会には”とがった”人がたくさん集まっており、このまま別れていくのももったいないということで、Geeksが発足しまし
Scala(スカラ、SKAH-lah[3])はオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。名前の「Scala」は英語の「scalable language」に由来するものである。 主にJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができる。 対応プラットフォームScala -JavaプラットフォームScala.js[4] -Scala からJavaScript へとトランスパイルする。Scala Native[5] - LLVM を使用し、マシンネイティブの実行ファイルを出力 また、過去には下記のプラットフォームもサポートしていたが、現在は開発が中断している。 .NET Framework[6]Java Platform, Micro Edition CLDC Scal
Scala-jaは、プログラミング言語Scalaについて気軽に語り合い交流できる場を提供します。 イベントScala勉強会が各地で行われる予定です。Scala勉強会@関西-2 (8月23日(土)) LingrScala-ja部屋 http://www.lingr.com/room/scala-ja Lingrを使ったチャットによる、交流の場です。Scala-sandbox http://coderepos.org/share/wiki/Scala-sandbox CodeReposを使った、Scalaの情報や、Scalaのコードなどを自由につっこんで、お遊びする場です。 過去のイベントScala勉強会@岡山-1 (5月3日): 終了しましたScala勉強会@関東-1 (5月10日): 終了しましたScala勉強会@関西-1 (5月10日): 終了しました
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く