OCAMl a more natural extension language for python?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jelle Feringa // EZCT / Paris

    #1

    OCAMl a more natural extension language for python?

    After reading about extending python with C/Fortran in the excellent Python
    Scripting for Computational Science book by Hans Langtangen, I'm wondering
    whether there's not a more pythonic way of extending python. And frankly I
    think there is: OCAML

    Fortunately there is already a project up and running allowing you to extend
    python with OCAMl: http://pycaml.sourceforge.net/

    Since I haven't got actual experience programming CAML I'd like to speculate
    that OCAML would be a very pythonic way of extending python: its
    open-source, object oriented, as fast as C, and ! garbage collecting!

    Would making an effort integrating python & CAML not be very worthwhile?
    I think an effort such as Joe Strouts python2c would be more relevant to a
    language as CAMl since its conceptually more closer to python (how could you
    automate programming memory allocation for instance)

    So my question is: wouldn't there be some serious synergy in bringing python
    & CAML closer together?

    ##of course this is speculation, I'm not informed well
    ##enough to make an educated guess

    Interested in hearing your thoughts about this matter!

    Cheers, Jelle.



  • Duncan Booth

    #2
    Re: OCAMl a more natural extension language for python?

    Jelle Feringa // EZCT / Paris wrote:
    [color=blue]
    > After reading about extending python with C/Fortran in the excellent
    > Python Scripting for Computational Science book by Hans Langtangen,
    > I'm wondering whether there's not a more pythonic way of extending
    > python. And frankly I think there is: OCAML
    >[/color]

    There is an even more pythonic way to extend (or embed) python. Have you
    looked at Pyrex?


    Comment

    • Ville Vainio

      #3
      Re: OCAMl a more natural extension language for python?

      >>>>> "Jelle" == Jelle Feringa // EZCT / Paris <jelle.feringa@ ezct.net> writes:

      Jelle> After reading about extending python with C/Fortran in the
      Jelle> excellent Python Scripting for Computational Science book
      Jelle> by Hans Langtangen, I'm wondering whether there's not a
      Jelle> more pythonic way of extending python. And frankly I think
      Jelle> there is: OCAML

      For many tasks the point of "extending" python is to gain access to
      libraries that have a C/C++ API. Extensions that merely provide a
      faster way to do something are much rarer.

      --
      Ville Vainio http://tinyurl.com/2prnb

      Comment

      • Do Re Mi chel La Si Do

        #4
        Re: OCAMl a more natural extension language for python?

        Hi !

        OCAML is very complementary at Python :

        unreadable vs readable
        functionnel vs procedural/POO/etc.
        compiled vs interpreted (or compil JIT)
        very fast vs mean velocity
        hard to learn vs easy to easy to learn


        Yes, OCAML is very complementary, too much, much too, complementary at
        Python...

        But, C is not complementary to Python (in the same state of mind).



        And, what do you think of... Erlang ?


        @-salutations
        --
        Michel Claveau






        Comment

        • beliavsky@aol.com

          #5
          Re: OCAMl a more natural extension language for python?

          Jelle Ferringa wrote:
          [color=blue]
          >Since I haven't got actual experience programming CAML I'd like to[/color]
          speculate[color=blue]
          >that OCAML would be a very pythonic way of extending python: its
          >open-source, object oriented, as fast as C, and ! garbage collecting![/color]

          The open source g95 Fortran 95 compiler is already usable and will be
          officially released this year. Fortran and C are comparable in speed,
          and if one uses allocatable arrays rather than pointers, memory leaks
          should not occur. Fortran 2003 supports OOP with inheritance, and a few
          F95 compilers already have this functionality.
          [color=blue]
          >That's depending on how you compare; I find OCAML quite readable[/color]
          compared to C / Fortran .

          Have you ever used Fortran 90 or 95?

          I don't use OCAML, so I looked at some OCAML code to multiply matrices
          at

          from the Computer Language Shootout . To create a matrix the OCAML code
          is

          7 let mkmatrix rows cols =
          8 let count = ref 1 and last_col = cols - 1
          9 and m = Array.make_matr ix rows cols 0 in
          10 for i = 0 to rows - 1 do
          11 let mi = m.(i) in
          12 for j = 0 to last_col do mi.(j) <- !count; incr count done;
          13 done;

          In Python with Numeric it's just

          x = zeros([nrow,ncol],Float)

          and in Fortran 90/95 it's just

          real, allocatable :: x(:,:)
          allocate (x(nrow,ncol))

          There appears not to be a built-in function for matrix multiplication
          in OCAML. There is in Python with Numeric or Numarray or Fortran 90/95.
          For problems where the main data structures are arrays, OCAML seems to
          be considerably more low-level than Python with Numeric/Numarray or
          Fortran 90/95. Also, there exists a vast computational infrastructure
          in Fortran and C (see http://www.netlib.org). Does OCAML have this?

          Comment

          Working...