SlideShare una empresa de Scribd logo
1 de 99
Descargar para leer sin conexión
N E W A N D R O I D
L A N G U A G E S
J A V I E R G A M A R R A : : @ N H PA T T
@ N H PAT T
@ A G I L E C Y L
( 0 9 / 0 5 ! )
@ L I F E R AY
by wiredforlego
W H Y ?
by keso s
by Julochka
S E L F - E S T E E M
K C Y. M E / 2 2 N A N
S W I F T F O R A N D R O I D ?
by Andreas
G R O O V Y
S C A L A
X T E N D
S W I F T
K O T L I N
H O W M A N Y L A N G U A G E S
H AV E A N D R O I D “ S U P P O R T ” ?
• Scala
• Kotlin
• Groovy
• Clojure
• Go
• Ceylon
• XTend
• JS
• C++
• C#
• PHP
• Python
• Ruby
• Swift
• QT
• Perl
• Pascal
• Smalltalk
A N Y L A N G U A G E …
T H AT ’ S W H Y
• JS
• C++
• C#
• PHP
• Scala
• Kotlin
• Groovy
• Go
• Ceylon
• XTend
H O W ?
• Small TODO app
• Uploaded soon to github
• Big post coming to nhpatt.com
F I G H T !
by wiredforlego
X T E N D
by Mike
X T E N D - W H AT ?
• xtend & xtendroid
• 2011!
X T E N D - H O W ?
• Eclipse IDE + SDK, Android Studio incoming?
• About 40 minutes
X T E N D - C O D E
@AndroidActivity(R.layout.activity_main) class MainActivity {
@OnCreate
def init(Bundle savedInstanceState) {
}
}
X T E N D - C O D E
myButton.onClickListener = [
toast("My message");
]
X T E N D - C O D E
val toUpperCaseFunction = [String s|s.toUpperCase]
X T E N D - T H I N G S
• Extension methods
• Lambda expressions
• Implicits
• Operator overloading
• Compiles to Java Code
X T E N D - O P I N I O N
• Perfect for consulting companies
• Everything does too much
• Java+
G R O O V Y
by Bill Toenjes
G R O O V Y - W H AT ?
• dynamic (2003) & static (2012!)
G R O O V Y - H O W ?
• Android Studio, Groovy Gradle Plugin
• In groovy folder
• About 30 minutes
• SwissKnife
G R O O V Y - C O D E
def message = findViewById(R.id.message) as TextView

