Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-15 Thread Brett Cannon
On 1/15/06, Dennis Allison <[EMAIL PROTECTED]> wrote:
> On Thu, 12 Jan 2006, Brett Cannon wrote:
>
> > It is time once again in my educational career to come to python-dev
> > for help for major project ideas.  This time, though, it is for my
> > Ph.D. dissertation (and thus can have larger scope than my masters
> > thesis) but there are funding restrictions (and thus only certain
> > areas I have possible funding for).
> >
> > First off, there are two areas where I have possible funding: XML
> > integration into programming languages and game scripting support (I
> > have a third, AOP for anything, but  I don't think AOP is a good match
> > for Python and thus not considering it for Python work).  The XML
> > integration I have no direct ideas since I don't use XML.  There is
> > the possibility of doing something like the LINQ project
> > (http://msdn.microsoft.com/netframework/future/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp)
> > or something, but I don't know how useful that could be.  It would
> > have to be just as generic, though, as the LINQ project in terms of
> > working with intefaces to be Pythonic so it might turn out to be more
> > about language support for querying data.
> >
> > For the game scripting, trying out the active objects for Python is a
> > possibility (or something else that would help with concurrency).
> > Since that could allow for agent objects to be more concurrent it can
> > be argued that it would help with game scripting.  I don't have any
> > other ideas for the area of game scripting support.
>
> Brett--
>
> Financial considerations aside, neither of the ideas you mention see ready
> to be a dissertation topic.  I'd encourge you to look to other topics.
>

I'm open to other topics and in no way settled or locked into anything
mentioned so far.  Just need to be able to feed myself.  =)

> You might research interpreter structures for languages like Python which
> do not use a global interpreter lock (GIL).  There's been discussion about
> this from time to time on this list, even some suggestions as to what
> might be done.  Given the trend toward multi-core processors, Python would
> benefit if all processors did not need to block on the GIL. Guido told me
> once that someone had build a Python interpreter with multiple locks, but
> that the peformance was not very good and that the interpreter was
> fragile.  This is, of course, a hard problem.
>

It was Greg Stein who worked on it while at Microsoft.  He didn't
start to approach breaking even until two processors (if I remember
correctly).  None of the code was ever released.

This could fit under the concurrency or gaming funding if there is
some way to make threading just work better for Python.  So it's a
possibility.

> In 1974, Dijkstra wrote a fascinating paper on self-stabalizing
> algorithms; since that time a considerable literature has grown up.
>
> Managing a Python system these days is a management problem when the
> standard system is extended with libraries from many different sources,
> each with different release schedules, dependencies, compatibilities, and
> documentation.  Automating the management of Python and its libraries
> might make a good dissertation topic, particualarly if there is some
> advice giving system that helps find an appropriate library for a
> particular problem.
>

Possibilty.  Does tie into my lab's area of focus.

> Testing, optimization, refactopring tools, etc.
>

All possible general areas.

> Dave Altel, following others, suggested in a provacatively title talks--
>

Was there more to this line?  Seems like the email was cut off.

Thanks Dennis (and everyone, for that matter) for the continued help
and support!

-Brett
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-15 Thread Dennis Allison
On Thu, 12 Jan 2006, Brett Cannon wrote:

