SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Plone is great,
Python is too!
 Carlos de la Guardia
You just chose Plone as a CMS



Congratulations. You might not realize it yet, but
 in addition to picking a great CMS, you have
 implicitly selected a programming language:

                    Python.
Make it an explicit choice

   Unless you plan to only use Plone's out of the box
    functionality and third party products, you will need
    Python at some point.
   It's better to dive in and get to know the language,
    because Plone can be used to create fantastic content
    based applications that extend the platform, but you
    need Python for that.
   You can of course depend on one of the many Plone
    companies around (we thank you for your business),
    but if you are the kind of organization that has its own
    developers, it easy to introduce them to Python.
About Python
”The Python paradox: if a company chooses to write its software in
a comparatively esoteric language, they'll be able to hire better
programmers, because they'll attract only those who cared enough
to learn it.”
                                                     Paul Graham
   Python is powerful... and fast
   Python plays well with others
   Python runs everywhere
   Python is friendly... and easy to learn
   Python is Open
   Python developers care about Python
Python the language

   very clear, readable syntax
   strong introspection capabilities
   intuitive object orientation
   natural expression of procedural code
   full modularity, supporting hierarchical packages
   exception-based error handling
   very high level dynamic data types
   extensive standard libraries and third party modules for virtually every task
   extensions and modules easily written in C, C++ (or Java for Jython, or .NET
    languages for IronPython)
   embeddable within applications as a scripting interface
Python the community

   Global, diverse community
   Regional conferences all over the world
   The Python Foundation oversees the
    advancement of the language and supports
    community groups and efforts
   The community is friendly and open
   Many Plone developers are very involved with
    the language
