SlideShare uma empresa Scribd logo
1 de 21
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?
Mature, Stable, Functional,
      Object Oriented

Well documented with a test suite

Well known to a wide user base

Well known to driver developers
JDBC
JDBC
No, not Java, just the JDBC API

  The class and method names,
          the semantics
       the documentation
           the test suite
Actually, not plain JDBC

Sanitize the worst influences of Java

Easier to use for dynamic languages
Your Code



         DBI



         DBD



Database Client Library
Your Code
DBI v2 API

                      DBI



                      DBD



             Database Client Library
Your Code
DBI v2 API

                      DBI
DBDI API

                      DBD



             Database Client Library
Your Code
DBI v2 API

                      DBI
DBDI API

                      DBD



             Database Client Library
NO JDBC FOR THIS!

                     Your Code
  DBI v2 API

                        DBI
  DBDI API

                        DBD



USE JDBC       Database Client Library
FOR THIS
2010
java2perl6api

  Generates Perl 6 Role modules that
mirror the API of specified Java Classes

         http://github.com/timbunce/java2perl6
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
It Runs!

  A working PostgreSQL driver
      is included in DBDI

It’s very minimal today (July 2010)
but it only took a few hours to write
Next steps?
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
Interested?

  Come and join the fun!

    dbdi-dev@perl.org

#dbdi on irc.freenode.org

Mais conteúdo relacionado

Mais procurados

Concurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approachesConcurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approaches
Joel Corrêa
 
Roopa_1Year_6Mont_Java_AndroidExper
Roopa_1Year_6Mont_Java_AndroidExperRoopa_1Year_6Mont_Java_AndroidExper
Roopa_1Year_6Mont_Java_AndroidExper
Roopa Bai
 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl Design
Sven Efftinge
 
Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»
Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»
Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»
e-Legion
 

Mais procurados (17)

Concurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approachesConcurrent paradigms - Paralelism approaches
Concurrent paradigms - Paralelism approaches
 
Building domain-specific languages with Groovy
Building domain-specific languages with GroovyBuilding domain-specific languages with Groovy
Building domain-specific languages with Groovy
 
Industrial training
Industrial trainingIndustrial training
Industrial training
 
Java project
Java projectJava project
Java project
 
Smartling
SmartlingSmartling
Smartling
 
J2ee architecture
J2ee architectureJ2ee architecture
J2ee architecture
 
Roopa_1Year_6Mont_Java_AndroidExper
Roopa_1Year_6Mont_Java_AndroidExperRoopa_1Year_6Mont_Java_AndroidExper
Roopa_1Year_6Mont_Java_AndroidExper
 
Empathic API-Design
Empathic API-DesignEmpathic API-Design
Empathic API-Design
 
Java
JavaJava
Java
 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl Design
 
Introductio to Docker Containers
Introductio to Docker ContainersIntroductio to Docker Containers
Introductio to Docker Containers
 
Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»
Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»
Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»
 
Java vs python
Java vs pythonJava vs python
Java vs python
 
computer science JAVA ppt
computer science JAVA pptcomputer science JAVA ppt
computer science JAVA ppt
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
 
Java Intro
Java IntroJava Intro
Java Intro
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
 

Semelhante a Perl 6 DBDI 201007 (OUTDATED, see 201008)

jdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptxjdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptx
ssuser8878c1
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
ireneconje
 

Semelhante a Perl 6 DBDI 201007 (OUTDATED, see 201008) (20)

Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008
 
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
 
jdbc document
jdbc documentjdbc document
jdbc document
 
Jdbc_ravi_2016
Jdbc_ravi_2016Jdbc_ravi_2016
Jdbc_ravi_2016
 
jdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptxjdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptx
 
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
 
Java database programming with jdbc
Java database programming with jdbcJava database programming with jdbc
Java database programming with jdbc
 
Jdbc drivers
Jdbc driversJdbc drivers
Jdbc drivers
 