> It is time once again in my educational career to come to python-dev
> for help for major project ideas.  This time, though, it is for my
> Ph.D. dissertation (and thus can have larger scope than my masters
> thesis) but there are funding restrictions (and thus only certain
> areas I have possible funding for).
> 
> First off, there are two areas where I have possible funding: XML
> integration into programming languages and game scripting support (I
> have a third, AOP for anything, but  I don't think AOP is a good match
> for Python and thus not considering it for Python work).  The XML
> integration I have no direct ideas since I don't use XML.  There is
> the possibility of doing something like the LINQ project
> (http://msdn.microsoft.com/netframework/future/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp)
> or something, but I don't know how useful that could be.  It would
> have to be just as generic, though, as the LINQ project in terms of
> working with intefaces to be Pythonic so it might turn out to be more
> about language support for querying data.
> 
> For the game scripting, trying out the active objects for Python is a
> possibility (or something else that would help with concurrency). 
> Since that could allow for agent objects to be more concurrent it can
> be argued that it would help with game scripting.  I don't have any
> other ideas for the area of game scripting support.

Brett--

Financial considerations aside, neither of the ideas you mention see ready
to be a dissertation topic.  I'd encourge you to look to other topics.

You might research interpreter structures for languages like Python which
do not use a global interpreter lock (GIL).  There's been discussion about
this from time to time on this list, even some suggestions as to what
might be done.  Given the trend toward multi-core processors, Python would
benefit if all processors did not need to block on the GIL. Guido told me
once that someone had build a Python interpreter with multiple locks, but
that the peformance was not very good and that the interpreter was
fragile.  This is, of course, a hard problem.

In 1974, Dijkstra wrote a fascinating paper on self-stabalizing 
algorithms; since that time a considerable literature has grown up.

Managing a Python system these days is a management problem when the
standard system is extended with libraries from many different sources,
each with different release schedules, dependencies, compatibilities, and 
documentation.  Automating the management of Python and its libraries 
might make a good dissertation topic, particualarly if there is some 
advice giving system that helps find an appropriate library for a 
particular problem.

Testing, optimization, refactopring tools, etc.

Dave Altel, following others, suggested in a provacatively title talks--

 



___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-14 Thread Brett Cannon
On 1/14/06, Armin Rigo <[EMAIL PROTECTED]> wrote:
> Hi Brett,
>
> If by any chance PyPy continues to be funded beyond 2006, we would
> definitely welcome you around :-)  (If our funding model doesn't change,
> it might be difficult for us to give you money oversea, though... just
> asking, just in case, would you consider moving to a European
> university?)
>

That would be cool!  I definitely would not mind working on PyPy. 
Unfortunately I would not consider changing universities; I really
like it here.

> PyPy contains several open language research areas that you mentioned:
> network-distributed language support, concurrent programming...  and we
> even already have a Python -> JavaScript compiler :-)  Making it useful
> is an open challange, though.
>

Well, if PyPy picked up the grants tab I would work on whatever you
guys wanted that could be turned into a dissertation topic.  =)

-Brett
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-14 Thread Jason Orendorff
Brett,

You could create a downloadable corpus of Python source code, and
maybe a web site through which people can easily browse/search it,
contribute to it, and maintain it.  The point would be to support
language designers, tool developers, and researchers.  Several
python-dev folks have their own corpuses; I think other people would
be happy to use a free one if it were out there.

Of course there's no need to limit it to Python...

Creating a really *good* corpus is maybe not super-easy; I imagine
there are myriad linguistics papers explaining the nuances.  Hey,
cross-discipline research--cool points!

Once this exists, there's no shortage of research questions you can
quickly and easily answer with it.  What percentage of Python programs
use functional programming techniques?  How often are list
comprehensions used?  What do people use generators for?

And if you do something web-based, you can certainly work XML in there
somewhere.  :)

-j
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-14 Thread Armin Rigo
Hi Brett,

If by any chance PyPy continues to be funded beyond 2006, we would
definitely welcome you around :-)  (If our funding model doesn't change,
it might be difficult for us to give you money oversea, though... just
asking, just in case, would you consider moving to a European
university?)

PyPy contains several open language research areas that you mentioned:
network-distributed language support, concurrent programming...  and we
even already have a Python -> JavaScript compiler :-)  Making it useful
is an open challange, though.


A bientot,

Armin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-13 Thread Brett Cannon
On 1/12/06, Dennis Allison <[EMAIL PROTECTED]> wrote:
>
> Brett,
>
> Where are you doing your Phd and who will be your likely supervisor?
> It does make a difference.
>

