SlideShare a Scribd company logo
/27@yegor256 1
Java vs OOP
Yegor Bugayenko
/27@yegor256 2
long video showing
Clojure 8000+ lines Java
class
/27@yegor256 3
Java
books
frameworks
Google
OOP
/27@yegor256 4
if it works,

it’s good if it’s good,

it works
/27@yegor256 5
“Just make $1B with
something instead of
ORM and you will be
right”
— Victor
/27@yegor256 6
enemy #1:
books
/27@yegor256 7
“Objects may contain
data, in the form of
fields, often known as
attributes; and code, in
the form of procedures,
often known as methods”
/27@yegor256 8
“Each object looks quite
a bit like a little
computer — it has a
state, and it has
operations that you can
ask it to perform”
- page 16
/27@yegor256 9
“A class is a collection
of data fields that hold
values and methods that
operate on those values”
- page 98
/27@yegor256 10
“An object is some
memory that holds a
value of some type”
- page 40
/27@yegor256 11
“An object consists of
some private memory and
a set of operations.”
- page 6
/27@yegor256 12
“An object is the
equivalent of the quanta
from which the universe
is constructed”
- page 66
/27@yegor256 13
enemy #2:
languages
/27@yegor256 14
static
public
null
final
return
instanceof
.class
@
/27@yegor256 15
final
- immutability
- setters
- anemic model
- data structures
- procedural thinking
/27@yegor256 16
static
- utility classes
- singletons
- procedural thinking
/27@yegor256 17
instanceof
- reflection API
- no polymorphism
- no encapsulation
- procedural thinking
.class
/27@yegor256 18
@
- split objects apart
- anemic model
- procedural thinking
/27@yegor256 19
enemy #3:
frameworks
/27@yegor256 20
JAX-RS
JPA
Play
Spring
JavaBeans
Apache Commons
Guava
JDK
JAXB
/27@yegor256 21
JAX-RS
@Path(“/”)
public class Index {
@GET
@Produces(“text/plain”)
public String get() {
return “hello, world!”;
}
}
/27@yegor256 22
Apache Commons
text = FileUtils.readFileToSTring(f);
StringUtils.abbreviate(“hello, world!”);
DigestUtils.md5(“some text”);
/27@yegor256 23
JPA
@Entity(table = “book”)
public class Book {
@Id
public int id;
@Column
public String title;
}
/27@yegor256 24
enemy #4:
Google
/27@yegor256 25
Android SDK
android.app.Activity
200+ methods
it’s a shame
/27@yegor256 26
time to change sides!
/27@yegor256 27
$20
for
JavaDay
shop@yegor256.com

More Related Content

PDF
Reitit - Clojure/North 2019
PPTX
Redis data modeling examples
PPTX
Rust vs C++
PDF
PHP para Adultos: Clean Code e Object Calisthenics
PDF
OpenGL 4.6 Reference Guide
PDF
Introduction to JSON
PPTX
php and sapi and zendengine2 and...
PDF
Aula 8.3 - Iptables Tabela NAT
Reitit - Clojure/North 2019
Redis data modeling examples
Rust vs C++
PHP para Adultos: Clean Code e Object Calisthenics
OpenGL 4.6 Reference Guide
Introduction to JSON
php and sapi and zendengine2 and...
Aula 8.3 - Iptables Tabela NAT

What's hot (15)

PDF
10 Tips for Configuring Your Builds with Bamboo Specs
PDF
데이터의 힘, 스타트업의 생존을 넘어 성장으로 - 김용대 사업개발 담당, AWS / 박재영 CTO, 크몽 :: AWS Summit Seou...
PPT
PHP - Introduction to PHP Cookies and Sessions
PDF
High Available Task Scheduling Design using Kafka and Kafka Streams | Naveen ...
PPTX
Chromium에 contribution하기
PPTX
Web container and Apache Tomcat
PPTX
Hash map
PDF
MessagePack(msgpack): Compact and Fast Serialization Library
PDF
MongoDB and Node.js
PPT
jQuery Ajax
PPTX
MongoDB + Java + Spring Data
PPT
Connectors. linking words and phrases
PDF
Un Cuneese dimenticato: il professor Gherardo Ferreri e il suo diario di Libia
PDF
Android local sockets in native code
PDF
Node JS Crash Course
10 Tips for Configuring Your Builds with Bamboo Specs
데이터의 힘, 스타트업의 생존을 넘어 성장으로 - 김용대 사업개발 담당, AWS / 박재영 CTO, 크몽 :: AWS Summit Seou...
PHP - Introduction to PHP Cookies and Sessions
High Available Task Scheduling Design using Kafka and Kafka Streams | Naveen ...
Chromium에 contribution하기
Web container and Apache Tomcat
Hash map
MessagePack(msgpack): Compact and Fast Serialization Library
MongoDB and Node.js
jQuery Ajax
MongoDB + Java + Spring Data
Connectors. linking words and phrases
Un Cuneese dimenticato: il professor Gherardo Ferreri e il suo diario di Libia
Android local sockets in native code
Node JS Crash Course
Ad

