SlideShare a Scribd company logo

Perl6 DBDI YAPC::EU 201008

Tim Bunce
Tim BunceSenior Architect / Entropy Minimizer at TigerLead

Slides of my Perl 6 DBDI (database interface) talk at YAPC::EU in August 2010. Please also see the fun screencast that includes a live demo of perl6 using a perl5 DBI driver: http://timbunce.blip.tv/file/3973550/

Perl6 DBDI YAPC::EU 201008

Tim Bunce
Tim BunceSenior Architect / Entropy Minimizer at TigerLead

Slides of my Perl 6 DBDI (database interface) talk at YAPC::EU in August 2010. Please also see the fun screencast that includes a live demo of perl6 using a perl5 DBI driver: http://timbunce.blip.tv/file/3973550/

Perl6 DBDI YAPC::EU 201008

1 of 29
Download to read offline
DBDI
for Perl6
In

2007
I said...
Database interfaces
 for open source
 languages suck
They’re all limited

 They’re all different

They’re all duplicating
 development effort
We need

a common database driver API

    for Perl 6 and Parrot
But what?

Recommended

Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0Ganesh Kondal
 
Metaprogramming JavaScript
Metaprogramming  JavaScriptMetaprogramming  JavaScript
Metaprogramming JavaScriptdanwrong
 
Using RequireJS for Modular JavaScript Code
Using RequireJS for Modular JavaScript CodeUsing RequireJS for Modular JavaScript Code
Using RequireJS for Modular JavaScript CodeThomas Lundström
 
Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Ganesh Kondal
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 

More Related Content

What's hot

Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Ganesh Kondal
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend FrameworkAdam Culp
 
Refactoring to SOLID Code
Refactoring to SOLID CodeRefactoring to SOLID Code
Refactoring to SOLID CodeAdil Mughal
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Trisha Gee
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React AppAll Things Open
 
The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015jbandi
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operatorkamal kotecha
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Ruby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraRuby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraBindesh Vijayan
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesUlrich Krause
 
CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287Ahmad Gohar
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCUlrich Krause
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG sessionMani Sarkar
 
Zend expressive workshop
Zend expressive workshopZend expressive workshop
Zend expressive workshopAdam Culp
 

What's hot (20)

Java 9, JShell, and Modularity
Java 9, JShell, and ModularityJava 9, JShell, and Modularity
Java 9, JShell, and Modularity
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
Open Social Summit Korea
Open Social Summit KoreaOpen Social Summit Korea
Open Social Summit Korea
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
 
Refactoring to SOLID Code
Refactoring to SOLID CodeRefactoring to SOLID Code
Refactoring to SOLID Code
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)
 
Just enough app server
Just enough app serverJust enough app server
Just enough app server
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React App
 
The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Ruby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraRuby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybara
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPages
 
CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287CDI Best Practices with Real-Life Examples - TUT3287
CDI Best Practices with Real-Life Examples - TUT3287
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG session
 
Zend expressive workshop
Zend expressive workshopZend expressive workshop
Zend expressive workshop
 

Viewers also liked

PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012Tim Bunce
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Tim Bunce
 
Graphic visualization
Graphic visualizationGraphic visualization
Graphic visualizationuwevoelker
 
Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Tim Bunce
 
Perl Tidy Perl Critic
Perl Tidy Perl CriticPerl Tidy Perl Critic
Perl Tidy Perl Criticolegmmiller
 
Application Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.keyApplication Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.keyTim Bunce
 

Viewers also liked (7)

PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
 
Graphic visualization
Graphic visualizationGraphic visualization
Graphic visualization
 
Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011
 
Perl-Critic
Perl-CriticPerl-Critic
Perl-Critic
 
Perl Tidy Perl Critic
Perl Tidy Perl CriticPerl Tidy Perl Critic
Perl Tidy Perl Critic
 
Application Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.keyApplication Logging in the 21st century - 2014.key
Application Logging in the 21st century - 2014.key
 

Similar to Perl6 DBDI YAPC::EU 201008

Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)Tim Bunce
 
chapter 5 java.pptx
chapter 5  java.pptxchapter 5  java.pptx
chapter 5 java.pptxBekiTube
 
Java database programming with jdbc
Java database programming with jdbcJava database programming with jdbc
Java database programming with jdbcsriram raj
 
Introduction of java jdbc
Introduction of java jdbcIntroduction of java jdbc
Introduction of java jdbcfirstenquiry
 
Introduction of java jdbc
Introduction of java jdbcIntroduction of java jdbc
Introduction of java jdbcfirstenquiry
 