University of British Columbia under Eric Wohlstadter in the Software
Practices Lab.

> Your dissertation idea list seems to me to focus on implementation
> projects and not on research.  Usually a dissertation proceeds from a
> hypothesis leading to an experiment, some measurements, and conclusions.
> Many universities tacitly expect a theorem and associated proof. The goal
> of dissertation research is a completed approved dissertation, not some
> intergalactic all encompassing contribution to human knowledge.
> Dissertation research should, IMHO, focus on a small, manageable problem.
>

The topics are a little on the implementation side partially from my
personal taste in projects; I have always had a major bent towards the
practical over theoretical (reason I love Python so much  =).  Plus
the lab I am in tends towards the practical and not into the
theoretical (e.g., the number of Eclipse plug-ins being developed as
part of theses and dissertations here).

But I am open for theoretical work (as long as it does not involve
type inference).

> Frequently, universities have a large cooperative project involving many
> graduate students, each of whom research a small, well defined topic areas
> related to the larger project.   Is this the case for your dissertation?
>

Nope.  Nothing going on at the moment here in terms of a large scoped
project with multiple parts to it.

> What are your interests?  Are you interested in language structure,
> language implementation, the formal interface between languages and
> applications, or what.
>

Tough question.  Language design is the over-reaching area that I
love.  Basically how can powerful language ideas be presented in a
easy-to-use fashion.  Could even generalize even farther to just
making programming easier through the language.  And for some reason
networking protocols and concurrent programming have always caught my
eye (have not delved deep into these topics but I always catch myself
doing stuff such as reading the ICMP standard or reading all of the
various arguments for or against threading).

> Like most folks who lurk on this list, I have my list of things I'd like
> to see someone research.  Tell us a bit more and I am sure you'll get lots
> of us to share.
>

That's the hope.  =)

-Brett
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-13 Thread Ian Bicking
Brett Cannon wrote:
> Hmm.  It's an idea.  I also thought of Python -> JavaScript compiler
> since JavaScript is not fun and getting to test using Python might be
> cool.  But not sure how useful that would be.  Plus I bet someone has
> does this with Java or something.

There's a Python project that compiles to Javascript: 
http://www.aminus.org/blogs/index.php/phunt/2005/10/06/subway_s_new_ajax_framework

However, I think this is a bad idea.  The world doesn't need another 
compiled language with leaky abstractions that is next to impossible to 
debug.

Anyway, to chime in about something I'd really like to see, that maybe 
fits in somewhere between graphics and language implementation, is the 
ideas of Boxer (http://dewey.soe.berkeley.edu/boxer.html/) implemented 
for Python.  Basically meaning that some of what we represent with 
indentation in Python would be represented graphically (Boxer uses, 
unsurprisingly, boxes).  Also a kind of window in the runtime of the 
system -- variables in Boxer aren't names, but visual elements you can 
see as the program runs.  From what I've seen of HyperCard -- or at 
least what I choose to pay attention to ;) -- I think this kind of 
concrete runtime is part of its appeal.  I have a lot of more specific 
ideas related to this, if the idea interests you.

-- 
Ian Bicking  |  [EMAIL PROTECTED]  |  http://blog.ianbicking.org
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-12 Thread Dennis Allison

Brett,

Where are you doing your Phd and who will be your likely supervisor? 
It does make a difference.

Your dissertation idea list seems to me to focus on implementation
projects and not on research.  Usually a dissertation proceeds from a
hypothesis leading to an experiment, some measurements, and conclusions.  
Many universities tacitly expect a theorem and associated proof. The goal
of dissertation research is a completed approved dissertation, not some
intergalactic all encompassing contribution to human knowledge.  
Dissertation research should, IMHO, focus on a small, manageable problem.

Frequently, universities have a large cooperative project involving many 
graduate students, each of whom research a small, well defined topic areas 
related to the larger project.   Is this the case for your dissertation?

