Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.
When I first started here, our project manager commented to me that when she programs in C#, she can just "click a box on a page" to make the sort of XML changes we often find laborious. Last night, my soon to be erstwhile housemate also commented that when he does C#, he just needs to specify a set of mappings in a config file. Schemas, XML, JSON and anything else he wants just happens. It's magic!
Now I know a lot of people sneer at this "magic" attitude, but those people would be wrong and my project manager and housemate are right. This is such a common problem that it deserves its own abstraction layer. If you're generating XML by hand, you're doing it wrong. If you're using libraries like XML::LibXML, there's still a good chance you're doing it wrong. As an analogy, if you're developing on an MVC codebase, you know your database handles don't belong in your controller or view. They belong in your model. In MVC, XML generators probably don't belong in your controller or model, they belong in your view and you shouldn't have to write them.
Why is it that other languages have had Bermuda-like functionality built-in to their toolsets for years and we don't? Perl doesn't earn many bragging rights here.
XML is for non-scripting (Score:2)
Ilya Martynov (http://martynov.org/ [martynov.org])
Re: (Score:2)
Practically the only time I have to touch XML in Perl is when interfacing with somebody else system.
True. That's the situation I routinely find myself in. We work with many outside groups and XML is the de facto data interchange format.
With Bermuda, I would have found this much easier to handle if we had proper introspection. I could write a quick "stub" of a Bermuda island file like this pseudo Perl 6 code:
Re: (Score:1)
Perhaps while you are waiting for Perl 6, you should look at MooseX::Storage [cpan.org], it doesn't have an XML backend, but thats mostly cause we haven't had the need for it (if you can choose a schema it would be trivial).
- Stevan
Re: (Score:2)
That does look very interesting. I had also thought that in later stages of Bermuda, I'd want to have optional Moose hooks. They shouldn't be too hard to add :)
Re: (Score:1)
Actually it seems that Bermuda is somewhat redundant with MooseX::Storage (ignoring the fact MX::Storage only works with Moose classes for the moment). I wonder if pooling our efforts might not make sense? Interested?
- Stevan
Re: (Score:2)
Not just yet. For one thing, I refuse to release this until I feel much more comfortable with the design. I've screwed up with this in the past and I'm not anxious to code myself into a corner. I also am being strongly driven to solve an immediate need at the BBC, so I do need to stay focused on that right now.
C# Boasts (Score:1)
Re: (Score:2)
I think a lot of it is in the language. Perl has grown up and unfortunately it's still in the clothes it wore as a teenager and they don't fit well. Many of the things the C# and Java communities can do work because the languages have a regular syntax and introspection.
Re: (Score:1)
Honestly, this is where TIMTOWTDI failed us, it is a double edged sword of flexibility and inconsistency.
- Stevan
Re: (Score:1)
Similarly, many of the things the C# and Java communities have to do (in particular, dependency injection governed by voluminous XML configuration files) is because the languages have other inflexibilities.
Re: (Score:2)
Oh, I certainly agree with that. Doesn't mean I don't want to steal the shiny bits :)
Re: (Score:1)
I think the obvious moral equivalent to static introspection in static languages is dynamic programming (open classes, closures,
eval) in dynamic languages. Instead of clicking buttons in an IDE that generates code for you, you write code against an API that abstracts away a bunch of metaprogramming. The difference is that you are not limited by your tools in how far and fast you can go because you can always abstract out further from the basis you start with.Of course, the flipside is that it’s exp
Why corporate-backed language have great XML (Score:1)
Even if Microsoft only wrote it for themselves, they'd want great XML support for their own purposes, all the way to the tool level, and we'd get decent stuff anyways.
XML is the language of business to business conversations, and the foundation of current-buzzword-complient RPC (SOAP) and it underpins the entire industry-driven "Service-Oriented Architecture" business.
So there's massive focus from those languages on doing XML right.
Perl has seemed to lack a
Re: (Score:2)
http://use.perl.org/article.pl?sid=07/11/29/1432250 [perl.org]