<div dir="ltr"><div><div>Hey Greg,<br><br></div>I hope it's not too late to chime in.<br></div><div><br><div class="gmail_extra"><div class="gmail_quote">On Fri, Aug 23, 2013 at 1:21 PM, Greg Kempe <span dir="ltr"><<a href="mailto:gregkempe@gmail.com" target="_blank">gregkempe@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">[...]<br><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">
We're building a website that wraps functionality exposed by an existing Perl EPP library. Perl has great EPP support and we don't want to re-implement that library in another language. In the medium term, the website will need to offer a fairly rich user experience that calls out to other databases and services beyond this one library.</div>
</div></blockquote><div><br></div><div>Sounds good.<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">
</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">We're exploring two options:</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"><br></div>
<div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"> 1. use Dancer to build the entire website</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"> 2. use Dancer to power a thin REST API around the library and use another framework (eg. in Python) to build the rich website experience.</div>
<div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"><br></div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">Our requirements include:</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">
<br></div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"> * move quickly, use the right tool for the job (ie. favour re-using components over building everything from scratch)</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">
* modern website tooling, such as SASS for CSS, good HTML form support, model validation</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"> * well documented and mature software</div>
<div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"> * relatively easy for other devs to work on the project later</div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">
<br></div><div style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">I'm deliberately trying to avoid a language flame war. Rather, I'm evaluating based on the size and maturity of the User Experience/UI section of the Perl community. Dancer seems well placed for API servers, but the web dev communities seem to be focused around Ruby, Python, Node etc. which is making me lean toward option (2) above. Is that a reasonable evaluation?</div>
</div></blockquote><div><br></div><div>The way I suggest people write their website is by separating the application logic from the web layer. I usually implement an API with routes defined under MyApp/Web.pm. The rest of MyApp/ contains all the application logic that can survive and live without the web layer, if needs be.<br>
<br></div><div>In your case, writing just the web layer would be very simple. You could then transition it to your use application, written in whatever language you want. If you write it correctly, you could switch from Dancer to a different web framework (whether in Perl or not).<br>
<br></div><div>Hope that helps, and good luck with your endeavor! :)<br><br></div><div>Sawyer.<br></div></div></div></div></div>