<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Another point for Play!: even the warnings are informative.<div class=""><br class=""></div><div class="">Below is a warning about a non-exhaustive pattern matching:<br class=""><div class=""><br class=""></div><div class=""><div class="">[warn] /Users/michael/Documents/Consulting/sayarch/ECF/Conflict-Database/ecf-db/app/ecf-db/app/controllers/EcfJSONFormats.scala:71: match may not be exhaustive.</div><div class="">[warn] It would fail on the following input: FieldAction()</div><div class="">[warn]         fa match {</div><div class="">[warn]         ^</div><div class="">[warn] one warning found</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Pretty sweet, I'd say :-)</div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On 22 Nov 2015, at 15:00, Michael Bar-Sinai <<a href="mailto:mich.barsinai@icloud.com" class="">mich.barsinai@icloud.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">True, but at that point Play! did not rely on dependency injection. From 2.4 on, it does. And the stack traces in Play! are still better, have less frames, and are more readable. The error messages, like he says, are informative and useful.<div class="">Note, however, that when there are multiple compilation errors, you only get one of them on the error page! Sometime you'd get an error that's not the root cause (and as scala is statically typed and uses type inference, this can happen often when making a large refactoring). So sticking with the errors at the console helps (they also have file names and line numbers).</div><div class=""><br class=""></div><div class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><br class=""></div><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 22 Nov 2015, at 14:37, Philip Durbin <<a href="mailto:philipdurbin@gmail.com" class="">philipdurbin@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class="">Hmm. But Michael, I thought you made a big deal about how stacktraces were much more readable in your presentation at <a href="http://www.mbarsinai.com/blog/2014/06/10/playful-eye-for-the-jee-guy/" class="">http://www.mbarsinai.com/blog/2014/06/10/playful-eye-for-the-jee-guy/</a><br class=""><br class=""></div>I just flipped through your slides at <a href="http://www.slideshare.net/MichaelBarSinai/playful-eye-for-the-jee-guy" class="">http://www.slideshare.net/MichaelBarSinai/playful-eye-for-the-jee-guy</a> and expected to see a screenshot similar to <a href="http://horstmann.com/unblog/2015-11-21/play-error.png" class="">http://horstmann.com/unblog/2015-11-21/play-error.png</a> (good!) as opposed to <a href="http://horstmann.com/unblog/2006-06-07/images/stacktrace3.gif" class="">http://horstmann.com/unblog/2006-06-07/images/stacktrace3.gif</a> (bleh!).<br class=""><br class=""></div><div class="">Anyway, I'm kind of used to wading through enormous stacktraces because, well, I have to.<br class=""><br class=""></div><div class="">On a related note I just found this: <a href="http://www.nurkiewicz.com/2012/03/filtering-irrelevant-stack-trace-lines.html" class="">http://www.nurkiewicz.com/2012/03/filtering-irrelevant-stack-trace-lines.html</a> which links to <a href="http://stackoverflow.com/questions/9606614/cleaning-noise-out-of-java-stack-traces" class="">http://stackoverflow.com/questions/9606614/cleaning-noise-out-of-java-stack-traces</a> which I just voted up. :)<br class=""></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Sun, Nov 22, 2015 at 7:03 AM, Michael Bar-Sinai <span dir="ltr" class=""><<a href="mailto:mich.barsinai@icloud.com" target="_blank" class="">mich.barsinai@icloud.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">...And then came the migration to Play 2.4, where the static parts are being deprecated, and everything is getting dynamic and dependency injected, and there were quite a few error screens, and stack traces. Not from hell, though*.<div class=""><br class=""></div><div class="">* Just finished porting a Play app to 2.4. Not an easy task, even though I like the DI better than Java EE's. Play! still seems to be better-suited for HTTP interfaces, as it does not try to abstract HTTP away. But it's not a clear-winner-by-KO.</div><div class="">IMHO, the main issue with Play! is the tools - IntelliJ is the only IDE to that supports it at the moment. ScalaIDE has some official support, but since I've installed it the JVM crashes (that is, I get the OSX's crash dialog, not even Eclipse's). There's a NetBeans plug-in on the way (<a href="http://nbpleasureplugin.com/" target="_blank" class="">http://nbpleasureplugin.com</a>).  As IntelliJ is expensive, buggy, eats RAM and CPU and is generally annoying, I currently use Sublime text and the console. The amazing part - I'm still quite productive with this setup.</div><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 22 Nov 2015, at 13:49, Philip Durbin <<a href="mailto:philipdurbin@gmail.com" target="_blank" class="">philipdurbin@gmail.com</a>> wrote:</div><br class=""><div class=""><p dir="ltr" class=""><a href="http://horstmann.com/unblog/2015-11-21/index.html" target="_blank" class="">http://horstmann.com/unblog/2015-11-21/index.html</a></p><p dir="ltr" class="">"All work and no play makes Jack a dull programmer. And I just felt the dull pain of another stack trace from hell from my Java EE app server. There has to be a better way. So I ported the troublesome code to run on the Play framework, and it was all play. No stack trace from hell, just a few screens with clear error messages, and then sweet success."</p>
_______________________________________________<br class="">codecraft mailing list<br class=""><a href="mailto:codecraft@or8.net" target="_blank" class="">codecraft@or8.net</a><br class=""><a href="http://or8.net/mailman/listinfo/codecraft" target="_blank" class="">http://or8.net/mailman/listinfo/codecraft</a><br class=""></div></blockquote></div><br class=""></div></div></div><br class="">_______________________________________________<br class="">
codecraft mailing list<br class="">
<a href="mailto:codecraft@or8.net" class="">codecraft@or8.net</a><br class="">
<a href="http://or8.net/mailman/listinfo/codecraft" rel="noreferrer" target="_blank" class="">http://or8.net/mailman/listinfo/codecraft</a><br class="">
<br class=""></blockquote></div><br class=""></div>
_______________________________________________<br class="">codecraft mailing list<br class=""><a href="mailto:codecraft@or8.net" class="">codecraft@or8.net</a><br class=""><a href="http://or8.net/mailman/listinfo/codecraft" class="">http://or8.net/mailman/listinfo/codecraft</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></div>_______________________________________________<br class="">codecraft mailing list<br class=""><a href="mailto:codecraft@or8.net" class="">codecraft@or8.net</a><br class="">http://or8.net/mailman/listinfo/codecraft<br class=""></div></blockquote></div><br class=""></div></div></body></html>