Ajp notes-chapter-05
Ajp notes-chapter-05Ajp notes-chapter-05
Ajp notes-chapter-05Ankit Dubey
 
Ajp notes-chapter-05
Ajp notes-chapter-05Ajp notes-chapter-05
Ajp notes-chapter-05JONDHLEPOLY
 
JDBC with MySQL.pdf
JDBC with MySQL.pdfJDBC with MySQL.pdf
JDBC with MySQL.pdfArumugam90
 
JDBC with MySQL.pdf
JDBC with MySQL.pdfJDBC with MySQL.pdf
JDBC with MySQL.pdfArumugam90
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySqlDhyey Dattani
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySqlDhyey Dattani
 
jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx
 jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx
jdbc Java Database Connectivity ujjwal matoliya jdbc.pptxujjwalmatoliya
 
Unit 5-jdbc2
Unit 5-jdbc2Unit 5-jdbc2
Unit 5-jdbc2msafad
 
Chapter_4_-_JDBC[1].pptx
Chapter_4_-_JDBC[1].pptxChapter_4_-_JDBC[1].pptx
Chapter_4_-_JDBC[1].pptxBachaSirata
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3Oracle
 

Similar to Perl6 DBDI YAPC::EU 201008 (20)

Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)
 
chapter 5 java.pptx
chapter 5  java.pptxchapter 5  java.pptx
chapter 5 java.pptx
 
Java database programming with jdbc
Java database programming with jdbcJava database programming with jdbc
Java database programming with jdbc
 
Jdbc_ravi_2016
Jdbc_ravi_2016Jdbc_ravi_2016
Jdbc_ravi_2016
 
jdbc document
jdbc documentjdbc document
jdbc document
 
Jdbc introduction
Jdbc introductionJdbc introduction
Jdbc introduction
 
jdbc
jdbcjdbc
jdbc
 
Introduction of java jdbc
Introduction of java jdbcIntroduction of java jdbc
Introduction of java jdbc
 
Introduction of java jdbc
Introduction of java jdbcIntroduction of java jdbc
Introduction of java jdbc
 
Ajp notes-chapter-05
Ajp notes-chapter-05Ajp notes-chapter-05
Ajp notes-chapter-05
 
Ajp notes-chapter-05
Ajp notes-chapter-05Ajp notes-chapter-05
Ajp notes-chapter-05
 
JDBC with MySQL.pdf
JDBC with MySQL.pdfJDBC with MySQL.pdf
JDBC with MySQL.pdf
 
JDBC with MySQL.pdf
JDBC with MySQL.pdfJDBC with MySQL.pdf
JDBC with MySQL.pdf
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql
 
Jdbc drivers
Jdbc driversJdbc drivers
Jdbc drivers
 
jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx
 jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx
jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx
 
Unit 5-jdbc2
Unit 5-jdbc2Unit 5-jdbc2
Unit 5-jdbc2
 
Chapter_4_-_JDBC[1].pptx
Chapter_4_-_JDBC[1].pptxChapter_4_-_JDBC[1].pptx
Chapter_4_-_JDBC[1].pptx
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3
 

More from Tim Bunce

Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406Tim Bunce
 
Perl Memory Use - LPW2013
Perl Memory Use - LPW2013Perl Memory Use - LPW2013
Perl Memory Use - LPW2013Tim Bunce
 
Perl at SkyCon'12
Perl at SkyCon'12Perl at SkyCon'12
Perl at SkyCon'12Tim Bunce
 
Perl Memory Use 201209
Perl Memory Use 201209Perl Memory Use 201209
Perl Memory Use 201209Tim Bunce
 
Perl Memory Use 201207 (OUTDATED, see 201209 )
Perl Memory Use 201207 (OUTDATED, see 201209 )Perl Memory Use 201207 (OUTDATED, see 201209 )
Perl Memory Use 201207 (OUTDATED, see 201209 )Tim Bunce
 
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0Tim Bunce
 
DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007Tim Bunce
 
Perl Myths 200909
Perl Myths 200909Perl Myths 200909
Perl Myths 200909Tim Bunce
 
DashProfiler 200807
DashProfiler 200807DashProfiler 200807
DashProfiler 200807Tim Bunce
 
DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007Tim Bunce
 
DBD::Gofer 200809
DBD::Gofer 200809DBD::Gofer 200809
DBD::Gofer 200809Tim Bunce
 
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Tim Bunce
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Tim Bunce
 

More from Tim Bunce (13)

Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406
 
