SlideShare a Scribd company logo
training@instil.co
June 2018
© Instil Software 2018
BBQ BASH
Technology Rant
BENVOLIO
Why, what is Tybalt?
MERCUTIO
More than Prince of Cats. Oh, he’s the courageous
captain of compliments. He fights as you sing prick-song,
keeps time, distance, and proportion. He rests his minim
rests—one, two, and the third in your bosom. The very
butcher of a silk button, a duelist, a duelist, a gentleman of
the very first house of the first and second cause. Ah, the
immortal passado, the punto reverso, the hai!
For 1-on-1 Duelling
For the Melee…
Note the Hand Position…
Note the Different Hand Position
There is no perfect tool or method
What works in one context is suicidal in others
Special purpose tools only suit special circumstances
We never want to ‘fight in remiss’
Lessons Learned
WTAF Are We Going?
I Give Up…
Java
Scal
a
Lets Write More Boring Software
JSE Meh
Java is a legacy language!
But in Java 11…
Kotlin has it today!!
Scala had it
years ago!!
No one gives
a **** about
modules!!
fun main(args: Array<String>) {
val numbers = mutableListOf<Int>()
val scanner = Scanner(System.`in`)
val endOfInput = Regex("X{3}")
println("Enter some numbers or three 'X' to finish")
while (scanner.hasNextLine()) {
if (scanner.hasNext(endOfInput.toPattern())) {
break
} else if (scanner.hasNextInt()) {
numbers += scanner.nextInt()
} else {
val mysteryText = scanner.nextLine()
println("Ignoring $mysteryText")
}
}
//Would be better to use ‘numbers.sum()’
val total = numbers.fold(0, Int::plus)
println("Total of numbers is: $total")
}
A Simple Kotlin Example
Points to note:
 No redundant class
 No semi-colons
 Type inference
 Both ‘val’ and ‘var’
 Helper functions
 String interpolation
 Simplified collections
 Interop with Java types
 Simpler use of FP
Great Things Are Afoot in the Scala World…
Browser Bashing
Why Are We Causing Ourselves This Much Harm???
Ye Goode Old Days…
How should we code the UI?
Angular React
Vue.js
The Joy of Browser UI Testing…
I’m an Android
app developer So what does
that feel like?
Monad Envy
Kotlin and Arrow
fun printPostcode(person: Person) {
val result = Option.monad().binding {
val address = person.residence().bind()
val location = address.location().bind()
location.value().bind()
}.fix()
println(result.fold( { "No postcode available" },
{ "Postcode of $it" }))
}
Using Option as a Monad in Arrow and Scala
def printPostcode(person: Person) {
for (
place <- person residence;
code <- place location;
result <- code value
) println(result)
}
Scala and Cats
Scala with Cats
Also F# is a Thing Again…
Markup Madness
Finally Someone Gets It…
Finally Someone Gets It…
Funky Fluxes
Why do we have Project Reactor?
We still see progress reinventing the wheel
Really Reactive?
Really Reactive?
You May Remember Relational Databases…
Fresh Browser Hell
How to use WebSockets?
Where is WebAssembly?
Where is the W3C?
Have we stalled?
Will Someone Please Tell Me…
JEE Wat?
WTF is Going on with JEE?
WTF is Going on with JEE?
Vendor Locked-In
Remember Container Portability?
WAR
Tomcat
WebLogic
WebSphere
Jetty
Not Seeing A Lot Of Vendor Independence Here…
In Summary
In Summary
In Summary

More Related Content

PPTX
Discussion 8
PDF
Ruby.new @ VilniusRB
PPTX
Coding in Kotlin with Arrow NIDC 2018
PPTX
Introduction to Kotlin
PPTX
kotlin-nutshell.pptx
PPTX
Kotlin as a Better Java
PPTX
Intro to Scala
PPTX
Compose_camp_Day_1.pptx
Discussion 8
Ruby.new @ VilniusRB
Coding in Kotlin with Arrow NIDC 2018
Introduction to Kotlin
kotlin-nutshell.pptx
Kotlin as a Better Java
Intro to Scala
Compose_camp_Day_1.pptx

Similar to BBQ BASH Technology Rant - June 2018 (20)

