SlideShare a Scribd company logo
Rethinking Scala
Bruce Eckel
www.MindviewInc.com
www.AtomicScala.com
May 7, 2014, San Francisco
Slides available on
www.slideshare.net
Typesafe is sponsoring the videographer -- search the web for video
• First 25% at
AtomicScala.com:
Kindle, ePub, PDF,
HTML
• First 50% at
Typesafe.com (PDF)
Reinventing-Business.com
"Start With Why"
- Simon Sinek
(Book, but TED talk
might be enough. Also
see podcast)
"Break the Chains
Around Our Brains"
"Unstick"
"Find the Unstuck Alternatives"
"Burst Forward"
"Bigger Leverage"
?
This is the presentation I should
have given at Craft in Budapest
Do
Languages
Matter
?
Do
Languages (still)
Matter
?
Do
Languages (still)
Matter
(as much)?
Does Arguing About
Languages Still Matter?
• Assembly -> C
• C -> C++
• C++ -> Java
–Virtual Machines
–Garbage Collection
• Statically typed vs. Dynamic
• Checked Exceptions
• Concurrency and Parallelism
• OO vs Functional
• Java Posse Roundup stopped talking
about Java
No Longer a Big Deal To ...
• Change Languages
– Client: Java -> Python -> Go
• Combine Languages
– e.g. Erlang controlling other languages
– REST/JSON APIs
– HTML5/CSS/Javascript UIs
Thus
• Arguing to consider new languages no
longer fits my "why" -- we're not stuck
there anymore.
• (Why bother arguing when you can just
experiment?)
All This For Context
• I'm not attacking your favorite language
• I'm asking whether we can make
development (a lot) better
• It's just what I do
• Not sure exactly why I do that yet, but it's
definitely consistent with my pattern of
jiggling things
• Bill Venners says I hang out with early
adopters and that affects my perspective
People seem to become much more
productive in Scala vs. Java. But could a
different paradigm give us a lot more
productivity?
Scala is a big improvement over Java
• A language needs to multiply productivity over
the alternatives to justify changing, and Scala
does
• Very significant improvements in programming
power, while maintaining two-way transparency
with Java
• Scala is not gridlocked by backward
compatibility like Java
• But: without the Java constraint, is Scala the
best choice?
Importance of Community
• Python
– Community culture might be the most friendly
and welcoming
– Python conference: about 20% women,
actively involved
• Scala is the "League of Legends"
– I just changed newsgroups until I found a
useful one
– Apparently there was some internet rage over
the title of Atomic Scala
How Many Ways
• “Scala is the most un-opinionated
language I’ve seen” -- Dan North
• “You can do one thing in so many ways;
each team/company must invent its own
culture” -- Speaker at Craft
• Language is communication; subcultures
add cognitive load
• Consider Go: even code formatting is
standardized
The Complexity Jump
• C++ was "C with classes"
• Scala is not really "Java with" anything
– It's almost completely different
• With C++, knowing C was an advantage
• Do we even care about Java
programmers?
– Or just existing Java libraries?
• What is the "why" of Scala?
Libraries vs. Frameworks
• “I prefer Clojure libraries rather than
frameworks” -- young Scala programmer
at Craft
• Libraries are one dimension of complexity
• Frameworks are two or three dimensions
– What is complexity cost vs. productivity
benefit?
– Once you get comfortable with a framework,
how much harder is it to change?
Other Language Options
• Erlang trivially interfaces to other
languages
– Example that I want to try: Erlang controller
and concurrency/parallelism, using Python-
coded operations
• Rust adopts proven features from other
languages but with native compilation
– Pattern matching, for example
Scala Summit
• ScalaSummit.com
• "You don’t need to
understand monads"
• "Scala collides
functional and OO"
– Fascinating
experiment, exposes
some sharp corners
Hearsay
• Scala 3 might make significant non-
backwards-compatible changes to the
language
– Potentially fixing important issues
– Potentially alienating some users
People seem to become much more productive
in Scala vs. Java. But could a different
paradigm give us a lot more productivity?
Discussion

More Related Content

What's hot

Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011
Craig Ulliott
 
Platform Selection
Platform SelectionPlatform Selection
Platform Selection
Wilco van Duinkerken
 
