<div dir="ltr">It's not really a matter of learning something new - it's more about practicality. I know XQuery, Haskell etc, for example, but for purely pragmatic reasons (such as the need to use existing libraries, and the desire to use them with ease - i.e. without mucking around with FFI, and the associated impedance mismatch that using a library written in an imperative language like C from a pure functional language causes), and because I'm not working on that code alone and other people should be able to pick it up where I left it and continue working, 99% of the time I'm writing in C++, C#, Python etc.<div><br></div><div>Simply put, the requirement to work with other people and to interoperate with other systems makes more conventional stuff <i>more productive</i>, ironically, while unconventional things that break away from the mold are only more productive in a hypothetical universe where they are all by themselves and everyone and everything is starting from a clean slate (which does in fact occasionally happen IRL when there appears a new niche that is not [yet] tightly connected to everything else). <br><div><br></div><div>That's why I love the fact that functional and declarative stuff is creeping into those mainstream imperative languages. It gradually gets me to the point where I can write neat declarative code <i>in production</i>, and no-one objects because they don't realize that it's radically different from what they're used to! (and those who do, are generally in the same boat as me and enjoy it the same). For them, it's just some new syntax that got added to the language they know and use, and so obviously it's okay by default. </div><div><br></div><div>I think we'll eventually get to your 95%+5% end goal this way anyway. It will just be slow enough that nobody will notice other than in retrospect.</div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 23, 2015 at 4:23 PM, daniela florescu <span dir="ltr"><<a href="mailto:dflorescu@me.com" target="_blank">dflorescu@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">><br>
> 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.<br>
<br>
As I said in my previous email.<br>
<br>
Now in 2015 I realize that developers have their “favorite” language, and making them change it’s close to<br>
impossible, so the optimal is to give them better tools to do their job in THE language they are more productive in.<br>
<br>
So if this is C#, or Javascript, or whatever…. let it be.<br>
(ever crossed your mind why in an EC commerce site when you sort on price/sometinh, it GOES BACK TO THE SERVER most of the time to<br>
do a simple sort on 20 products  !???? Sounds stupid no, ? well, that’s because Javascript doesn’t HAVE a sortby ….so …)<br>
<br>
It’s better for those imperative languages to HAVE a sequence comprehension then NOT to have it. It makes the developers<br>
in those languages (who otherwise wouldn’t have changed anyway…) more productive….<br>
<br>
Now, the fact that 90% of developers like comfort and/or are learning impaired and cannot learn something new<br>
 does NOT mean that ALL developers are lazy and/or learning impaired and cannot learn something new…..<br>
<br>
For those who CAN learn something new, or for the fresh new students with blank, fresh new minds…..well, teach them something better<br>
and more productive.<br>
<br>
And that would be (according to me..) the OTHER way around: a language 95% declarative +  5% imperative.<br>
<br>
As I gave you as an example: when Oracle Fusion started the idea was that Java, being easier to program in then the “declarative” PL-SQL…. the<br>
applications will be MUCH better.<br>
<br>
Well, 10 years later, multi-billion investment with epsilon returns, it turns out that the PL-SQL version was MUCH better then the Java version.<br>
(1000 times more code, more bugs, less productive, more developers, more politics and decision makers, etc, etc — as simple as that ..)<br>
<br>
A failure that Oracle never talks about ….. just Oracle Fusion silently disappeared from the marketing slides :-)<br>
<br>
=====<br>
<br>
So, no, I would not take either side at this point.<br>
<br>
Best<br>
Dana<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div>