Using Python with Other Languages

Talks | Submit a talk
Authors Vishesh Yadav, Siddhant Sanyam
Talk Type tutorial
Level Intermediate
Topic Embedding/extending
Tags InterCompatibility, OtherLanguages, jython, embedding, extending
Summary

Not every time a project is developed using single language. A Python project may need to use another language for some tasks or an existing project written in some other language may need to use Python for some tasks. No matter what, better productivity can definitely be obtained when Python comes into game. This tutorial shall walk through with some of the options that are available to extend your projects using different other languages and also on how can you use Python to extend your existing projects in other languages.

Outline

What will be covered?

  • Why to use Python in projects with more than one language.
  • Scenarios
    • Python as host and other language as guest
    • Python as guest and other language as host
  • Techniques to do it. Exposing API's/Classes/Objects, embedding python, extending python
    • Python and C
      • Python.h - The Python C API
      • Pyrex
    • Python and C++
      • Boost.Python
    • Python and Java
      • Using Jython
    • Python and .NET (very little introduction)
      • Iron Python
    • References to other techniques for other languages
    • SWiG
  • Making your applications plugginable with Python
  • Making existing plugginable application plugginable with Python as well.

Examples covered

  • Very simple example for

    • Python as host, C/C++/Java as guest
    • Python as guest, C/C++/Java as host
  • Demonstration of making an application plugginable with Python

    • A text processor
    • An image processor
  • Simple SWiG examples

  • Demonstrating some widely used applications written in other languages using Python like Vim, GIMP, GEdit, Pidgin, Weechat, XChat

Setup for the Tutorial

Though not totally necessary but would be great if following setup is provided:

  • Every attendee connected to an Internal LAN(wired or wi-fi) as well as speakers. This will help to view/download source files and slides.
  • Some experience with any of following languages is necessary:
  • C
  • C++
  • Java
Notes
Profile of the authors

Vishesh Yadav

Vishesh Yadav is an undergraduate Computer Science and Engineering student from JSS Academy of Techniacal Education, Noida. He's been working on C/C++ for several years and for more than 3 years in Python. He works as part time freelance developer and is a KDE Hacker.

Website: http://www.vishesh-yadav.com/ Blog: http://www.vishesh-yadav.com/blog

Siddhant Sanyam

  • Blog: http://yatantrika.co.cc/

  • Git Repo: http://github.com/siddhant3s/

  • Undergrad from NIT Trichy.

  • Working with Python for more than three years.

  • Use Python for all personal programming needs.

  • Currently an Intern at Nexedi working on UNG project (a free alternative of Google Docs and other SaaS service)

  • Creator and Designer of DFCTF 2011, India's second CTF style Ethical Hacking competition.(Backend of which was written in Python).

  • Speaker at workshops related to Web security.(Last one at Vortex 11)

  • Good working knowledge of Robotics and Embedded system and AI related paradigms.

Files
file size uploaded comment
pycon11-other-lang.zip 1.5 MB september 17, 2011 Slides and examples
python_other_lang.zip 294.0 KB september 7, 2011 Two PDF's [(Jython,Python C)(SWIG,Boost)]

You can upload or delete a file if you are author of this talk.