Python Internet Database
Terry Reedy
tjreedy at udel.edu
Fri May 9 17:15:50 EDT 2014
On 5/9/2014 4:45 PM, junnia at gmail.com wrote:
> I am writing a PhD thesis comparing computer languages, and Python
> and Ruby is among the languages I am working with. I am using the
> Rasch Model to measure latent traits and like productivity,
> expressivity, referential transparency and efficiency. If a member of
> this list wants to read a short tutorial about the Rasch Model, here
> is the address:
>
> http://strues.org/languages
>
> To keep with my work, I need an Internet Data Base from where a
> person writing a program in Python could fetch libraries,
> applications, compilers, etc. One of the things I need to measure is
> how complete and easy to use is such a data base. I will give a
> concrete example.
https://pypi.python.org/pypi
> Suppose that a person is writing programs in sbcl, an implementation
> of Common Lisp. That person needs a compiler for Python. All he needs
> to do is add the following line to the REPL (Read Eval Print Loop)
> line:
>
> (ql:quickload :cl-python)
>
> In a few seconds, Lisp will access a Internet Data Base and will
> download and install a Python compiler written in Common Lisp. This
> Python compiler will be completely integrated with Common Lisp, in
> the sense that one can mix Python and Common Lisp programs. The
> Common Lisp compiler will pass the Pystone, etc. Suppose now that
> this same Common Lisp programmer needs to add a few routines written
> in Fortran. He can fetch a Fortran compiler written in Common Lisp as
> easily as he did with CL-Python: (ql:quick load :f2cl) will do the
> magic. If he needs to generate beautiful pdf, he can download cl-pdf.
> If he needs an efficient Internet server, he can use Hunchentoot.
> Everything can be fetched by the ql:quickload command.
>
> Of course Common Lisp is not the only language with this kind of
> facility. Racket has its own database: PLaneT. Again, one can get
> many applications and libraries from PLantet repository. I wonder if
> Python has a similar repository. Suppose I want a Fortran to Python
> converter; then I would type: > sys f2py If I want an emacs like
> editor, I would type > sys pyemacs, and so on. By the way, although
> emacs itself is largely written in elisp, there are many emacs clones
> that one can find in Lisp repositories; for instance, hemlock is the
> most famous of these clones. Racket has its own environment, that is
> drracket, that accept even images mixed to the text.
>
> I made a list of 9 things that I would like to see in such a
> repository. By the way, I heard that Ruby has an Internet repository
> too. If people from this list know about the Ruby repository, I would
> appreciate information on how to use it. In any case, information
> about the Python repository will be very useful.
>
> People who are funding my thesis would like to check for the
> following applications. I mean, I will check whether the repository
> offers the applications and libraries listed below.
>
> 1 - Internet servers. In Lisp, one has hunchentoot. In Racket, one
> has the Racket Web Framework. Bigloo has hiphop.
multiple available.
> 2 - Jit compiler
pypy is an implementation of python in python, with jit compiler.
> for using from a web server.
This is really specialized. It seems that your requirements list is
based on, and therefore biased toward, what is available for
lisp/racket. Webservers are typically not computation bound, so jit
compiler is not too relevant.
However, you can run Python-coded webservers on pypy if you want to and
see a benefit. However, pypu really shines on integer math.
> I mean, one has a web server running under Apache
There is a mod-python for running Python on Apache.
> in a hosting service like Hostgator,
> Daddy Host or another inexpensive service. I decide to run a few
> applications in Racket, but the application requires number
> crunching. I install the Jit Racket in the hosting service, and call
> it from my dynamic generated page. My programs will run almost at the
> speed of optimised C.
> 3 - Music generation. I would like generation of musical scores and
> midi files.
Search pypi.
> 4 - Text editor that mimics emacs. In Common Lisp, one has hemlock. I
> would like something in the lines of hemlock.
Python people who want emacs use emacs with Python extension, not a mimic.
> 5 - CAD and electronic CAD. Something in the lines of PTC.
>
> 6 - The repository service is the other thing that I want to check. I
> mean, I want the address of the Python equivalent of quicklisp and
> PLaneT.
see above
> 7 - Image generation. pdf generation. Something in the lines of
> cl-pdf and cl-png, fl-vector, etc. Of course, I need programs written
> in Python itself, not call to C libraries.
This is a stupid requirement. CPython, written in Python, is designed to
make interfacing to C libraries easy. It also interfaces to Fortran (see
numpy), and interactively calling Fortran functions was perhaps the
first killer application of Python in the mid 1959s.
> 8 - Usable compilers for other languages. For example, a JIT compiler
> for Python itself written in Python.
See pypy.
> Compilers for Fortran, compilers
> for Common Lisp, for Javascript, etc. BTW, the compiler generator of
> Common Lisp has the same name as the Python language. In other words,
> the language in which the Common Lisp compiler is written is called
> Python too. Therefore, when I ask for a compiler generator in Python,
> many people send me a link to this Common Lisp Python compiler
> generator. What I want is a compiler generator in Python, the
> scripting language.
>
> 9 - Computer algebra. Something in the lines of Maxima will do.
>
> I don't hope to find all these nine things in a single repository.
Well, there is lots of Python projects on SourceForge, Bitbucket,
Github, ... . Why expect all in one place?
> Even if you tell me that there is nothing in Python similar to Maxima
> or to the Common Lisp Python compiler generator or even to hemlock,
> your information will be very useful. The list is tough, so that no
> language is able to offer all items.
--
Terry Jan Reedy
More information about the Python-list
mailing list