What are your interests?  Are you interested in language structure, 
language implementation, the formal interface between languages and 
applications, or what.   

Like most folks who lurk on this list, I have my list of things I'd like 
to see someone research.  Tell us a bit more and I am sure you'll get lots 
of us to share.

-d

On Thu, 12 Jan 2006, Brett Cannon wrote:

> It is time once again in my educational career to come to python-dev
> for help for major project ideas.  This time, though, it is for my
> Ph.D. dissertation (and thus can have larger scope than my masters
> thesis) but there are funding restrictions (and thus only certain
> areas I have possible funding for).
> 
> First off, there are two areas where I have possible funding: XML
> integration into programming languages and game scripting support (I
> have a third, AOP for anything, but  I don't think AOP is a good match
> for Python and thus not considering it for Python work).  The XML
> integration I have no direct ideas since I don't use XML.  There is
> the possibility of doing something like the LINQ project
> (http://msdn.microsoft.com/netframework/future/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp)
> or something, but I don't know how useful that could be.  It would
> have to be just as generic, though, as the LINQ project in terms of
> working with intefaces to be Pythonic so it might turn out to be more
> about language support for querying data.
> 
> For the game scripting, trying out the active objects for Python is a
> possibility (or something else that would help with concurrency). 
> Since that could allow for agent objects to be more concurrent it can
> be argued that it would help with game scripting.  I don't have any
> other ideas for the area of game scripting support.
> 
> Now I am not locked down to these areas, but they are what I have
> possible grant money for.  If through some miracle someone out there
> wants to fund my Ph.D. and wants something else worked on for Python,
> don't be shy.  =)  Unfortunately I don't think the PSF is up for
> funding my Ph.D., else I would say I would work on whatever python-dev
> decided they wanted to worked on that could be done as a dissertation.
> 
> Anyway, any ideas are appreciated.  There is no rush on this, either. 
> Just getting this out there now while I am tentatively exploring
> possible topics.
> 
> -Brett
> ___
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: 
> http://mail.python.org/mailman/options/python-dev/allison%40sumeru.stanford.edu
> 

-- 

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-12 Thread Steve Holden
Brett Cannon wrote:
> On 1/12/06, Bill Janssen <[EMAIL PROTECTED]> wrote:
> 
>>Brett,
>>
>>How about building a system that compiles a Python program (possibly
>>annotated) to an AJAX program?  That is, it analyzes the program to
>>determine what's appropriate and possible for client-side and
>>server-side, figures out the optimal network API (reduce latency,
>>reduce calls, reduce data transfer, increase responsiveness),
>>generates server-side Jython to run in Tomcat (or Python for
>>mod_python), and client-side XHTML, CSS, and Javascript to implement
>>the browser-based portion of the application.  Oddities of browser
>>implementations and Javascript VMs would be contained in the compiler
>>and automatically pushed into the generated code.
>>
>>This would be a tremendously useful advance in building distributed
>>systems that work with the Web.  The current approach to AJAX is a bit
>>like carpentry with old hand tools.  You'd probably also push Python
>>to higher levels of language-ness.
>>
> 
> 
> Hmm.  It's an idea.  I also thought of Python -> JavaScript compiler
> since JavaScript is not fun and getting to test using Python might be
> cool.  But not sure how useful that would be.  Plus I bet someone has
> does this with Java or something.
> 
If you can persuade your supervisor to be interested in educational 
games, a Python learning system might be an interesting project with 
lots of scope for user modelling and goal-directed behaviour.

There's been some work done on bomb-proofing the interpreter to offer a 
"try-python" type site, but nobody seems to have thought about how to 
engage a neophyte with an specific teaching strategy (possibly based on 
personality analysis) and then present problems to verify comprehension 
and offer appropriate feedback.

That would be a terrific game!

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006  www.python.org/pycon/

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-12 Thread Brett Cannon
On 1/12/06, Bill Janssen <[EMAIL PROTECTED]> wrote:
> Brett,
>
> How about building a system that compiles a Python program (possibly
> annotated) to an AJAX program?  That is, it analyzes the program to
> determine what's appropriate and possible for client-side and
> server-side, figures out the optimal network API (reduce latency,
> reduce calls, reduce data transfer, increase responsiveness),
> generates server-side Jython to run in Tomcat (or Python for
> mod_python), and client-side XHTML, CSS, and Javascript to implement
> the browser-based portion of the application.  Oddities of browser
> implementations and Javascript VMs would be contained in the compiler
> and automatically pushed into the generated code.
>
> This would be a tremendously useful advance in building distributed
> systems that work with the Web.  The current approach to AJAX is a bit
> like carpentry with old hand tools.  You'd probably also push Python
> to higher levels of language-ness.
>

Hmm.  It's an idea.  I also thought of Python -> JavaScript compiler
since JavaScript is not fun and getting to test using Python might be
cool.  But not sure how useful that would be.  Plus I bet someone has
does this with Java or something.

-Brett
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-12 Thread Bill Janssen
Brett,

How about building a system that compiles a Python program (possibly
annotated) to an AJAX program?  That is, it analyzes the program to
determine what's appropriate and possible for client-side and
server-side, figures out the optimal network API (reduce latency,
reduce calls, reduce data transfer, increase responsiveness),
generates server-side Jython to run in Tomcat (or Python for
mod_python), and client-side XHTML, CSS, and Javascript to implement
the browser-based portion of the application.  Oddities of browser
implementations and Javascript VMs would be contained in the compiler
and automatically pushed into the generated code.

This would be a tremendously useful advance in building distributed
systems that work with the Web.  The current approach to AJAX is a bit
like carpentry with old hand tools.  You'd probably also push Python
to higher levels of language-ness.

> Tough question.  Language design is the over-reaching area that I
> love.  Basically how can powerful language ideas be presented in a
> easy-to-use fashion.  Could even generalize even farther to just
> making programming easier through the language.  And for some reason
> networking protocols and concurrent programming have always caught my
> eye

Bill
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Ph.D. dissertation ideas?

2006-01-12 Thread Phillip J. Eby
At 02:36 PM 1/12/2006 -0800, Brett Cannon wrote:
>(I have a third, AOP for anything, but  I don't think AOP is a good match
>for Python and thus not considering it for Python work)

For what it's worth, I've been doing what I'll loosely refer to as 
"research" on implementing a non-traditional form of AOP in Python via the 
combination of extensible generic functions and contextual variables -- two 
concepts that already exist in Python but which can be extended far beyond 
what is in current use.

The combination can be used to implement an "explicit is better than 
implicit" form of AOP, that is usually handled by a "weaving language" in 
classic AOP implementations.  I don't know of any published AOP work that 
focuses on the use of these kinds of tools; the communities that talk about 
the respective technologies appear to be disjoint.

Anyway, extensible generic operations in Python like 'len()', 'copy()' and 
so on are fairly common, but it's rare that people define their own such 
functions, as opposed to using ones in the stdlib.  A typical workaround in 
larger frameworks is to use interfaces and adaptation, but extensible 
generic operations make it easier to separate concerns orthogonally.

So, although you might think that AOP isn't "a good match for Python", the 
truth is that there's actually a fair amount of AOP-like things being done 
with Python.  It's just that classic structuring of AOP into things like 
aspects and weavers and all that crud is overcomplication.  If you view it 
simply in terms of extensible operations, which can also make decisions 
based on context, then you can achieve all the same goals of "classic" AOP 
without using any of its concepts or terminology.

One definition of AOP claims that it allows asserting qualified statements 
over oblivious code.  Python has this basic ability natively -- 
monkeypatching suffices to meet that definition.  The interesting question 
is, how can you do it *without* monkeypatching?

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com