<div dir="ltr">In general I think that haskell has a very low productivity because there are too much distracting and the gap between the real problem and the libraries is very high since there is a lot of abstraction in them.  In the current state, even the haskell EDSLs are far from being close to their respective domain problems, not because Haskell is not enough flexible, but because it is too much flexible and too much abstract.<div><br>At last, a productive programming language must guide the programmer for creating valid and efficient solutions fast. The haskell type system helps in the first very well and this is a great advance, but it does not help on the latter. There are too much alternatives, too much abstraction and with a lot of impedance between them. All of this in combination with Monad transformers and the abstruse errors kill any hope of making Haskell a productive language.</div><div><br></div><div>Haskell is not a high level language in the usual sense, but an abstract metalanguage where the gap between the platform and the concrete solution is very long in terms of effort. </div><div><br></div><div>Still there is a need for an embedded general purpose high level language in which a novice can start to program fast in Haskell by freely mixing effects without a master in monad transformers, packages idiosyncrasies and error intricacies. </div><div><br></div><div> That is why I'm trying to create Transient: a flat monad with very high level effects included, (upto distributed computing). That eliminates the impedances and reduce complexity to a minimum level.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-01 8:59 GMT+02:00 Mike Meyer <span dir="ltr"><<a href="mailto:mwm@mired.org" target="_blank">mwm@mired.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class=""><div dir="ltr">On Tue, Sep 1, 2015 at 12:58 AM M Farkas-Dyck <<a href="mailto:strake888@gmail.com" target="_blank">strake888@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I could compare Java and COBOL; it wouldn't make Java worthy.<br></blockquote><div><br></div></span><div>Of course not. There are application areas for which COBOL is clearly superior to - and hence more worthy than - Java. Or Haskell.</div><div><br></div><div>You seem to be suffering from the common misconception that there is some independent, objective measure of the quality of programming languages. That simply is not the case. It will depend on any number of constraints. For instance, much as I enjoy writing Haskell and appreciate it's virtues, it is less worthy than C/C++ for many of my current projects for the simple reason that Haskell code won't run on the processors those projects need to run on.</div><div><br></div><div>The same goes for teaching an intro programming/CS/SE class. Your measure of "worthy" will depend on your goals and audience. Do you want to introduce programming as an art that can be criticized and enjoyed? Then I'd say Haskell is clearly the choice you want to make. But if the goal is to give the students a feel for what programing is like for most practicing programmers today, then Haskell falls well behind many other languages. And so on through a long list of other possible scenarios with there own metrics of worth.</div></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://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Alberto.</div>
</div>