SlideShare a Scribd company logo
JAVA8 / SCALA
Difference points & innovation streams
Ruslan Shevchenko. <ruslan@shevchenko.kiev.ua>
https://github.com/rssh
@rssh1
JAVA / SCALA
• Java & Scala significantly different
• Exists innovations: scala => java & java=>scala
• What language I must learn ?
• All of them !
SCALA JAVA8
public class Person
{
private String firstName;
private String lastName;
String getFirstName()
{ return firstName; }
void setFirstName(String v)
{ firstName = v; }
………………….
int hashCode() {
if (firstName==null) {
if (secondName==null) {
return 0;
} else {
return secondName.hashCode();
}
} else{
if (secondName==null) {
}
}
}
boolean equals() { …. }
}
case class Person
(
firstName: String
lastName: String
)
SCALA JAVA8
public class Person
extends DTOBase
{
public String firstName;
public String lastName;
}
case class Person
(
firstName: String
lastName: String
)
SCALA => JAVA
Similar:
lambda-expressions
traits / default methods
collections API with hight-order functions
LAMBDA EXPRESSIONS
list.sort((x,y)-> {
int cmp = x.lastName.compareTo(y.lastName);
return cmp!=0 ? cmp : x.firstName.compareTo(y.firstName)
}
list.sort((x,y) => {
val cmp = x.lastName.compareTo(y.lastName)
if (cmp!=0) cmp else x.firstName.compareTo(y.lastName)
}
Java
Scala
LAMBDA EXPRESSIONS
var (maxFirstLen, maxSecondLen) = (0,0)
list.foreach{
x => maxFirstLen = max(maxFirstLen, x.firstName.length)
maxSecondLen = max(maxSecondLen, x.secondName.length)
}
Java
Scala
Closures can’t modify environment context
…………………….
TRAITS/DEFAULT METHODS
trait AsyncInput[T]
{
def onReceive(acceptor:T=>()): Unit
def read: Future[T] = {
Promise p = Promise[T]()
onReceive(p.complete(_))
p.future
}
}
interface AsyncInput<T>
{
void onReceive(Acceptor<T> acceptor)
default void read(): Future<T> {
final CompletableFuture<T> promise =
new CompletableFuture<>();
onReceive( x -> promise.complete(x) );
return promise;
}
}
Scala Java
TRAITS/DEFAULT METHODS
trait LoggedAsyncInput[T]
{
this:AsyncInput =>
override def onReceive(acceptor:T => ()) =
super.onReceive(x => {
println(s“received:${x}”)
acceptor(x) })
}
Scala
Java
aspects ? …
TRAITS/DEFAULT METHODS
trait LoggedAsyncInput[T]
{
override def onReceive(acceptor:T => ()) =
super.onReceive(x => {
println(s“received:${x}”)
acceptor(x) })
}
Scala
Java
aspects ? …
trait MyToString
{
override def toString = s”[${super.toString}]”
}
TRAITS/DEFAULT METHODS
Java default interface:
dispatch across class/interface hierarchy
Scala traits
building hierarchy with process of linearization
STREAMING COLLECTIONS
persons.stream().filter(
x -> x.firstName.equals(”Jon”)
).collect(Collectors.toList())
persons.filter(_.firstName == “Jon”)
Java
Scala
STREAMING COLLECTIONS
persons.stream().filter(
x -> x.firstName.equals(”Jon”)
).collect(Collectors.toList())
Java
Reason - existing API
Don’t want to mix old and new API in one
Operation composition without reiterating.
PARALLEL
persons.parallelStream().filter(
x -> x.firstName.equals(”Jon”)
).collect(Collectors.toList())
persons.par.filter(_.firstName == “Jon”)
Java
Scala
SQL
..??***8dc
persons.filter(_.firstName === “Jon”)
Scala (slick)
Java ?
?
SQL
..??***8dc
persons.filter(_.firstName === “Jon”)
Scala (slick)
Java (http://jinq.org)
dbStream(em,Person.class).filter(
x -> x.firstName.equals(“Jon”)
).list
SQL (INSIDE ?)
persons.filter(_.firstName === “Jon”).toList
Scala (slick)
TableQuery[Expr[Person]]
Expr[String], Expr[StringConstant] => Expr[Boolean]
SQL (INSIDE ?)
persons.filter(_.firstName === “Jon”).toList
Scala (slick)
TableQuery[Expr[Person]]
Expr[String], Expr[StringConstant] => Expr[Boolean]
Query[Expr[T]], Expr[Boolean] => Query[Expr[T]]
Query { … generateSql( .. ) }
SQL (INSIDE)
..??***8dc
Java (http://jinq.org)
dbStream(em,Person.class).filter(
x -> x.firstName.equals(“Jon”)
).list
DbStream<Person>
Person => Boolean
SQL (INSIDE)
..??***8dc
Java (http://jinq.org)
dbStream(em,Person.class).filter(
x -> x.firstName.equals(“Jon”)
).list
Person => Boolean
for sql generation we need:
analyse bytecode
symbolic interpretation
collect trace
generate sql
// runtime-only, not very fast
SQL (INSIDE)
Java (http://jinq.org)
// runtime-only, not very fast
complex, state-of-the-art technology
all work is in runtime
unable to check function correctness in compile-time
Scala (slick)
relatively simple
compile-time analysis, runtime generation
verification in compile time
JAVA => SCALA: SAM
trait AsyncInputOutput[T]
{
def onReceive(acceptor:T=>()): Unit
def onSend(generator: ()=>T): Unit
}
interface AsyncInputOutput<T>
{
void onReceive(Acceptor<T> acceptor)
void onSend(Generator<T> generator)
………………
}
Scala Java
SAM
• SAM-type =Type with Single Abstract Method
• Method require SAM-type => we can pass lambda-
expression to one.
• In scala:
• 2.11 — with -Xexperimental
• 2.12 — by default
SAM
trait AsyncInputOutput[T]
{
Function1.class
def onReceive(acceptor:T=>()): Unit
Function1.class
def onSend(generator: ()=>T): Unit
}
interface AsyncInputOutput<T>
{
Acceptor.class
void onReceive(Acceptor<T> acceptor)
Generator.class
void onSend(Generator<T> generator)
………………
}
Scala: JVM Java
JIT inlining impossible Jit inlining is possible
SCALA=>JAVA; JAVA=>SCALA
• Java use ‘additional’ streaming API [not ideal, better
than before]
• Scala library can’t utilize SAM conversion [not ideal,
better than before]
• So, we have place for something 3-rd ?
• Evolution: all ‘ideal’ shifts ….
FUTURE EVOLUTION
• 2 Groups
• which will be integrated in java 9,10, 11, .. if exists.
• [ FORTRAN 90 is object-oriented. Do you know this (?)]
• case classes, type inheritance.
• which represent essential different aspect, not present in java
CASE CLASSES
..??***8dc
case class Person(firstName: String, lastName: String)
p match {
case Person(“Jon”,”Galt” ) => “Hi, who are you ?”
case Person(firstName, lastName) =>
s”Hi, ${firstName}, ${lastName}”
case _ => “You are not person”
}
ML-style pattern matching, 1973
scala,
kotlin,
ceylon,
swift
FUTURE EVOLUTION
• essential different aspect, not present in java:
• internal DSL
• flexible syntax
• call by name
• macros
• Variance
• strong typing
• implicit context
FLEXIBLE SYNTAX
..??***8dc
def +++(x:Int, y:Int) = x*x*y*y
1 to 100 == 1.to(100)
future(1) та future{1}
def until(cond: =>Boolean)(body: => Unit): Unit
CALL BY NAME
..??***8dc
def dountil(cond: =>Boolean)(body: => Unit): Unit =
{
var quit = false;
while(!quit) {
body
quit = !cond
}
}
First introduced in Algol 68
var x = 0
dountil(x != 10)(x+=1)
OWN SYNTAX
..??***8dc
object Do
{
def apply(body: =>Unit) = new DoBody(body)
}
class DoBody(body: => Unit)
{
def until(cond: =>Boolean): Unit =
{ body; while(!cond) body }
}
Do { x = x+1 } until (x<10)
BASIC DSL:)
..??***8dc
object Lunar extends Baysick {
def main(args:Array[String]) = {
10 PRINT "Welcome to Baysick Lunar Lander v0.9"
20 LET ('dist := 100)
30 LET ('v := 1)
40 LET ('fuel := 1000)
50 LET ('mass := 1000)
60 PRINT "You are drifting towards the moon."
70 PRINT "You must decide how much fuel to burn."
80 PRINT "To accelerate enter a positive number"
90 PRINT "To decelerate a negative"
100 PRINT "Distance " % 'dist % "km, " % "Velocity " % 'v % "km/s, " % "Fuel " % 'fuel
110 INPUT 'burn
120 IF ABS('burn) <= 'fuelTHEN 150
130 PRINT "You don't have that much fuel"
140 GOTO 100
ogus.me/2009/03/26/baysick-a-scala-dsl-implementing-basic/
..??***8dccollection.foreach(x => doSomething)
‘FOR’ SPECIAL SYNTAX
..??***8dcfor( x <- collection) doSomething
=
..??***8dc
for(x <- fun1 if (x.isGood);
y <- fun2(x) ) yield z(x,y)
=
..??***8dc
fun1.withFilter(_.isGood).
flatMap(x =>
fun2.map(y=>z(x,y)))
..??***8dccollection.foreach(x => doSomething)
‘FOR’ SPECIAL SYNTAX
..??***8dcfor( x <- collection) doSomething
=
..??***8dc
for(x <- collection)
yield something =
..??***8dccollection.map( x => something)
‘FOR’ SPECIAL SYNTAX
..??***8dc
=
..??**8dc
for(r <- rows;
c <- cell(r) ) ….
rows.flatMap(r =>
cell.map(c =>….))
..??***8dcfor(x <- c if p(x)) …. =
..??***8dcc.withFilter(x->p(x)) …
..??***8dccollection.foreach(x => doSomething)
‘FOR’ SPECIAL SYNTAX
..??***8dcfor( x <- collection) doSomething
=
..??***8dc
for(x <- fun1 if (x.isGood);
y <- fun2(x) ) yield z(x,y)
=
..??***8dc
fun1.withFilter(_.isGood).
flatMap(x =>
fun2.map(y=>z(x,y)))
FOR-SYNTAX
• own foreach: possible to use ‘for’
• ‘Monadic interfaces’
• //foreach, map, flatMap, withFilter
• // scala-virtualized (not in standard)
• define own function for all syntax constructions
IMPLICIT
implicit def f(x): y
Use x as y
add ‘own’ methods to existing classes
pass context
define type-guided expressions
FUTURE: MONADIC
..??***8dc
for( x <- Future{ calculate x };
y <- Future{ calculate y } ) yield x(x,y)
Future[T]
foreach — do something after competition
map
flatMap — future composition
MACROS
..??***8dc
object Log {
def apply(msg: String): Unit = macro applyImpl
def applyImpl(c: Context)(msg: c.Expr[String]):c.Expr[Unit] =
{
import c.universe._
val tree = q"""if (Log.enabled) {
Log.log(${msg})
}
"""
c.Expr[Unit](tree)
}
Log(msg)
if (Log.enabled) {
Log.log(msg)
}
MACROS
Reduce boilerplate code
Fast code generation for HPC
Deep AST transformations
example: async
ASYNC AS MACROS
..??***8dc
async {
val x = async{ long-running-code-x }
val y = async{ long-running-code-y }
val z = await(x) + await(y)
}
Rewritten as state machine without blocking
Implemented as library (without language change)
async: T => Future[T ]
await: Future[T] =>T
MACROS
async/await
jscala (generate javascript)
miniboxing (analog @specialized)
JAVA/SCALA
• Java - stable domain, mapped to classes and objects.
• Scala - in complex area, where new level of
abstractions needed.
• In the beginning of PL
evolution, but totally new dimension
THANKS FOR ATTENTION
Ruslan Shevchenko <ruslan@shevchenko.kiev.ua>
@rssh1
https://github.com/rssh

More Related Content

PDF
Scala vs java 8
François Sarradin
 
PDF
Scala vs Java 8 in a Java 8 World
BTI360
 
PPTX
CodeCamp Iasi 10 march 2012 - Practical Groovy
Codecamp Romania
 
PDF
Starting with Scala : Frontier Developer's Meetup December 2010
Derek Chen-Becker
 
PDF
Haskell in the Real World
osfameron
 
PPT
Scala - brief intro
Razvan Cojocaru
 
PDF
Scala in practice
andyrobinson8
 
PDF
Hammurabi
Mario Fusco
 
Scala vs java 8
François Sarradin
 
Scala vs Java 8 in a Java 8 World
BTI360
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
Codecamp Romania
 
Starting with Scala : Frontier Developer's Meetup December 2010
Derek Chen-Becker
 
Haskell in the Real World
osfameron
 
Scala - brief intro
Razvan Cojocaru
 
Scala in practice
andyrobinson8
 
Hammurabi
Mario Fusco
 

What's hot (20)

ODP
1.2 scala basics
futurespective
 
PPSX
Tuga it 2016 - What's New In C# 6
Paulo Morgado
 
PDF
Workshop Scala
Bert Van Vreckem
 
PDF
Pragmatic Real-World Scala (short version)
Jonas Bonér
 
PDF
Predictably
ztellman
 
PPTX
All about scala
Yardena Meymann
 
PDF
Stepping Up : A Brief Intro to Scala
Derek Chen-Becker
 
ODP
Naïveté vs. Experience
Mike Fogus
 
PPSX
What's new in C# 6 - NetPonto Porto 20160116
Paulo Morgado
 
PDF
Scala
Sven Efftinge
 
PDF
Scala for Java programmers
輝 子安
 
PDF
Clojure: The Art of Abstraction
Alex Miller
 
PDF
scala
Pranav E K
 
PDF
The Macronomicon
Mike Fogus
 
PDF
OSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
Publicis Sapient Engineering
 
ODP
Scala introduction
Alf Kristian Støyle
 
ODP
Functional Objects & Function and Closures
Sandip Kumar
 
PPTX
Programming Java - Lection 07 - Puzzlers - Lavrentyev Fedor
Fedor Lavrentyev
 
KEY
Code as data as code.
Mike Fogus
 
PPTX
ES6 in Real Life
Domenic Denicola
 
1.2 scala basics
futurespective
 
Tuga it 2016 - What's New In C# 6
Paulo Morgado
 
Workshop Scala
Bert Van Vreckem
 
Pragmatic Real-World Scala (short version)
Jonas Bonér
 
Predictably
ztellman
 
All about scala
Yardena Meymann
 
Stepping Up : A Brief Intro to Scala
Derek Chen-Becker
 
Naïveté vs. Experience
Mike Fogus
 
What's new in C# 6 - NetPonto Porto 20160116
Paulo Morgado
 
Scala for Java programmers
輝 子安
 
Clojure: The Art of Abstraction
Alex Miller
 
scala
Pranav E K
 
The Macronomicon
Mike Fogus
 
OSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
Publicis Sapient Engineering
 
Scala introduction
Alf Kristian Støyle
 
Functional Objects & Function and Closures
Sandip Kumar
 
Programming Java - Lection 07 - Puzzlers - Lavrentyev Fedor
Fedor Lavrentyev
 
Code as data as code.
Mike Fogus
 
ES6 in Real Life
Domenic Denicola
 
Ad

Viewers also liked (20)

PDF
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
BIGLOBE Tech Talk
 
PDF
Инфоком ЛТД Беспилотное наземное транспортное средство
max_ko
 
PPTX
Rest overview briefing
◄ vaquar khan ► ★✔
 
PPTX
Survey of restful web services frameworks
Vijay Prasad Gupta
 
PDF
ドワンゴでのScala活用事例「ニコニコandroid」
Satoshi Goto
 
PPTX
色んなScalaを調べてみた
Jiro Hiraiwa
 
PPTX
Scala採用の背景とその後 @ hitomedia night #5
Jiro Hiraiwa
 
PDF
Play2実践tips集
takezoe
 
PPTX
アドテク企業のScala導入について振り返るlt
Jiro Hiraiwa
 
KEY
Scala For Java Programmers
Enno Runne
 
PDF
Scalaの現状と今後
Kota Mizushima
 
PDF
アクターモデルについて
Takamasa Mitsuji
 
PDF
Scala@SmartNews_20150221
Shigekazu Takei
 
PPTX
JSON Support in Java EE 8
Dmitry Kornilov
 
PDF
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
 
PDF
From a monolithic Ruby on Rails app to the JVM
Phil Calçado
 
PDF
Programming Android Application in Scala.
Brian Hsu
 
PPTX
Introduction to Scala
Mohammad Hossein Rimaz
 
PPTX
Introduction to Scala
Rahul Jain
 
リーンでアジャイルにAndroidアプリ開発をしてみた!(NECビッグローブ ABC向け資料)
BIGLOBE Tech Talk
 
Инфоком ЛТД Беспилотное наземное транспортное средство
max_ko
 
Rest overview briefing
◄ vaquar khan ► ★✔
 
Survey of restful web services frameworks
Vijay Prasad Gupta
 
ドワンゴでのScala活用事例「ニコニコandroid」
Satoshi Goto
 
色んなScalaを調べてみた
Jiro Hiraiwa
 
Scala採用の背景とその後 @ hitomedia night #5
Jiro Hiraiwa
 
Play2実践tips集
takezoe
 
アドテク企業のScala導入について振り返るlt
Jiro Hiraiwa
 
Scala For Java Programmers
Enno Runne
 
Scalaの現状と今後
Kota Mizushima
 
アクターモデルについて
Takamasa Mitsuji
 
Scala@SmartNews_20150221
Shigekazu Takei
 
JSON Support in Java EE 8
Dmitry Kornilov
 
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
 
From a monolithic Ruby on Rails app to the JVM
Phil Calçado
 
Programming Android Application in Scala.
Brian Hsu
 
Introduction to Scala
Mohammad Hossein Rimaz
 
Introduction to Scala
Rahul Jain
 
Ad

Similar to JDays Lviv 2014: Java8 vs Scala: Difference points & innovation stream (20)

PPT
Scala presentation by Aleksandar Prokopec
Loïc Descotte
 
PDF
A bit about Scala
Vladimir Parfinenko
 
PDF
Introduction to Scala
Aleksandar Prokopec
 
PDF
여자개발자모임터 6주년 개발 세미나 - Scala Language
Ashal aka JOKER
 
ODP
Groovy Ast Transformations (greach)
HamletDRC
 
PPT
Scala introduction
Yardena Meymann
 
PDF
Scala @ TechMeetup Edinburgh
Stuart Roebuck
 
PDF
Scala - en bedre og mere effektiv Java?
Jesper Kamstrup Linnet
 
PDF
Clojure for Java developers - Stockholm
Jan Kronquist
 
PPTX
Scala in a Java 8 World
Daniel Blyth
 
PDF
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
PDF
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
PDF
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
PDF
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
PDF
Pragmatic Real-World Scala
parag978978
 
PPT
SDC - Einführung in Scala
Christian Baranowski
 
PDF
An Introduction to Scala (2014)
William Narmontas
 
PPSX
What's New In C# 7
Paulo Morgado
 
PPTX
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Matthew Farwell
 
ODP
Introduction to Scala
Lorenzo Dematté
 
Scala presentation by Aleksandar Prokopec
Loïc Descotte
 
A bit about Scala
Vladimir Parfinenko
 
Introduction to Scala
Aleksandar Prokopec
 
여자개발자모임터 6주년 개발 세미나 - Scala Language
Ashal aka JOKER
 
Groovy Ast Transformations (greach)
HamletDRC
 
Scala introduction
Yardena Meymann
 
Scala @ TechMeetup Edinburgh
Stuart Roebuck
 
Scala - en bedre og mere effektiv Java?
Jesper Kamstrup Linnet
 
Clojure for Java developers - Stockholm
Jan Kronquist
 
Scala in a Java 8 World
Daniel Blyth
 
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
pragmaticrealworldscalajfokus2009-1233251076441384-2.pdf
Hiroshi Ono
 
Pragmatic Real-World Scala
parag978978
 
SDC - Einführung in Scala
Christian Baranowski
 
An Introduction to Scala (2014)
William Narmontas
 
What's New In C# 7
Paulo Morgado
 
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Matthew Farwell
 
Introduction to Scala
Lorenzo Dematté
 

More from Ruslan Shevchenko (20)

PDF
Embedding Generic Monadic Transformer into Scala. [Tfp2022]
Ruslan Shevchenko
 
PDF
Svitla talks 2021_03_25
Ruslan Shevchenko
 
PDF
Akka / Lts behavior
Ruslan Shevchenko
 
PDF
Papers We Love / Kyiv : PAXOS (and little about other consensuses )
Ruslan Shevchenko
 
PDF
Scala / Technology evolution
Ruslan Shevchenko
 
PDF
{co/contr} variance from LSP
Ruslan Shevchenko
 
PDF
N flavors of streaming
Ruslan Shevchenko
 
PDF
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Ruslan Shevchenko
 
PDF
SE 20016 - programming languages landscape.
Ruslan Shevchenko
 
PDF
Few simple-type-tricks in scala
Ruslan Shevchenko
 
PDF
Why scala is not my ideal language and what I can do with this
Ruslan Shevchenko
 
PDF
Scala jargon cheatsheet
Ruslan Shevchenko
 
PDF
Java & low latency applications
Ruslan Shevchenko
 
PDF
Csp scala wixmeetup2016
Ruslan Shevchenko
 
PDF
R ext world/ useR! Kiev
Ruslan Shevchenko
 
PDF
Jslab rssh: JS as language platform
Ruslan Shevchenko
 
PDF
Behind OOD: domain modelling in post-OO world.
Ruslan Shevchenko
 
PDF
scala-gopher: async implementation of CSP for scala
Ruslan Shevchenko
 
PDF
Programming Languages: some news for the last N years
Ruslan Shevchenko
 
Embedding Generic Monadic Transformer into Scala. [Tfp2022]
Ruslan Shevchenko
 
Svitla talks 2021_03_25
Ruslan Shevchenko
 
Akka / Lts behavior
Ruslan Shevchenko
 
Papers We Love / Kyiv : PAXOS (and little about other consensuses )
Ruslan Shevchenko
 
Scala / Technology evolution
Ruslan Shevchenko
 
{co/contr} variance from LSP
Ruslan Shevchenko
 
N flavors of streaming
Ruslan Shevchenko
 
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Ruslan Shevchenko
 
SE 20016 - programming languages landscape.
Ruslan Shevchenko
 
Few simple-type-tricks in scala
Ruslan Shevchenko
 
Why scala is not my ideal language and what I can do with this
Ruslan Shevchenko
 
Scala jargon cheatsheet
Ruslan Shevchenko
 
Java & low latency applications
Ruslan Shevchenko
 
Csp scala wixmeetup2016
Ruslan Shevchenko
 
R ext world/ useR! Kiev
Ruslan Shevchenko
 
Jslab rssh: JS as language platform
Ruslan Shevchenko
 
Behind OOD: domain modelling in post-OO world.
Ruslan Shevchenko
 
scala-gopher: async implementation of CSP for scala
Ruslan Shevchenko
 
Programming Languages: some news for the last N years
Ruslan Shevchenko
 

Recently uploaded (20)

PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PDF
What to consider before purchasing Microsoft 365 Business Premium_PDF.pdf
Q-Advise
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPTX
oapresentation.pptx
mehatdhavalrajubhai
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PDF
Build Multi-agent using Agent Development Kit
FadyIbrahim23
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
What to consider before purchasing Microsoft 365 Business Premium_PDF.pdf
Q-Advise
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
oapresentation.pptx
mehatdhavalrajubhai
 
Activate_Methodology_Summary presentatio
annapureddyn
 
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Build Multi-agent using Agent Development Kit
FadyIbrahim23
 

JDays Lviv 2014: Java8 vs Scala: Difference points & innovation stream