Re: [Python-Dev] Ph.D. dissertation ideas?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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