chapter 5 java.pptx
chapter 5  java.pptxchapter 5  java.pptx
chapter 5 java.pptx
 
Chapter_4_-_JDBC[1].pptx
Chapter_4_-_JDBC[1].pptxChapter_4_-_JDBC[1].pptx
Chapter_4_-_JDBC[1].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
jdbc Java Database Connectivity ujjwal matoliya jdbc.pptx
 
JDBC Architecture and Drivers
JDBC Architecture and DriversJDBC Architecture and Drivers
JDBC Architecture and Drivers
 
Jdbc architecture and driver types ppt
Jdbc architecture and driver types pptJdbc architecture and driver types ppt
Jdbc architecture and driver types ppt
 
Java Database Connectivity(JDBC) java database
Java Database Connectivity(JDBC) java databaseJava Database Connectivity(JDBC) java database
Java Database Connectivity(JDBC) java database
 
jdbc
jdbcjdbc
jdbc
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3
 
JDBC java database connectivity with dbms
JDBC java database connectivity with dbmsJDBC java database connectivity with dbms
JDBC java database connectivity with dbms
 
Jdbc 1
Jdbc 1Jdbc 1
Jdbc 1
 

Mais de Tim Bunce

Mais de Tim Bunce (16)

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
 
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 )
 
Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011
 
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
 
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
 
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)
 
Perl Myths 200909
Perl Myths 200909Perl Myths 200909
Perl Myths 200909
 
DashProfiler 200807
DashProfiler 200807DashProfiler 200807
DashProfiler 200807
 
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)
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Perl 6 DBDI 201007 (OUTDATED, see 201008)

  • 2. Database interfaces for open source languages suck
  • 3. They’re all limited They’re all different They’re all duplicating development effort
  • 4. We need a common database driver API for Perl 6 and Parrot
  • 6. 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 DBD Database Client Library
  • 11. Your Code DBI v2 API DBI DBD Database Client Library
  • 12. Your Code DBI v2 API DBI DBDI API DBD Database Client Library
  • 13. Your Code DBI v2 API DBI DBDI API DBD Database Client Library
  • 14. NO JDBC FOR THIS! Your Code DBI v2 API DBI DBDI API DBD USE JDBC Database Client Library FOR THIS
  • 15. 2010
  • 16. java2perl6api Generates Perl 6 Role modules that mirror the API of specified Java Classes http://github.com/timbunce/java2perl6
  • 17. 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
  • 18. It Runs! A working PostgreSQL driver is included in DBDI It’s very minimal today (July 2010) but it only took a few hours to write
  • 20. 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
  • 21. Interested? Come and join the fun! dbdi-dev@perl.org #dbdi on irc.freenode.org

Notas do Editor

  1. Database interfaces for Java, C#, VB etc also suck, but are much more functional Perl has its own database drivers, as do Python, Ruby, PHP, tcl etc etc Just about every open source language has its own database drivers Some even have more than one set of database interfaces and drivers
  2. They're All limited Most provide access to a fraction of database client functionality They're All different Even the ones modelled on the DBI differ in significant ways They're All duplicating development effort So much more could be achieved if the same effort was focussed on fewer drivers that could be shared across languages Diversity is good, but this is madness.
  3. All drivers can implement the common API, then any parrot language can use any driver
  4. We need an API that is...
  5. The only good fit is the Java JDBC API “JDBC is the new ODBC” So I'm proposing that the JDBC API specification be the common database driver API for Parrot The goal being to be able to use the official JDBC docs as the primary docs for the API
  6. The only good fit is the Java JDBC API “JDBC is the new ODBC” So I'm proposing that the JDBC API specification be the common database driver API for Parrot The goal being to be able to use the official JDBC docs as the primary docs for the API
  7. The only good fit is the Java JDBC API “JDBC is the new ODBC” So I'm proposing that the JDBC API specification be the common database driver API for Parrot The goal being to be able to use the official JDBC docs as the primary docs for the API
  8. Language interface layer adapts the JDBC API to the particular needs of that language