Your SlideShare is downloading. ×
0
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Scala for C# Developers
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Scala for C# Developers

3,766

Published on

From the Scalapeño 2013 conference: http://scalapeno.underscore.co.il/ …

From the Scalapeño 2013 conference: http://scalapeno.underscore.co.il/

It’s no secret that in Israel, C# is one of the leading languages for development. This stems from various reasons, ranging from the power of the language to the ubiquity of Microsoft’s technologies in government and defense organizations. When it first came out, C# was Microsoft’s answer to Java and the two were on-par. Since then, C# has grown leaps and bounds and Java, while still sitting on top of the powerful JVM with a huge, open ecosystem created over nearly two decades, was left behind. Developers looking to stop paying the Microsoft-tax were faced with a language that simply did not meet their expectations.

Scala is the one of the answers to this growing need for a new, modern language for the JVM.

This lecture introduces the language, comparing its idioms to those of C#, and introduces you some of the tools and frameworks to get you started with it.

Published in: Technology, News & Politics
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,766
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
19
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Image CC-BY-NC-SA, Alejandro Crosa http://www.flickr.com/photos/alejandrocrosa/5247567841/New version every yearBugfixes every few months
  • Logos are copyright their respective owners
  • Anders HejlsbergMartinOdersky
  • String is immutable in C#
  • Match values, typesUnderscore syntax
  • Underscore syntax
  • While is still while
  • In .NET: MSBuild,NAnt, Cruise Control.NET
  • Play, like ASP.NET MVC – LinkedIn, KloutLift, like ASP.NET – FoursquareScalatra, like NancyFX – LinkedIn, The Guardian
  • Photo CC-BY, Ian Muttoo http://www.flickr.com/photos/imuttoo/2123301945/
  • Transcript

    • 1. Scala for C# Developers Omer van Kloeten
    • 2. Hi!  CTO at  Eight years working in C#  Two years suffering Java  Two years enjoying Scala  newBrandAnalytics  AppMyDay
    • 3. What is Scala?  JVM Language  Academic roots  Released 2003  Maintained by TypeSafe  Continuously updated
    • 4. Why should I care?  CLR vs. JVM  The Hummus Manifesto  Java is old, Scala is the new hotness  Learn, learn, learn
    • 5. Who uses Scala?
    • 6. Similar Backgrounds  Trying to replace Java  Benevolent Dictators  Design-by-committee sucks!  Strongly and statically typed  Object-functional
    • 7. Imperative vs. Functional Imperative C# Functional LINQ… …But In Reality
    • 8. Functional First Functional C# Functional Scala  Slight differences  Underscores… underscores everywhere!  Strict (immediate) vs. Non-Strict (lazy)  people.view().filter…  Lots more than we can cover here…
    • 9. Syntax Doesn’t Matter, Right? C#  class Foo: Bar, IBaz  class Foo<TBar>  interface IFoo  int foo(string s) { return 42; }  ... Scala  class Foo extends Bar with Baz  class Foo[TBar]  trait Foo  def foo(s: String) = 42  ...
    • 10. Syntax Doesn’t Matter, Defaults Do C#  Private by default  Non-virtual by default Scala  Public by default  Virtual by default  Java mentality
    • 11. Immutable By Default  val and var  C#’s readonly  lazy val  .NET’s Lazy[T]  Collections
    • 12. Tuples and Case Classes  Tuples  First-class citizen  Completely typed
    • 13. Tuples and Case Classes  Tuples  First-class citizen  Completely typed  Case classes  Easy, immutable types
    • 14. Everything Is An Expression
    • 15. Pattern Matching: Basics
    • 16. Pattern Matching: Unapply
    • 17. Pattern Matching: Collections
    • 18. Pattern Matching: Summary  switch/case on steroids  First-class language construct  Statically checked for comprehensiveness
    • 19. What Scala Doesn’t Have  A fast compiler  C#’s value types  Built-ins  Structs  Enums  Partial types and methods  Getters and Setters  Well, no, but…  Native for or foreach support
    • 20. Wait, what?! Well, kinda… ...is translated to:
    • 21. Language Topics Not Covered :(  Streams  Type inference  Tail recursion  Multiple inheritance  Operators  Implicits  Structural Type Definitions  Companion objects  Parallelization and concurrency  Monads  Macros  Reflection  More underscores!
    • 22. Tooling and Libraries  Almost twenty years of Java  Scala wrappers  Great community  Engineers  Scientists
    • 23. Tooling: IDEs  Scala plugin  JetBrains  of ReSharper fame  Scala over Eclipse  TypeSafe  Maintainers of Scala NetBeans, Sublime, etc.
    • 24. Tooling: REPL
    • 25. Tooling: Build System Maven  Better than Ant  Bloated  Written in Java for Java SBT  Simple Build Tool  Irony  Written in Scala for Scala
    • 26. Frameworks  Web Frameworks  Play! Framework  Lift  Scalatra  Object-Relational Mappers  Slick  Squeryl  Unit Testing  Specs2  ScalaTest
    • 27. Where Do I Start?  Base stuff:  Download and install latest JDK (from oracle.com)  Go to http://scala-lang.org/downloads, download and install the MSI  IntelliJ IDEA:  Go to http://jetbrains.com/idea/download, download and install the Community Edition  Demo
    • 28. Where Do I Start?  Twitter’s Scala School  A Tour of Scala  Another Tour of Scala  Functional Programming Principles in Scala  Scala By Example (PDF)  Programming in Scala (Book)
    • 29. Thank you Questions? @omervk

    ×