Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Solid Scala
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Richard Dallaway
August 23, 2013
Technology
390
0
Share
Solid Scala
Presentation to Semantico, Brighton.
Richard Dallaway
August 23, 2013
More Decks by Richard Dallaway
See All by Richard Dallaway
AI Roadmap
d6y
0
55
Voice to guide "difficult" recycling queries
d6y
0
72
Brighton Java: Day in the life...
d6y
0
240
Day in the Life of a Functional Programmer
d6y
0
640
Exoplanet Safari
d6y
1
470
Types Working For You
d6y
1
2.7k
Towards Browser and Server Utopia with Scala.js: an example using CRDTs
d6y
0
7.8k
Code Review Gems
d6y
1
2k
Woot for Lift
d6y
2
3.3k
Other Decks in Technology
See All in Technology
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.8k
解剖"React Native"
hacusk
0
110
AIドリブン開発の実践知 ― AI-DLC Unicorn Gym実施から見えた可能性と課題
mixi_engineers
PRO
0
110
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
77k
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
180
40代からのアウトプット ― 経験は価値ある学びに変わる / 20260404 Naoki Takahashi
shift_evolve
PRO
5
830
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
240
Webアクセシビリティは“もしも”に備える設計
tomokusaba
0
160
すごいぞManaged Kubernetes
harukasakihara
1
330
AIがコードを書く時代の ジェネレーティブプログラミング
polidog
PRO
3
370
主催・運営として"場をつくる”というアウトプットのススメ
_mossann_t
0
110
"まず試す"ためのDatabricks Apps活用法 / Databricks Apps for Early Experiments and Validation
nttcom
1
170
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
110
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Crafting Experiences
bethany
1
110
Ruling the World: When Life Gets Gamed
codingconduct
0
190
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
280
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
320
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Designing for humans not robots
tammielis
254
26k
Transcript
Richard Dallaway @d6y www.underscoreconsulting.com
Agenda 1. Benefits of Scala 2. What it looks like
3. Why we trust it 4. How to start
Benefits Productivity Maintainability Multi-core Developer Joy
Without giving up... Performance Curly Braces Java Investment Tooling (but...)
import org.joda.time.DateTime case class Subscription( owner: String, isTrial: Boolean, expiry:
DateTime) val nextMonth = new DateTime().plusMonths(1) val sub = new Subscription( "Bob", isTrial = true, nextMonth) sub.owner // “Bob” sub == new Subscription( "Bob", true, nextMonth) // true
val subs = List( Subscription("Anna", true, new DateTime()), ... )
val trials : List[Subscription] = subs.filter(s => s.isTrial) def expiring(sub: Subscription) : Boolean = daysBetween(now,sub.expiry).getDays < 2 val nagList = subs.filter(expiring) val expiringTrials = subs.filter(expiring).filter(_.isTrial)
case class Sub(name: String, cc: Option[String]) val subs = List(
Sub("Anna", None), Sub("Bob", Some("1234-5678-9123-4567")) ) def bill(cc: String) : Result = ... val results = subs.flatMap(s => s.cc).map(bill) val results = for { sub <- subs cc <- sub.cc } yield bill(cc) .par
2003 2006 2009 2008 2011 2004 2005 2010 2007 2012
2013 2014 1.0 2.0 2.3 2.8 2.7 2.9 2.10 2.11 2.6 2.5 2.4 2.9.3 2.8.2
The guy who built javac SpringSource VMware An advisor
None
Ideas for starting 1. Small project trial 2. Mixed Java/Scala
projects 3. For tests
@d6y @davegurnell @milessabin www.underscoreconsulting.com meetup.com/london-scala meetup.com/Functional-Brighton