PDF
Introduction to Scala | Big Data Hadoop Spark Tutorial | CloudxLab
PDF
Privet Kotlin (Windy City DevFest)
PDF
Programming in Scala: Notes
PPTX
Kotlin Basic & Android Programming
PDF
Introduction to Scala : Clueda
PPTX
Scala for curious
ODP
Knolx Session : Built-In Control Structures in Scala
PDF
Introductiontoprogramminginscala
PDF
Meet scala
PPTX
Kotlin Playground.pptx
PPTX
Introduction to Kotlin.pptx
PPTX
01 Introduction to Kotlin - Programming in Kotlin.pptx
PDF
Programming in scala - 1
PPTX
PPTX
The Arrow Library in Kotlin
PDF
9054799 dzone-refcard267-kotlin
PDF
Kotlin for Android devs
PDF
Kotlin Jump Start Online Free Meetup (June 4th, 2024)
PPTX
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
PPTX
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...
Introduction to Scala | Big Data Hadoop Spark Tutorial | CloudxLab
Privet Kotlin (Windy City DevFest)
Programming in Scala: Notes
Kotlin Basic & Android Programming
Introduction to Scala : Clueda
Scala for curious
Knolx Session : Built-In Control Structures in Scala
Introductiontoprogramminginscala
Meet scala
Kotlin Playground.pptx
Introduction to Kotlin.pptx
01 Introduction to Kotlin - Programming in Kotlin.pptx
Programming in scala - 1
The Arrow Library in Kotlin
9054799 dzone-refcard267-kotlin
Kotlin for Android devs
Kotlin Jump Start Online Free Meetup (June 4th, 2024)
BASE Meetup: "Analysing Scala Puzzlers: Essential and Accidental Complexity i...
Scala Up North: "Analysing Scala Puzzlers: Essential and Accidental Complexit...

More from Garth Gilmour (20)

PPTX
Compose in Theory
PPTX
Kotlin / Android Update
PPTX
TypeScript Vs. KotlinJS
PPTX
Shut Up And Eat Your Veg
PPTX
Lies Told By The Kotlin Compiler
PPTX
A TypeScript Fans KotlinJS Adventures
PPTX
The Heat Death Of Enterprise IT
PPTX
Lies Told By The Kotlin Compiler
PPTX
Type Driven Development with TypeScript
PPTX
Generics On The JVM (What you don't know will hurt you)
PPTX
Using Kotlin, to Create Kotlin, to Teach Kotlin, in Space
PPTX
Is Software Engineering A Profession?
PPTX
Social Distancing is not Behaving Distantly
PDF
The Great Scala Makeover
PDF
Transitioning Android Teams Into Kotlin
PDF
Simpler and Safer Java Types (via the Vavr and Lambda Libraries)
PDF
The Three Horse Race
PDF
The Bestiary of Pure Functional Programming
PDF
BelTech 2019 Presenters Workshop
PDF
Kotlin The Whole Damn Family
Compose in Theory
Kotlin / Android Update
TypeScript Vs. KotlinJS
Shut Up And Eat Your Veg
Lies Told By The Kotlin Compiler
A TypeScript Fans KotlinJS Adventures
The Heat Death Of Enterprise IT
Lies Told By The Kotlin Compiler
Type Driven Development with TypeScript
Generics On The JVM (What you don't know will hurt you)
Using Kotlin, to Create Kotlin, to Teach Kotlin, in Space
Is Software Engineering A Profession?
Social Distancing is not Behaving Distantly
The Great Scala Makeover
Transitioning Android Teams Into Kotlin
Simpler and Safer Java Types (via the Vavr and Lambda Libraries)
The Three Horse Race
The Bestiary of Pure Functional Programming
BelTech 2019 Presenters Workshop
Kotlin The Whole Damn Family

Recently uploaded (20)

PDF
System and Network Administraation Chapter 3
PDF
Understanding Forklifts - TECH EHS Solution
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Transform Your Business with a Software ERP System
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
PTS Company Brochure 2025 (1).pdf.......
PPT
Introduction Database Management System for Course Database
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administration Chapter 2
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
medical staffing services at VALiNTRY
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
AI in Product Development-omnex systems
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
System and Network Administraation Chapter 3
Understanding Forklifts - TECH EHS Solution
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Transform Your Business with a Software ERP System
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Online Work Permit System for Fast Permit Processing
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Design an Analysis of Algorithms II-SECS-1021-03
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PTS Company Brochure 2025 (1).pdf.......
Introduction Database Management System for Course Database
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administration Chapter 2
Wondershare Filmora 15 Crack With Activation Key [2025
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
medical staffing services at VALiNTRY
CHAPTER 2 - PM Management and IT Context
How Creative Agencies Leverage Project Management Software.pdf
AI in Product Development-omnex systems
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...

BBQ BASH Technology Rant - June 2018