Top Banner
Do Languages Matter? Bruce Eckel www.MindviewInc.com www.AtomicScala.com Oct 24, 2014, Geecon Prague Slides available on www.slideshare.net
44

Do Languages Matter?

Nov 22, 2014

Download

Internet

Bruce Eckel

Presentation given at Geecon Prague, Oct 24 2014
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Do Languages Matter?

Do Languages Matter?Bruce Eckel

www.MindviewInc.comwww.AtomicScala.com

Oct 24, 2014, Geecon PragueSlides available onwww.slideshare.net

Page 2: Do Languages Matter?
Page 3: Do Languages Matter?

Eight Years on the C++ Standards Committee

Page 4: Do Languages Matter?
Page 5: Do Languages Matter?
Page 6: Do Languages Matter?

• We learned that open-source languages are always a better choice!

Page 7: Do Languages Matter?

www.AtomicScala.com

• Free First 25% Kindle, ePub, PDF, HTML

Page 8: Do Languages Matter?

Magazines

• These things before there was blogging

• Published over 150 articles

Page 9: Do Languages Matter?

Slowly Stopped Feeling

Effective

Page 10: Do Languages Matter?

Started Searching

Page 11: Do Languages Matter?

Is It Just Me?

Page 12: Do Languages Matter?

Or Are We All Stuck In a Loop?

Page 13: Do Languages Matter?

We keep trying to compel

productivity. Maybe that's not the best

way. (It doesn't

work well for me).

Page 14: Do Languages Matter?

Reinventing-Business.com

Page 15: Do Languages Matter?

"Start With Why"- Simon Sinek

Book, but TED talk might be enough.

Page 16: Do Languages Matter?

Break the Chains Around Our Brains

Page 17: Do Languages Matter?

Find the Unstuck Alternatives

Page 18: Do Languages Matter?

We Can Fix It.We Can Make It a Lot

Better.

Page 19: Do Languages Matter?

?

Page 20: Do Languages Matter?

In the Spirit of "Start With Why,"

I ask:

Page 21: Do Languages Matter?

Do Languages

Matter ?

Page 22: Do Languages Matter?

Do Languages (still)

Matter ?

Page 23: Do Languages Matter?

Do Languages (still)

Matter (as much)?

Page 24: Do Languages Matter?

Does Arguing About Languages Still Matter?

Page 25: Do Languages 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

Page 26: Do Languages Matter?

• Stroustrup's Goal for C++: Make Library Use Easier

• Java Validated Virtual Machines & Garbage Collection– Lots of libraries

– Also mainstreamed the big framework

– Invalidated checked exceptions

• Ruby On Rails Validated Dynamic Languages for serious projects– Mitigated some of the damage

from Perl & PHP (read "PHP: A fractal of bad design")

– Helped legitimize Python, Groovy, etc.

Page 27: Do Languages Matter?

Functional language features are the new-old thing

• Primarily motivated by multiple cores and parallel programming

• Python started adding functional features a few years ago (but no parallelism)

• Functional purists are trying to steer the conversation ("objects are bad/failures")

• Object-functional hybrids are moving to center stage IMO– How will parallelism look in

such languages?– Pure functional vs CSP (as

in Go). STM has failed.

Page 28: Do Languages Matter?

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

Page 29: Do Languages Matter?

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?

• So...• They kind of don't

matter (eek)

Page 30: Do Languages Matter?

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

Page 31: Do Languages Matter?

People seem to become much more productive in Scala vs. Java. But could a different paradigm give

us a lot more productivity?

Page 32: Do Languages Matter?

Scala is a big improvement over Java• A language needs to

multiply productivity over the alternatives to justify changing, and Scala does

• Significant advancements 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?

Page 33: Do Languages Matter?

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

Page 34: Do Languages Matter?

How Many Ways

• “Scala is the most un-opinionated language I’ve seen” -- Dan North

• No signs yet of "idiomatic Scala"

• Each team/company must invent its own idioms which can be very different

• Language is communication; subcultures add cognitive load

• Consider Go: even code formatting is standardized

Page 35: Do Languages Matter?

The Complexity Jump• C++ was "C with classes"• Scala is not really "Java with"

anything– It's almost completely different

– Might help Java programmers go functional

• With C++, knowing C was an advantage

• Do we even care about Java programmers?– Or just existing Java

libraries/frameworks?– Scala reinvents a lot

• What is the "why" of Scala?

Page 36: Do Languages Matter?

Libraries vs. Frameworks

• “I prefer Clojure libraries rather than frameworks” -- Young Scala programmer at Craft

• Libraries introduce one dimension of complexity

• Frameworks introduce 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?

Page 37: Do Languages Matter?

Some Paths for Exploration• Erlang trivially

interfaces to other languages– Example 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

Page 38: Do Languages Matter?

ScalaSummit.com

• "The Curse of the Monad" vs. "You don’t need to understand monads"

• "Scala collides functional and OO"– Fascinating experiment,

exposes some sharp corners

Page 39: Do Languages Matter?

People seem to become much more productive in Scala vs. Java. But could a different paradigm give

us a lot more productivity?

Page 40: Do Languages Matter?

My Dirty Little Secret

Page 41: Do Languages Matter?
Page 42: Do Languages Matter?

• Rust: new CEO at Mozilla is (appropriately) focusing on FirefoxOS. Rust development will probably suffer

• I can't seem to get away from writing about languages, but Reinventing Business is too big

• Languages must become a hobby -- what's easy and fun (NOT Java 8!!!)

Page 43: Do Languages Matter?

Kotlin looks like the easiest translation from Atomic Scala

• Could be "Scala for everyone else"

• Much more powerful than Java 8, without the jagged edges in Scala

• Really fancy things can be done with Scala

• Kotlin is a language replacement for Java, so Java programmers don't have to learn a whole new world.

Page 44: Do Languages Matter?