Show HN: Moya, a web framework and integrated language
moyaproject.com
moyaproject.com
This is something I've been working on since 2011. It's a hard project to sell to people. People have tended to associate it with things like coldfusion, but it's origins are more from MVC Python frameworks.
The use of XML has discouraged some developers. One commenter said it would be like 'a free colonoscopy'.
Be gentle.
I'll dig into it more later, probably.
I built HiveMind (www.crudzilla.com), let's just say it is a different take on how to build web apps :)
I am going to be digging into your stuff! It looks very interest.
Congrats for having built a fairly complete tool with a unique approach to it, that I kinda dig. Also, good work on putting together the example apps, they're extremely useful to understand how the platform works.
I was a big fan of XSLT myself and I know how much shit talking people do about XML.
And I think that's the big shortcoming of this platform, people wouldn't even consider it for a split of a second after seeing the first <tag />. To be honest, while this looks very promising, I think it's a few years late.
I'll give it a serious try when I get the chance!
Given the widespread distaste for "XML overreach" (XLST, SOAP and other 'enterprise-isms') can someone sell this to me?
XML can be a huge syntactical burden, I'll grant you. I read an article about an IBM standard for representing JSON in XML. Madness.
What XML does excel at is representing complex hierarchical data. The way Moya does forms (https://github.com/moyaproject/sociallinks/blob/master/socia...) and models (https://github.com/moyaproject/sociallinks/blob/master/socia...) is actually quite terse, IMO. Especially if you consider the amount of encapsulation in those declarations. Forms for instance, know how to render, validate, and apply themselves.
Slightly more contentious is Moya Code which is a high level language expressed in XML. But it does mean that code and data can be mixed in a fairly effortless way. As a language, Moya Code is actually quite similar to Python. Not surprising since I'm a Python guy.
Here is a loop to print the numbers 1 to 10 in Python and Moya Code:
for i in range(1,11):
print(i)
<for src="1...10" dst="i">
<echo>${i}</echo>
</for>
More characters to type in XML, but it is quite familiar.The extra characters are offset somewhat by the fact that moya tags are very high-level. Imagine if your code to render a page was factored out so that at the top level was barely a dozen function calls and conditions. That's what views in Moya Code tend towards.
Moya's expressions also cut down on lines of code. The following gets the current price of Bitcoin from a web service:
<let btc="(fromjson:get:'https://www.bitstamp.net/api/ticker/')['ask']"/>
Less contentious is the template language, which straightforward to use, and uses the same expressions as Moya Code. There's no need to use a different syntax there. The most complex template for the Moya builtins is probably the threaded comments (https://github.com/moyaproject/moya/blob/master/moya/libs/co...). I don't think that's too bad.I could go on, at great length. I've only waited 4 years to talk about it.
Looks heavily influenced by rails, which is a good thing! Keep up the good work.