<br><br><div class="gmail_quote">On Thu, May 31, 2012 at 11:53 PM, C K Kashyap <span dir="ltr">&lt;<a href="mailto:ckkashyap@gmail.com" target="_blank">ckkashyap@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi folks,<div><br></div><div>I have the opportunity to make a presentation to folks (developers and managers) in my organization about Haskell - and why it&#39;s important - and why it&#39;s the only way forward. </div></blockquote>
<div><br>You (and we) may believe that but saying so usually does not work.<br>What is more likely to work is talking to people about what interests them (rather than you :-) ).  For example teachers of CS are usually struck by and bowled over by quicksort in 2 lines because for them teaching quicksort is considered an important activity.  Professional object-oriented programmers are unlikely to take to such an &#39;academic&#39; example kindly.<br>
Likewise those interested in algorithms and data-structures would be caught by a (tree) dfs in 1 line, or that a graph dfs and bfs are the same except that a<br>[x] ++ pending <br>becomes<br>pending ++ [x]<br>But if they were not so interested in algos and data-structures (Java programmers more than C++ are particularly prone to being using-happy, understanding-chary) this example would not work.<br>
<br>So in short find what matters to your audience and then survey, focus and drill into that -- using Haskell<br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>I request you to share your experiences/suggestions for the following -</div>
<div>1. Any thoughts around the outline of the presentation - target audience being seasoned imperative programmers who love and live at the pinnacle of  object oriented bliss.</div><div>2. Handling questions/comments like these in witty/interesting ways - </div>

<div>    a) It looks good and mathematical but practically, what can we do with it, all our stuff is in C++</div><div>    b) Wow, what do you mean you cannot reason about its space complexity?</div><div>    c) Where&#39;s my inheritance?</div>
</blockquote><div><br>Yes you need to find a hot OO guru saying that inheritance is best avoided where templates/STL etc work <br><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div>    d) Debugging looks like a nightmare - we cannot even put a print in the function?</div></blockquote><div><br>Maybe a (concocted) example of how the typechecker does most of the debugging for you? Better of course if the example is genuinely hacked out in front of the class (ideally from some thing they want to see solved) that can be convincing re things like debugging.<br>
<br>This also brings up what is (for me) a very important point regarding haskell -- using an interpreter, ie ghci.<br>-- the tight feedback loop<br>-- not being bound to having to write a main<br>-- the general sense of a workbench in which various objects (some joke here for the OO guys?) are are in different states of under construction to shrink-wrapped<br>
<br>Personally I do not see how I could teach (or do) haskell without emacs.  Admittedly this attracts some strongly and repels others equally strongly<br><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>    e) Static types - in this day and age - come on - productivity in X is so much more - and that&#39;s because they got rid of type mess.</div>
<div>    f)  Is there anything &quot;serious/large&quot; written in it? [GHC will not qualify as a good answer I feel]</div><div>    g) Oh FP, as in Lisp, oh, that&#39;s AI stuff right ... we don&#39;t really do AI.</div>

<div>    h) Any other questions/comments that you may have heard.</div><div>3. Ideas about interesting problems that can be used so that it appeals to people. I mean, while fibonacci etc look good but showing those examples tend to send the signal that it&#39;s good for &quot;those kind&quot; of problems.</div>

<div>4. Is talking about or referring to Lambda calculus a good idea - I mean, showing that using its ultra simple constructs one could build up things like if/then etc </div><div><br></div><div>I&#39;m gonna do my bit to wear the limestone!!!</div>

<div><br></div><div>Regards,</div><div><div>Kashyap</div></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>