message.text = messageText;
G R O O V Y - C O D E
button.onClickListener = {startActivity(intent)}
@OnClick
G R O O V Y - T H I N G S
• Dynamic code & static code (@CompileStatic)
• Traits
• Better apis
• Great gradle integration (dagger support coming)
G R O O V Y - S TAT I C
G R O O V Y - R U N T I M E
G R O O V Y - O P I N I O N
• Java++
• Dynamic code?
• I like groovy but…
C E Y L O N
by Mike
C E Y L O N - W H AT ?
• Ceylon
• Gavin King
• 2011
C E Y L O N - H O W ?
• Eclipse IDE + Ceylon Plugin + PAIN
• About 6 hours (eclipse hell + ceylon hell)
A N D R O I D D O C U M E N TAT I O N
A N D R O I D D O C U M E N TAT I O N
C E Y L O N - C O D E
shared actual void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.Ilayout.activity_main);
assert (is TextView textView = findViewById(R.Iid.action_settings));
}
C E Y L O N - T H I N G S
• Type system
• Mixins
• String?
• Packages and modules inside Ceylon
C E Y L O N - O P I N I O N
• Not ready. Future?
• Doubt so.
S C A L A
by Mike
S C A L A - W H AT ?
• Scala
• 2003
S C A L A - H O W ?
• Gradle plugin?
• Post 47 degrees: Idea + plugins + SBT + activator…
• About 1 hour
T R O L L I N G S C A L A
• findView without casts -> a trait
• scala one liners -> hard to read by others but nice in collections
• scala -> 2.8M with proguard -> heaviest environment
• NPE -> with optionals, great solution IMHO
• implicit context -> magic everywhere
• traits -> quite common (kotlin, ceylon, ‘groovy’…)
• no getters/setters -> quite common
• pattern matching -> it’s nice but pure functional style
• case classes -> a glorified switch/if
S C A L A - T H I N G S
• Types
• Multiple programming styles
• Optional
S C A L A - O P I N I O N
• I love scala, way better than Java, but…
• Paradigm swift
• Programmers (25 in TIOBE)
S C A L A - S C A L O I D
new SVerticalLayout {
STextView("Sign in").textSize(24.5 sp).<<.marginBottom(25 dip).>>
STextView("ID")
SEditText()
STextView("Password")
SEditText() inputType TEXT_PASSWORD
SButton("Sign in")
this += new SLinearLayout {
SButton("Help")
SButton("Sign up")
}.wrap
}.padding(20 dip)
S C A L A - M A C R O I D
// the layout goes here
setContentView {
getUi {
l[LinearLayout](
w[Button],
w[TextView]
)
}
}
G O
by Nico Kaiser
G O - W H AT ?
• Go
• 2009
G O - W H AT ?
“ W h o s e b e t t i n g t h i s y e a r s I / O w i l l
a n n o u n c e t h e re p l a c e m e n t o f t h e
A n d ro i d A P I w i t h t h e G o A P I ? “
“ I l l o g i c a l , i r re s p o n s i b l e , i n s a n e
p e o p l e a re b e t t i n g t h i s . ”
“ G o , f o r C p e o p l e w h o h a t e
C + + b u t a re t o o a f r a i d o f re a l
I D E s f o r J a v a . ”
J a k e W h a r t o n
G O - H O W ?
• Docker image (docker -> boot2docker -> missing
steps -> worst hello world ever!)
• About 2 hours (image is 4GB! + docker errors + no
documentation)
G O - C O D E
• 2 ways:
• Shared Library (JNI…)
• All go
G O - C O D E
• var State
• func Run
• type Callbacks (Start, Stop, Draw)
• Stubs
G O - O P I N I O N
• API for OpenGL/business logic
• Not ready for “classic” app.
• I’m worried about iOS support
K O T L I N
by Mike
K O T L I N - W H AT ?
• Kotlin
• 2011
K O T L I N - H O W ?
• Android Studio plugin
• About 10 minutes
K O T L I N - T H I N G S
• Traits
• Interoperability with Java!
• Extension Methods
• Null?
T R O L L I N G K O T L I N
• class Leiva : Untrollable
K O T L I N - O P I N I O N
• I love Kotlin.
• Really easy learning curve.
• Few programmers doing Kotlin :(
J AVA 8
asdasdasdby Mike
J AVA 8
• JDK7: <>, multi-catch, strings in switches, try with
resources…
• And java NIO/invokedynamic?
J AVA 8
• And Java 8? (Lambdas/default methods/new date
API…)
• Jack & Jill?
R E T R O L A M B D A
asdasdasdby Marcos Bessa
R E T R O L A M B D A - W H AT ?
• Lambdas
• Default Methods
• Static Methods on interfaces
R E T R O L A M B D A - H O W ?
• Gradle Plugin
• About 30 minutes
R E T R O L A M B D A - C O D E
(View v) -> Toast.makeText(this, “Hi!”, LENGTH_SHORT).
R E T R O L A M B D A - O P I N I O N
• An incomplete hack.
• Nice if you don’t have any other option.
A N D T H E T R O P H I E S G O T O …
G O
F O R B E I N G T H E
M O S T H Y P E D
by David Luders
C E Y L O N
F O R N O T
B E I N G T H E R E
by David Luders
S C A L A
C O N S O L AT I O N
P R I Z E
by David Luders
K O T L I N
by David Luders
F I N A L W O R D S
by jmiguel rodriguez
N O T A N E W Q U E S T I O N
T H AT M E A N S S O M E T H I N G
N O T O N LY S Y N TA C T I C S U G A R
asdasdasdby Steve Maw
D A R T A N Y O N E ?
by Sasha Nilov
N E X T
asdasdasdby Pascal
E N D *
* ¿ A L G U I E N Q U I E R E Q U E L E M O N T E U N
E N T O R N O ?
asdasdasdby Gord McKenna
A N Y Q U E S T I O N S ?
T H A N K S ! - > K C Y. M E / 2 2 N D 2
by Ale Art
O K … K O T L I N V S S C A L A , F I G H T !
O K … K O T L I N V S S C A L A , F I G H T !
O K … K O T L I N V S S C A L A , F I G H T !
O K … K O T L I N V S S C A L A , F I G H T !
O K … K O T L I N V S S C A L A , F I G H T !
• Kotlin ppl are nice: comparison to scala -> if u are
already using Scala or need sth on that list…
• A good, external, comparison
O K … K O T L I N V S S C A L A , F I G H T !
• The main design goals behind “Kotlin” are:
• To create a Java-compatible language,
• That compiles at least as fast as Java,
• Make it safer than Java, i.e. statically check for common pitfalls such as
null pointer dereference,
• Make it more concise than Java by supporting variable type inference,
higher-order functions (closures), extension functions, mixins and first-
class delegation, etc;
• And, keeping the useful level of expressiveness (see above), make
it way simpler than the most mature competitor – Scala.
N E W A N D R O I D
L A N G U A G E S
J A V I E R G A M A R R A : : @ N H PA T T

Más contenido relacionado

Destacado

Arduino - Cuarta sesión
Arduino - Cuarta sesiónArduino - Cuarta sesión
Arduino - Cuarta sesiónJavier Gamarra
 
Hibernate - JPA @luce 5
Hibernate - JPA @luce 5Hibernate - JPA @luce 5
Hibernate - JPA @luce 5Javier Gamarra
 
Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2Roberto Santana Valdés
 
Curso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker Space
Curso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker SpaceCurso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker Space
Curso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker SpaceTenerife Maker Space
 
Modos de servicio_para_tv_chinos (1)
Modos de servicio_para_tv_chinos (1)Modos de servicio_para_tv_chinos (1)
Modos de servicio_para_tv_chinos (1)EDITH LLERENA
 
Arduino - Tercera sesión
Arduino - Tercera sesiónArduino - Tercera sesión
Arduino - Tercera sesiónJavier Gamarra
 
5 meses de juegos ágiles
5 meses de juegos ágiles5 meses de juegos ágiles
5 meses de juegos ágilesJavier Gamarra
 
Performance myths in android
Performance myths in androidPerformance myths in android
Performance myths in androidJavier Gamarra
 
Taller de Arduino básico. Tenerife Maker Space. Nivel 2
Taller de Arduino básico. Tenerife Maker Space. Nivel 2Taller de Arduino básico. Tenerife Maker Space. Nivel 2
Taller de Arduino básico. Tenerife Maker Space. Nivel 2Tenerife Maker Space
 
Actividades de-lectoescritura-05
Actividades de-lectoescritura-05Actividades de-lectoescritura-05
Actividades de-lectoescritura-05EDITH LLERENA
 
Introducción a Arduino. Tenerife Maker Space. Nivel 1
Introducción a Arduino. Tenerife Maker Space. Nivel 1Introducción a Arduino. Tenerife Maker Space. Nivel 1
Introducción a Arduino. Tenerife Maker Space. Nivel 1Tenerife Maker Space
 
Cuestionario, checklist, inspecccion, entrevista
Cuestionario, checklist, inspecccion, entrevistaCuestionario, checklist, inspecccion, entrevista
Cuestionario, checklist, inspecccion, entrevistaHildaMarroquin91
 
Cambiar una empresa con juegos ágiles
Cambiar una empresa con juegos ágilesCambiar una empresa con juegos ágiles
Cambiar una empresa con juegos ágilesJavier Gamarra
 
Tema2.componenteselectrónicos%28 alumnos%29
Tema2.componenteselectrónicos%28 alumnos%29Tema2.componenteselectrónicos%28 alumnos%29
Tema2.componenteselectrónicos%28 alumnos%29EDITH LLERENA
 

Destacado (20)

Arduino - Cuarta sesión
Arduino - Cuarta sesiónArduino - Cuarta sesión
Arduino - Cuarta sesión
 
CAS 2013
CAS 2013CAS 2013
CAS 2013
 
Hibernate - JPA @luce 5
Hibernate - JPA @luce 5Hibernate - JPA @luce 5
Hibernate - JPA @luce 5
 
Problemas Propuestos Condicionales Compuestos
Problemas Propuestos Condicionales CompuestosProblemas Propuestos Condicionales Compuestos
Problemas Propuestos Condicionales Compuestos
 
Opinionated android
Opinionated androidOpinionated android
Opinionated android
 
Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2Taller de Arduino en Cylicon Valley - Semana 2
Taller de Arduino en Cylicon Valley - Semana 2
 
Curso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker Space
Curso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker SpaceCurso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker Space
Curso Arduino Nivel 3: Mueve cosas con Arduino. Tenerife Maker Space
 
Modos de servicio_para_tv_chinos (1)
Modos de servicio_para_tv_chinos (1)Modos de servicio_para_tv_chinos (1)
Modos de servicio_para_tv_chinos (1)
 
Arduino - Tercera sesión
Arduino - Tercera sesiónArduino - Tercera sesión
Arduino - Tercera sesión
 
5 meses de juegos ágiles
5 meses de juegos ágiles5 meses de juegos ágiles
5 meses de juegos ágiles
 
Performance myths in android
Performance myths in androidPerformance myths in android
Performance myths in android
 
Taller de Arduino básico. Tenerife Maker Space. Nivel 2
Taller de Arduino básico. Tenerife Maker Space. Nivel 2Taller de Arduino básico. Tenerife Maker Space. Nivel 2
Taller de Arduino básico. Tenerife Maker Space. Nivel 2
 
RxJava in practice
RxJava in practice RxJava in practice
RxJava in practice
 
Actividades de-lectoescritura-05
Actividades de-lectoescritura-05Actividades de-lectoescritura-05
Actividades de-lectoescritura-05
 
Introducción a Arduino (TLP2014)
Introducción a Arduino (TLP2014)Introducción a Arduino (TLP2014)
Introducción a Arduino (TLP2014)
 
Introducción a Arduino. Tenerife Maker Space. Nivel 1
Introducción a Arduino. Tenerife Maker Space. Nivel 1Introducción a Arduino. Tenerife Maker Space. Nivel 1
Introducción a Arduino. Tenerife Maker Space. Nivel 1
 
BlueWeekend iOT
BlueWeekend iOTBlueWeekend iOT
BlueWeekend iOT
 
Cuestionario, checklist, inspecccion, entrevista
Cuestionario, checklist, inspecccion, entrevistaCuestionario, checklist, inspecccion, entrevista
Cuestionario, checklist, inspecccion, entrevista
 
Cambiar una empresa con juegos ágiles
Cambiar una empresa con juegos ágilesCambiar una empresa con juegos ágiles
Cambiar una empresa con juegos ágiles
 
Tema2.componenteselectrónicos%28 alumnos%29
Tema2.componenteselectrónicos%28 alumnos%29Tema2.componenteselectrónicos%28 alumnos%29
Tema2.componenteselectrónicos%28 alumnos%29
 

Similar a New Android Languages

High quality Front-End
High quality Front-EndHigh quality Front-End
High quality Front-EndDavid Simons
 
Testable JavaScript Strategies
Testable JavaScript StrategiesTestable JavaScript Strategies
Testable JavaScript StrategiesDiwa Del Mundo
 
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on ScalaAndrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on ScalaScala Italy
 
Reduce, Reuse, Refactor
Reduce, Reuse, RefactorReduce, Reuse, Refactor
Reduce, Reuse, Refactorcklosowski
 
Reduce, Reuse, Refactor
Reduce, Reuse, RefactorReduce, Reuse, Refactor
Reduce, Reuse, Refactorcklosowski
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Michał Kurzeja
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScripttdc-globalcode
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet CodeDavid Danzilio
 
Software Quality
Software QualitySoftware Quality
Software Qualityjakubkoci
 
Release Engineering and Rugged DevOps: An Intersection?
Release Engineering and Rugged DevOps: An Intersection?Release Engineering and Rugged DevOps: An Intersection?
Release Engineering and Rugged DevOps: An Intersection?SeniorStoryteller
 
Release Engineering & Rugged DevOps: An Intersection - J. Paul Reed
Release Engineering & Rugged DevOps: An Intersection - J. Paul ReedRelease Engineering & Rugged DevOps: An Intersection - J. Paul Reed
Release Engineering & Rugged DevOps: An Intersection - J. Paul ReedSeniorStoryteller
 
So You Want to Start Refactoring?
So You Want to Start Refactoring?So You Want to Start Refactoring?
So You Want to Start Refactoring?jillianefoley
 
An Introduction to React -- FED Date -- IBM Design
An Introduction to React -- FED Date -- IBM DesignAn Introduction to React -- FED Date -- IBM Design
An Introduction to React -- FED Date -- IBM DesignJosh Black
 

Similar a New Android Languages (20)

High quality Front-End
High quality Front-EndHigh quality Front-End
High quality Front-End
 
The Swift Architect
The Swift ArchitectThe Swift Architect
The Swift Architect
 
Testable JavaScript Strategies
Testable JavaScript StrategiesTestable JavaScript Strategies
Testable JavaScript Strategies
 
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on ScalaAndrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
 
Reduce, Reuse, Refactor
Reduce, Reuse, RefactorReduce, Reuse, Refactor
Reduce, Reuse, Refactor
 
Reduce, Reuse, Refactor
Reduce, Reuse, RefactorReduce, Reuse, Refactor
Reduce, Reuse, Refactor
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
 
React for Beginners
React for BeginnersReact for Beginners
React for Beginners
 
Witchcraft
WitchcraftWitchcraft
Witchcraft
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code
 
Software Quality
Software QualitySoftware Quality
Software Quality
 
Java 20
Java 20Java 20
Java 20
 
Release Engineering and Rugged DevOps: An Intersection?
Release Engineering and Rugged DevOps: An Intersection?Release Engineering and Rugged DevOps: An Intersection?
Release Engineering and Rugged DevOps: An Intersection?
 
WordPress for the 99%
WordPress for the 99%WordPress for the 99%
WordPress for the 99%
 
Release Engineering & Rugged DevOps: An Intersection - J. Paul Reed
Release Engineering & Rugged DevOps: An Intersection - J. Paul ReedRelease Engineering & Rugged DevOps: An Intersection - J. Paul Reed
Release Engineering & Rugged DevOps: An Intersection - J. Paul Reed
 
So You Want to Start Refactoring?
So You Want to Start Refactoring?So You Want to Start Refactoring?
So You Want to Start Refactoring?
 
Monomobile
MonomobileMonomobile
Monomobile
 
ITB2016 - ColdBox 4 Modules
ITB2016 - ColdBox 4 ModulesITB2016 - ColdBox 4 Modules
ITB2016 - ColdBox 4 Modules
 
An Introduction to React -- FED Date -- IBM Design
An Introduction to React -- FED Date -- IBM DesignAn Introduction to React -- FED Date -- IBM Design
An Introduction to React -- FED Date -- IBM Design
 

Último

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Último (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

New Android Languages

  • 1. N E W A N D R O I D L A N G U A G E S J A V I E R G A M A R R A : : @ N H PA T T
  • 2. @ N H PAT T @ A G I L E C Y L ( 0 9 / 0 5 ! ) @ L I F E R AY by wiredforlego
  • 3. W H Y ? by keso s
  • 4.
  • 6. S E L F - E S T E E M
  • 7. K C Y. M E / 2 2 N A N
  • 8. S W I F T F O R A N D R O I D ? by Andreas
  • 9. G R O O V Y
  • 10. S C A L A
  • 11. X T E N D
  • 12. S W I F T
  • 13. K O T L I N
  • 14. H O W M A N Y L A N G U A G E S H AV E A N D R O I D “ S U P P O R T ” ?
  • 15. • Scala • Kotlin • Groovy • Clojure • Go • Ceylon • XTend • JS • C++ • C# • PHP • Python • Ruby • Swift • QT • Perl • Pascal • Smalltalk
  • 16. A N Y L A N G U A G E …
  • 17. T H AT ’ S W H Y
  • 18. • JS • C++ • C# • PHP • Scala • Kotlin • Groovy • Go • Ceylon • XTend
  • 19. H O W ?
  • 20. • Small TODO app • Uploaded soon to github • Big post coming to nhpatt.com
  • 21. F I G H T ! by wiredforlego
  • 22. X T E N D by Mike
  • 23. X T E N D - W H AT ? • xtend & xtendroid • 2011!
  • 24. X T E N D - H O W ? • Eclipse IDE + SDK, Android Studio incoming? • About 40 minutes
  • 25. X T E N D - C O D E @AndroidActivity(R.layout.activity_main) class MainActivity { @OnCreate def init(Bundle savedInstanceState) { } }
  • 26. X T E N D - C O D E myButton.onClickListener = [ toast("My message"); ]
  • 27. X T E N D - C O D E val toUpperCaseFunction = [String s|s.toUpperCase]
  • 28. X T E N D - T H I N G S • Extension methods • Lambda expressions • Implicits • Operator overloading • Compiles to Java Code
  • 29. X T E N D - O P I N I O N • Perfect for consulting companies • Everything does too much • Java+
  • 30. G R O O V Y by Bill Toenjes
  • 31. G R O O V Y - W H AT ? • dynamic (2003) & static (2012!)
  • 32. G R O O V Y - H O W ? • Android Studio, Groovy Gradle Plugin • In groovy folder • About 30 minutes • SwissKnife
  • 33. G R O O V Y - C O D E def message = findViewById(R.id.message) as TextView
 message.text = messageText;
  • 34. G R O O V Y - C O D E button.onClickListener = {startActivity(intent)} @OnClick
  • 35. G R O O V Y - T H I N G S • Dynamic code & static code (@CompileStatic) • Traits • Better apis • Great gradle integration (dagger support coming)
  • 36. G R O O V Y - S TAT I C
  • 37. G R O O V Y - R U N T I M E
  • 38. G R O O V Y - O P I N I O N • Java++ • Dynamic code? • I like groovy but…
  • 39. C E Y L O N by Mike
  • 40. C E Y L O N - W H AT ? • Ceylon • Gavin King • 2011
  • 41. C E Y L O N - H O W ? • Eclipse IDE + Ceylon Plugin + PAIN • About 6 hours (eclipse hell + ceylon hell)
  • 42. A N D R O I D D O C U M E N TAT I O N
  • 43. A N D R O I D D O C U M E N TAT I O N
  • 44. C E Y L O N - C O D E shared actual void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.Ilayout.activity_main); assert (is TextView textView = findViewById(R.Iid.action_settings)); }
  • 45. C E Y L O N - T H I N G S • Type system • Mixins • String? • Packages and modules inside Ceylon
  • 46. C E Y L O N - O P I N I O N • Not ready. Future? • Doubt so.
  • 47. S C A L A by Mike
  • 48. S C A L A - W H AT ? • Scala • 2003
  • 49. S C A L A - H O W ? • Gradle plugin? • Post 47 degrees: Idea + plugins + SBT + activator… • About 1 hour
  • 50. T R O L L I N G S C A L A • findView without casts -> a trait • scala one liners -> hard to read by others but nice in collections • scala -> 2.8M with proguard -> heaviest environment • NPE -> with optionals, great solution IMHO • implicit context -> magic everywhere • traits -> quite common (kotlin, ceylon, ‘groovy’…) • no getters/setters -> quite common • pattern matching -> it’s nice but pure functional style • case classes -> a glorified switch/if
  • 51. S C A L A - T H I N G S • Types • Multiple programming styles • Optional
  • 52. S C A L A - O P I N I O N • I love scala, way better than Java, but… • Paradigm swift • Programmers (25 in TIOBE)
  • 53. S C A L A - S C A L O I D new SVerticalLayout { STextView("Sign in").textSize(24.5 sp).<<.marginBottom(25 dip).>> STextView("ID") SEditText() STextView("Password") SEditText() inputType TEXT_PASSWORD SButton("Sign in") this += new SLinearLayout { SButton("Help") SButton("Sign up") }.wrap }.padding(20 dip)
  • 54. S C A L A - M A C R O I D // the layout goes here setContentView { getUi { l[LinearLayout]( w[Button], w[TextView] ) } }
  • 55. G O by Nico Kaiser
  • 56. G O - W H AT ? • Go • 2009
  • 57. G O - W H AT ?
  • 58. “ W h o s e b e t t i n g t h i s y e a r s I / O w i l l a n n o u n c e t h e re p l a c e m e n t o f t h e A n d ro i d A P I w i t h t h e G o A P I ? “
  • 59. “ I l l o g i c a l , i r re s p o n s i b l e , i n s a n e p e o p l e a re b e t t i n g t h i s . ” “ G o , f o r C p e o p l e w h o h a t e C + + b u t a re t o o a f r a i d o f re a l I D E s f o r J a v a . ” J a k e W h a r t o n
  • 60. G O - H O W ? • Docker image (docker -> boot2docker -> missing steps -> worst hello world ever!) • About 2 hours (image is 4GB! + docker errors + no documentation)
  • 61. G O - C O D E • 2 ways: • Shared Library (JNI…) • All go
  • 62. G O - C O D E • var State • func Run • type Callbacks (Start, Stop, Draw) • Stubs
  • 63. G O - O P I N I O N • API for OpenGL/business logic • Not ready for “classic” app. • I’m worried about iOS support
  • 64. K O T L I N by Mike
  • 65. K O T L I N - W H AT ? • Kotlin • 2011
  • 66. K O T L I N - H O W ? • Android Studio plugin • About 10 minutes
  • 67. K O T L I N - T H I N G S • Traits • Interoperability with Java! • Extension Methods • Null?
  • 68. T R O L L I N G K O T L I N • class Leiva : Untrollable
  • 69. K O T L I N - O P I N I O N • I love Kotlin. • Really easy learning curve. • Few programmers doing Kotlin :(
  • 71. J AVA 8 • JDK7: <>, multi-catch, strings in switches, try with resources… • And java NIO/invokedynamic?
  • 72. J AVA 8 • And Java 8? (Lambdas/default methods/new date API…)
  • 73. • Jack & Jill?
  • 74. R E T R O L A M B D A asdasdasdby Marcos Bessa
  • 75. R E T R O L A M B D A - W H AT ? • Lambdas • Default Methods • Static Methods on interfaces
  • 76. R E T R O L A M B D A - H O W ? • Gradle Plugin • About 30 minutes
  • 77. R E T R O L A M B D A - C O D E (View v) -> Toast.makeText(this, “Hi!”, LENGTH_SHORT).
  • 78. R E T R O L A M B D A - O P I N I O N • An incomplete hack. • Nice if you don’t have any other option.
  • 79. A N D T H E T R O P H I E S G O T O …
  • 80. G O F O R B E I N G T H E M O S T H Y P E D by David Luders
  • 81. C E Y L O N F O R N O T B E I N G T H E R E by David Luders
  • 82. S C A L A C O N S O L AT I O N P R I Z E by David Luders
  • 83. K O T L I N by David Luders
  • 84. F I N A L W O R D S by jmiguel rodriguez
  • 85. N O T A N E W Q U E S T I O N
  • 86. T H AT M E A N S S O M E T H I N G
  • 87. N O T O N LY S Y N TA C T I C S U G A R asdasdasdby Steve Maw
  • 88. D A R T A N Y O N E ? by Sasha Nilov
  • 89. N E X T asdasdasdby Pascal
  • 90. E N D * * ¿ A L G U I E N Q U I E R E Q U E L E M O N T E U N E N T O R N O ? asdasdasdby Gord McKenna
  • 91. A N Y Q U E S T I O N S ?
  • 92. T H A N K S ! - > K C Y. M E / 2 2 N D 2 by Ale Art
  • 93. O K … K O T L I N V S S C A L A , F I G H T !
  • 94. O K … K O T L I N V S S C A L A , F I G H T !
  • 95. O K … K O T L I N V S S C A L A , F I G H T !
  • 96. O K … K O T L I N V S S C A L A , F I G H T !
  • 97. O K … K O T L I N V S S C A L A , F I G H T ! • Kotlin ppl are nice: comparison to scala -> if u are already using Scala or need sth on that list… • A good, external, comparison
  • 98. O K … K O T L I N V S S C A L A , F I G H T ! • The main design goals behind “Kotlin” are: • To create a Java-compatible language, • That compiles at least as fast as Java, • Make it safer than Java, i.e. statically check for common pitfalls such as null pointer dereference, • Make it more concise than Java by supporting variable type inference, higher-order functions (closures), extension functions, mixins and first- class delegation, etc; • And, keeping the useful level of expressiveness (see above), make it way simpler than the most mature competitor – Scala.
  • 99. N E W A N D R O I D L A N G U A G E S J A V I E R G A M A R R A : : @ N H PA T T