SlideShare a Scribd company logo
1 of 11
Download to read offline
Principles and practices for
 picking powerful programming
platforms, packages, and plugins
            Abe Gong
             CSAAW
            Jan 2012
Picking programming packages
     Getting the right tools matters.
Picking programming packages
 It matters a lot, but we never talk about it.
Picking programming packages
It is a decision we will each face many times.
Picking programming packages

It's a lot like another decision we often face...




     "What should I wear to the thing?”
What should I wear to the thing?

Clothing            Software
Accesorizes well    Does it work with other software
                    and tools that you use? Is it
                    extensible?
Matches others      Is it a popular package? Are
                    there active forums to get help
                    and updates?
Comfortable         Is it well-documented and easy
                    to debug?
Reasonably priced   It is open source? Does the
                    University already have
                    licenses?
Fits the occasion     Does it do what you want it to
                    do? Really?
Tools I use

   Python – Data acquisition and manipulation
   R, RStudio, and ggplot – Statistics, data
    visualization
   Hadoop – Really big data crunching
   Django – Server-side web development
   HTML, CSS, Javascript, jquery – Client-side
    web development
   Protovis – Client-side data visualization
Tools I would think about using

   D3 – A souped-up replacement for protovis
   Ruby on Rails – More popular alternative to
    Django. Doesn't use python, though.
   Repast – ABMs with python support
   PANDAS – A python-based replacement for R?
Tools I would never use

   Java – A perfectly decent programming
    language, but it does nothing that C++ and
    python can't do better.
   PERL – Like python, but not for humans.
   NetLogo – A horrible, legacy language that is
    difficult to understand and almost impossible to
    debug. In exchange for sliders, NetLogo will
    give you bad habits and make you afraid of
    programming.
Other links and sources
    Picking programming languages:
   http://www.tundraware.com/Technology/How-To-Pick-A-Programming-Language/
   http://www.awaretek.com/atesterea.html
   http://newbiehacker.wordpress.com/2010/01/23/how-to-choose-a-programming-la
   http://blog.aegisub.org/2008/12/if-programming-languages-were-religions.html
   http://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software


   Kinda random:
   http://www.inc.com/guides/choosing-accounting-software.html
   http://www.mb-guide.org/medical-billing-and-coding-software.html
   http://www.qualitydigest.com/july01/html/gauging.html
   http://3d.about.com/od/A-Guide-To-3D-Software/a/Buyers-Guide-To-3d-Software.
   http://www.lingualogue.com/language-software-reviews.html
Picking powerful programming
platforms...
                                   >> Python

                                      Powerful
                                      Flexible
                            << Extensible
                            Very popular
                                  Very free

More Related Content

Similar to Picking programming packages

First programming language to learn | Which Programming Language to Learn Fi...
First programming language to learn |  Which Programming Language to Learn Fi...First programming language to learn |  Which Programming Language to Learn Fi...
First programming language to learn | Which Programming Language to Learn Fi...Intellipaat
 
Python vs. r for data science
Python vs. r for data sciencePython vs. r for data science
Python vs. r for data scienceHugo Shi
 
Should You Choose Java or Python for Data Science?
Should You Choose Java or Python for Data Science?Should You Choose Java or Python for Data Science?
Should You Choose Java or Python for Data Science?Narola Infotech
 
🌟Is Learning Python Your Career Game-Changer? 🚀🐍
🌟Is Learning Python Your  Career Game-Changer? 🚀🐍🌟Is Learning Python Your  Career Game-Changer? 🚀🐍
🌟Is Learning Python Your Career Game-Changer? 🚀🐍abhishekdf3
 
Python vs Rust_ Which is Programming Language Need to Choose for Your Project...
Python vs Rust_ Which is Programming Language Need to Choose for Your Project...Python vs Rust_ Which is Programming Language Need to Choose for Your Project...
Python vs Rust_ Which is Programming Language Need to Choose for Your Project...Groovy Web
 
Is Go Better Than Python For Data Mining
Is Go Better Than Python For Data MiningIs Go Better Than Python For Data Mining
Is Go Better Than Python For Data MiningRepustate
 
Plone is great... Python is too!
Plone is great... Python is too!Plone is great... Python is too!
Plone is great... Python is too!Jazkarta, Inc.
 
Python – The Fastest Growing Programming Language
Python – The Fastest Growing Programming LanguagePython – The Fastest Growing Programming Language
Python – The Fastest Growing Programming LanguageIRJET Journal
 
Django Python(2)
Django Python(2)Django Python(2)
Django Python(2)tomcoh
 
python Certification Training in marthahalli
python Certification Training in marthahallipython Certification Training in marthahalli
python Certification Training in marthahalliMUDDUKRISHNA14
 
All you need to know about Python | BJIT
All you need to know about Python | BJITAll you need to know about Python | BJIT
All you need to know about Python | BJITBJIT Ltd
 
Programming languages for ai
Programming languages for aiProgramming languages for ai
Programming languages for aiDucat
 
PHP vs Python Which is Best for Web Development.pdf
PHP vs Python Which is Best for Web Development.pdfPHP vs Python Which is Best for Web Development.pdf
PHP vs Python Which is Best for Web Development.pdfchristiemarie4
 

Similar to Picking programming packages (20)

Python
PythonPython
Python
 
First programming language to learn | Which Programming Language to Learn Fi...
First programming language to learn |  Which Programming Language to Learn Fi...First programming language to learn |  Which Programming Language to Learn Fi...
First programming language to learn | Which Programming Language to Learn Fi...
 