NOCALL 2009 Wikis
NOCALL 2009  WikisNOCALL 2009  Wikis
NOCALL 2009 Wikis
Jaye Lapachet
 
Alternative Approach to Plone Theming (PyConWeb 2019)
 Alternative Approach to Plone Theming (PyConWeb 2019) Alternative Approach to Plone Theming (PyConWeb 2019)
Alternative Approach to Plone Theming (PyConWeb 2019)
Stefan Antonelli
 
Common Core
Common CoreCommon Core
Freakin Whitespace, Building a JavaScript Style Guide
Freakin Whitespace, Building a JavaScript Style GuideFreakin Whitespace, Building a JavaScript Style Guide
Freakin Whitespace, Building a JavaScript Style Guide
lizlux
 
VanHack Fest
VanHack FestVanHack Fest
VanHack Fest
Ilya Brotzky
 
EclipseCon Europe 2011
EclipseCon Europe 2011EclipseCon Europe 2011
EclipseCon Europe 2011Sigasi
 
Contributing to Open Source Software
Contributing to Open Source SoftwareContributing to Open Source Software
Contributing to Open Source Software
Mike Lively
 
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
Atlassian
 
The Goat and the Silo
The Goat and the SiloThe Goat and the Silo
The Goat and the Silo
Michael Ducy
 
Dr. Russell Keith-Magee: Building a development community
Dr. Russell Keith-Magee: Building a development communityDr. Russell Keith-Magee: Building a development community
Dr. Russell Keith-Magee: Building a development communityit-people
 
Libguides, easybib, databases and more!.pptx
Libguides, easybib, databases and more!.pptx Libguides, easybib, databases and more!.pptx
Libguides, easybib, databases and more!.pptx wmrhsd
 

What's hot (13)

Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011
 
Platform Selection
Platform SelectionPlatform Selection
Platform Selection
 
NOCALL 2009 Wikis
NOCALL 2009  WikisNOCALL 2009  Wikis
NOCALL 2009 Wikis
 
Alternative Approach to Plone Theming (PyConWeb 2019)
 Alternative Approach to Plone Theming (PyConWeb 2019) Alternative Approach to Plone Theming (PyConWeb 2019)
Alternative Approach to Plone Theming (PyConWeb 2019)
 
Common Core
Common CoreCommon Core
Common Core
 
Freakin Whitespace, Building a JavaScript Style Guide
Freakin Whitespace, Building a JavaScript Style GuideFreakin Whitespace, Building a JavaScript Style Guide
Freakin Whitespace, Building a JavaScript Style Guide
 
VanHack Fest
VanHack FestVanHack Fest
VanHack Fest
 
EclipseCon Europe 2011
EclipseCon Europe 2011EclipseCon Europe 2011
EclipseCon Europe 2011
 
Contributing to Open Source Software
Contributing to Open Source SoftwareContributing to Open Source Software
Contributing to Open Source Software
 
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
 
The Goat and the Silo
The Goat and the SiloThe Goat and the Silo
The Goat and the Silo
 
Dr. Russell Keith-Magee: Building a development community
Dr. Russell Keith-Magee: Building a development communityDr. Russell Keith-Magee: Building a development community
Dr. Russell Keith-Magee: Building a development community
 
Libguides, easybib, databases and more!.pptx
Libguides, easybib, databases and more!.pptx Libguides, easybib, databases and more!.pptx
Libguides, easybib, databases and more!.pptx
 

Similar to Rethinking Scala Presented in San Francisco May 7, 2014

PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
Uwe Korn
 
LibGuides: Not just for subject web pages
LibGuides:  Not just for subject web pagesLibGuides:  Not just for subject web pages
LibGuides: Not just for subject web pages
Marla Roberson
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...Radhika Puthiyetath
 
TIFF Nexus: Compile With Style
TIFF Nexus: Compile With StyleTIFF Nexus: Compile With Style
TIFF Nexus: Compile With Style
Pearl Chen
 
Collective Cognition with Semantic Mediawiki: Lessons and Experiences
Collective Cognition with Semantic Mediawiki: Lessons and ExperiencesCollective Cognition with Semantic Mediawiki: Lessons and Experiences
Collective Cognition with Semantic Mediawiki: Lessons and ExperiencesJie Bao
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
Claudson Oliveira
 
Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Aaron Blythe
 