Perl Memory Use - LPW2013
Perl Memory Use - LPW2013Perl Memory Use - LPW2013
Perl Memory Use - LPW2013
 
Perl at SkyCon'12
Perl at SkyCon'12Perl at SkyCon'12
Perl at SkyCon'12
 
Perl Memory Use 201209
Perl Memory Use 201209Perl Memory Use 201209
Perl Memory Use 201209
 
Perl Memory Use 201207 (OUTDATED, see 201209 )
Perl Memory Use 201207 (OUTDATED, see 201209 )Perl Memory Use 201207 (OUTDATED, see 201209 )
Perl Memory Use 201207 (OUTDATED, see 201209 )
 
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0
 
DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007
 
Perl Myths 200909
Perl Myths 200909Perl Myths 200909
Perl Myths 200909
 
DashProfiler 200807
DashProfiler 200807DashProfiler 200807
DashProfiler 200807
 
DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007
 
DBD::Gofer 200809
DBD::Gofer 200809DBD::Gofer 200809
DBD::Gofer 200809
 
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)
 

Recently uploaded

web accessibility: why should I care? - with notes
web accessibility: why should I care? - with notesweb accessibility: why should I care? - with notes
web accessibility: why should I care? - with notesMana Sugiyoshi
 
Migrating to Jakarta EE 10
Migrating to Jakarta EE 10Migrating to Jakarta EE 10
Migrating to Jakarta EE 10Josh Juneau
 
Transcript: New stores, new views: Booksellers adapting engaging and thriving...
Transcript: New stores, new views: Booksellers adapting engaging and thriving...Transcript: New stores, new views: Booksellers adapting engaging and thriving...
Transcript: New stores, new views: Booksellers adapting engaging and thriving...BookNet Canada
 
Dataliva Company Brief 2024
Dataliva Company Brief 2024Dataliva Company Brief 2024
Dataliva Company Brief 2024Mustafa Kuğu
 
HHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptx
HHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptxHHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptx
HHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptxHampshireHUG
 
Beyond Cryptojacking: studying contemporary malware in the cloud
Beyond Cryptojacking: studying contemporary malware in the cloudBeyond Cryptojacking: studying contemporary malware in the cloud
Beyond Cryptojacking: studying contemporary malware in the cloudMattMuir5
 
The Top Outages of 2023: Analysis and Takeaways
The Top Outages of 2023: Analysis and TakeawaysThe Top Outages of 2023: Analysis and Takeaways
The Top Outages of 2023: Analysis and TakeawaysThousandEyes
 
DevFest Warsaw
DevFest WarsawDevFest Warsaw
DevFest WarsawGDSC PJATK
 
American Horror Story research powerpoint
American Horror Story research powerpointAmerican Horror Story research powerpoint
American Horror Story research powerpoint17pmat213
 
Calicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSL
Calicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSLCalicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSL
Calicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSLAnoopRamachandran13
 
Intra-body nano-network - Brief summary by Mik Andersen
Intra-body nano-network - Brief summary by Mik AndersenIntra-body nano-network - Brief summary by Mik Andersen
Intra-body nano-network - Brief summary by Mik Andersenkrcdnsqxswifzizvzs
 
Onboarding slides for UiPath Meetup - Welcome
Onboarding slides for UiPath Meetup - WelcomeOnboarding slides for UiPath Meetup - Welcome
Onboarding slides for UiPath Meetup - WelcomeAndreeaTom
 
Mendix vs. OutSystems - Version Control
Mendix vs. OutSystems - Version ControlMendix vs. OutSystems - Version Control
Mendix vs. OutSystems - Version ControlLeon Verster
 
Charting New Waters: Data Integration Excellence for Port & Marine Operations
Charting New Waters: Data Integration Excellence for Port & Marine OperationsCharting New Waters: Data Integration Excellence for Port & Marine Operations
Charting New Waters: Data Integration Excellence for Port & Marine Operationsmarketing932765
 
Correcting Common Mistakes, AsyncAwait.pptx
Correcting Common Mistakes, AsyncAwait.pptxCorrecting Common Mistakes, AsyncAwait.pptx
Correcting Common Mistakes, AsyncAwait.pptxBrandon Minnick, MBA
 
Unleashing the force of AI-powered intelligent document processing
Unleashing the force of AI-powered intelligent document processingUnleashing the force of AI-powered intelligent document processing
Unleashing the force of AI-powered intelligent document processingUiPathCommunity
 
Generative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptxGenerative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptxSri Ambati
 
Stage 1 Tradecraft
Stage 1 TradecraftStage 1 Tradecraft
Stage 1 Tradecraftmatt806068
 

