|
From: Kevin A. <al...@se...> - 2001-10-20 20:52:28
|
Thanks for the comments!
> From: Rodney Somerstein
>
> Message watcher functionality is definitely useful. I think that in
> general, the command line should be hidden as much as possible from the
> user in PythonCard. Being able to bring one up only as needed is
> definitely
> useful, though.
Originally, the idea of the shell was to give us a HyperCard-like message
box, but multi-line. Once Patrick had PyCrust working it made sense to
utilize all the power available. It is extremely common for even new Python
programmers to use a Python shell, so I don't feel it is a bad thing to have
a full shell rather than a simplistic input/output mechanism like the
HyperCard msg box. An important distinction right now is that the shell is
only available if one or more of the "Debug" windows is requested at
startup. In the future, the framework could be changed so that those windows
could be invoked later.
It is important to not confuse the shell with working from the command-line
prompt of MS-DOS or Unix, also referred to as shells. You might start a
PythonCard program Windows 2000 as:
C:\python\PythonCardPrototype>samples\proof\proof -s
or Windows 98
C:\python\PythonCardPrototype>c:\python21\python samples\proof\proof.py -s
but all the other interaction would be from the runtime "Shell". If you look
at the turtle and resourceEditor samples, you'll see the trick at the bottom
for having an app invoke a Debug window like the shell regardless of the
pythoncard.config.py, pythoncard.user.config.py, or command-line option.
# now force the shell to be enabled
PythonCardPrototype.config.Configuration().setOption('showShell', 1)
> I actually think that dependence on the command line is one of Python's
> weaknesses. It makes things easier when launching from Unix. But, it is
> much harder for users to follow if they are used to Windows or Mac OS.
> Given this, PythonCard should be a double-clickable application
> that can be
> launched easily by a user and then let them create applications easily
> using PythonCard as the scripting language. If someone has to start the
> whole Python environment to run their applications, you will lose many
> potential new users.
If the association has been made between the file extensions (.py, .pyw) and
the python executables, then you can open an application in Windows using
the Explorer and just double-clicking. This should be the default with your
installation. I don't know the variations under Unix, but I'm pretty sure
you can do something similar (help me out here Unix folks). There are two
distinct flavors of Python on the Mac right now that are being merged. One
is more of a Mac classic environment and the other is more like Unix. In
both cases, I believe a script can be launched by double-clicking, but again
I'm not using the Mac these days, so somebody else will need to
confirm/correct me.
> Similar to the above, PythonCard needs to provide a way to deliver easily
> launchable and distributable applications. If it doesn't compile
> to Java or
> some other language, then there needs to be really good documentation
> describing how to create a standalone application on each supported
> platform. It isn't sufficient to expect the user to figure out
> how to do it
> on their own.
Having a standalone installation for a PythonCard application that doesn't
require the user to already have Python, the wxPython, PythonCard, and
PyCrust packages is not a simple problem to solve. This is probably doable
using py2exe under Windows, but nobody has tried yet that I know of. It is
more complicated under Unix and the Mac, but there are possibilities. One
suggestion for the app itself is that we use a zip bundle similar to a Java
.jar/.war file to package up all scripts, resource files, sounds, images,
etc. into one file. With the write header, this could be double-clickable.
We probably won't explore these issues until much later in the project
cycle.
Once we figure out how to do it, automating the process shouldn't be a big
deal.
ka
|