Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


Scala Overview for Java Development Teams

No description

John Langley

on 27 March 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Scala Overview for Java Development Teams

Foundation Learning & Resources Something Simple... Play App Teaser Live Demo... What's next? Try it! Some Important Frameworks
Familiar Object Oriented capabilities:
Class, Object, etc.
great innovations like Case Classes
Functional Programming!
Higher Order Functions
Pattern Matching
Great Collections Library An Overivew of Scala Github of this demo code

Here are some pieces for live demo pasting
Universal Web Proxy Service -- gist
Simple JsonService -- gist
https://gist.github.com/langley/5025197 For Java Development
Martin Odersky
Built javac
Author of Generics in Java
Prof. at EPFL in Switzerland
Scala dev. began in 2001
In production for years
Twitter, LinkedIn
FourSquare, Tumblr, lots more Scala runtime & tools Runtime
Default compiles to JVM bytecode
CLR / .Net compiler
LLVM, Javascript, etc. Tools
REPL -- Read, Evaluate, Print Loop
IDEs: Eclipse, IntelliJ & Netbeans
Maven Support
SBt -- Simple Build Tool Scala is a multi-paradigm language! Scala's Lineage Reactive Web Applications
Both Scala and Java
Implemented with Akka
OAuth and OpenID support
Hit Refresh Workflow!
Great testing support
http://www.playframework.com Play -- Web Framework Highly concurrent, distributed & fault tolerant systems
High Performance Actors (50 million msg/sec)
Advanced Distributed Computing
Supervisors, Dispatchers & Routing
Remoting w/ ProtoBuf, ZeroMQ, Camel (AMQP, JMS, etc.)
Event Bus
http://akka.io/ Akka -- Distributed Apps Comparing Java & Scala Scala Language
Twitter's Scala Scool -- step by step instructions
JetBrains Scala Blog -- IntelliJ Plugin
ScalaIde -- Eclipse Extensions to support Scala
TypeSafe -- Consulting, Training & More
Coursera -- Functional Programming in Scala
https://www.coursera.org/course/progfun Java v Scala: Myths and Facts
Java8 v Scala Feature Comparison
StackOverFlow question about comparisons
http://stackoverflow.com/questions/2952732/samples-of-scala-and-java-code-where-scala-code-looks-simpler-has-fewer-lines Let's compare something simple... (Live Demo) Define a simple Person class
w/ first, last name and age
hashcode and equals naturally Then print a list of these persons...
older than 18 in order of age. https://github.com/langley/simpleScalaVJava Other Interesting Libraries Twitter!
Finagle -- network comm.
Ostrich -- server config, stats & control
https://github.com/twitter/ostrichNet LinkedIn
Kafka -- high scale distributed pub/sub!
http://kafka.apache.org/index.html NetFlix -- Java, some scala and Rx... But look at Iteratees
http://techblog.netflix.com/2013/01/optimizing-netflix-api.html Download SBT and install it

Checkout Twitter's Scala School (needs SBT)

git clone this to try scala. the simple ScalavJava

Don't have git?

Download PlayFramework

git clone this, then type play to try the simple Play app
https://github.com/langley/play2.1-ScalaTeaser.git Resource links http://research.google.com/pubs/pub37122.html Google Comparison of C++, Java, Scala & Go
Full transcript