--
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/oyrODCgYmQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/oyrODCgYmQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.
Have you read this? Before you dismiss Evan's stance as misguided, make sure you fully understand it.
1. There are always limits to avoiding duplication. It's not like Elm forbids any generic code. You can still write functions and modules and all that fun stuff.
And, you can still simulate typeclasses with records of functions. So saying that Elm forces code duplication is inaccurate: it can do what TypeClasses can, just with a bit more syntactic overhead, but in a way that I think comes with some serious advantages.
2. HKP will allow for more general code. However, applicative's infix zoo leads to some of the least comprehensible Haskell code I've ever seen, and monads have some serious issues (see Transformers). So this makes sense as a long term goal.
3. Being simple is not the same as being dumbed down.
4. In some cases, unnecessary generalization can be as bad as premature optimization.
5. Elm's mantra isn't that things should be dumbed down. It's that things should be planned, and when they're done, done right. Haskell has evolved from theory developments. That's great, but there are times you can tell it has a bunch of different ideas that have been cobbled together. It's module system is far from optimal. There's no good solution for combining monads. Haskell keeps introducing new notations (list comprehensions, do notation) then advising against using them.
If Elm hastily adds too many features, I think it risks becoming like C++: it has every feature you could possibly want, but put together in a way that makes them awkward to use, unable to change because of backwards compatibility.
--
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.
I think that this thread is doing a pretty good job of bringing to the surface some great differences in opinion. Allow me to summarize so that we can debate the right things:1) Differences in goals - "...we have not made a dent on the real goal, which is to get all the existing front-end programmers"Evan wants Elm to grow in a way that predominantly converts the average front-end JavaScript programmer, rather than the average functional programmer. The average front-end programmer has access to high quality libraries and excellent tooling. The average functional programmer (and we'll use Haskell as example) has access to awesome language features for structuring code in elegant ways. In order to appeal to either group, you need to compete on the appropriate fronts.The point is that it doesn't make sense to argue about the tasks (what to implement) rather than the goals (who is Elm targeting for growth in adoption) because Evan is going to spend his time to advance his goals. So either 1) directly argue against Evan's goals (to whom should Elm appeal) or 2) advance your own goals by doing the tasks yourself (i.e. open a pull request that implements type features, or rewrite FRP and Graphics in PureScript).
Q: Does Evan have the right goals? If not, what are the right goals?
Q: Are Evan's fears about the inapproachability of Haskell valid?
2) Disagreement about the consequences of adding advanced type features2a) "My opinion is that these features create serious accessibility problems in Haskell"I interpret that to mean that Evan believes that adding this functionality makes the language more difficult to use for everybody. A possible explanation for Evan's concerns is that once these features are included, then they will start showing up in all of the APIs of the major standard libraries, which would make the entire language more mentally demanding to use, thus alienating the average front-end programmer.
Q: Is it true that advanced type features add more costs than technical beauty/efficiency benefits, to the detriment of adoption?2b) "I do not yet feel confident that the pedagogy that must come with this power has been fully fleshed out"I interpret that to mean that Evan believes that we shouldn't add an advanced feature until we know for sure we have a good way to explain it to raw beginner programmers.
Q: Is it true (and is it important) that the best way to teach programmers how to use advanced type features is largely undecided?2c) "My view here is that there is no need to rush. When our community collectively needs this kind of feature"This is the point of contention that everybody is addressing, but approaching from different personal perspectives. Note how, in the presence or absence of the above contexts, particularly that of the goals of Elm, this question changes:
Q: Does Elm need advanced type features today?
Ok, great.
"No, the goal should not be to convert existing frontend developers to elm."
I'm pretty sure that this comes from the greater goal of language adoption and applying the technique of focusing on the largest market. Which of those is flawed? That language adoption is a bad goal, or that focusing on the average developer (largest market) is not the best way to drive total adoption?
>> Q: Is it true (and is it important) that the best way to teach programmers how to use advanced type features is largely undecided?
> No, that's not true. There is a plethora of material on advanced Haskell features out there.Bunch of materials isn't a course. Clean goal, structure and gentle repetition mandatory to make a course approachable by practicing industry engineers. Agenda and feedback are also attract people. "plethora of material" is only useful for full-time students with geeky mindset, who have time and will to research gaps and waste on useless duplication in random flow of articles.
On Oct 27, 2014, at 11:54 AM, Jonathan Leonard <joha...@gmail.com> wrote:
> I definitely believe that if you solve the problems in an elegant fashion, popularity will take care of itself.
And yet this is the crux of the issue: Haskell has elegant solutions to all sorts of problems people have in the real world and yet it remains "unpopular". There are all sorts of reasons for that, and the dismissiveness that many Haskell advocates have for several of those reasons is also one of those reasons.
Time will tell, ultimately, whether Evan’s goals with Elm (including approachability and the desire to convert front end programmers) are going to be realized, but _I_ think they stand a better chance than Haskell's (or PureScript’s) desire to "build it and they will come", where "it" is the elegantly solved problem…
Comparing Elm to PureScript is an interesting academic exercise (as are all language comparisons) and if you’re presenting to a Haskell meetup, they’re going to be inherently more favorable to PureScript and view Elm’s goals as "lesser", in the same way that they already view nearly all other languages as "lesser". That’s fine. No one should criticize Haskell developers for preferring languages that are "more like" Haskell. Just bear in mind the set of Haskell developers is a lot smaller than the set of front end developers that Elm is targeting.
--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/oyrODCgYmQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.
On Mon, Oct 27, 2014 at 1:05 PM, Sean Corfield <se...@corfield.org> wrote:On Oct 27, 2014, at 11:54 AM, Jonathan Leonard <joha...@gmail.com> wrote:
> I definitely believe that if you solve the problems in an elegant fashion, popularity will take care of itself.
And yet this is the crux of the issue: Haskell has elegant solutions to all sorts of problems people have in the real world and yet it remains "unpopular". There are all sorts of reasons for that, and the dismissiveness that many Haskell advocates have for several of those reasons is also one of those reasons.
Time will tell, ultimately, whether Evan’s goals with Elm (including approachability and the desire to convert front end programmers) are going to be realized, but _I_ think they stand a better chance than Haskell's (or PureScript’s) desire to "build it and they will come", where "it" is the elegantly solved problem…
Comparing Elm to PureScript is an interesting academic exercise (as are all language comparisons) and if you’re presenting to a Haskell meetup, they’re going to be inherently more favorable to PureScript and view Elm’s goals as "lesser", in the same way that they already view nearly all other languages as "lesser". That’s fine. No one should criticize Haskell developers for preferring languages that are "more like" Haskell. Just bear in mind the set of Haskell developers is a lot smaller than the set of front end developers that Elm is targeting.It seems like historically it isn't the "elegant" languages that catch on, not by a long shot. Just take a look at C, C++, Javascript, Java, Ruby, and Python - some of the most popular programming languages of the last few decades. None of them are especially great examples of carefully researched and designed language that let people create the most elegant solutions. If one looks closely there were probably seemingly languages available at the time that could have fit the bill.
Actually if you look closely at these languages, they caught on for different reasons.Javascript caught on because it was built into a web browser and the other browser makers adopted it as well. This is sort of the "king maker" approach to popularity - your language gets "picked" by someone or something that is popular for other reasons which drives wide adoption. I believe C and Ruby followed this path as well, with UNIX and with Ruby on Rails.
Yes, but the main problem of the approach you mention is that the people who would be put off by typeclasses and such are most likely already put off by elm
On Tue, Oct 28, 2014 at 4:15 AM, Jonathan Leonard <joha...@gmail.com> wrote:Yes, but the main problem of the approach you mention is that the people who would be put off by typeclasses and such are most likely already put off by elmI think this is the core of the issue where we will have to agree to disagree. I don't believe that the people who would be put off by typeclasses will be put off by Elm.
On Tue, Oct 28, 2014 at 4:15 AM, Jonathan Leonard <joha...@gmail.com> wrote:Yes, but the main problem of the approach you mention is that the people who would be put off by typeclasses and such are most likely already put off by elmI think this is the core of the issue where we will have to agree to disagree. I don't believe that the people who would be put off by typeclasses will be put off by Elm.
The whole point of Elm is to make functional programming accessible to a wider audience who of people who are put off by Haskell. If you say that this audience doesn't exist, then what is the point of Elm? Why don't we all just use Fay or PureScript?
Looks like something's in the works:
https://github.com/bodil/purescript-signal
Haven't taken a close look, but they did adopt my squiggle notation!
--
--
There exists a large constituency of frontend programmers who:
....
c) are not willing to educate themselves with respect to higher orders and types.
On Tue, Oct 28, 2014 at 11:43 PM, Jonathan Leonard <joha...@gmail.com> wrote:
There exists a large constituency of frontend programmers who:....c) are not willing to educate themselves with respect to higher orders and types.
--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/oyrODCgYmQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--
You received this message because you are subscribed to the Google Groups "Elm Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.
Your view (if I understand correctly) is more pessimistic on how many people from the mainstream can be won over. From that viewpoint, it makes sense to have faster integration of more advanced type features because people who come to Elm will be open to learning those based on complicated* documentation from Haskell.* at least for average mainstream front-end developers
On Tue, Oct 28, 2014 at 11:43 PM, Jonathan Leonard <joha...@gmail.com> wrote:There exists a large constituency of frontend programmers who:....c) are not willing to educate themselves with respect to higher orders and types.You are presenting a false dichotomy here. It's not: either you are not willing to learn higher order types, or you are willing to learn and you will have no problem with learning them now.
--
Not only is a false dichotomy, it’s a really offensive categorization that allows the type system advocates to simply dismiss folks who don’t want these features as being "uneducated" or "unethical".There exists a large constituency of frontend programmers who:....c) are not willing to educate themselves with respect to higher orders and types.You are presenting a false dichotomy here. It's not: either you are not willing to learn higher order types, or you are willing to learn and you will have no problem with learning them now.
As far as I’m concerned, this thread is proving completely pointless because Jonathan has already made up his mind that PureScript is "better" because it has some features from Haskell thathe thinks everyone should use -
and he clearly thinks very little of people who don’t share his opinions on type systems...
> And, if it stays in its current level of maturity it would be nothing more than a huge validation to all the extremist anti-types types
Er, maybe you should read that back… you’re painting everyone who doesn’t agree with you as an extremist.
> And, I must ask: do you say this as someone who actually does understand what the features entail and what benefits they offer? I find it very hard to believe that you have all the requisite understandings and yet still reject these ideas
And this is exactly the sort of condescending stuff that puts people off the Haskell community. As soon as someone doesn’t agree with you, you question their ability. Lovely.
--
You received this message because you are subscribed to a topic in the Google Groups "Elm Discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elm-discuss/oyrODCgYmQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elm-discuss...@googlegroups.com.
I agree, this conversation has gotten ugly. I'm sorry if I contributed to that in any way.
Jonathan, I share some of your frustrations but I think you should be much more careful in how you say things. Whether you think it's valid or not, some of your responses are exactly the sort of thing Evan is probably concerned about.
He does not want a community in which threads like this in the norm. And I agree.
Sean, whether or not you think your characterizations of Jonathan are accurate, I think some of your comments were unhelpful and uncharitable toward Jonathan.
What I find frustrating about this is that when conversations get ugly, the actual issues are not given sufficient attention and people just end up responding to the general unpleasantness and the labels being tossed around. I still feel like we have not really gotten to the bottom of things, but I don't have much hope that this thread will get us there and would rather just drop it for now like Joey suggests. Unlike Joey, I'm not convinced there's a fundamental impasse, but perhaps we can discuss these things another time.