SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
This 5-minute lightning talk
  was given by Tim Bunce
      at OSCON 2007
Database interfaces
           for open source
           languages suck


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
They’re all limited

                              They’re all different

                          They’re all duplicating
                           development effort



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.
We need a common database driver
        API for Parrot and Perl 6




All drivers can implement the common API,
then any parrot language can use any driver
Mature, Stable, Functional,
                Object Oriented

                 Well documented,
               ideally with a test suite

          Well known to a wide user base

         Well known to driver developers


We need an API that is...
JDBC

       No, not Java, just the JDBC API

             The class and method names,
                     the semantics
                  the documentation



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
Actually, not plain JDBC

  Sanitize the worst influences of Java

   Easier to use for dynamic languages




Language interface layer adapts the JDBC API to the particular needs of
that language
DBI2 for Perl 6

          JDBC as DBI ↔ DBD API




Language interface layer adapts the JDBC API to the particular needs of
that language
What’s already happened

    JDBC.pm for perl5 using Inline::Java

               What’s happening currently
                       “plumbing”

              java2perl6 API translator
            Java SE 6: Java Scripting API


I'm working on a PDBC module now, in Perl 5
    that's kind-of-a subclass of JDBC that adds DBI-like methods.
I'm mentoring a Summer of Code project by Bálint Szilakszi
    to explore a perl6 pugs implementation of the DBI v1 API with perl5 PDBC as the
    backend.
Next steps?




I'm working on a PDBC module now, in Perl 5
    that's kind-of-a subclass of JDBC that adds DBI-like methods.
I'm mentoring a Summer of Code project by Bálint Szilakszi
    to explore a perl6 pugs implementation of the DBI v1 API with perl5 PDBC as the
    backend.
Interested?

Tim.Bunce@pobox.com

Mais conteúdo relacionado

Mais procurados

Rebol brainwasher
Rebol brainwasherRebol brainwasher
Rebol brainwasher
crazyaxe
 
Coldfusion
ColdfusionColdfusion
Coldfusion
Ram
 
scriptcs - scripted C#, REPL and script extensibility
scriptcs - scripted C#, REPL and script extensibilityscriptcs - scripted C#, REPL and script extensibility
scriptcs - scripted C#, REPL and script extensibility
Filip W
 

Mais procurados (18)

Happy hacking with Plone
Happy hacking with PloneHappy hacking with Plone
Happy hacking with Plone
 
PHP Files: An Introduction
PHP Files: An IntroductionPHP Files: An Introduction
PHP Files: An Introduction
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLI
 
XDebug For php debugging
XDebug For php debuggingXDebug For php debugging
XDebug For php debugging
 
Rebol brainwasher
Rebol brainwasherRebol brainwasher
Rebol brainwasher
 
Coldfusion
ColdfusionColdfusion
Coldfusion
 
Rebol
RebolRebol
Rebol
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
 
Future of PHP
Future of PHPFuture of PHP
Future of PHP
 
Go Lang
Go LangGo Lang
Go Lang
 
Docker - Dicas ninjas - MolaTech Talks
Docker - Dicas ninjas -  MolaTech TalksDocker - Dicas ninjas -  MolaTech Talks
Docker - Dicas ninjas - MolaTech Talks
 
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
 
Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?
 
Grok in Plone
Grok in PloneGrok in Plone
Grok in Plone
 
scriptcs - scripted C#, REPL and script extensibility
scriptcs - scripted C#, REPL and script extensibilityscriptcs - scripted C#, REPL and script extensibility
scriptcs - scripted C#, REPL and script extensibility
 
Not your fathers language c++
Not your fathers language c++Not your fathers language c++
Not your fathers language c++
 
Real-time, collaborative applications in Plone
Real-time, collaborative applications in PloneReal-time, collaborative applications in Plone
Real-time, collaborative applications in Plone
 
New Technologies demoed at the 2011 Plone Conference
New Technologies demoed at the 2011 Plone ConferenceNew Technologies demoed at the 2011 Plone Conference
New Technologies demoed at the 2011 Plone Conference
 

Semelhante a DBI for Parrot and Perl 6 Lightning Talk 2007

jdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptxjdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptx
ssuser8878c1
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher education
therealphpdiddy
 

Semelhante a DBI for Parrot and Perl 6 Lightning Talk 2007 (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)
 
Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 
PHP programmimg
PHP programmimgPHP programmimg
PHP programmimg
 
Java server pages
Java server pagesJava server pages
Java server pages
 
15 Top reasons to choose Java for Backend Development
15 Top reasons to choose Java for Backend Development15 Top reasons to choose Java for Backend Development
15 Top reasons to choose Java for Backend Development
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
 
jdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptxjdbc-130913021409-phpapp01000988www.pptx
jdbc-130913021409-phpapp01000988www.pptx
 
Rollin onj Rubyv3
Rollin onj Rubyv3Rollin onj Rubyv3
Rollin onj Rubyv3
 
Jdbc_ravi_2016
Jdbc_ravi_2016Jdbc_ravi_2016
Jdbc_ravi_2016
 
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
ICON UK '13 - Apache Software: The FREE Java toolbox you didn't know you had !!
 
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher education
 
jdbc document
jdbc documentjdbc document
jdbc document
 
PHP Vs NodeJS for Backend Web Development.pdf
PHP Vs NodeJS for Backend Web Development.pdfPHP Vs NodeJS for Backend Web Development.pdf
PHP Vs NodeJS for Backend Web Development.pdf
 
Flexible delivery options
Flexible delivery options Flexible delivery options
Flexible delivery options
 
Analysis
AnalysisAnalysis
Analysis
 
Future of PERL in IT
Future of PERL in ITFuture of PERL in IT
Future of PERL in IT
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
 

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

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
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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...
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

DBI for Parrot and Perl 6 Lightning Talk 2007

  • 1. This 5-minute lightning talk was given by Tim Bunce at OSCON 2007
  • 2. Database interfaces for open source languages suck 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
  • 3. They’re all limited They’re all different They’re all duplicating development effort 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.
  • 4. We need a common database driver API for Parrot and Perl 6 All drivers can implement the common API, then any parrot language can use any driver
  • 5. Mature, Stable, Functional, Object Oriented Well documented, ideally with a test suite Well known to a wide user base Well known to driver developers We need an API that is...
  • 6. JDBC No, not Java, just the JDBC API The class and method names, the semantics the documentation 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. Actually, not plain JDBC Sanitize the worst influences of Java Easier to use for dynamic languages Language interface layer adapts the JDBC API to the particular needs of that language
  • 8. DBI2 for Perl 6 JDBC as DBI ↔ DBD API Language interface layer adapts the JDBC API to the particular needs of that language
  • 9. What’s already happened JDBC.pm for perl5 using Inline::Java What’s happening currently “plumbing” java2perl6 API translator Java SE 6: Java Scripting API I'm working on a PDBC module now, in Perl 5 that's kind-of-a subclass of JDBC that adds DBI-like methods. I'm mentoring a Summer of Code project by Bálint Szilakszi to explore a perl6 pugs implementation of the DBI v1 API with perl5 PDBC as the backend.
  • 10. Next steps? I'm working on a PDBC module now, in Perl 5 that's kind-of-a subclass of JDBC that adds DBI-like methods. I'm mentoring a Summer of Code project by Bálint Szilakszi to explore a perl6 pugs implementation of the DBI v1 API with perl5 PDBC as the backend.