{"id":1249,"date":"2009-10-03T10:49:10","date_gmt":"2009-10-03T09:49:10","guid":{"rendered":"http:\/\/fiber-space.de\/wordpress\/?p=1249"},"modified":"2009-10-03T10:49:10","modified_gmt":"2009-10-03T09:49:10","slug":"the-future-of-easyextend","status":"publish","type":"post","link":"http:\/\/fiber-space.de\/wordpress\/2009\/10\/03\/the-future-of-easyextend\/","title":{"rendered":"The future of EasyExtend"},"content":{"rendered":"<h3>The state of EasyExtend<\/h3>\n<p>Maybe an autumnal look on EasyExtend is justified. EE was and is an alien project which never resonated well with the Python community and its possible users. Actually up to now I don&#8217;t no anyone who has ever used it ( besides myself, of course ) and I wouldn&#8217;t wonder if this isn&#8217;t going to change in the future. For a Python programmer there are numerous alternatives now like <a href=\"http:\/\/www.dalkescientific.com\/Python\/python4ply.html\">python4ply<\/a>, <a href=\"http:\/\/metapython.org\/\">MetaPython<\/a> and also 2to3 &#8211; why not? &#8211; which can be used to extend Python. None of them were available when I started with EE in 2006. Some people might also attempt to revive <a href=\"http:\/\/www.livelogix.com\/logix\/\">Logix<\/a> which is among the more famous &#8220;dead&#8221; projects in the Python community. Logix might be in style and ambition precisely what Python users are looking for. EasyExtend isn&#8217;t even tangential.<\/p>\n<p>Whenever I thought EE becomes stable I challenged it with bigger, more difficult problems: simultaneous transformations of multiple langlets, context sensitive languages, quirky real world grammars, online syntax definitions, source directed transformations, more expressible grammar syntax, language agnosticism etc.<\/p>\n<p>Another major issue is performance. In the past I&#8217;ve used Psyco and also Cython. They boosted performance quite well and I got 3-5 times speedup for lexer+parser but I have clearly no performance model and I don&#8217;t see why those speedups shall be the limit? Python isn&#8217;t the right tool for the right job here and I suspect this had been an impediment for the current implementation already, since I overused containers like tuples and dicts in favor for classes and objects and their slow attribute access.<\/p>\n<h3>From EasyExtend to Langscape<\/h3>\n<p>The most likely path into the future of EasyExtend is to factor out components like the parser generator, the langlet transformer and most of the csttools and rewrite them in C++. I&#8217;ll probably start a completely new project which I intend to call &#8220;Langscape&#8221;. By means of SWIG it shall be possible to use Langscape also from environments like the JVM or the CLR. As a Python front end I&#8217;ll use the code I&#8217;ve developed for EasyExtend 4 which will probably never go public in the current form. I&#8217;ll still consider doing the functional testing in Python and I also want to preserve interactivity. Both the language front-end as well as back-end bindings become separated from Langscape. Langscape only deals with source code, grammars and CSTs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The state of EasyExtend Maybe an autumnal look on EasyExtend is justified. EE was and is an alien project which never resonated well with the Python community and its possible users. Actually up to now I don&#8217;t no anyone who &hellip; <a href=\"http:\/\/fiber-space.de\/wordpress\/2009\/10\/03\/the-future-of-easyextend\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts\/1249"}],"collection":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1249"}],"version-history":[{"count":9,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts\/1249\/revisions"}],"predecessor-version":[{"id":1304,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts\/1249\/revisions\/1304"}],"wp:attachment":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1249"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}