Pavel,

I’ll respond to this in two different emails, as it contains two different 
important questions.

Best
Dana

> On Jun 23, 2015, at 4:07 PM, Pavel Minaev <[email protected]> wrote:
> 
> I think that was distinguishes LINQ is not that it was the first such 
> experiment, but that it was the first one that happened in a mainstream 
> non-declarative language (as opposed to a fork of one) and was widely adopted 
> by the community of that language.
> 
> As far as what's "better", I think that there are really two different 
> questions here: what's "better" in The Right Way sense, and what's "better" 
> in a "how do you get people to use this" sense. For the latter, there's no 
> doubt in my mind that the way there is to get existing mainstream languages 
> (which are all imperative at heart) to adopt more declarative goodness, 
> including comprehensions/queries, as a subset - it's a much gentler 
> transition for existing users of those languages, and more importantly, it's 
> like a new instrument magically appearing in a toolbox that they already use 
> daily - at some point they're bound to pick it up and use it even just out of 
> sheer curiosity. It's much harder to get someone interested in a completely 
> new language in comparison.
> 
> I'm curious as to what exactly you believe to be features that are necessary 
> to semi-structured data that are unique to XQuery. I've looked at the posts 
> that you've linked to, and e.g. conditionals/typeswitches, functions and 
> recursive functions, and try/catch, are there in pretty much any imperative 
> language with sequence comprehensions, and can usually be combined more or 
> less seamlessly (though if I had to bring up a particularly good example of 
> all of these, it would be F# computation expressions, which are also nicely 
> generalized and extensible - see 
> https://msdn.microsoft.com/en-us/library/dd233209.aspx 
> <https://msdn.microsoft.com/en-us/library/dd233209.aspx> and 
> https://msdn.microsoft.com/en-us/library/dd233182.aspx 
> <https://msdn.microsoft.com/en-us/library/dd233182.aspx>). Implicit type 
> conversions are the only point I can think of that's truly unique here, but I 
> think that to what degree that is appropriate is highly subjective - it's 
> just as easy to get messed-up output with no clear indication of what the 
> problem was due to an unfortunate conversion producing garbage somewhere in 
> the middle of a particularly complicated query. It all depends on the data.
> 
> 
> On Tue, Jun 23, 2015 at 3:35 PM, daniela florescu <[email protected] 
> <mailto:[email protected]>> wrote:
> Pavel,
> 
> NOW we are talking about interesting research !!!! :-)))) 
> 
> Sequence comprehension. Here we go….:-)
> 
> Yes, sequence comprehension  (it’s called monoid comprehension in
> theoretical computer science….)   IS the one of the most important things
>  for a high level/declarative language.
> 
> However, several important remarks:
> 
> ============
> 
> 1. Linq  is NOT a new idea. My PhD thesis was (partially) about adding 
> SELECT-FROM-WHERE
> as an expression to C++. I did it as a pre-processor at that time — remember, 
> it was 1994.
> Others did it too, decades before me !!!!  Remember Pascal-R !??? 
> http://archive.nyu.edu/fda/handle/2451/14595 
> <http://archive.nyu.edu/fda/handle/2451/14595> 
> (probably not, because you are too young..)
> 
> 2. in 2015 XQuery has FROM FAR (!!!!!!!!!!)  the most advanced,  
> expressive-wise, AND
>  the cleanest semantic-wise version of sequence comprehension.
> 
> Every other language should use THAT instead of half-baking 
> Yet-Another-Sequence-Comprehension.
> 
> The FLWOR of XQuery is semantically very clean, has nothing to do with XML, 
> is compositional and elegant,
> and, moreover, optimizable.
> 
> 
> 3. The discussion : should we add sequence comprehension to an exiting 
> imperative language vs. 
> adding scripting extensions to XQuery/high level functional language with 
> sequence comprehension
>  is again old as the times.
> 
> see for example:
> http://dl.acm.org/citation.cfm?id=1142597&dl=ACM&coll=DL&CFID=522088426&CFTOKEN=80093091
>  
> <http://dl.acm.org/citation.cfm?id=1142597&dl=ACM&coll=DL&CFID=522088426&CFTOKEN=80093091>
> ( Donald Kossmann and I  had a detailed  tutorial at Sigmod 2006, and the 
> slides were REALLY funny, if I remember correctly) 
> 
> This was in 2006. (when you read the paper just do a global replace “XML” 
> with “semi-structured data”)
> 
> Now, in 2015, I think BOTH alternatives are good, and viable.
> 
> For example, adding a FLWOR expression to Javascript is a worthwile thing to 
> do, and I am implementing this as we speak.
> 
> Another example: what do you think that Oracle Fusion was (multi-billion 
> failure..)!? Just a rewrite of Oracle application, where the code instead of 
> being written
> in PL-SQL was written in Java with SQL. 
> 
> Same story/question again. 
> 
> 4.  Sequence comprehension is necessary for processing data in general, 
> structured or non-structured.
> 
> However, for processing ****SEMI-STRUCTURED DATA**** you need EXTRA other 
> features, non-existing in 
> ANY other language except XQuery and XSLT.
> 
> I tried to put a list of features needed for semi-structured data in a 
> previous email to this list, ….
> http://x-query.com/pipermail/talk/2015-May/004718.html 
> <http://x-query.com/pipermail/talk/2015-May/004718.html>
> http://x-query.com/pipermail/talk/2015-May/004719.html 
> <http://x-query.com/pipermail/talk/2015-May/004719.html>
> 
> …..but of course I did it fast, and forgot some of the necessary features.
> In particular, I forgot the ability to do metadata search (aka path 
> expressions where you don’t know the data structure).
> 
> ===========
> 
> 
> 
> So, yep. Lots of Computer Science history.
> 
> 
> This is why it is DAMN SAD to see those barbarians starting to query JSON in 
> 2015  like it’s 1995  again …….
> 
> 
> 
> Best
> Dana
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>> On Jun 23, 2015, at 3:07 PM, Pavel Minaev <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> I don't mind at all.
>> 
>> And of course XQuery (well, the parts that are not tied to XDM) is 
>> orthogonal to XML. The way I see it, FLWOR syntax (as well as LINQ etc) is 
>> basically just a very fancy sequence comprehension, and obviously sequences 
>> and trees aren't XML-specific at all. 
>> 
>> FWIW, back when I first saw XQuery (which was after LINQ for me), I remember 
>> being somewhat surprised at the choice of "return" especially for a keyword. 
>> It's not that it was unclear what it did, and the mapping to the more 
>> familiar syntax was obvious. It's just that it implies some transfer of 
>> control traditionally, which is obviously not the case here. "yield", as 
>> used in Scala and F#, made a lot more sense.
>> 
>> I don't mind "for" as much, on the other hand, seeing how it's pretty 
>> commonly used for sequence comprehensions elsewhere (Python, Scala, F# ...). 
>> I think the main reason why LINQ used "from" instead is to induce a sense of 
>> familiarity for those coming from SQL background, which was 99% of its 
>> target audience.
>> 
>> Side note: I don't think that standalone query languages make much sense now 
>> that integrated syntax for sequence comprehensions has become mainstream for 
>> high-level languages. It's just too much effort to do explicit interop from, 
>> say, Java, C# and JS, to XQuery or JSONiq, and it introduces a new syntax 
>> for concepts which are already represented in the host language, with said 
>> syntax being constrained to one narrow domain (XML/JSON). I think that the 
>> way forward is going to be more like LINQ - taking (hopefully!) the lessons 
>> learned from dedicated query languages and seamlessly integrating them into 
>> the language such that they can work on its native data model, and mapping 
>> XML, JSON etc to that model as transparently as possible.
>> 
>> On Tue, Jun 23, 2015 at 2:56 PM, daniela florescu <[email protected] 
>> <mailto:[email protected]>> wrote:
>> Pavel, I hope you don’t mind that I forward your personal  email to the main 
>> list.
>> 
>> Thanks for the links. 
>> 
>> Yes, I am of course aware of the history of it, but I don’t think everyone 
>> else is.
>> 
>> (I even gave feedback to Erik Meijer before he submitted this proposal to 
>> Bill Gates…. and I lost
>> a beer with him because we bet who among the two of us knows XML Schema 
>> better — and he did :-).
>> 
>> This reinforces the ideas that:
>> 
>> 1. the principles of XQuery are orthogonal to XML itself and
>> 
>> 2. spelling FROM and SELECT seems to matter to people A LOT.
>> 
>> Best regards
>> Dana
>> 
>> 
>>> On Jun 23, 2015, at 2:44 PM, Pavel Minaev <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> FWIW, "this language" is actually LINQ:
>>> 
>>> https://msdn.microsoft.com/en-us/library/bb397896(v=vs.140).aspx 
>>> <https://msdn.microsoft.com/en-us/library/bb397896(v=vs.140).aspx>
>>> 
>>> Which, ironically, came out of an earlier Microsoft project called Cω (and 
>>> specifically, the subset of it called X#), which was basically an attempt 
>>> to graft a subset of XQuery onto C#:
>>> 
>>> https://msdn.microsoft.com/en-us/library/ms974195.aspx 
>>> <https://msdn.microsoft.com/en-us/library/ms974195.aspx>
>>> 
>>> It became LINQ after it dropped ties to XDM and was generalized to operate 
>>> on arbitrary CLI object graphs instead.
>>> 
>>> On Tue, Jun 23, 2015 at 2:31 PM, daniela florescu <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> One thing that did strike me is the link cited in one of the comments about 
>>> this article:
>>> 
>>> http://queue.acm.org/detail.cfm?id=1961297 
>>> <http://queue.acm.org/detail.cfm?id=1961297>
>>> 
>>> Just look at the examples.
>>> 
>>> Does everyone see what I see !? :-)
>>> 
>>> Those are just FLWOR expressions, with FOR spelled as FROM and RETURN 
>>> spelled
>>> as SELECT.
>>> 
>>> Can we PLEASE add those as synonyms in the XQuery grammar before you close 
>>> XQuery 3.1  !?
>>> 
>>> Otherwise we’ll hear for another 100 years that XQuery has nothing to do 
>>> with SQL while THIS language
>>> describe in this paper DOES. (sic!)
>>> 
>>> It’s dumb, but that’s how it is.
>>> 
>>> Pretty please !???
>>> 
>>> Thanks
>>> Dana
>>> 
>>> 
>>> 
>>>> On Jun 23, 2015, at 11:04 AM, daniela florescu <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> Ihe,
>>>> 
>>>> you asked why XQuery is not more popular.
>>>> 
>>>> Here is another striking answer to your question: NOBODY KNOWS IT EXISTS.
>>>> 
>>>> Just look at this example.
>>>> 
>>>> https://www.linkedin.com/pulse/sql-vs-discrepancy-somil-asthana?trk=hp-feed-article-title-like
>>>>  
>>>> <https://www.linkedin.com/pulse/sql-vs-discrepancy-somil-asthana?trk=hp-feed-article-title-like>
>>>> 
>>>> I quote: "Indisputably, there may be people who are working on Non 
>>>> Relational
>>>>  Algebra and Non Tuple Relational Calculus, its just that we do not know 
>>>> them.”
>>>> 
>>>> [[[Can someone just answer this guy, so I don’t have to insult him/her !?
>>>> Because I feel a really strong urge….I’ll try to breathe and do some 
>>>> meditation….]]]
>>>> 
>>>> In fact, I know that this is not his/her limitation.
>>>> 
>>>> It’s our OWN failure to explain to the world what XQuery is, what it does, 
>>>> and what is good at.
>>>> 
>>>> Best regards
>>>> Dana
>>>> 
>>>> 
>>>> P.S. And after that, please DON’T ask me why I am SO pissed off at 
>>>> MarkLogic who pretend they never ate the garlic, not does
>>>> their mouth smell of garlic…..
>>>> 
>>>> They MADE all their money out of the power of XQuery  (expressiveness, 
>>>> productivity, etc), yet they pretend they’ve never heard of it….
>>>> 
>>>> That’s something that REALLY gets me angry.
>>>> 
>>>> And this will come back to bait them on the business side very badly too. 
>>>> 
>>>> Oracle would have NEVER done the same thing about SQL…..just saying.
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> _______________________________________________
>>> [email protected] <mailto:[email protected]>
>>> http://x-query.com/mailman/listinfo/talk 
>>> <http://x-query.com/mailman/listinfo/talk>
>>> 
>> 
>> 
> 
> 
> _______________________________________________
> [email protected] <mailto:[email protected]>
> http://x-query.com/mailman/listinfo/talk 
> <http://x-query.com/mailman/listinfo/talk>
> 

_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to