Do Languages Matter?
-
Upload
bruce-eckel -
Category
Internet
-
view
1.774 -
download
0
Transcript of Do Languages Matter?
![Page 1: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/1.jpg)
Do Languages Matter?Bruce Eckel
www.MindviewInc.comwww.AtomicScala.com
Oct 24, 2014, Geecon PragueSlides available onwww.slideshare.net
![Page 2: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/2.jpg)
![Page 3: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/3.jpg)
Eight Years on the C++ Standards Committee
![Page 4: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/4.jpg)
![Page 5: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/5.jpg)
![Page 6: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/6.jpg)
• We learned that open-source languages are always a better choice!
![Page 7: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/7.jpg)
www.AtomicScala.com
• Free First 25% Kindle, ePub, PDF, HTML
![Page 8: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/8.jpg)
Magazines
• These things before there was blogging
• Published over 150 articles
![Page 9: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/9.jpg)
Slowly Stopped Feeling
Effective
![Page 10: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/10.jpg)
Started Searching
![Page 11: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/11.jpg)
Is It Just Me?
![Page 12: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/12.jpg)
Or Are We All Stuck In a Loop?
![Page 13: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/13.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/14.jpg)
Reinventing-Business.com
![Page 15: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/15.jpg)
"Start With Why"- Simon Sinek
Book, but TED talk might be enough.
![Page 16: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/16.jpg)
Break the Chains Around Our Brains
![Page 17: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/17.jpg)
Find the Unstuck Alternatives
![Page 18: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/18.jpg)
We Can Fix It.We Can Make It a Lot
Better.
![Page 19: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/19.jpg)
?
![Page 20: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/20.jpg)
In the Spirit of "Start With Why,"
I ask:
![Page 21: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/21.jpg)
Do Languages
Matter ?
![Page 22: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/22.jpg)
Do Languages (still)
Matter ?
![Page 23: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/23.jpg)
Do Languages (still)
Matter (as much)?
![Page 24: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/24.jpg)
Does Arguing About Languages Still Matter?
![Page 25: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/25.jpg)
• 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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/26.jpg)
• 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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/27.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/28.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/29.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/30.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/31.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/32.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/33.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/34.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/35.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/36.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/37.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/38.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/39.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/40.jpg)
My Dirty Little Secret
![Page 41: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/41.jpg)
![Page 42: Do Languages Matter?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/42.jpg)
• 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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/43.jpg)
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?](https://reader036.fdocuments.in/reader036/viewer/2022062523/58f9b3cb760da3da068bd9b1/html5/thumbnails/44.jpg)