On 5/9/2014 4:45 PM, jun...@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

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to