I think, allowing to specify blocks with algol style (for-end, if-end, etc) will allow to write easy php-like templates and would attract new web developers to python (as php and ruby do). It can be straight compilled into Python bytecode cause there is one-to-one transformation. So this: # -*- syntax-style: algol -*- class asd: def __init__(self,a): if a: for i in xrange(100): pass else: while false: pass else: pass end end else: self.a=None end end end is equivalent for: class asd: def __init__(self,a): if a: for i in xrange(100): pass else: while false: pass else: pass else: self.a=None but could be written as:
# -*- syntax-style: algol -*- class asd: def __init__(self,a): if a: for i in xrange(100): pass; else: while false: pass; else: pass; end; end; end; end; which is easier to embed into http template (php and ruby shows it). And, maybe, there can web syntax - equivalent for php and ruby template: <%# -*- syntax: web -*-%> <%# -*- command: print -*- %> <% def print_all(l):%> <table><% for k in l:%> <tr><td>#{k.name}</td><td>#{k.surname}</td></tr> <%end%> </table> <%end # -*- command: yield -*- def yield_all(l):%> <table><% for k in l:%> <tr><td>#{k.name}</td><td>#{k.surname}</td></tr> <%end%> </table> <%end # -*- command: S.write -*- def write_all(S,l):%> <table><% for k in l:%> <tr><td>#{k.name}</td><td>#{k.surname}</td></tr> <%end%> </table> <%end%> will be translated as it were written: def print_all(l): print (r"<table>") for k in l: print (r"<tr><td>"+`k.name`+ r"</td><td>"+`k.surname`+ r"</td></tr>") # or print (r"<tr><td>"+str(k.name)+ r"</td><td>"+str(k.surname)+ r"</td></tr>") print (r"</table>") def yield_all(l): yield (r"<table>") for k in l: yield (r"<tr><td>"+`k.name`+ r"</td><td>"+`k.surname`+ r"</td></tr>") yield (r"</table>") def write_all(S.l): S.write (r"<table>") for k in l: S.write (r"<tr><td>"+`k.name`+ r"</td><td>"+`k.surname`+ r"</td></tr>") S.write (r"</table>") I offer to include it into iterpretter, so we can leave another compilation stage, as it exists with popular template libraries, which compile their template files into bytecode (or python source) -- http://mail.python.org/mailman/listinfo/python-list