do languages matter?

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

Upload: bruce-eckel

Post on 22-Nov-2014

793 views

Category:

Internet


1 download

DESCRIPTION

Presentation given at Geecon Prague, Oct 24 2014

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?