Submit Search
Upload
The story of migrating from Java to Python
•
0 likes
•
17 views
I
ivohoubrechts1
Follow
Migrating from Java to Python
Read less
Read more
Technology
Report
Share
Report
Share
1 of 30
Download now
Download to read offline
Recommended
Why Python is the Best Coding Language For PWA Development_.ppt
Why Python is the Best Coding Language For PWA Development_.ppt
Techinventive Software
Is python just a fad or here to stay
Is python just a fad or here to stay
Sarah Walsh
Python in a real life
Python in a real life
Vladimir Filonov
python.pptx
python.pptx
RRamyaDevi
Introduction To Python
Introduction To Python
Biswajeet Dasmajumdar
Mixing Python and Java
Mixing Python and Java
Andreas Schreiber
Django Python(2)
Django Python(2)
tomcoh
How to create a basic website with Python on Django
How to create a basic website with Python on Django
Armağan Ersöz
Recommended
Why Python is the Best Coding Language For PWA Development_.ppt
Why Python is the Best Coding Language For PWA Development_.ppt
Techinventive Software
Is python just a fad or here to stay
Is python just a fad or here to stay
Sarah Walsh
Python in a real life
Python in a real life
Vladimir Filonov
python.pptx
python.pptx
RRamyaDevi
Introduction To Python
Introduction To Python
Biswajeet Dasmajumdar
Mixing Python and Java
Mixing Python and Java
Andreas Schreiber
Django Python(2)
Django Python(2)
tomcoh
How to create a basic website with Python on Django
How to create a basic website with Python on Django
Armağan Ersöz
Python 101 For The Net Developer
Python 101 For The Net Developer
Sarah Dutkiewicz
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!
Ronan Lamy
Py Con 2009 Pumping Iron Into Python
Py Con 2009 Pumping Iron Into Python
Sarah Dutkiewicz
Scientist meets web dev: how Python became the language of data
Scientist meets web dev: how Python became the language of data
Gael Varoquaux
Evdokimov python arsenal for re
Evdokimov python arsenal for re
DefconRussia
Ruby - The Hard Bits
Ruby - The Hard Bits
Paul Gallagher
Java vs Python: Comparison, Features & Applications
Java vs Python: Comparison, Features & Applications
WeblineIndia
Pyconza(2)
Pyconza(2)
Nanjekye Joannah
Picking programming packages
Picking programming packages
Abe Gong
Which is better, Java or Python? And how?
Which is better, Java or Python? And how?
narendrachinnu
Cmpe202 01 Research
Cmpe202 01 Research
vladimirkorshak
Python Training in Pune - Ethans Tech Pune
Python Training in Pune - Ethans Tech Pune
Ethan's Tech
Introduction to the Python conda package manager
Introduction to the Python conda package manager
Damien Garaud
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docx
Manohar k
INTRODUCTION-TO-PYTHON
INTRODUCTION-TO-PYTHON
RuchiNagar3
python course in pune.pdf
python course in pune.pdf
itview
Django
Django
Momentum Design Lab
Pyhton-1a-Basics.pdf
Pyhton-1a-Basics.pdf
Mattupallipardhu
Web Dev 21-01-2024.pptx
Web Dev 21-01-2024.pptx
PARDHIVANNABATTULA
The Python Book_ The ultimate guide to coding with Python ( PDFDrive ).pdf
The Python Book_ The ultimate guide to coding with Python ( PDFDrive ).pdf
ssuser8b3cdd
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Deakin University
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
Hyundai Motor Group
More Related Content
Similar to The story of migrating from Java to Python
Python 101 For The Net Developer
Python 101 For The Net Developer
Sarah Dutkiewicz
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!
Ronan Lamy
Py Con 2009 Pumping Iron Into Python
Py Con 2009 Pumping Iron Into Python
Sarah Dutkiewicz
Scientist meets web dev: how Python became the language of data
Scientist meets web dev: how Python became the language of data
Gael Varoquaux
Evdokimov python arsenal for re
Evdokimov python arsenal for re
DefconRussia
Ruby - The Hard Bits
Ruby - The Hard Bits
Paul Gallagher
Java vs Python: Comparison, Features & Applications
Java vs Python: Comparison, Features & Applications
WeblineIndia
Pyconza(2)
Pyconza(2)
Nanjekye Joannah
Picking programming packages
Picking programming packages
Abe Gong
Which is better, Java or Python? And how?
Which is better, Java or Python? And how?
narendrachinnu
Cmpe202 01 Research
Cmpe202 01 Research
vladimirkorshak
Python Training in Pune - Ethans Tech Pune
Python Training in Pune - Ethans Tech Pune
Ethan's Tech
Introduction to the Python conda package manager
Introduction to the Python conda package manager
Damien Garaud
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docx
Manohar k
INTRODUCTION-TO-PYTHON
INTRODUCTION-TO-PYTHON
RuchiNagar3
python course in pune.pdf
python course in pune.pdf
itview
Django
Django
Momentum Design Lab
Pyhton-1a-Basics.pdf
Pyhton-1a-Basics.pdf
Mattupallipardhu
Web Dev 21-01-2024.pptx
Web Dev 21-01-2024.pptx
PARDHIVANNABATTULA
The Python Book_ The ultimate guide to coding with Python ( PDFDrive ).pdf
The Python Book_ The ultimate guide to coding with Python ( PDFDrive ).pdf
ssuser8b3cdd
Similar to The story of migrating from Java to Python
(20)
Python 101 For The Net Developer
Python 101 For The Net Developer
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!
Py Con 2009 Pumping Iron Into Python
Py Con 2009 Pumping Iron Into Python
Scientist meets web dev: how Python became the language of data
Scientist meets web dev: how Python became the language of data
Evdokimov python arsenal for re
Evdokimov python arsenal for re
Ruby - The Hard Bits
Ruby - The Hard Bits
Java vs Python: Comparison, Features & Applications
Java vs Python: Comparison, Features & Applications
Pyconza(2)
Pyconza(2)
Picking programming packages
Picking programming packages
Which is better, Java or Python? And how?
Which is better, Java or Python? And how?
Cmpe202 01 Research
Cmpe202 01 Research
Python Training in Pune - Ethans Tech Pune
Python Training in Pune - Ethans Tech Pune
Introduction to the Python conda package manager
Introduction to the Python conda package manager
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docx
INTRODUCTION-TO-PYTHON
INTRODUCTION-TO-PYTHON
python course in pune.pdf
python course in pune.pdf
Django
Django
Pyhton-1a-Basics.pdf
Pyhton-1a-Basics.pdf
Web Dev 21-01-2024.pptx
Web Dev 21-01-2024.pptx
The Python Book_ The ultimate guide to coding with Python ( PDFDrive ).pdf
The Python Book_ The ultimate guide to coding with Python ( PDFDrive ).pdf
Recently uploaded
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Deakin University
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
Hyundai Motor Group
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
null - The Open Security Community
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Competition Advisory Services (India) LLP
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
ThousandEyes
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
LBM Solutions
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
Recently uploaded
(20)
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
Slack Application Development 101 Slides
Slack Application Development 101 Slides
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
The story of migrating from Java to Python
1.
From Java to
Python python.be meetup #5 by Ivo Houbrechts
2.
Hi, I'm Ivo FreelanceSoftwareCraftsman ProfessionalDeveloperSince1997 UpcycledCode
3.
Agenda Whatwedevelop Loveatfirstsight Therockyroad PyprojectX:thedealmaker
4.
What we develop Applications/RESTAPIs ~70gitrepositoriescheckedout Java(Groovy),NodeJs,Python(Combined) oldestrepo:2012 15+Pythonprojects
5.
Love at first
sight
6.
Python 💕 NoCeremonialCode Indentationbased Comprehensions Decorators Batteriesincluded Standardlibrarypackedwithusefulstuff Pip/PyPI Plentyoflearningresources
7.
Python for AWS
Lambda IncomparisonwithJavaandJavaScript: Betterlibrarysupport Boto3 LambdaPowertools Contractfirstdevelopment OpenAPI/Swagger Connexion+Flask+ServerlessWSGI
8.
A unique chance
to compare Distributedtracingimplementation ImplementedinJava,JavaScriptandPython Samefunctionality SlightlymorefeaturesinPython
9.
The verdict from
SonarQube Python JavaScript Java LoC 223 249 754 Cyclomatic Complexity 42 48 92 CognitiveComplexity 27 30 37
10.
The rocky road
11.
12.
The preparation
13.
14.
Search Libraries AWSspecific Boto3 LambdaPowertools PynamoDB General Connexion Flask ServerlessWSGI
15.
Migrate custom AWS
library SmallJavaScriptlibrary Helpersforeventhandling APIGateway S3 SQS Utilityfunctions
16.
Team Onboarding
17.
Python Installation AnticipatesupportofmultiplePythonversions 3differentJavaversions 2differentNodeJsversions pyenv theWindowsguyjustsurvived frustrationsonMaccausedbydifferent installationoptions Onetimeeffort🙄 Auto-selectpythonwith.python-version😃
18.
Dependency Management Poetry Worksasadvertised Butnotforeveryone😵💫 Dependingontheinstallationmethod,yougotadifferent version🤨
19.
Tool dependency hell BesidesPoetry,weuseblack,isort,pre-commit,... 10projectsx5toolsx3versions=upto150 combinations😱 ShowStopper!🛑
20.
How do others
solve this? installtoolsasdevdependencies impactonruntimedependencies downgradeofdependenciesatbest versionconflictsatworst f.e.AWSSAMnotcompatiblewithboto3 docker notdeveloperfriendly doesnotplaywellwithIDEs
21.
PyprojectX: the deal
maker
22.
What we learned
from Gradle OnlydependsontheJavaruntime Don'trelyonlocallyinstalledtools;tools changeovertime! Useawrapperscript Downloadthecorrectversionifnotpresent Don'tpolluteyourlocalenvironment Storemostintheprojectdirectory
23.
PyprojectX Wrapperscripts pwfor*nixandpw.batforWindows Configurationinpyproject.toml (Versioned)Tools Frequentlyusedcommands
24.
PyprojectX example [tool.pyprojectx] pdm =
{ requirements = ["pdm==2.9.3"], post-install = "pw@setup-pre-commit" } ruff = "ruff==0.0.287" pre-commit = "pre-commit==3.4.0" jupyter = ["jupyterlab", "-e ."] [tool.pyprojectx.aliases] install = "pdm install" run = "pdm run" test = "run pytest tests/unit" start = "run python -m tests.local_flask" outdated = "pdm update --outdated"
25.
PyprojectX Demo $ ./pw
--info $ ./pw install $ ./pw i $ ./pw start $ cd tests/unit $ ../../pw run pytest $ ./pw pdm add requests $ px run pytest
26.
But still...
27.
'pip install pdm==2.5.3'
!= 'pip install pdm==2.5.3' Releasesofdownstreamdependenciescanbreaka Pythontool🤯 ...anddockerwon't(always)solvethisforyou😭 SeePDMissue1883
28.
PyprojectX v2 locktoolversions simplifiedconfiguration bugfixesandfeaturerequests expectedrelease:january2024
29.
Conclusions Pythonisagreatlanguage Dependencymanagementneedsextraattention PyprojectXhelpsalothere MigratingfromJavaorNodeJsisworthwhile AtleastforAWSLambda
30.
Questions?
Download now