<div dir="ltr"><span class="im" style="font-size:12.8000001907349px">On Thu, Jun 18, 2015 at 12: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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Ihe,<div><br></div><div>the discussion starts to take too many threads for my brain the be able to wrap around it.</div><div>But I’ll answer some of the questions that  came up in your emails, one by one.</div><div><br></div><div>1. Scala WILL be used. Spark is implemented in Scala. So there will be millions of Scala instances</div><div>running. </div><div><br></div></div></blockquote><div><br></div></span><div style="font-size:12.8000001907349px">Scala is a language for which you do need a CS degree. When I say that I don't literally mean you need a degree but you need knowledge that you are less likely to have encountered if you have not done a CS degree.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">In general functional programming is something you need to learn at college or at least from an academic, not from other developers and especially not from non-academics who have written books because they don't know what to teach or how to teach it.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">So where are these Scala programmers going to come from. Well they need to come from the universities but I don't think universities will produce them because universities don't like failing students. Back in the 90's FP was on the 1st year curriculum at UCL. I asked my tutor why it got removed, he said too many students were failing it and  passing the 1st year programming course was mandatory to getting to year 2, so they changed it. Happily they have reverted and now teach Haskell in year one. Programming Scala will be a bloody hard course I don't think enough students could/would get through it (stayed tune for another post on this).</div><span class="im" style="font-size:12.8000001907349px"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>If ... Typesafe (the company who does the Scala compiler) will make money out of this: I would say no.</div><div>I followed their business plan…. and honestly, I am not impressed. I think they have very good engineers but no clue</div><div>how to turn this into money. And that’s unfortunate because they COULD make money out of it,</div><div><br></div><div>2. About what’s more important for the success of a programming language: #installations, # developers or #millions$$. </div><div><br></div><div>Well, it’s subjective. </div><div><br></div><div>Honestly, all I care is that (a) there is an important problem that people need to solve and (b) that programming language is the</div><div>best tool to solve that problem.</div><div><br></div><div>According to this, yes, XSLT and XQuery do the job.</div><div><br></div><div>And, also, I don’t think either XSLT or XQuery or JSOniq are the kind of languages that increase the number of developers to millions.</div></div></blockquote><div><br></div></span><div style="font-size:12.8000001907349px">Agree.</div><span class="im" style="font-size:12.8000001907349px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>3. The idea that we need “millions of developers” gets me crazy. No, we don’t.  We just need smarter people with better tools.</div><div>(A good tool like Oxygen has more effect on the success of XQuery then anything we cold have done to design it better….)</div><div><br></div></div></blockquote><div><br></div></span><div style="font-size:12.8000001907349px">Agree.</div><span class="im" style="font-size:12.8000001907349px"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>E.g. today there was an article that made the tour of the Internet: "US needs 5 million data scientists by 2017.”</div><div><br></div><div>Now contrast that with the little experiment that I was running recently: here is the simplest statistical problem you can imagine.</div><div><br></div><div>You have 3 boxes and 6 balls: 3 white and 3 back. You put the balls in the boxes, 2 in each. I take one ball out of one box and it is black.</div><div>What is the probability that the secod ball in the same box is also black ?</div><div><br></div><div>I asked this question to CTOs of data science companies, Phd in math, Phd In CS, the head of machine learning at Google, hordes of “data scientists”.</div><div><br></div><div>Out of tens of people I asked, I got only TWO correct answers: both where Phd in physics. (not the CTOs, not the head of machine learning..)</div></div></blockquote><div><br></div></span><div style="font-size:12.8000001907349px">Pick a Box A. </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Sampling is without replaceent.</div><div style="font-size:12.8000001907349px">Chance of 1st ball being black = 3/6 = 1/2</div><div style="font-size:12.8000001907349px">Chance of 2nd ball being black = 2/5.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Chance of both being blank = 1//2 * 2/5 = 1/5.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">BUT there are 2 ways for Box A to have 2 black balls</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">a). Box B could have zero black and Box C 1 black  or </div><div style="font-size:12.8000001907349px">b) Box C could have zero black and Box B 1 white.</div><div style="font-size:12.8000001907349px">So multiply by 2</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Se P (Box A has 2 black balls) = 1/5 * 2 = 2/5.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">BUT there is only a one in 3  chance of selecting Box A </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Final answer = 2/5 * 1/3 = 2/15</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">I settle for partial credit. </div><span class="im" style="font-size:12.8000001907349px"><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Now, tell me : if US hires 5 million (!!) data scientists in the next 2 years, what’s the probability that ANY good data science, and some reliable </div><div>results come out of that! ?</div><div><br></div><div>You know the story: garbage in, garbage out ?</div><div><br></div><div>So, no I don’t believe that hiring hordes of uneducated developers helps. (maybe it’s my ex-communist snobbish view concerning the education, or lack thereof..) </div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>Just hire less developers, but smarter ones, and give them very good tools to do their job, that’s all.</div></div></blockquote><div><br></div></span><div style="font-size:12.8000001907349px">Agreed</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 18, 2015 at 12: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"><div style="word-wrap:break-word">Ihe,<div><br></div><div>the discussion starts to take too many threads for my brain the be able to wrap around it.</div><div>But I’ll answer some of the questions that  came up in your emails, one by one.</div><div><br></div><div>1. Scala WILL be used. Spark is implemented in Scala. So there will be millions of Scala instances</div><div>running. </div><div><br></div><div>If ... Typesafe (the company who does the Scala compiler) will make money out of this: I would say no.</div><div>I followed their business plan…. and honestly, I am not impressed. I think they have very good engineers but no clue</div><div>how to turn this into money. And that’s unfortunate because they COULD make money out of it,</div><div><br></div><div>2. About what’s more important for the success of a programming language: #installations, # developers or #millions$$. </div><div><br></div><div>Well, it’s subjective. </div><div><br></div><div>Honestly, all I care is that (a) there is an important problem that people need to solve and (b) that programming language is the</div><div>best tool to solve that problem.</div><div><br></div><div>According to this, yes, XSLT and XQuery do the job.</div><div><br></div><div>And, also, I don’t think either XSLT or XQuery or JSOniq are the kind of languages that increase the number of developers to millions.</div><div><br></div><div>3. The idea that we need “millions of developers” gets me crazy. No, we don’t.  We just need smarter people with better tools.</div><div>(A good tool like Oxygen has more effect on the success of XQuery then anything we cold have done to design it better….)</div><div><br></div><div>E.g. today there was an article that made the tour of the Internet: "US needs 5 million data scientists by 2017.”</div><div><br></div><div>Now contrast that with the little experiment that I was running recently: here is the simplest statistical problem you can imagine.</div><div><br></div><div>You have 3 boxes and 6 balls: 3 white and 3 back. You put the balls in the boxes, 2 in each. I take one ball out of one box and it is black.</div><div>What is the probability that the secod ball in the same box is also black ?</div><div><br></div><div>I asked this question to CTOs of data science companies, Phd in math, Phd In CS, the head of machine learning at Google, hordes of “data scientists”.</div><div><br></div><div>Out of tens of people I asked, I got only TWO correct answers: both where Phd in physics. (not the CTOs, not the head of machine learning..)</div><div><br></div><div>Now, tell me : if US hires 5 million (!!) data scientists in the next 2 years, what’s the probability that ANY good data science, and some reliable </div><div>results come out of that! ?</div><div><br></div><div>You know the story: garbage in, garbage out ?</div><div><br></div><div>So, no I don’t believe that hiring hordes of uneducated developers helps. (maybe it’s my ex-communist snobbish view concerning the education, or lack thereof..)</div><div><br></div><div>Just hire less developers, but smarter ones, and give them very good tools to do their job, that’s all.</div><div><br></div><div>4. However, even I don’t believe that we need millions of developers writing XQuery, the question still remains:</div><div><br></div><div>Did we do the best we can to market XQuery ? Of course not. Books are scarce, the little material is badly written, there are no classes, etc.</div><div><br></div><div>The W3C XQuery web site had “to be added..” for 8 YEARS !!!!! (don’t even get me started …)</div><div><br></div><div>The community is split, and instead of getting together to try to make a common effort to market their common interest, they each one fights for </div><div>showing off THEIR muscles, etc.</div><div><br></div><div>The XQuery community spent no efforts into marketing, and unfortunately a programming language, like any product, needs MARKETING.</div><div><br></div><div>The SQL community spent TONS of efforts for marketing it… long ago….and now you can see the results.</div><div><br></div><div>Scala community spends TONS of efforts for marketing. Etc. Etc. </div><div><br></div><div>Well. I am not sure how to solve that, other then to open my (big) mouth every time I get a chance. (and yes, usually the results is… "Dana is grumpy" :-)</div><div><br></div><div>A more community-based effort would be needed to  better explain to the world what XQuery is and what they can do with it.</div><div><br></div><div>And yes the fact that MarkLogic pretends that they’ve never heard of XQuery in their life and sells this as “their” technology</div><div> to their customers  doesn’t help XQuery either. (and honestly, I think it’s dumb business mistake for them too….but  who am I to judge....).</div><div><br></div><div><br></div><div><br></div><div>===========</div><div><br></div><div><br></div><div><br></div><div>A separate email about the market of XQuery.</div><div><br></div><div>Best</div><div>Dana</div><div><div class="h5"><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div><blockquote type="cite"><div>On Jun 18, 2015, at 12:07 AM, Ihe Onwuka <<a href="mailto:ihe.onwuka@gmail.com" target="_blank">ihe.onwuka@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 17, 2015 at 2:01 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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Depends what you call “mainstream” (or successful) for a programming language…... <br><div><br></div><div>Is it calculated in (1) #developers ?</div><div><br></div><div>Or is it calculated in (2)  #instances running it ?</div><div><br></div><div>Or is it calculated in (3) #millions of dollars revenue from it ?</div><div><br></div><div>==========</div><div><br></div><div>A. If (2), the Scala will be a HUGE success — because of Spark. </div><div><br></div><div>IBM just offered to put more then 3000 (!! and that’s a LARGE number) of developers on Spark.</div><div><br></div></div></blockquote><div><br></div><div>Yes on Spark. Not Scala. Spark. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>Cloudera just seemed to have dumped Hadoop to become a Spark reseller.</div><div><br></div><div>So…. in terms on number of instances running it, Scala WILL be a huge success.</div><div><br></div></div></blockquote><div><br></div><div><div>Spark supports Java, Python and Scala there is an open source SparkR.</div><div><br></div><div>Now let me remind you of your opening gambit in the discussion.</div><div><br></div><div><span style="font-size:12.8000001907349px">************************************************************</span></div><div><span style="font-size:12.8000001907349px">"Even though, because it’s functional, it will be restricted to be used only by people with CS degrees, and not by</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">random Joes and Janes who write web sites. The way it is designed it is intended to make a population of educated programmers</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">ETREMELY efficient, and NOT to increase the  total number of developers to hundreds of millions.</span><br style="font-size:12.8000001907349px"><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">When being reproached this fact in the past, my answer was always the same: building a database application should not be for the uneducated.</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">It’s like building a 30 story building, you don’t do that without a architect ad a structural engineer.</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">E.g. if you want to eradicate a grave neurological disease, you don’t lower the bar to allow anyone from the street to perform a neurosurgery,</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">you just make the existing neurosurgents more productive."</span><br></div><div><span style="font-size:12.8000001907349px">*************************************************************</span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Now you tell me what you think is going to happen.</span></div></div><div><span style="font-size:12.8000001907349px"><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div>(how is Tyrpesafe, the company that does the Scala compiler making money … that’s another story…)</div><div><br></div><div>B. If it is (3) — millions of $$$, I can probably give you the most “cost-effective” programming language in the world. </div><div><br></div><div><a href="https://en.wikipedia.org/wiki/K_(programming_language)" target="_blank">https://en.wikipedia.org/wiki/K_(programming_language)</a></div><div><br></div><div>It’s used for high end financial systems, and a copy of this compiler costs about $1M.</div><div><br></div><div>Not bad ….</div><div><br></div><div>Number of developers writing code in this language … probably in the 100s….</div><div><br></div><div>C. If it in terms of (1) number of developers …. are we really sure it matters ?</div><div><br></div></div></blockquote><div><br></div><div>Yes. </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>Who makes money today out of Javascript ? (arguably the most popular programming language …)</div><div><br></div><div>Nobody.</div><div><br></div></div></blockquote><div><br></div><div>Loads of people make a living out of it.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>======================</div><div><br></div><div>So, which one do you care about ?</div><div><br></div><div>I care about (2) and (3).</div><div><br></div></div></blockquote><div><br></div><div><span style="font-size:12.8000001907349px">If the answer were 2 XML would be deemed to be a raging success. But of XQuery's woes you said "</span><span style="font-size:12.8000001907349px">So…. I think it is simply a question of …. there is no market for XML ……(aka no enough MONEY in the market)." </span><br></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">Similarly having loads of instances running Scala has to translate in some meaningful way (beyond making money for Databricks and co). Show me the money.</span><span style="font-size:12.8000001907349px"><br></span></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div><div><div><div><div><blockquote type="cite"><div>On Jun 17, 2015, at 10:47 AM, Ihe Onwuka <<a href="mailto:ihe.onwuka@gmail.com" target="_blank">ihe.onwuka@gmail.com</a>> wrote:</div><br><div><div dir="ltr">I wish I could agree with you but I think it is different this time.<div><br></div><div>Couple of days ago I saw an update on the Scala group, somebody saying that the upsurge of interest in Spark could be the killer app that catapults Scala into the mainstream. Much as I would like to see it happen for a functional programming language, everybody except Scala dev's knows that the language is just too damn complicated to ever go mainstream. </div><div><br></div><div>Even if this criticism could not be levelled at Scala, suspend disbelief for a minute and accept that Spark is indeed this killer app, alas it is not going to catapult Scala anywhere because the people employed in that domain will demand that it is delivered in Python and/or R and the people that hire them will acquiesce and say verily so. </div><div><br></div><div>In the 1990's the bell tolled for the Cobol mainframe programmer. It's not like that now. On the JVM, the message is not adapt to Scala/Clojure or die it's don't worry mate stick to what you know and Java 8 will bail us out.</div><div><br></div><div>The IT industry has presided over the widepsread and rudimentary amateurisation of  software development. So when the right solution comes along it encounters a rearguard  resistance from people who depend on the technological status quo for their jobs and who roll out their stock in trade objections (performance usually high up on the list). It's not like 1990 when mainframe programmers were saying I need to learn Unix/C and an Rdb and/or 5 years later I need to learn Java and what they thought to be OOP. Hence 20 years later we are still talking Java, Javascript and SQL and 5 years on they will be looking at Java 10 and still writing Fortran with classes. The industry goes along with it because they can continue to source bodies cheaply.</div><div><br></div><div>I absolutely agree that what you said should be the way it is goes but I don't see how it is going to happen with the vested agenda's at play.</div><div><br></div><div><br></div><div><br></div><div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 17, 2015 at 1:10 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:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><span><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br></blockquote></div><br></div><div class="gmail_extra">Well I have no particular beef with the format itself other than the lack of tools. Now that we have JSONiq I am less bothered about that (assuming one has the opportunity to use it). <br></div></div></div></blockquote><div><br></div></span>Well, JSONiq is only implemented by Zorba (and another implementation in IBM middle tier).</div><div><br></div><div>And Zorba is a dead piece of code.</div><div><br></div><div>So, having “JSONiq” as a specification…...doesn’t mean much, isn’t it ? Unless is adopted by other XQuery processors.</div><div>(which I cross fingers they will do…)</div><div><br></div><div><span><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra">I agree with your ideals (1 and 2 above) too but it should be evident from the sociology of the JSON community that these things are not going to happen. </div></div></div></blockquote><div><br></div></span><div>Well… nope. Not clear at all. </div><div><br></div><div>I started working on query languages for XML in 1996. </div><div><br></div><div>Same as now, the whole industry was for using SQL for querying XML — including ME, I had </div><div>a system running, a bunch of PhD students working on that, etc.</div><div><br></div><div>The decision of the W3C NOT to use SQL for that purpose was taken in 2001.  </div><div><br></div><div>5 years later. You know how many query languages have been proposed during those 5 years ?</div><div>Tons: UnQL, XML-QL, etc, etc.</div><div><br></div><div>Those things need TIME. </div><div><br></div><div>People need to try SQL first, before they realize it’s a dead end. </div><div><br></div><div>MarkLogic needs to try Javascript on the server side, before realizes that’s a dead end.</div><div><br></div><div>The industry moves MUCH, MUCH slower that one can expect.</div><span><div><br></div><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra">You have people putting stuff in JSON databases without thinking how are we going to get it out and coming up with half-assed solutions for doing so. This is not progress and this is not good.<br></div><div class="gmail_extra"><br></div></div></div></blockquote></span></div><br><div>Again, patience is golden :-)</div><div><br></div><div>There will be tons of those half baked solutions (MongoDB’s JSON query language, CouchDB’s..), before people realize that this</div><div> is not going anywhere….some of those databases will be acquired, never to be seen again, them or their query languages….etc.</div><div><br></div><div>===============</div><div><br></div><div>Honestly, I give it 5 years for the JSON query languages to stabilize. 2020 would be my estimate. Even later if there is a database bubble crash in the</div><div>meantime.</div><div><br></div><div>Best</div><div>Dana</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></div></div></div></blockquote></div><br></div></div>
</div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>