I appreciate your comments into the subject of performance and I totally agree with you. But I work for a small company with very limited resources, so I need to have very strong arguments to convince them to spend any of them in trying things out.
We built a set of examples of using our event engine with Jython code and I'll try to make it available to our customers. From my company's prospective, I keep hearing that I would be better of trying Ruby instead of wasting my time with Python. My next exercise will be a comparison between Ruby and Jython to see how each interpreter behaves. I found extremely easy to convert Java code into Jython and the code is several degrees more readable in Jython. My hope is that, as our customer base grows, more and more people will manifest interest in working with Jython interacting with our engine. This can build some momentum. The documentation available online for Python/Jython and the very fast response time from this forum were definitely a big plus. Let's see how I can get by with Ruby. I need to find other assets that Jython can bring to our product that will compensate for the much slower performance.
The fact that our engine is all implemented in Java is for sure a big limitation in terms of our choices for development platform, but hey, it had to be written in some language and Java is the one that gave us the most portability across different hardware platforms.
I listened to similar comments, when I started to program an interpreted language, which was the BASIC on a IBM 360 CALL system, around year 1971. The BASIC language was running slower compared to the ALGOL and FORTRAN. Later, many people told me about the slowness of REXX and VM. Well I will not even mention to you, about what my colleagues told, when I started to program JAVA in the year 1994. The language implements a Byte Code and Java Virtual Machine, running 10 times slower compared to compiled C code. Talking about PYTHON is all the same story.
Meanwhile many real objects has been designed, engineered with those slow, interpreted languages and tools, resulting in the construction of hydropower plants, highly efficient gas turbines. naval ships, air planes, particle accelerators and others. Many commercial systems today rely on JAVA and it tries to catch up with C speed, by use of improved JVM´s.
Please also think about the evolution of the CPU power, which indeed doubles its speed rate every year. What is today known as a slow computer, next year will be fast running one. My personal Jython environment is running on a LINUX Grid CPU hosted at a large data center. Its performance can't be qualified as "low performance", indeed it its far beyond my expectations. "Jythonizing" the Java code is a clear "plus" when it comes to system robustness, easy code maintenance and it also helps to reduce the development costs.
Thanks for the info. I guess I'll hold on on that right now, because early results of single-threaded runs show that the application in Jython is 3 times slower than its counterpart in Java, As our product is supposed to be a high performance engine, I see little interest in implementing anything in Jython to use it. The only points I could see in favor of using Jython is for the readability of the code, it's typically a lot smaller and less verbose than Java applications and for the fast development.
As I'm a newbie in Jython, maybe we can improve things a little if the code is well written, but still, I believe 3 times is a lot of ground to cover in a pure code review.
AMS Hortolândia / SP - Brazil
phone: +55 13 8117 3316