SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Do Reinvent the Wheel!
Hamidreza Soleimani
Software Engineer, Architect @ Spotify
Nov. 2021
Reinventing the Wheel:
“to waste time trying
to create something
that someone else has
already created”
- Cambridge Dictionary
There is NO wheel
There is NO one-size, ready-made solution that solves your specific problem
It might be
too much!
... or too little!
Current wheels are NOT perfect
The High Wheel bike was the first machine
to be called a "bicycle".
It was popular in the 1870s and 1880s,
with its large front wheel
providing high speeds and comfort.
… but , is it really “comfortable”?
- Wikipedia
20 years of suffering and NOT reinventing the wheel!
The REAL evolution of wheel
Stone Wheel iPod Wheel
Let’s call software a “wheel” for now!
In today’s word most of the softwares are really bad!
iPhone X
4 GB RAM
2490 MHz CPU
IBM System/360 Model 75
256 KB RAM
0.043 MHz CPU
Your iPhone is
X 1,000,00 more RAM
X 100,000 faster CPU
than Apollo 11
“Same same, but difference!”
vs.
Macbook Pro:
CPU: 16-Core 3.3GHz Intel Xeon
RAM: 32GB
Playstation 4:
CPU: 8-Cores 2.75GHz AMD
RAM: 8GB
Hardware
speeds
doubles every
two years, but
NOT the
softwares!
Wheel is the solution,
you should first focus on your problem
We should not move away
from problem solving to just googling
Googling = minimum effort + maximum result
Bad wheels is the
result of shifting
focus from
problem solving
to just googling!
… should we reinvent all the wheels?
We should NOT!
Unless ...
1. We need to learn how the wheel works
2. We understand the problem and the wheel that being handed to us
Technology keep evolving by reinventing itself!
Linux
is a reinvention of
Unix
Professor Andrew S. Tanenbaum
- Computer Scientist
- Creator of Minix
Linus Torvalds
- Creator of Linux
Tanenbaum to Torvalds:
“Be thankful you are not my
student. You would not get a
high grade for such a design”
… but Professor Tanenbaum was wrong!
Server Operating System Worldwide (2020)
However,
market share
is NOT always
the right metric!
Messenger Apps Market Share Worldwide (2021)
… same with the programming languages.
Mostly used Programming Languages Worldwide (2021)
vs.
Quicksort Algorithm
in
Quicksort Algorithm
in
So, should we reinvent the Java?
Yes, we should, with Kotlin, because:
- Kotlin comes from industry, not academia
- Kotlin works existing Java frameworks and libraries
- Kotlin can be learned in a few hours
- Kotlin enforces no particular philosophy of programming
- Google adopted Kotlin as the first choice for Android
Yes, we should, with Scala, because:
- Scala combines oop and functional
- Scala is concise and high-level
- Scala’s static types help avoid bugs in complex apps
- Scala has access to huge ecosystems of Java libraries
- Big Data ecosystem adopted Scala as the first choice
What about JSON / YAML?
Filter: filename:*.json size:>10KB => Result: 66,602
Filter: filename:*.yaml size:>10KB => Result: 4,124
Number of large json and yaml files in a Spotify open-source repositories
JSON / YAML Problems:
- Not Modular
- No Type System
- No Prototyping System
- No Bitwise / Arithmetic Operation
- No Variable
Confee notation files can be compiled
to JSON, YAML or other config
notation files.
data-type.confee
data-info.confee
data-info.yaml
Confee
Compiler
Closer look at Confee!
Every value can be
reused like a
variable
Custom-typed objects can
be reused as a prototype
Primitive types such as String,
Integer and Boolean supports basic
operations by + - * / % & |
operators
data-type.confee
data-info.confee
Confee files can be imported
like a module
Types should be defined for
every value
Question?
@hmdrezs
Next NexTalk: Artificial Intelligence is a reinvention of the way we Invent

Weitere ähnliche Inhalte

Ähnlich wie Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf

OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware
 

Ähnlich wie Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf (20)

Scilabpdf
ScilabpdfScilabpdf
Scilabpdf
 
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
 
GC @ jmaghreb2014
GC @ jmaghreb2014GC @ jmaghreb2014
GC @ jmaghreb2014
 
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
 
OSGI,
OSGI,OSGI,
OSGI,
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applications
 
Open Racing
Open RacingOpen Racing
Open Racing
 
OLPC Learning Club DC Jan 2009 Meeting
OLPC Learning Club DC Jan 2009 MeetingOLPC Learning Club DC Jan 2009 Meeting
OLPC Learning Club DC Jan 2009 Meeting
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
TiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium appsTiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium apps
 
Dato Keynote
Dato KeynoteDato Keynote
Dato Keynote
 
The future of technology
The future of technologyThe future of technology
The future of technology
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
The FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyThe FT Web App: Coding Responsively
The FT Web App: Coding Responsively
 
How AI connect dots for IoT
How AI connect dots for IoTHow AI connect dots for IoT
How AI connect dots for IoT
 
Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019Are you ready for cloud-native java JavaCro2019
Are you ready for cloud-native java JavaCro2019
 

Mehr von Hamidreza Soleimani