Recently uploaded (20)

web accessibility: why should I care? - with notes
web accessibility: why should I care? - with notesweb accessibility: why should I care? - with notes
web accessibility: why should I care? - with notes
 
Migrating to Jakarta EE 10
Migrating to Jakarta EE 10Migrating to Jakarta EE 10
Migrating to Jakarta EE 10
 
Transcript: New stores, new views: Booksellers adapting engaging and thriving...
Transcript: New stores, new views: Booksellers adapting engaging and thriving...Transcript: New stores, new views: Booksellers adapting engaging and thriving...
Transcript: New stores, new views: Booksellers adapting engaging and thriving...
 
Dataliva Company Brief 2024
Dataliva Company Brief 2024Dataliva Company Brief 2024
Dataliva Company Brief 2024
 
HHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptx
HHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptxHHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptx
HHUG-Jan-2024-Can AI help meet your 2024 challenges_.pptx
 
Beyond Cryptojacking: studying contemporary malware in the cloud
Beyond Cryptojacking: studying contemporary malware in the cloudBeyond Cryptojacking: studying contemporary malware in the cloud
Beyond Cryptojacking: studying contemporary malware in the cloud
 
The Top Outages of 2023: Analysis and Takeaways
The Top Outages of 2023: Analysis and TakeawaysThe Top Outages of 2023: Analysis and Takeaways
The Top Outages of 2023: Analysis and Takeaways
 
DevFest Warsaw
DevFest WarsawDevFest Warsaw
DevFest Warsaw
 
GitHub Copilot-vijaymohire
GitHub Copilot-vijaymohireGitHub Copilot-vijaymohire
GitHub Copilot-vijaymohire
 
American Horror Story research powerpoint
American Horror Story research powerpointAmerican Horror Story research powerpoint
American Horror Story research powerpoint
 
Calicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSL
Calicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSLCalicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSL
Calicut MuleSoft Meetup Group - #13 Implementing One-Way and Two-Way SSL
 
Intra-body nano-network - Brief summary by Mik Andersen
Intra-body nano-network - Brief summary by Mik AndersenIntra-body nano-network - Brief summary by Mik Andersen
Intra-body nano-network - Brief summary by Mik Andersen
 
Bespoke Balajisms
Bespoke BalajismsBespoke Balajisms
Bespoke Balajisms
 
Onboarding slides for UiPath Meetup - Welcome
Onboarding slides for UiPath Meetup - WelcomeOnboarding slides for UiPath Meetup - Welcome
Onboarding slides for UiPath Meetup - Welcome
 
Mendix vs. OutSystems - Version Control
Mendix vs. OutSystems - Version ControlMendix vs. OutSystems - Version Control
Mendix vs. OutSystems - Version Control
 
Charting New Waters: Data Integration Excellence for Port & Marine Operations
Charting New Waters: Data Integration Excellence for Port & Marine OperationsCharting New Waters: Data Integration Excellence for Port & Marine Operations
Charting New Waters: Data Integration Excellence for Port & Marine Operations
 
Correcting Common Mistakes, AsyncAwait.pptx
Correcting Common Mistakes, AsyncAwait.pptxCorrecting Common Mistakes, AsyncAwait.pptx
Correcting Common Mistakes, AsyncAwait.pptx
 
Unleashing the force of AI-powered intelligent document processing
Unleashing the force of AI-powered intelligent document processingUnleashing the force of AI-powered intelligent document processing
Unleashing the force of AI-powered intelligent document processing
 
Generative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptxGenerative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptx
 
Stage 1 Tradecraft
Stage 1 TradecraftStage 1 Tradecraft
Stage 1 Tradecraft
 

