SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Do Reinvent the Wheel - Nov 2021 - DigiNext.pdf

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"JSFestUA
 
GC @ jmaghreb2014
GC @ jmaghreb2014GC @ jmaghreb2014
GC @ jmaghreb2014Ivan Krylov
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Shivam Prajapati
 
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 applicationsX.commerce
 
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 MeetingMike Lee
 
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 allMarc Dutoo
 
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 WideOCCIware
 
TiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium appsTiConnect: Memory Management in Titanium apps
TiConnect: Memory Management in Titanium appsTim Poulsen
 
The future of technology
The future of technologyThe future of technology
The future of technologymike_henderson
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?Kasra Khosravi
 
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...Balanced Team
 
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 partnerBill Scott
 
The FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyThe FT Web App: Coding Responsively
The FT Web App: Coding ResponsivelyC4Media
 
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 JavaCro2019Jamie Coleman
 

Similar a 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
 

Más de Hamidreza Soleimani

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 AcademyHamidreza Soleimani
 
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...Hamidreza Soleimani
 
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 AcademyHamidreza Soleimani
 
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 AcademyHamidreza Soleimani
 
Technology Companies Development Story
Technology Companies Development StoryTechnology Companies Development Story
Technology Companies Development StoryHamidreza Soleimani
 
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 PlatformHamidreza Soleimani
 
Nanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryNanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryHamidreza Soleimani
 
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 2Hamidreza Soleimani
 
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 1Hamidreza Soleimani
 
Nodejs Applications in Production
Nodejs Applications in ProductionNodejs Applications in Production
Nodejs Applications in ProductionHamidreza Soleimani
 

Más de 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
 

Último

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

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