Python vs. r for data science
Python vs. r for data sciencePython vs. r for data science
Python vs. r for data science
 
Should You Choose Java or Python for Data Science?
Should You Choose Java or Python for Data Science?Should You Choose Java or Python for Data Science?
Should You Choose Java or Python for Data Science?
 
🌟Is Learning Python Your Career Game-Changer? 🚀🐍
🌟Is Learning Python Your  Career Game-Changer? 🚀🐍🌟Is Learning Python Your  Career Game-Changer? 🚀🐍
🌟Is Learning Python Your Career Game-Changer? 🚀🐍
 
Python training Course in Mohali
Python training Course in MohaliPython training Course in Mohali
Python training Course in Mohali
 
Python vs Rust_ Which is Programming Language Need to Choose for Your Project...
Python vs Rust_ Which is Programming Language Need to Choose for Your Project...Python vs Rust_ Which is Programming Language Need to Choose for Your Project...
Python vs Rust_ Which is Programming Language Need to Choose for Your Project...
 
Is Go Better Than Python For Data Mining
Is Go Better Than Python For Data MiningIs Go Better Than Python For Data Mining
Is Go Better Than Python For Data Mining
 
Reason To learn & use r
Reason To learn & use rReason To learn & use r
Reason To learn & use r
 
Challenge(G7).pptx
Challenge(G7).pptxChallenge(G7).pptx
Challenge(G7).pptx
 
Python intro for Plone users
Python intro for Plone usersPython intro for Plone users
Python intro for Plone users
 
Plone is great... Python is too!
Plone is great... Python is too!Plone is great... Python is too!
Plone is great... Python is too!
 
Introduction To Python
Introduction To PythonIntroduction To Python
Introduction To Python
 
Python – The Fastest Growing Programming Language
Python – The Fastest Growing Programming LanguagePython – The Fastest Growing Programming Language
Python – The Fastest Growing Programming Language
 
Python overview
Python overviewPython overview
Python overview
 
Django Python(2)
Django Python(2)Django Python(2)
Django Python(2)
 
python Certification Training in marthahalli
python Certification Training in marthahallipython Certification Training in marthahalli
python Certification Training in marthahalli
 
All you need to know about Python | BJIT
All you need to know about Python | BJITAll you need to know about Python | BJIT
All you need to know about Python | BJIT
 
Programming languages for ai
Programming languages for aiProgramming languages for ai
Programming languages for ai
 
PHP vs Python Which is Best for Web Development.pdf
PHP vs Python Which is Best for Web Development.pdfPHP vs Python Which is Best for Web Development.pdf
PHP vs Python Which is Best for Web Development.pdf
 

Recently uploaded

Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
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 2024Victor Rentea
 
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].pdfOverkill Security
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
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 FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
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 FMESafe Software
 
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...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
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 challengesrafiqahmad00786416
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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, ...Angeliki Cooney
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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.pptxRustici Software
 

Recently uploaded (20)

Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
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
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
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...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 

Picking programming packages

  • 1. Principles and practices for picking powerful programming platforms, packages, and plugins Abe Gong CSAAW Jan 2012
  • 2. Picking programming packages Getting the right tools matters.
  • 3. Picking programming packages It matters a lot, but we never talk about it.
  • 4. Picking programming packages It is a decision we will each face many times.
  • 5. Picking programming packages It's a lot like another decision we often face... "What should I wear to the thing?”
  • 6. What should I wear to the thing? Clothing Software Accesorizes well Does it work with other software and tools that you use? Is it extensible? Matches others Is it a popular package? Are there active forums to get help and updates? Comfortable Is it well-documented and easy to debug? Reasonably priced It is open source? Does the University already have licenses? Fits the occasion Does it do what you want it to do? Really?
  • 7. Tools I use  Python – Data acquisition and manipulation  R, RStudio, and ggplot – Statistics, data visualization  Hadoop – Really big data crunching  Django – Server-side web development  HTML, CSS, Javascript, jquery – Client-side web development  Protovis – Client-side data visualization
  • 8. Tools I would think about using  D3 – A souped-up replacement for protovis  Ruby on Rails – More popular alternative to Django. Doesn't use python, though.  Repast – ABMs with python support  PANDAS – A python-based replacement for R?
  • 9. Tools I would never use  Java – A perfectly decent programming language, but it does nothing that C++ and python can't do better.  PERL – Like python, but not for humans.  NetLogo – A horrible, legacy language that is difficult to understand and almost impossible to debug. In exchange for sliders, NetLogo will give you bad habits and make you afraid of programming.
  • 10. Other links and sources Picking programming languages:  http://www.tundraware.com/Technology/How-To-Pick-A-Programming-Language/  http://www.awaretek.com/atesterea.html  http://newbiehacker.wordpress.com/2010/01/23/how-to-choose-a-programming-la  http://blog.aegisub.org/2008/12/if-programming-languages-were-religions.html  http://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software  Kinda random:  http://www.inc.com/guides/choosing-accounting-software.html  http://www.mb-guide.org/medical-billing-and-coding-software.html  http://www.qualitydigest.com/july01/html/gauging.html  http://3d.about.com/od/A-Guide-To-3D-Software/a/Buyers-Guide-To-3d-Software.  http://www.lingualogue.com/language-software-reviews.html
  • 11. Picking powerful programming platforms... >> Python  Powerful  Flexible  << Extensible  Very popular  Very free