Mehr von Hamidreza Soleimani (13)

Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
Principles of Engineering Management | Hamidreza Soleimani | Diginext AcademyPrinciples of Engineering Management | Hamidreza Soleimani | Diginext Academy
Principles of Engineering Management | Hamidreza Soleimani | Diginext Academy
 
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
Architecting Scalable Platforms in Erlang/OTP | Hamidreza Soleimani | Diginex...
 
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext AcademyHow to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
How to Scale Your Engineering Team | Hamidreza Soleimani | Diginext Academy
 
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext AcademyThe World works in Parallel | Hamidreza Soleimani | Diginext Academy
The World works in Parallel | Hamidreza Soleimani | Diginext Academy
 
Technology Companies Development Story
Technology Companies Development StoryTechnology Companies Development Story
Technology Companies Development Story
 
BEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time PlatformBEAM (Erlang VM) as a Soft Real-time Platform
BEAM (Erlang VM) as a Soft Real-time Platform
 
Nanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryNanomsg - Scalable Networking Library
Nanomsg - Scalable Networking Library
 
Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2
 
Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1
 
Nodejs Applications in Production
Nodejs Applications in ProductionNodejs Applications in Production
Nodejs Applications in Production
 
Practical Look at Erlang
Practical Look at ErlangPractical Look at Erlang
Practical Look at Erlang
 
What is XMPP Protocol
What is XMPP ProtocolWhat is XMPP Protocol
What is XMPP Protocol
 
Create Your Own Language
Create Your Own LanguageCreate Your Own Language
Create Your Own Language
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf

  • 1. Do Reinvent the Wheel! Hamidreza Soleimani Software Engineer, Architect @ Spotify Nov. 2021
  • 2. Reinventing the Wheel: “to waste time trying to create something that someone else has already created” - Cambridge Dictionary
  • 3. There is NO wheel There is NO one-size, ready-made solution that solves your specific problem
  • 4. It might be too much! ... or too little!
  • 5. Current wheels are NOT perfect
  • 6. The High Wheel bike was the first machine to be called a "bicycle". It was popular in the 1870s and 1880s, with its large front wheel providing high speeds and comfort. … but , is it really “comfortable”? - Wikipedia
  • 7. 20 years of suffering and NOT reinventing the wheel!
  • 8. The REAL evolution of wheel Stone Wheel iPod Wheel Let’s call software a “wheel” for now!
  • 9. In today’s word most of the softwares are really bad! iPhone X 4 GB RAM 2490 MHz CPU IBM System/360 Model 75 256 KB RAM 0.043 MHz CPU
  • 10. Your iPhone is X 1,000,00 more RAM X 100,000 faster CPU than Apollo 11
  • 11. “Same same, but difference!” vs. Macbook Pro: CPU: 16-Core 3.3GHz Intel Xeon RAM: 32GB Playstation 4: CPU: 8-Cores 2.75GHz AMD RAM: 8GB
  • 13. Wheel is the solution, you should first focus on your problem
  • 14. We should not move away from problem solving to just googling
  • 15. Googling = minimum effort + maximum result
  • 16. Bad wheels is the result of shifting focus from problem solving to just googling!
  • 17. … should we reinvent all the wheels?
  • 19. Unless ... 1. We need to learn how the wheel works 2. We understand the problem and the wheel that being handed to us
  • 20. Technology keep evolving by reinventing itself!
  • 22. Professor Andrew S. Tanenbaum - Computer Scientist - Creator of Minix Linus Torvalds - Creator of Linux Tanenbaum to Torvalds: “Be thankful you are not my student. You would not get a high grade for such a design”
  • 23. … but Professor Tanenbaum was wrong! Server Operating System Worldwide (2020)
  • 24. However, market share is NOT always the right metric! Messenger Apps Market Share Worldwide (2021)
  • 25. … same with the programming languages. Mostly used Programming Languages Worldwide (2021)
  • 28. So, should we reinvent the Java? Yes, we should, with Kotlin, because: - Kotlin comes from industry, not academia - Kotlin works existing Java frameworks and libraries - Kotlin can be learned in a few hours - Kotlin enforces no particular philosophy of programming - Google adopted Kotlin as the first choice for Android Yes, we should, with Scala, because: - Scala combines oop and functional - Scala is concise and high-level - Scala’s static types help avoid bugs in complex apps - Scala has access to huge ecosystems of Java libraries - Big Data ecosystem adopted Scala as the first choice
  • 29. What about JSON / YAML? Filter: filename:*.json size:>10KB => Result: 66,602 Filter: filename:*.yaml size:>10KB => Result: 4,124 Number of large json and yaml files in a Spotify open-source repositories
  • 30. JSON / YAML Problems: - Not Modular - No Type System - No Prototyping System - No Bitwise / Arithmetic Operation - No Variable
  • 31. Confee notation files can be compiled to JSON, YAML or other config notation files. data-type.confee data-info.confee data-info.yaml Confee Compiler
  • 32. Closer look at Confee! Every value can be reused like a variable Custom-typed objects can be reused as a prototype Primitive types such as String, Integer and Boolean supports basic operations by + - * / % & | operators data-type.confee data-info.confee Confee files can be imported like a module Types should be defined for every value
  • 33. Question? @hmdrezs Next NexTalk: Artificial Intelligence is a reinvention of the way we Invent