OSX IDE usability issues

A

Alex Holcombe

 One thing that attracted me to Python was the prospect of
significantly shorter debugging times and debug-execution cycles
thanks to Python being an interpreted rather than compiled language.
In the case of MATLAB, the interpreted language I use currently,
programming is quite speedy because one can test small sets of lines
of code by copying them directly from the program file to the command
line and debugging them in isolation- e.g. allowing one to easily set
individual variables manually and checking the result.  

I was disappointed to find that I was not able to do this with Python
programs using OSX's PythonIDE (also I didn't find any alternative
IDEs on the web that might take care of this).  I am a newbie, so I
may be wrong, but there appear to be three reasons for this.  

1. when I copy text from a Python script (using command-C or the menu)
and paste it in on the command line, only the first line of the text
is actually executed, even though manually entering the same lines one
by one with carriage returns between them does execute the code
perfectly.  Why the problem with pasting occurs I don't know- does
anyone know?  

2.Even if the above did work, trying to execute a few lines of code
out of a Python script should typically not work, if I understand
Python syntax correctly.  Because to Python indentation whitespace is
meaningful, one cannot e.g. copy the contents out of a nested if-then
statement and expect it to execute, because when you paste the text it
will have that level of indentation still rather than having no
indentation as it should.  Am I right about this and is there a way
around it?

3. One nice thing about MATLAB is I can execute a script and then
query the values of all the script's variables from the command line.
By just typing the variable name, I can see its value.  In contrast,
it appears that in Python variables have more restricted scope such
that the command line can't "see" the variables executed in a Python
script.  Is there some way to make the variables in a Python script
global so that I can play with them on the command line?

Without solutions or workarounds to the above three issues, much of
the everyday efficiency advantage of using an interpreted language
seems to me to be lost.  So despite the beauty of Python, for my new
laboratory I might end up using MATLAB and Psychophysics toolbox
instead (presuming they someday get that to work with OSX!).  

Thanks in advance for any corrections comments etc.,
Alex Holcombe
 
L

Lothar Scholz

1. when I copy text from a Python script (using command-C or the menu)
and paste it in on the command line, only the first line of the text
is actually executed, even though manually entering the same lines one

This depends on the IDE. Most console applications use the stupid
method of one line after the other, not thinking about the reasons
that lead to this technique a few decades ago. I don't think an
interactive console should be implemented any more in this way.
2.Even if the above did work, trying to execute a few lines of code
out of a Python script should typically not work, if I understand
Python syntax correctly.  Because to Python indentation whitespace is

You can, this is also possible if the IDE indentifies your initial
indentation and unindent the code before feeding the it to the
interpreter. Should be a few lines of code.
3. One nice thing about MATLAB is I can execute a script and then
query the values of all the script's variables from the command line.
By just typing the variable name, I can see its value.  In contrast,
it appears that in Python variables have more restricted scope such
that the command line can't "see" the variables executed in a Python
script.  Is there some way to make the variables in a Python script
global so that I can play with them on the command line?

Can you explain this a little bit more ?
If you cut&paste some of the former local variables becames of course
global variables. If you give an example it would be much better to
understand.


And from what i know, Python is a much complexer language then MATLAB
so don't expect that everything is so easy. But you get back better
programs.
There are a lot of improvements by using an interpreted language like
python, but maybe this does not fit your personal programming style.
If you get more experience with programming you will find that testing
individuell code snippets will be less and less important. Of couse
it's nice to explore a new library but this can also be done with
simple scripts. In fact i find it much more complicated to cut&paste
code instead of running a file where i do the changes.

Oh yes, (1) and (2) are resolved in "Arachno Python IDE", which is in
a closed beta testing phase.
 
L

Lou Pecora

There are a lot of improvements by using an interpreted language like
python, but maybe this does not fit your personal programming style.
If you get more experience with programming you will find that testing
individuell code snippets will be less and less important. Of couse
it's nice to explore a new library but this can also be done with
simple scripts. In fact i find it much more complicated to cut&paste
code instead of running a file where i do the changes.

I agree with this last paragraph. I typically build the code in stages
and run it between stages with some prints or something else to check
each stage. It's easy, doesn't involve copy-past or command lines. I'm
testing the code in-place. I think that's easier and better. Just code
and hit cmd-R.

-- Lou Pecora
My views are my own.

"If you're not part of the solution, you're part of the precipitate."
(Steven Wright)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top