<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6374583985636407395.post3163180754195733348..comments</id><updated>2011-05-11T06:58:30.797-07:00</updated><category term='user_group'/><category term='scala'/><category term='PL research'/><category term='scala-blogs.org'/><category term='actors'/><category term='tutorial'/><category term='monad'/><category term='teaser'/><category term='community'/><category term='XML'/><category term='parsing'/><category term='new release'/><category term='reified types'/><category term='meta-programming'/><category term='pdx'/><category term='lift'/><category term='links'/><category term='sample'/><category term='mapreduce'/><category term='hadoop'/><category term='scala static dynamic'/><category term='comet'/><category term='user group'/><category term='osgi'/><category term='manifests'/><category term='smr'/><category term='combinators'/><category term='brisbane'/><category term='official'/><category term='type erasure'/><category term='twitter'/><category term='portland'/><category term='typechecking'/><category term='project euler'/><category term='class'/><category term='gdata'/><category term='variable binding'/><category term='october'/><category term='release'/><category term='sxr'/><category term='boston'/><category term='melbourne'/><category term='tool:maven'/><title type='text'>Comments on Scala Blog: 'Application' trait considered harmful</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.scala-blogs.org/feeds/3163180754195733348/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html'/><author><name>Steve Jenson</name><uri>http://www.blogger.com/profile/09686593839106107926</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-z-C5VW1Iqcc/TssXb0xNUWI/AAAAAAAAAYU/9HTuwKzKAGo/s220/stevej_ded_profile-1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-8889184276258124956</id><published>2011-05-11T06:58:30.797-07:00</published><updated>2011-05-11T06:58:30.797-07:00</updated><title type='text'>Author the best! Thank you!
&lt;a href="http://artlux...</title><content type='html'>Author the best! Thank you!&lt;br /&gt;&lt;a href="http://artlux.com.ua/" rel="nofollow"&gt;люстры&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/8889184276258124956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/8889184276258124956'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html?showComment=1305122310797#c8889184276258124956' title=''/><author><name>SeregaKiev</name><uri>http://www.blogger.com/profile/10667762621239063134</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-3163180754195733348' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/3163180754195733348' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-308007322'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-884615436674684809</id><published>2011-02-19T13:25:42.769-08:00</published><updated>2011-02-19T13:25:42.769-08:00</updated><title type='text'>Just for the record: Scala 2.9 will fix the behavi...</title><content type='html'>Just for the record: Scala 2.9 will fix the behavior of Application.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/884615436674684809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/884615436674684809'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html?showComment=1298150742769#c884615436674684809' title=''/><author><name>Landei</name><uri>http://www.blogger.com/profile/04894331070342867122</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-3163180754195733348' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/3163180754195733348' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1329132723'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-7062500930560393474</id><published>2008-07-26T16:07:00.000-07:00</published><updated>2008-07-26T16:07:00.000-07:00</updated><title type='text'>No. And I think the transition from Hello World pr...</title><content type='html'>No. And I think the transition from Hello World programs to real applications shouldn't have to be either! What you're proposing is basically saying "Here, you know that thing we showed you how to use while you were learning? It's actually totally unsafe to use for anything non-trivial". Additionally, it doesn't seem to have any pedagogical value over using the script runner.&lt;BR/&gt;&lt;BR/&gt;Often one just wants to put code in the main entry point to one's application. Sure, you can do all sorts of things to avoid that so you can use Application, but at that point you're doing more work than just "wrap it in a main method".&lt;BR/&gt;&lt;BR/&gt;The bugs caused by Application are non-obvious and completely undocumented. I know of at least two people who have wasted substantial amounts of time trying to figure them out. It has such a narrow scope of utility and can cause such unpleasant problems that leaving it in as an aid to beginners (when really we should be telling the beginners to run screaming from it) is a completely ridiculous idea.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/7062500930560393474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/7062500930560393474'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html?showComment=1217113620000#c7062500930560393474' title=''/><author><name>David R. MacIver</name><uri>http://www.blogger.com/profile/17522579015536144620</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-3163180754195733348' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/3163180754195733348' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-885429560'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-7827535629342117800</id><published>2008-07-26T15:17:00.000-07:00</published><updated>2008-07-26T15:17:00.000-07:00</updated><title type='text'>You think "hello, world" programs should be concer...</title><content type='html'>You think "hello, world" programs should be concerned about gritty details of JVM thread safety, class initialisers, and hot spot optimisation.?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/7827535629342117800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/7827535629342117800'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html?showComment=1217110620000#c7827535629342117800' title=''/><author><name>Antony Stubbs</name><uri>http://www.blogger.com/profile/11776027112330595831</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-3163180754195733348' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/3163180754195733348' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-386190612'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-3030251863799607883</id><published>2008-07-26T08:20:00.000-07:00</published><updated>2008-07-26T08:20:00.000-07:00</updated><title type='text'>@antony, &lt;br&gt;&lt;br&gt;Does it makes sense to teach new ...</title><content type='html'>@antony, &lt;BR/&gt;&lt;BR/&gt;Does it makes sense to teach new people a solution which has downsides that are so subtle?  I mean, most solutions have trade-offs. But when it's something you learn while you're still mastering "hello, world" you probably aren't ready to understand the gritty details of JVM thread safety, class initializers, and hot spot optimization.&lt;BR/&gt;&lt;BR/&gt;The Application trait idea is salvageable, I think.  But as it stands right now it needs to come with at least a big fat warning label in the documentation and probably even a deprecation until it can be fixed or dropped.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/3030251863799607883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/3030251863799607883'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html?showComment=1217085600000#c3030251863799607883' title=''/><author><name>James Iry</name><uri>http://www.blogger.com/profile/02835376424060382389</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-3163180754195733348' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/3163180754195733348' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1126934805'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-4420964655118787760</id><published>2008-07-26T00:43:00.000-07:00</published><updated>2008-07-26T00:43:00.000-07:00</updated><title type='text'>"it comes with many severe and hidden pitfalls. Ho...</title><content type='html'>"it comes with many severe and hidden pitfalls. Hopefully it will be removed from the standard library, or at least deprecated. In the meantime, save yourself the headache and avoid Application in your applications."&lt;BR/&gt;&lt;BR/&gt;Oh please! It serves it's purpose beautifully! Just don't do any thing that isn't simple inside that class! Just simply use it to bootstrap your application once it gets anything more complicated than a few lines... &lt;BR/&gt;&lt;BR/&gt;1) Who cares if it breaks concurrency! Just don't use it as an entry point where multiple threads could enter. It's only meant as a simple static entry point for you program.&lt;BR/&gt;&lt;BR/&gt;2) Who cares about performance for a simple boot strap code???&lt;BR/&gt;&lt;BR/&gt;In what situation do you really see this causing harm? In the only use case you mention - teaching Scala to people - it's perfect!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/4420964655118787760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/3163180754195733348/comments/default/4420964655118787760'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html?showComment=1217058180000#c4420964655118787760' title=''/><author><name>Antony Stubbs</name><uri>http://www.blogger.com/profile/11776027112330595831</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2008/07/application-trait-considered-harmful.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-3163180754195733348' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/3163180754195733348' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-386190612'/></entry></feed>