Ref Ren Pecha Kucha Rev11262008
Ref Ren Pecha Kucha Rev11262008Ref Ren Pecha Kucha Rev11262008
Ref Ren Pecha Kucha Rev11262008
Lorena O'English
 
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Uwe Korn
 
A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...
A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...
A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...
DevOpsDays Tel Aviv
 
Open Textbooks Authoring Models and Tools
Open Textbooks Authoring Models and ToolsOpen Textbooks Authoring Models and Tools
Open Textbooks Authoring Models and ToolsScott Leslie
 
IWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW 2002: Portals and CMS:" Why You Need Them BothIWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW
 
How to Present a Webinar
How to Present a WebinarHow to Present a Webinar
How to Present a WebinarKeri Cascio
 
Jones "Enabling Discovery in the Library"
Jones "Enabling Discovery in the Library"Jones "Enabling Discovery in the Library"
Jones "Enabling Discovery in the Library"
National Information Standards Organization (NISO)
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
zhubert
 
Introduction to digital libraries - definitions, examples, concepts and trend...
Introduction to digital libraries - definitions, examples, concepts and trend...Introduction to digital libraries - definitions, examples, concepts and trend...
Introduction to digital libraries - definitions, examples, concepts and trend...
Olaf Janssen
 
Learning Emergent Knowledge from Blog Postings
Learning Emergent Knowledge from Blog PostingsLearning Emergent Knowledge from Blog Postings
Learning Emergent Knowledge from Blog PostingsSaltlux Inc.
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Manish Pandit
 
OPAC 2.0 and Beyond
OPAC 2.0 and BeyondOPAC 2.0 and Beyond
OPAC 2.0 and Beyond
daveyp
 
Neil squire jailbreak lms moodle accessibility
Neil squire   jailbreak lms moodle accessibilityNeil squire   jailbreak lms moodle accessibility
Neil squire jailbreak lms moodle accessibilityChad Leaman
 

Similar to Rethinking Scala Presented in San Francisco May 7, 2014 (20)

PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
 
LibGuides: Not just for subject web pages
LibGuides:  Not just for subject web pagesLibGuides:  Not just for subject web pages
LibGuides: Not just for subject web pages
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
 
TIFF Nexus: Compile With Style
TIFF Nexus: Compile With StyleTIFF Nexus: Compile With Style
TIFF Nexus: Compile With Style
 
Collective Cognition with Semantic Mediawiki: Lessons and Experiences
Collective Cognition with Semantic Mediawiki: Lessons and ExperiencesCollective Cognition with Semantic Mediawiki: Lessons and Experiences
Collective Cognition with Semantic Mediawiki: Lessons and Experiences
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013
 
Ref Ren Pecha Kucha Rev11262008
Ref Ren Pecha Kucha Rev11262008Ref Ren Pecha Kucha Rev11262008
Ref Ren Pecha Kucha Rev11262008
 
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
 
A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...
A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...
A Young Lady's Illustrated Primer to Architecture and Technical Decision-Maki...
 
Open Textbooks Authoring Models and Tools
Open Textbooks Authoring Models and ToolsOpen Textbooks Authoring Models and Tools
Open Textbooks Authoring Models and Tools
 
IWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW 2002: Portals and CMS:" Why You Need Them BothIWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW 2002: Portals and CMS:" Why You Need Them Both
 
How to Present a Webinar
How to Present a WebinarHow to Present a Webinar
How to Present a Webinar
 
Jones "Enabling Discovery in the Library"
Jones "Enabling Discovery in the Library"Jones "Enabling Discovery in the Library"
Jones "Enabling Discovery in the Library"
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
Introduction to digital libraries - definitions, examples, concepts and trend...
Introduction to digital libraries - definitions, examples, concepts and trend...Introduction to digital libraries - definitions, examples, concepts and trend...
Introduction to digital libraries - definitions, examples, concepts and trend...
 
Learning Emergent Knowledge from Blog Postings
Learning Emergent Knowledge from Blog PostingsLearning Emergent Knowledge from Blog Postings
Learning Emergent Knowledge from Blog Postings
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
 
