20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
Transcript of 20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
Lift on GAE/J
Get Lift on Google App Engine for Java.
- KITAMURA Ryo2009/12/26(Fri.)
Self-Introduce
● KITAMURA Ryo(@RKTM)● Wake up in Mie● Work at Nagoya
● Programmer● Ruby!!! Scala!!
– VB6, VB.NET, ASP.NET
Self-Introduce
● Love● Trekking
Self-Introduce
● Love● Photography
Talk about ...
● What's Scala?● What's Lift?● What's Google App Engine for
Java(GAE/J)?● How to get Lift on GAE/J● Any Question?
What's Scala?
● Scala● Is a general purpose programming
language.● stands for "scalable language”
– is designed to grow with the demands of its users.
What's Scala?
● Scala● Runs on Java VM.
– You can call Scala from Java– and you can call Java from Scala.
● whose compiler produces– byte code that performs every
bit as good as comparable Java code.
What's Scala?
● James Gosling:● "Which Programming Language
would you use *now* on top of JVM, except Java?"
● James Gosling:”Scala.”● http://www.adam-
bien.com/roller/abien/entry/java_net_javaone_which_programming
What's Scala?
● James Strachan: ● “I can honestly say if someone had
shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.”
● http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html
What's Scala?
● Charles Nutter:– “Scala, it must be stated, is the
current heir apparent to the Java throne. No other language on the JVM seems as capable of being a "replacement for Java" as Scala.”
– http://blog.headius.com/2009/04/future-part-one.html
What's Scala?
● Scala● Is a pure object-oriented language.
– Type inference– Static typing– Every value is an object.
val a = 12345a.toString
What's Scala?
● Scala● Is a pure object-oriented language.
– Classes and traits.– Extend by subclassing and mixin-
based composition.
What's Scala?
● Scala● Is functional.
– Every function is a value.val func = (x : Int) => x + 1func(1)
What's Scala?
● Scala● Is functional.
– Higher-order functions– Nesting functions– Currying
What's Scala?
● Scala● Is functional.
– Case classes and built-in support for pattern matching
– Built-in support for XML processing!
What's Scala?
● XML Sampleval html = <html><head>foo</head><body>hoge</body></html>
println(html)
Sir, More Scala,Sir!!
Join “Nagoya Scala”!!http://groups.google.co.jp/group/NagoyaScala
What's Scala?
● More Info For Scala Beginners– http://www.impressjapan.jp/boo
ks/2745– http://github.com/yuroyoro/scal
a-hackathon– http://itpro.nikkeibp.co.jp/articl
e/COLUMN/20080613/307981/?ST=develop
What's Lift?
● Lift● Scala-based Web App F/W.● has cherry-picked the best ideas
from a number of other frameworks,
● while creating some novel ideas of its own.
What's Lift?
● Lift● Full stack
– AP Srv, ORM● Convention over Configuration● MVC● template system like Wicket
– built on the XML processing capabilities of Scala
What's Lift?
● Lift● Runs on Java VM.
– Many Java libraries● Powerful support for
– AJAX– Commet
What's Lift?
● More Info about Lift– http://codezine.jp/article/detail
/4310– http://codezine.jp/article/detail
/4512
GAE/J?
● What is Google App Engine?● What is Google App Engine for
Java?
GAE/J?
●Tantack did it!–I guess :)
Get Lift on GAE/J
● * Skip installing.● Development environment
● Windows XP SP3● Java version: 1.6.0_14● Apache maven: 2.2.0● Scala 2.7.7 final● Appengine SDK: 1.3.0
Get Lift on GAE/J
● mavenmvn archetype:generate -U -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-blank -DarchetypeVersion=1.1-SNAPSHOT -DremoteRepositories=http://scala-tools.org/repo-snapshots -DgroupId=com.mylift -DartifactId=liftgaej
Get Lift on GAE/J
● Create– src/main/webapp/WEB-
INF/appengine-web.xml
Get Lift on GAE/J
● appengine-web.xml<?xml version="1.0" encoding="utf-8"?><appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>liftgaej</application> <version>1</version> <system-properties> <property name="in.gae.j" value="true" /> </system-properties> <sessions-enabled>true</sessions-enabled> <static-files> <exclude path="/**" /> </static-files></appengine-web-app>
Get Lift on GAE/J
● compilemvn package
Get Lift on GAE/J
● Run on local machine
[SDK dir]\dev_appserver.cmd target/liftgaej-1.0-SNAPSHOT
Get Lift on GAE/J
● Deploy!
[SDK dir]\appcfg.cmd update target/liftgaej-1.0-SNAPSHOT
Get Lift on GAE/J
● Datastore?● JPA sample:
● http://github.com/ymnk/lift-gae-jpa
● JDO sample:● http://github.com/ymnk/lift-gae-jdo
* I haven't tried them : (
References
● Scala– http://www.scala-lang.org/– http://dl.dropbox.com/u/261418
/scala-hackathon/index.html● Lift
– http://www.liftweb.com/– http://groups.google.com/group/
the-lift-book/files
References
● Lift on GAE/J– http://d.hatena.ne.jp/yuroyoro/
20090701/1246448458
Q?
● Do you have any Questions?
Done!
● Thank you!● Join “ Nagoya Scala”
● @2010/01/22(Fri.)