Perl6 DBDI YAPC::EU 201008

  • 3. Database interfaces for open source languages suck
  • 4. They’re all limited They’re all different They’re all duplicating development effort
  • 5. We need a common database driver API for Perl 6 and Parrot
  • 7. Mature, Stable, Functional, Object Oriented Well documented, with a test suite Well known to a wide user base Well known to driver developers
  • 8. JDBC No, not Java, just the JDBC API The class and method names, the semantics the documentation the test suite
  • 9. Actually, not plain JDBC Sanitize the worst influences of Java Easier to use for dynamic languages
  • 10. Your Code DBI v2 API DBI DBDI API DBD Database Client Library
  • 11. NO JDBC FOR THIS! Your Code DBI v2 API DBI DBDI API DBD USE JDBC Database Client Library FOR THIS
  • 12. How?
  • 13. java2perl6api Generates Perl 6 Role modules that mirror the API of specified Java Classes Originally a GSoC Project by Phil Crow in 2007 http://github.com/timbunce/java2perl6
  • 14. Recurses into types used Maps Java types to Perl6 $ java2perl6api --add_types jdbclib-typemap --outdir jdbclib java.sql.DriverManager perl6: Rakudo Perl 6, version 2010.07-39-gac8a2ae built on parrot 2.6.0 r48152 loading java.sql.DriverManager loading . java.sql.Connection loading . . java.sql.Array loading . . . java.sql.ResultSet loading . . . . java.io.Reader loading . . . . java.sql.Date loading . . . . java.sql.Ref loading . . . . java.sql.ResultSetMetaData loading . . . . . java.sql.Wrapper loading . . . . java.sql.RowId loading . . . . java.sql.SQLWarning loading . . . . . java.sql.SQLException loading . . . . java.sql.Statement ... wrote jdbclib/java/lang/Enum.pm6 - class java.lang.Enum wrote jdbclib/java/sql/CallableStatement.pm6 - interface java.sql.CallableStatement ... compiling jdbclib/java/sql/SQLException.pm6 - class java.sql.SQLException compiling jdbclib/java/sql/Statement.pm6 - interface java.sql.Statement ... Compiles to .pir for validation and speed
  • 15. public interface java.sql.Statement extends java.sql.Wrapper { public static final int SUCCESS_NO_INFO; public static final int EXECUTE_FAILED; public abstract boolean execute(java.lang.String) throws java.sql.SQLException; public abstract boolean execute(java.lang.String, int) throws java.sql.SQLException; ... }
  • 16. role java::sql::Statement does java::sql::Wrapper { method SUCCESS_NO_INFO (--> Int) is export { ... } method EXECUTE_FAILED (--> Int) is export { ... } multi method execute ( Str $v1, --> Bool ) { ... } # throws java.sql.SQLException multi method execute ( Str $v1, Int $v2, --> Bool ) { ... } # throws java.sql.SQLException ... }
  • 17. 2009
  • 18. MiniDBI (formerly “FakeDBI”) “a tiny subset of DBI in Perl 6” started by Martin Berends “hopefully be obsoleted ASAP” has PostgreSQL and MySQL drivers
  • 19. 2010
  • 20. DBDI A database driver manager and driver implementation framework in Perl 6 Uses the roles generated by running java2perl6api java.sql.DriverManager http://github.com/timbunce/DBDI
  • 21. It Runs! A working PostgreSQL driver is included in DBDI It’s very minimal today (August 2010) but it only took a few hours to write
  • 22. # --- DBDI usage example --- use v6; use DBDI; use DBDI::pglibpq; my $url = @*ARGS.shift || prompt "Enter a 'dbdi:driver:...' URL: "; my $con = DBDI::DriverManager.getConnection($url, 'testuser', 'testpass'); while prompt 'SQL: ' -> $sql { my $result = $con.createStatement.executeQuery($sql); my $meta = $result.getMetaData; my @names = map { $meta.getColumnLabel($_) }, 1..$meta.getColumnCount; say @names.join(", "); while ( $result.next ) { my @row = map { $result.getString($_) }, 1..@names.elems; say @row.join(", "); } }
  • 23. CURRENT SITUATION Your Code MiniDBI DBDI MiniDBI Drivers DBDI Drivers DB Client Libs BASIC BUT BARE FUNCTIONAL SKELETON
  • 25. Build up a class/role hirearchy borrowing from open source JDBC drivers Separate driver-specific logic from driver- independant logic to make it easy to implement drivers Establish infrastructure for logging, exceptions etc.
  • 26. SOME POINT IN THE FUTURE Your Code MiniDBI Tests MiniDBI Framework DBDI Driver MiniDBI Drivers MiniDBI DBDI Driver DBDI Drivers SUCK BRAINZ FROM MiniDBI TRANSITION DB Client Libs DRIVERS INTO & TEST ENABLER DBDI DRIVERS
  • 27. SOME POINT IN THE FUTURE Your Code MiniDBI Framework DBDI Driver MiniDBI Drivers DBDI Drivers DB Client Libs Also ADD a DRIVER to access Perl5 DBI using blitzkost
  • 28. SOME POINT FURTHER IN THE FUTURE Your Code JDBC Test Suite DBI v1/v2/v3/* Sufficient Magic DBDI Framework Driver DBDI Drivers DB Client Libs
  • 29. Interested? Come and join in! dbdi-dev@perl.org #dbdi on irc.freenode.org