OPAC 2.0 and Beyond
OPAC 2.0 and BeyondOPAC 2.0 and Beyond
OPAC 2.0 and Beyond
 
Neil squire jailbreak lms moodle accessibility
Neil squire   jailbreak lms moodle accessibilityNeil squire   jailbreak lms moodle accessibility
Neil squire jailbreak lms moodle accessibility
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 

Rethinking Scala Presented in San Francisco May 7, 2014

  • 1. Rethinking Scala Bruce Eckel www.MindviewInc.com www.AtomicScala.com May 7, 2014, San Francisco Slides available on www.slideshare.net Typesafe is sponsoring the videographer -- search the web for video
  • 2. • First 25% at AtomicScala.com: Kindle, ePub, PDF, HTML • First 50% at Typesafe.com (PDF)
  • 4. "Start With Why" - Simon Sinek (Book, but TED talk might be enough. Also see podcast)
  • 7. "Find the Unstuck Alternatives"
  • 10. ?
  • 11. This is the presentation I should have given at Craft in Budapest
  • 16. • Assembly -> C • C -> C++ • C++ -> Java –Virtual Machines –Garbage Collection • Statically typed vs. Dynamic • Checked Exceptions • Concurrency and Parallelism • OO vs Functional • Java Posse Roundup stopped talking about Java
  • 17. No Longer a Big Deal To ... • Change Languages – Client: Java -> Python -> Go • Combine Languages – e.g. Erlang controlling other languages – REST/JSON APIs – HTML5/CSS/Javascript UIs
  • 18. Thus • Arguing to consider new languages no longer fits my "why" -- we're not stuck there anymore. • (Why bother arguing when you can just experiment?)
  • 19. All This For Context • I'm not attacking your favorite language • I'm asking whether we can make development (a lot) better • It's just what I do • Not sure exactly why I do that yet, but it's definitely consistent with my pattern of jiggling things • Bill Venners says I hang out with early adopters and that affects my perspective
  • 20. People seem to become much more productive in Scala vs. Java. But could a different paradigm give us a lot more productivity?
  • 21. Scala is a big improvement over Java • A language needs to multiply productivity over the alternatives to justify changing, and Scala does • Very significant improvements in programming power, while maintaining two-way transparency with Java • Scala is not gridlocked by backward compatibility like Java • But: without the Java constraint, is Scala the best choice?
  • 22. Importance of Community • Python – Community culture might be the most friendly and welcoming – Python conference: about 20% women, actively involved • Scala is the "League of Legends" – I just changed newsgroups until I found a useful one – Apparently there was some internet rage over the title of Atomic Scala
  • 23. How Many Ways • “Scala is the most un-opinionated language I’ve seen” -- Dan North • “You can do one thing in so many ways; each team/company must invent its own culture” -- Speaker at Craft • Language is communication; subcultures add cognitive load • Consider Go: even code formatting is standardized
  • 24. The Complexity Jump • C++ was "C with classes" • Scala is not really "Java with" anything – It's almost completely different • With C++, knowing C was an advantage • Do we even care about Java programmers? – Or just existing Java libraries? • What is the "why" of Scala?
  • 25. Libraries vs. Frameworks • “I prefer Clojure libraries rather than frameworks” -- young Scala programmer at Craft • Libraries are one dimension of complexity • Frameworks are two or three dimensions – What is complexity cost vs. productivity benefit? – Once you get comfortable with a framework, how much harder is it to change?
  • 26. Other Language Options • Erlang trivially interfaces to other languages – Example that I want to try: Erlang controller and concurrency/parallelism, using Python- coded operations • Rust adopts proven features from other languages but with native compilation – Pattern matching, for example
  • 27. Scala Summit • ScalaSummit.com • "You don’t need to understand monads" • "Scala collides functional and OO" – Fascinating experiment, exposes some sharp corners
  • 28. Hearsay • Scala 3 might make significant non- backwards-compatible changes to the language – Potentially fixing important issues – Potentially alienating some users
  • 29. People seem to become much more productive in Scala vs. Java. But could a different paradigm give us a lot more productivity?