Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Python to C++

  1. Feb 12, 2009 #1
    I am learning Python right now and it is pretty cool. Just out of curiosity, would it be a easy transition to learn C++ after I master Python?
     
  2. jcsd
  3. Feb 12, 2009 #2

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    Why would you want to!
    Often people coming from a higher level language write better C++ code (using boost and STL) rather than people coming from C/Fortran who write at too low a level.
     
  4. Feb 13, 2009 #3
    Boost and STL, never heard of them. I am new to programming:)

    Well, I have noticed some really good computational software that requires C++, like open foam for CFD.
    I would like to eventually get into these types of programs.
     
  5. Feb 15, 2009 #4
    So boost allows me to interface python with c++ programs, is that correct?
    So I would be able to use python for open foam?
     
  6. Feb 15, 2009 #5
    If you do a lot of intense computations such as CFD, it does not hurt to start programming in C++ which gives you a lot more return for your CPU seconds.
    Python and other high level languages make excellent prototyping tools.
     
  7. Feb 15, 2009 #6

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    If you have an existing CFD (or whatever) library it might be worth looking for a Python wrapper, or making some wrappers using boost::python.
    Let C++ (or Fortran) do the heavy lifting an write your own program on top of this in Python - you get a lot better value for your programming hours and a reduction in all-night bug hunts.
     
  8. Feb 15, 2009 #7
    For what little it's worth, I've often found Boost::Python to be perhaps the most severely lacking component in the Boost libraries. (The reasons are technical and I won't discuss them here.)

    On the other hand, Swig is a great way of wrapping C/C++ code so that it can be used with Python (among many other languages). It's discussed in several places but a really useful introduction to it, as well as to the use of Python more generally in a scientific context, is Langtangen's https://www.amazon.com/Python-Scrip...=sr_1_1?ie=UTF8&s=books&qid=1234739638&sr=1-1. (Langtangen's book is wonderful for many reasons but it also does a really good job of illustrating how Python can be used to interface with Fortran and C/C++ code, something that's essential knowledge if you're going to be working with scientific libraries.)
     
    Last edited by a moderator: May 4, 2017
  9. Feb 15, 2009 #8

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    Thanks for the book pointer,
    I've noticed a couple of projects switching back to SWIG. When I last used it I remember it generated a very 'c' like interface, I've only used boost:python for a few trial projects.
     
  10. Feb 15, 2009 #9
    I really can't recommend it highly enough. It takes a bit of effort, but there's an enormous amount of useful information in there, particularly regarding Numpy and wrapping Fortran or C/C++ code in Python. It's a gem of a book.
     
  11. Feb 16, 2009 #10

    mheslep

    User Avatar
    Gold Member

    I have Langtangen and agree it's excellent. I'd disagree w/ the recommendation of Swig now, especially for those starting out. Ctypes IMO has eclipsed it as the best bet: far easier to use, learn, and debug, comes builtin w/ Python, and for some things out performs Swig substantially. Downside is Ctypes won't handle C++
     
    Last edited by a moderator: May 4, 2017
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Python to C++
  1. Python or C++ first? (Replies: 20)

  2. Learning python and C# (Replies: 14)

Loading...