Viewers also liked (20)

PDF
How Anemic Objects Kill OOP
PDF
ORM is a perfect anti-pattern
PDF
Who Is a Software Architect?
PDF
Management without managers
PDF
Built-in Fake Objects
PDF
Need It Robust? Make It Fragile!
PDF
Object Oriented Lies
PDF
How Immutability Helps in OOP
PDF
How Do You Talk to Your Microservice?
PDF
eXtremely Distributed Software Development
PDF
Keep Your Servers in GitHub
PDF
How Much Immutability Is Enough?
PDF
OOP Is Dead? Not Yet!
PDF
Continuous Integration is Dead
PDF
Who Manages Who?
PDF
How Do You Know When Your Product is Ready to be Shipped?
PDF
Meetings Or Discipline
PDF
Fail Fast. Into User's Face.
PDF
Practical Example of AOP with AspectJ
PDF
Problems With Chat Bots
How Anemic Objects Kill OOP
ORM is a perfect anti-pattern
Who Is a Software Architect?
Management without managers
Built-in Fake Objects
Need It Robust? Make It Fragile!
Object Oriented Lies
How Immutability Helps in OOP
How Do You Talk to Your Microservice?
eXtremely Distributed Software Development
Keep Your Servers in GitHub
How Much Immutability Is Enough?
OOP Is Dead? Not Yet!
Continuous Integration is Dead
Who Manages Who?
How Do You Know When Your Product is Ready to be Shipped?
Meetings Or Discipline
Fail Fast. Into User's Face.
Practical Example of AOP with AspectJ
Problems With Chat Bots
Ad

More from Yegor Bugayenko (20)

PDF
Can Distributed Teams Deliver Quality?
PDF
Are You Sure You Are Not a Micromanager?
PDF
On Requirements Management (Demotivate Them Right)
PDF
My Experience of 1000 Interviews
PDF
Are you sure you are not a micromanager?
PDF
Quality Assurance vs. Testing
PDF
Is Java Getting Better?
PDF
Typical Pitfalls in Testing
PDF
Software Testing Pitfalls
PDF
Five Trends We Are Afraid Of
PDF
Experts vs Expertise
PDF
Who Cares About Quality?
PDF
Quantity vs. Quality
PDF
Experts vs Expertise
PDF
Zold: a cryptocurrency without Blockchain
PDF
Life Without Blockchain
PDF
How to Cut Corners and Stay Cool
PDF
Math or Love?
PDF
How much do you cost?
PDF
Java Annotations Are a Bad Idea
Can Distributed Teams Deliver Quality?
Are You Sure You Are Not a Micromanager?
On Requirements Management (Demotivate Them Right)
My Experience of 1000 Interviews
Are you sure you are not a micromanager?
Quality Assurance vs. Testing
Is Java Getting Better?
Typical Pitfalls in Testing
Software Testing Pitfalls
Five Trends We Are Afraid Of
Experts vs Expertise
Who Cares About Quality?
Quantity vs. Quality
Experts vs Expertise
Zold: a cryptocurrency without Blockchain
Life Without Blockchain
How to Cut Corners and Stay Cool
Math or Love?
How much do you cost?
Java Annotations Are a Bad Idea

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Nekopoi APK 2025 free lastest update
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Transform Your Business with a Software ERP System
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administraation Chapter 3
PDF
Digital Strategies for Manufacturing Companies
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
assetexplorer- product-overview - presentation
PDF
Cost to Outsource Software Development in 2025
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Digital Systems & Binary Numbers (comprehensive )
Nekopoi APK 2025 free lastest update
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Softaken Excel to vCard Converter Software.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Odoo POS Development Services by CandidRoot Solutions
Why Generative AI is the Future of Content, Code & Creativity?
Operating system designcfffgfgggggggvggggggggg
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Transform Your Business with a Software ERP System
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administraation Chapter 3
Digital Strategies for Manufacturing Companies
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
assetexplorer- product-overview - presentation
Cost to Outsource Software Development in 2025

Java vs OOP