I spent quite a bit of time with pyjs and built a fully functioning app.
But now I'm slowly migrating to CoffeeScript with Backbone/Marionette
because it's less restrictive, less buggy, easy to integration with other
JS libraries, runs much faster and I've come to the conclusion that the
initial benefit of being able to write once run anywhere of pyjs wasn't as
beneficial - people prefer native clients for professional apps.

The other problem with pyjs is that we have too much scope creep. Pyjs is
really a huge project: it's a compiler, a widget library and a platform
that runs on linux, windows and mac. It's a lot to maintain without a clear
direction or use case.

The effort to make pyjs a great project is just too overwhelming as it is.

We need to come up with a narrower scope and make a good argument for Pyjs
of where it shines instead of trying to make it do everything and anything.

Glyph has pointed this out recently and I've mentioned it before as well:
the biggest advantage of Pyjs is being able to share server side and client
side code.

I think if we reduced the scope of the project significantly to just that
specific use case it might stand a chance.

Here is my two cent recommendation/suggestion to save the project:

1. Compiler should become an independent core of pyjs.
1a. Support only python 3 class system/syntax.
1b. Use the built-in python parser instead of our own, this would eliminate
a good chunk of the compiler code.
1c. Build the python runtime ontop of an existing JavaScript OOP runtime
instead of having our own. Taking something that works and add the python
semantics. Hopefuly this would also make integrating with other libs easier.
1d. Make 100% Python support mandatory and not just a goal. There were too
many times that I was bitten by the conversion process where features
either weren't supported or didn't behave as expected. I think if this
project is going to become popular then 100% compatibility is absolutely
critical, specifically MRO needs to work properly, if you add an attribute
on a parent class, it should be visible in instances - right now basic
things like that are broken.

2. Rip out the widget library. It should be a 3rd party project altogether
outside of the pyjs repo. It's nice but not necessary to be productive.
Pyjs is a web technology first and foremost.

3. Rip out the desktop-runtime components as independent projects within
the pyjs repo. I think the concept is really cool but I just don't think
the amount of effort that needs to go into this is available. Only a small
percentage of people would use it this way.

3. Provide very close integration with popular server side technologies. I
vote for Django and Twisted.

As it is, there is just too much code and it doesn't handle the common use
case very well. I think the core pyjs project should only deal with the
common use case and all of the extra stuff (widget libraries, desktop
runtime, etc) could be add-ons.

What do you guys think? Should pyjs core be reduced to just a compiler,
runtime and good integration with server side technologies? I'm thinking
along the lines of Meteor but for Pyjs+Twisted and Pyjs+Django.

 - lex

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Pyjs.org Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyjs-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to