Python package index

   Repository of software for the Python
    programming language
   17,489 packages and counting
   Packages can be installed from the command
    line directly from this repository
   Plone uses it to get third party products (and
    Plone's components as well)
The Zen of Python
cguardia@hal9001:~/work/eye$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
With Python you can extend Plone

   You can create new content types
   You can create portlets
   You can define special views for your content
   You can personalize existing views
   You can manipulate your site's content
    programatically
   Basically, you can make Plone do your bidding
   But...
You'll also know when NOT to use Plone

   As we saw, Python offers tons of packages
    and tools in many different areas
   Python is specially strong in web development
   Plone is a great CMS, but it's not meant to be
    used for all your website needs
   Trust me, you don't want to meet FrankenPlone
Warning signs

   If you are thinking ”we need something like
    Plone, but without this and this and this...”
   Or ”we could use Plone, except we'll have to
    add this and this and this”
   Resist the temptation. Here's a rule of thumb: if
    yours is not a content application or if Plone's
    functionality would get in the way of what you
    want to do, you might be better of with
    something else.
Combining Plone with other Python tools

   Need reporting? Plone is not well suited for many
    writes to the database. But with Python and
    SQLAlchemy you can create a reporting app and
    make Plone push data there.
   Need to share data? You can have Plone return JSON
    data and another Python app can use it.
   Plone can also easily get data from other applications
    in a variety of formats. With Python, many times this
    means a library import and a few lines of code.
   Need to analyze your Plone database? Why not write
    a pure Python app that connects to a copy of your
    ZODB directly?
Python for Web Development

   Sometimes Plone may not be the right tool for
    the job. Need a financial system, an accounting
    package or a web store?
   There are many Python frameworks that can
    help you create web applications.
   Pyramid (personal favorite), Flask, Django are
    all great choices.
   Using Python for all gives you advantages like
    having common library code specific for your
    organization and allowing team members to
    work on the different web applications
In Conclusion

   Python is a great language, give it a chance
   Consider using it for more than your Plone site
   Know when to extend Plone and when to go
    with somethimng else.
   Statistics show that you'll have happier
    developers
   Some developers end up not working with
    Plone when they change jobs to somewhere
    where it's not used. They never leave Python,
    though.

Contenu connexe

Tendances

Python for Matlab Programmers
Python for Matlab ProgrammersPython for Matlab Programmers
Python for Matlab ProgrammersMichael Patterson
 
Python intro
Python introPython intro
Python introrik0
 
Python for MATLAB Programmers
Python for MATLAB ProgrammersPython for MATLAB Programmers
Python for MATLAB ProgrammersMichael Patterson
 
Python Training in Pune
Python Training in PunePython Training in Pune
Python Training in PuneClassboat.com
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonRanjith kumar
 
Chapter 8 getting started with python
Chapter 8 getting started with pythonChapter 8 getting started with python
Chapter 8 getting started with pythonPraveen M Jigajinni
 
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...Edureka!
 
Python and its Applications
Python and its ApplicationsPython and its Applications
Python and its ApplicationsAbhijeet Singh
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonAgung Wahyudi
 
IHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to PythonIHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to PythonIHTMINSTITUTE
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python introfantasy zheng
 
Python, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersPython, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersBoey Pak Cheong
 
Python tutorial
Python tutorialPython tutorial
Python tutorialGuru99
 
Python Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | EdurekaPython Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | EdurekaEdureka!
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020Devathon
 

Tendances (17)

Python for Matlab Programmers
Python for Matlab ProgrammersPython for Matlab Programmers
Python for Matlab Programmers
 
Python intro
Python introPython intro
Python intro
 
Python for MATLAB Programmers
Python for MATLAB ProgrammersPython for MATLAB Programmers
Python for MATLAB Programmers
 
Python Training in Pune
Python Training in PunePython Training in Pune
Python Training in Pune
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
 
Chapter 8 getting started with python
Chapter 8 getting started with pythonChapter 8 getting started with python
Chapter 8 getting started with python
 
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
 
Python and its Applications
Python and its ApplicationsPython and its Applications
Python and its Applications
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
IHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to PythonIHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to Python
 
What is python
What is pythonWhat is python
What is python
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python intro
 
Python, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersPython, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for Engineers
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
 
Python Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | EdurekaPython Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | Edureka
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020
 

Similaire à Python intro for Plone users

python Certification Training in marthahalli
python Certification Training in marthahallipython Certification Training in marthahalli
python Certification Training in marthahalliMUDDUKRISHNA14
 
Mastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions DemystifiedMastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions DemystifiedMalcolmDupri
 
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docxPython Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docxManohar k
 
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
 
Best Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptxBest Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptxAPTRON Gurgaon
 
Get Started With Python Language.pdf
Get Started With Python Language.pdfGet Started With Python Language.pdf
Get Started With Python Language.pdfCerebrum Infotech
 
Python App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfPython App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfBoTree Technologies
 
Python Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level ProgrammingPython Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level ProgrammingUncodemy
 
Contact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docxContact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docxAbhinavSharma309481
 
9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications 9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications SnehaDas60
 
Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Cerebrum Infotech
 

Similaire à Python intro for Plone users (20)

python-handbook.pdf
python-handbook.pdfpython-handbook.pdf
python-handbook.pdf
 
Pyconza(2)
Pyconza(2)Pyconza(2)
Pyconza(2)
 
Research paper on python by Rj
Research paper on python by RjResearch paper on python by Rj
Research paper on python by Rj
 
python Certification Training in marthahalli
python Certification Training in marthahallipython Certification Training in marthahalli
python Certification Training in marthahalli
 
Why Hire Python Developers?
Why Hire Python Developers?Why Hire Python Developers?
Why Hire Python Developers?
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Mastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions DemystifiedMastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions Demystified
 
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docxPython Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docx
 
Learn Python in Pragmatic Way
Learn Python in Pragmatic WayLearn Python in Pragmatic Way
Learn Python in Pragmatic Way
 
Python
PythonPython
Python
 
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
 
Best Python Institute in Noida. pptx
Best Python Institute in Noida.      pptxBest Python Institute in Noida.      pptx
Best Python Institute in Noida. pptx
 
Best Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptxBest Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptx
 
Get Started With Python Language.pdf
Get Started With Python Language.pdfGet Started With Python Language.pdf
Get Started With Python Language.pdf
 
Python App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfPython App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdf
 
Python content
Python contentPython content
Python content
 
Python Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level ProgrammingPython Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level Programming
 
Contact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docxContact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docx
 
9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications 9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications
 
Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...
 

Plus de Carlos de la Guardia

Plus de Carlos de la Guardia (10)

Introduction to the transaction package
Introduction to the transaction packageIntroduction to the transaction package
Introduction to the transaction package
 
Pyramid as a base for higher level frameworks
Pyramid as a base for higher level frameworksPyramid as a base for higher level frameworks
Pyramid as a base for higher level frameworks
 
Pyramid patterns
Pyramid patternsPyramid patterns
Pyramid patterns
 
Pyramid tutorial
Pyramid tutorialPyramid tutorial
Pyramid tutorial
 
Pyramid faq
Pyramid faqPyramid faq
Pyramid faq
 
ZODB Tips and Tricks
ZODB Tips and TricksZODB Tips and Tricks
ZODB Tips and Tricks
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
 
A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...
 
World Plone Day 2008 Mexico
World Plone Day 2008 MexicoWorld Plone Day 2008 Mexico
World Plone Day 2008 Mexico
 
Turning Plone into a dynamic site factory
Turning Plone into a dynamic site factoryTurning Plone into a dynamic site factory
Turning Plone into a dynamic site factory
 

Dernier

The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Dernier (20)

The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Python intro for Plone users

  • 1. Plone is great, Python is too! Carlos de la Guardia
  • 2. You just chose Plone as a CMS Congratulations. You might not realize it yet, but in addition to picking a great CMS, you have implicitly selected a programming language: Python.
  • 3. Make it an explicit choice  Unless you plan to only use Plone's out of the box functionality and third party products, you will need Python at some point.  It's better to dive in and get to know the language, because Plone can be used to create fantastic content based applications that extend the platform, but you need Python for that.  You can of course depend on one of the many Plone companies around (we thank you for your business), but if you are the kind of organization that has its own developers, it easy to introduce them to Python.
  • 4. About Python ”The Python paradox: if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it.” Paul Graham  Python is powerful... and fast  Python plays well with others  Python runs everywhere  Python is friendly... and easy to learn  Python is Open  Python developers care about Python
  • 5. Python the language  very clear, readable syntax  strong introspection capabilities  intuitive object orientation  natural expression of procedural code  full modularity, supporting hierarchical packages  exception-based error handling  very high level dynamic data types  extensive standard libraries and third party modules for virtually every task  extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)  embeddable within applications as a scripting interface
  • 6. Python the community  Global, diverse community  Regional conferences all over the world  The Python Foundation oversees the advancement of the language and supports community groups and efforts  The community is friendly and open  Many Plone developers are very involved with the language
  • 7. Python package index  Repository of software for the Python programming language  17,489 packages and counting  Packages can be installed from the command line directly from this repository  Plone uses it to get third party products (and Plone's components as well)
  • 8. The Zen of Python cguardia@hal9001:~/work/eye$ python Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 9. With Python you can extend Plone  You can create new content types  You can create portlets  You can define special views for your content  You can personalize existing views  You can manipulate your site's content programatically  Basically, you can make Plone do your bidding  But...
  • 10. You'll also know when NOT to use Plone  As we saw, Python offers tons of packages and tools in many different areas  Python is specially strong in web development  Plone is a great CMS, but it's not meant to be used for all your website needs  Trust me, you don't want to meet FrankenPlone
  • 11. Warning signs  If you are thinking ”we need something like Plone, but without this and this and this...”  Or ”we could use Plone, except we'll have to add this and this and this”  Resist the temptation. Here's a rule of thumb: if yours is not a content application or if Plone's functionality would get in the way of what you want to do, you might be better of with something else.
  • 12. Combining Plone with other Python tools  Need reporting? Plone is not well suited for many writes to the database. But with Python and SQLAlchemy you can create a reporting app and make Plone push data there.  Need to share data? You can have Plone return JSON data and another Python app can use it.  Plone can also easily get data from other applications in a variety of formats. With Python, many times this means a library import and a few lines of code.  Need to analyze your Plone database? Why not write a pure Python app that connects to a copy of your ZODB directly?
  • 13. Python for Web Development  Sometimes Plone may not be the right tool for the job. Need a financial system, an accounting package or a web store?  There are many Python frameworks that can help you create web applications.  Pyramid (personal favorite), Flask, Django are all great choices.  Using Python for all gives you advantages like having common library code specific for your organization and allowing team members to work on the different web applications
  • 14. In Conclusion  Python is a great language, give it a chance  Consider using it for more than your Plone site  Know when to extend Plone and when to go with somethimng else.  Statistics show that you'll have happier developers  Some developers end up not working with Plone when they change jobs to somewhere where it's not used. They never leave Python, though.