[HN Gopher] Elm at Rakuten ___________________________________________________________________ Elm at Rakuten Author : dragonsh Score : 215 points Date : 2021-08-18 15:04 UTC (7 hours ago) (HTM) web link (engineering.rakuten.today) (TXT) w3m dump (engineering.rakuten.today) | roebk wrote: | The pros and cons listed hear mirror my own views of Elm. | Although, we've only got a handful of small Elm apps in | production it's a joy to work on them. I can rip into them with a | fairly big refactor, fix the compiler errors and be confident | that it's all going to work. I do which there were a larger | selection of Elm packages to take advantage of, but integrating | Web Components into Elm hasn't been bothersome. | folex wrote: | Elm is awesome, its compiler is awesome, but its ecosystem is | kinda stalling, isn't it? | | I mean, a lot of libraries aren't updated to the last lang | version, debugging JS-Elm interactions been a real challenge for | years, yadda yadda. Overall I'd say Elm ecosystem doesn't receive | enough attention to survive. | | I'm not complaining, I'm just sad about that and kinda surprised | I didn't found a mention of that in the OP article. | aeturnum wrote: | I'm not an Elm veteran like a lot of the folks here, but I | think an aspect of Elm is that a lot of the traditional ways | that people expand ecosystems are discouraged by Elm's | approach. For instance, components are hard to do in Elm and | are discouraged in the documentation[1]. | | So my own personal Elm projects have involved a lot of reading | other code and often copying and modifying open source code, | but it's hard to wholesale import components in the way that | JavaScript and other languages do it. My experience with the | language is that it is very easy to do what _I_ want in it, but | it seems more difficult to share that as an open source | contribution in Elm than in similar languages. | | [1] https://guide.elm-lang.org/webapps/structure.html | mechelephant wrote: | I would argue the opposite! The elm slack is very active with | people who frequently contribute to the ecosystem. I don't | think the "a lot of libraries aren't updated to the last lang | version" is true, the vast majority are. | | Debugging elm-JS interactions is not really a problem when | using the standard interop methods of ports and webcomponents. | It's just not something that comes up often. | | Source: have been writing elm professionally for the last 2 and | a half years. | jaeming wrote: | As I understand it, there was a rift in the community over the | leadership's tone in messaging and communication. Some | Developers also felt like they could not contribute in a | meaningful way or have constructive discussion with | maintainers. | | See posts like these for more details and comments: | | https://news.ycombinator.com/item?id=16510267 | | https://news.ycombinator.com/item?id=22821447 | | There are also several great alternatives now. F# with Fable | and Elmish for example: https://zaid-ajaj.github.io/the-elmish- | book/#/ | | And Bucklescript TEA with Ocaml or Reason: | https://github.com/OvermindDL1/bucklescript-tea | | Some others have also gone on to develop new languages taking | inspiration from Elm: https://www.mint-lang.com/ | rtfeldman wrote: | Honestly I think the main reason for this perception is that | people in the Elm community have gotten increasingly tired of | correcting inaccuracies people like to post about Elm on | Hacker News. | | I spent a bunch of time doing that in the past, and | eventually stopped because I felt like Sisyphus. The same | people would crop up on the next thread repeating the same | things anyway. Of course if the claims go unchallenged, it | leads to the perception that they're accurate...but that | doesn't make engaging with them any more enjoyable a way to | spend one's free time. | | If you want to check the health of the Elm community, visit | Elm Slack and ask in the #beginners channel how people feel | about it. It takes about the same amount of time as posting a | HN comment, but it gives a very different perspective than | the one you'd get if your main source of Elm information was | Hacker News comments! :) | | http://elmlang.herokuapp.com/ | superdisk wrote: | Speaking as someone who liked Elm for a while, then | abandoned it, I will say that the biggest problem with the | language is absolutely its leadership. Development moves at | an absolutely glacial pace and basically takes place with | no transparency at all. I would argue that it's more like a | "source available" project than an "open source" one since | the core dev team is so exclusionary. Most planning takes | place inside Evan's head, leaving others to just speculate | as to what's going to happen to the language. | | On top of this, the community is run like a dictatorship. | Dissent is silenced and banned, and faux positivity is | spread far and wide. I got sick of it and was banned from | the Elm subreddit after I expressed my frustration. That's | pretty much when I gave up on the language, years ago, on | version 0.18 (fwiw, they're on version 0.19 now, that's how | slow updates are) | [deleted] | rtfeldman wrote: | This is an example of the type of post I was referring to | being tired of correcting. | | I don't use Reddit anymore, but if memory serves there | have been about 5 people total banned from the | aforementioned Elm subreddit, which is fewer than 1 ban | per year it's existed. | | I invite anyone to evalute the accuracy of "Dissent is | silenced and banned" with that data point in mind, and to | evaluate the accuracy of the other above claims | accordingly. | zoul wrote: | FWIW, I have the same experience as the parent poster. I | used to love Elm, evangelized the architecture, wanted to | write Elm professionally. I was constantly bumping into | things that were not finished or working, but didn't | really mind. But I also often encountered cases where the | leadership team was saying "we don't want this discussion | here, thank you very much", even if the discussion was | perfectly legitimate, friendly, technical and related to | some sorely needed feature or bugfix. I constantly felt | unwelcome, like I was trespassing on someone's lawn. I | didn't want to base my work on that. Eventually I just | shrugged and left. | rtfeldman wrote: | Totally fair! I'm sorry to hear you had that experience, | although I hope maybe you'll someday consider giving it | another chance in the future. :) | | My personal experience has been different, but I upvoted | this because I really appreciated that you shared your | own experience without overgeneralizing it. | cultofmetatron wrote: | Interesting food for thought. I bought your book awhile | back and was 2 chapters in before reading about the | aforementioned "Dissent is silenced and banned" issues | which led me to abandon continuing at the time. Maybe | I'll jump back into it. | | I've not heard of such misinformation being spread about | other languages. Id love to hear your side on why Elm | itself seems to attract such ire if its inaccurate. | rtfeldman wrote: | It's a great question! | | I think there's more than one factor, but the biggest one | comes down to setting expectations, especially in the | early days. | | Elm does a lot of things differently than other | languages, and while I think that overall those | differences have been instrumental to its success, | especially early on it sometimes wasn't clearly enough | communicated when "this is temporarily different because | it's a WIP; you can expect it to be more like what you're | used to in the future" versus "this is different by | design, so expect it to stay different or even to become | more different." | | Examples of this include typeclasses (a lot of people | coming to Elm from a Haskell background assumed Elm would | add them as a matter of course), JS interop (by design, | it's not a traditional FFI, although there was an | unintended backdoor that kind of worked like one; when | that backdoor was finally removed, after much | communication that in retrospect should have happened at | the outset, some of those who had been relying on it were | understandably upset), how the project is run (more like | Clojure than like JavaScript), and what the release | schedule looks like (batching large projects rather than | more frequent smaller releases). | | I think things are a lot clearer today, but for some it's | unfortunately too late to make a difference. | gaereth wrote: | One thing is that it wasn't communicated that well, but | other (and that's what made me feel really uncomfortable) | is that it felt like ,,This feature is not allowed | anymore - except for some dudes, they're cool enough and | can use it" (e.g. native modules, operators). Either keep | or drop feature | G4BB3R wrote: | Kernel code and custom operators are only allowed under | elm/ and elm-explorations/, so only 7 core packages can | use them. The core developers cannot use those features | in projects like everyone else. | hashbig wrote: | And who can contribute to `elm` and `elm-explorations`? | The 7 cool dudes. | | The Elm contributor circle is a clique that you literally | have to be a strong contact with one of the contributors | to get into it. It goes against everything open source | stands for. | jaeming wrote: | That's a good point and maybe I shouldn't have re-posted | these stories in my comment as I have not personally | witnessed this behavior. I just know that when I started | learning Elm initially (Nice Frontend master courses btw) I | ran into this sentiment a good bit on reddit and hackernews | so thought there was probably something to it if it was | being echoed by so many. | | I'll add a reply to my comment to make it clear this is | hearsay and doesn't necessarily reflect the truth. | rtfeldman wrote: | Thank you, that's very considerate of you! | brainbag wrote: | Also Mint at https://mint-lang.com, which is heavily inspired | by Elm (and better, IMO). The open source aspect is also the | opposite of Elm - the community is very friendly, the | developers are responsive and positive, and PRs are | encouraged. | jaeming wrote: | After considering the way I phrased this comment above, I | want to clarify that I never personally observed or witnessed | this kind of behavior myself. My own dealings in the Elm | community have been almost entirely positive. I had heard a | lot of these criticisms from comments on hacker news or | reddit and realize now they mostly resemble hearsay or people | like myself repeating what they heard from others resulting | in a sort of echo chamber. I apologize for adding to that | echo chamber. | ferdowsi wrote: | After the relevations about Elm's dysfunctional leadership | culture[1] I have seen vocal discouragement about investing in | Elm, and reasonably so. This is a culture where Elm's leaders | actively attempt to shut down criticism as "emotional | violence"[2], which is just incredibly immature hyperbole. I | couldn't imagine investing the future of my job and workplace on | an operation like this. | | [1]https://news.ycombinator.com/item?id=22821447 [2] | https://www.reddit.com/r/elm/comments/7zk0dy/is_evan_killing... | StefanWestfal wrote: | I had a similar line of thought in the beginning too. If you | google Elm these issues pop up. However after some time posts | about it lead back a very limited set of occasions and block | posts. Which are either criticizing the leadership style or a | few events. I view the leadership as a trade off which ensures | a high level and guarantees for the core at the cost of a high | barrier. For the fee events, I think we are all humans and make | mistakes and usually it is a miss communication between two | parts more then a real issue. | dmix wrote: | > We had global variables everywhere, and debugging was a | nightmare. | | ES6 module imports really helped solve this problem and is a | giant step forward in the JS ecosystem. Despite being relatively | straight forward they were (and are) a big deal. | | Any JS project before that was a giant dance of complex window | namespacing, closure wrappers, and hoping the 3rd party library | you're using doesn't expect some weird custom thing to 'import' | it. | | The next step obviously is fixing bundling and replacing Webpack | and Babel (the closest thing to a widespread standard today in | JS) with something less magicy and more native. And these are a | big reason newbies/non JS devs freak out when they see a thousand | packages in starter kits. | | These two things (importing and bundling/preprocessing) were a | big reason why there always seemed to be a never ending output of | new build tools. Just having those two to be predictable is a | godsend in any JS developers but IRL even the best internal | practices was never consistent across libraries, teams, and | projects. | | I've always wondered how much frameworks like Elm and similar are | motivated simply but attempting to establish best practices and | standards in JS projects vs the abstraction/language innovations | they provide (like pure FP and reactivity stuff). It's at least | 50% of the value proposition. | | The big question is whether it will be for long enough to be | worth the investment. | hashkb wrote: | esbuild and TS are a good step you can take incrementally as | you move away from webpack/babel. Still the lesser of some | evils, but less evil is better. | tempest_ wrote: | Elm looks interesting but when it pops up around here and other | places it is usually about how the main dev does not work and | play well with others. | | It is a bit off putting. | | It is nice to see a different perspective. | z5h wrote: | I think when something is built by several people, catering to | outside interests, you end up with more churn, bloat, | inconsistency, instability, etc. But your specific need has a | better chance if being addressed. When something (like Elm) is | built in a silo, you end up with less churn, bloat, | instability, inconsistency. We forget how we got these nice | things, and when we want something NOW we get cranky about the | development model. So, as a developer with 20+ years of | experience I can say that EVERYTHING (tools, languages, | paradigms) is shitty in some ways, and I vastly prefer the ways | that Elm and ecosystem are shitty. | [deleted] | agbell wrote: | For those want to learn Elm, or to learn strongly typed | functional programming in very well thought out order | @rtfeldman's book "Elm In Action" is super good. | | His experience working at a teaching company made his book very | well structured for new comers. | mouzogu wrote: | Wouldn't it be difficult to find other developers that are | experienced using Elm? I don't know much about it tbh. | | Probably, one of my biggest career mistakes was opting for a | little known PHP cms instead of WP as I thought it would be | easier for the stakeholders to work with the limited options. | | Since then, I've always avoided going away from the mainstream | toolset. | MichaelGlass wrote: | FWIW our experience has been: - finding devs with experience is | hard - finding great devs who want to use interesting tooling | is easy | | In the end, we hire interesting, curious devs, and ask them to | use tooling (elm) that has a pretty shallow learning curve. | | I think bootstrapping a project in Elm without any experience | on the team could be tough, but once you have some expertise, | the seeds you plant in yield abundant fruit. At NoRedInk it's | been a great success -- especially with regards to "finding | other developers". | g_delgado14 wrote: | > Wouldn't it be difficult to find other developers that are | experienced using Elm? | | Yes, however: | | - Elm has a very small surface area (you can read through the | guide [0] in a weekend) | | - There are many folks who love functional programming && are | willing to learn Elm | | So, given those two facts, the lack of Elm developers compared | to other "markets" is not a big issue. | | For me, personally, the only risk with Elm is its incredibly | opaque development. It's led by Elm's BDFL and a few other | folks and it's almost as though they go out of their way to | make Elm hard to adopt for outsiders. | | For example, all you have to do is change elm's version to | 1.0.0 to signal to outsiders that, yes .. Elm is and has been | production ready for quite a while now (years?). Instead | "insiders" will reason and rant about how 0.19.1 is fine. | | ---- | | [0] - https://guide.elm-lang.org/ | blowski wrote: | I appreciate that I am biased because of my background, but | I've met precisely one person who's used Elm while just about | every dev I know has worked with WordPress at some point. For | most enterprises I work with, 10 years in production is about | close as they're willing to get to the bleeding edge. They | don't really care about code quality or features. They want | to be safe, secure and future-proof for as low a price as | possible. | | That said, I know very little about Elm and would love to | understand more about what it offers that's so exciting. I | skim-read the article, will read in more detail later. | matsemann wrote: | My bias is the opposite, probably because I've worked at an | Elm shop. But I know zero people with wordpress experience, | in my circles I'm the only one I know of with professional | php experience at all. But I need more than my hands to | count all elm programmers I know. | hitekker wrote: | The "Elm at Microsoft" link is broken and when I google for it, I | can only find an archived package on Github. | pianoben wrote: | This link works for me: | https://elmtown.simplecast.com/episodes/it-just-goes-on-and-... | hitekker wrote: | Hmmm, I think it's my VPN. My bad. | cfors wrote: | Its right here from the "Other Testimonies" section: | | https://elmtown.simplecast.com/episodes/it-just-goes-on-and-... | | Obviously Microsoft is a huge company so they use all of the | languages, but I find it surprising given the amount of | investment they've made into Typescript. | Zababa wrote: | It's not surprising for a large company. For example, Google | uses C++, Rust and Go on Fuchsia. They have Angular with | Typescript and Angular with Dart. Big companies are what they | are, an association of a lot of people that are all | different. | decafbad wrote: | mkose@casper:~/Desktop$ ./elm repl ---- Elm 0.19.1 | ----------------------------------------- > Basics.modBy 0 | 3 Error: Cannot perform mod 0. Division by zero error. | [deleted] | earth_walker wrote: | This is correct behaviour, depending on the definition of mod. | See, for example: | | https://math.stackexchange.com/questions/516251/why-is-n-mod... | decafbad wrote: | The promise was _no runtime errors_. | aaronchall wrote: | I'd like to recommend Elm at work but I can't because it's still | below a major version of 1, which implies there may be a good | deal of rework in the short term. | | I did get an Elm app upgraded from 0.18 to 0.19 without too much | extra work, but I'm concerned a major version release may bring | much more changes. | moistoreos wrote: | https://github.com/elm/compiler/blob/master/roadmap.md | arcade79 wrote: | I wonder if someone will create 'pine' - "pine is not elm". | | (For younglings: elm was an email client. pine was also an email | client. The latter was often thought to be short for 'pine is not | elm'). | fatnoah wrote: | To be honest, I read the article and was expecting this to be | about ditching Outlook or Gmail in favor of Elm. | wing-_-nuts wrote: | I have fond memories of using the pine email client. It was so | fast. I know mutt is another one, supposedly, but by the time I | was considering switching, I had exclusively moved to web mail. | neals wrote: | What is Rakuten? Why is it on all my Samsung TV's? How come it | works out of the box? | deergomoo wrote: | > What is Rakuten? | | A Japanese tech conglomerate. | | > Why is it on all my Samsung TV's? | | Because Samsung have no shame and will gladly ruin their own | products for a quick buck. | PragmaticPulp wrote: | Interesting breakdown of some pros and cons of using Elm in | production. However, it appears the JavaScript codebase they used | for comparison was quite bad and maybe not representative of a | good or even typical JavaScript app: | | > Our JavaScript application had global variables everywhere, and | debugging was a nightmare | | Point #3 in their list of cons is especially important for anyone | considering Elm: | | > Because Elm is not a mainstream language, it is sometimes | necessary to reinvent something that could otherwise have been | acquired by adopting a different technology. | | This is the biggest downfall of Elm projects that I've seen in | the real world. Teams end up spending half of their time or more | solving problems that could have been accomplished quickly with | some off the shelf React libraries with numerous tutorials | online. | | This attracts a lot of developers who enjoy working on libraries | and tooling, but it's not ideal if you're trying to run a lean | team that ships products quickly. | | Elm is fun, but I wouldn't use it unless I could afford to hire a | relatively huge team to absorb all of the additional complexity | and detours that go into building an Elm app. There's a constant | promise of Elm being faster and easier to write for various | reasons, but in practice it always seems to get bogged down in | endless gotchas and framework shortcomings that need to be | addressed before we can get down to getting real work done. | aranchelk wrote: | > This is the biggest downfall of Elm projects that I've seen | in the real world. Teams end up spending half of their time or | more solving problems that could have been accomplished quickly | with some off the shelf React libraries with numerous tutorials | online. | | This is an important point; I think it applies to varying | degrees to any less popular language or framework. It's a | little worse with Elm because of the restrictions they've | placed on JS interop. I'll add that unless you're very familiar | with the framework/language you'll be using, it's pretty hard | to estimate scope of work; you'll just encounter surprises | during implementation along the lines of "wow I can't be | believe they don't have a library for x." On the plus side, | since the work of implementing these libraries is very generic | with regard to any specific application, it's easy to delegate | to other employees or contractors. | | I'm currently working on a large PureScript project. At various | times I've had to implement my own base libraries and | components, but in many cases I've just been able to wrap | existing JavaScript code. Some of the key libraries I use, | which were developed by other community members are wrapped | JavaScript libraries. This has been a pretty powerful | mitigation strategy. | | In the case of PureScript, I also have the benefit of reusing a | substantial amount of front end code on the server. For me, on | this particular project, the benefits of using a language with | advanced features has far outweighed the above mentioned costs, | but I think you've got to look at each situation differently | and do that evaluation. | Silhouette wrote: | _I 'll add that unless you're very familiar with the | framework/language you'll be using, it's pretty hard to | estimate scope of work_ | | I think you've just defined a pretty good benchmark for when | it's sensible to consider a less popular choice. Are you | familiar enough with it to be confident of coming out ahead | by using it? Perhaps you have a backup plan like the interop | you mentioned if some functionality is missing. Perhaps the | tool is so much more productive in general that you are | reasonably confident any extra development work to fill in | the gaps will be outweighed by the overall benefits. But | there should be _some_ clear reason you think the risk is | justified. | platz wrote: | curious if you using halogen or react-basic? I've gone with | halogen for a small project and it's been fine but sometimes | i wonder if react-basic is a better choice. | aranchelk wrote: | This is an area where I ventured far from the ordinary and | wrote my own application framework. I'll eventually open | source it and write an article about the process. In short: | | I was completely sold on the Elm architecture, but I used | Haskell too long to be comfortable working without | typeclasses, so I went through a couple different elm-like | frameworks written for PureScript. I settled on one only to | later realize what (I think) people are talking about when | they say "Elm doesn't compose", which is not well | articulated in that statement. I take it to mean: you can | never really deal with stateful components in isolation | because they have to work off of a unified global data | structure. I developed some new tech that makes different | tradeoffs and it got me what I wanted. | | I knew developing my own framework was going to add a lot | of extra work: * Writing the framework (not too bad, | actually) * Writing the reusable components and combinators | (exactly what you'd expect) | | By far he hardest part has been establishing patterns and | best practices working with a new and different | architecture, I struggled with that for a while. | | I'm a strong believer in the points made in Graham's | Beating the Averages (actually what brought me to HN) and | in my case I'm establishing a tech stack for my current and | future projects, so I believe the framework was a | worthwhile investment. | mst wrote: | I thought the idea was that you'd have layers of actions | so you have a top level handler of some sort that would | then dispatch a contained-within-the-primnary-action | component-scoped action and then pull the new component | data back into the global store. | | (apologies for the lumpy phrasing, insomnia is a pain) | aranchelk wrote: | That may be best practice, I'm not sure. Regardless, you | can imagine as a result of that style of coding, any | changes to the type of your components state will require | at least some changes within the component, changes to | one or more of those layers of action handlers, and a | change to the initial/default instance of your | applications model. | | I'm absolutely not an authority on Elm architecture, I | just know that my experience doing stuff like forms with | validation really sucked. | lhorie wrote: | > Teams end up spending half of their time or more solving | problems that could have been accomplished quickly with some | off the shelf React libraries with numerous tutorials online. | | I dunno, having seen both sides, there are pros and cons to | each. | | Teams that reach for libs quickly often think in terms of | libraries instead of solutions (one recent example was some | folks who were asking for my advice on some over-engineered | client-side PDF generation thing, and me suggesting | `window.print()` as a solution, considering this was for an | internal tool and you effectively want print stylesheets | anyways), and often use them as crutches due to a self- | fulfilling cycle of "I don't know how to do X, let's use a | library so I never need to find out" (and then pulling in a | huge lib to do the job of a literal one-liner regex - | `uuid.validate()`, looking at you). In my experience, they also | often end up buried by their own complexity due to gluing too | many things together. But at the same time, it's hard to argue | with the ease with which one can plop a modal dialog or a | calendar or a collapsible table in a React app. | | I find that teams working with more exotic technologies tend to | be more creative with solutions (e.g. "oh there's no zoomable | map UI lib bindings, so let's ask ourselves, do we _really_ | need a map library for that contact us page or is a static jpg | good enough? ") and a have a deeper appreciation for how hard | things are to implement. But conversely, UX can suffer from too | much "creativity". For example, if care is not taken w/ | accessibility concerns for some UI element. Or, as you said, | things just take longer to ship because people need to reinvent | wheels. | mjaniczek wrote: | > Elm is fun, but I wouldn't use it unless I could afford to | hire a relatively huge team to absorb all of the additional | complexity and detours that go into building an Elm app. | There's a constant promise of Elm being faster and easier to | write for various reasons, but in practice it always seems to | get bogged down in endless gotchas and framework shortcomings | that need to be addressed before we can get down to getting | real work done. | | Is this your experience writing Elm apps in production? I am | writing large Elm apps in production and I'm having very | different experience to what you just described. | whateveracct wrote: | A seasoned small Elm team will probably scale to higher | complexity heights than a small JS team in my experience. Same | goes for Haskell and the like. | | The freaking out about "oh no I gotta write a small library | myself" is absurdly overblown here. Most of the time I see it, | it's people flipping out at the very sight of there not being | something available off-the-shelf. The actual cost is much | lower than the panic implies. | | In general, people see ANY time spent in an FP language to | solve FP problems as "a waste of time" but they're blind to the | wastes of time people treat as "real code" in mainstream | languages. | | But yeah if you're a software efficiency bean counter, maybe | you won't like FP. Fair point. | | My opinion is the long-term technical & cultural benefits and | opportunities pay off. And as a developer, I am happy to not | optimize my development velocity to the utmost if it means I | don't have to waste my brainpower writing imperative code. My | mind is in a much better state at the very least :) | PragmaticPulp wrote: | > But yeah if you're a software efficiency bean counter, | maybe you won't like FP. Fair point. | | > My opinion is the long-term technical & cultural benefits | and opportunities pay off. | | How, though? These two points contradict each other. Is using | FP going to pay off with technical benefits? Or is it just | going to reduce your software development efficiency? | | I enjoy writing FP code and using niche frameworks like Elm | for hobby projects, but I specifically avoid them for | production work _because_ I 'm familiar with them. | | I always hear claims that using Elm and niche languages is | going to pay off in vague benefits somewhere down the road, | but in practice the payoff never really arrives. I think a | lot of developers pushing these niche frameworks tend to | mentally dismiss the actual costs and overhead incurred by | using something like Elm. | | It's tempting to categorize the struggles as "learning" and | therefore try to pretend it doesn't count as lost time, but | at the end of the day if your team has to spend extra cycles | doing extra things just to accomplish basic tasks, it's a | drag on productivity. | whateveracct wrote: | Everything you say is optimizing for the short-term. When | it comes to total cost of development, I think FP wins out | even if you have to fill ecosystem gaps. | | But if you can't afford for ANY time to not be spent | directly on the business, don't do FP. Sounds like a pretty | brutal way to work. | | FP has _throughput_ benefits, but may come with _latency_ | hiccups while your team climbs the learning curve (which | may include writing libraries.) | | If you have frequent deadlines (or treat 2 week sprints as | deadlines), then FP won't jive..and you probably have | bigger pain points in your company than PL choice lol. | PragmaticPulp wrote: | > When it comes to total cost of development, I think FP | wins out even if you have to fill ecosystem gaps. | | This is the core point I was disagreeing with: | | In my experience (yes, I have used Elm and I enjoy | various functional languages), this payoff never comes. | There's always something more that needs attention, needs | another developer, needs to be refactored because we | forgot a use case, and so on. | | And also in my experience, by the time you've invested | the years of effort required to fill in gaps in the | public package ecosystem, it's time to move on to the | next niche language trend. I'd rather invest our time and | energy in mainstream languages that have staying power, | where we're not obligated to carry large parts of the | open-source ecosystem by ourselves. | whateveracct wrote: | Years, plural?? Maybe Elm is just way less mature, but I | was on a team that shipped Haskell software with millions | of users in about a year of dev time..and this included | huge investments in many missing libraries..all on top of | using GHCJS which required investments to the toolchain | itself (Elm is definitely more mature now than GHCJS was | at the time.) | | But that was Haskell I guess. It's obviously not a "niche | language trend" by now, so it was pretty clear it had | staying power. | | Definitely has paid off for me personally. My side | projects move a lot faster and more stably now that I cut | my teeth in production Haskell. A real free 10xer to my | skills personally. And I gained the skills by getting my | employer to finance my learning lmao. | KronisLV wrote: | > And also in my experience, by the time you've invested | the years of effort required to fill in gaps in the | public package ecosystem, it's time to move on to the | next niche language trend. | | This probably depends on the complexity of what you need | to do, as well as how well you want to do it. | | I've seen people writing their own packages and pieces of | systems in months, to typically pretty underwhelming | results. However when writing code with tests, proper | documentation, getting started guides etc., then what | you're saying does sound way more plausible, especially | if scope creep of any sorts is also present. | | Would you care to comment on what sorts of systems take | years to properly develop, though? Because in my | experience that could be applicable to very few software | projects out there. | vlunkr wrote: | > I think FP wins out even if you have to fill ecosystem | gaps. | | What proof of this is there though? People have made the | same claims about lots of things: FP, OOP, statically | typed languages, dynamically typed languages, LISP | variants, etc. The fact is, any of these solutions can | work, and you can also write terrible code with any of | them. | kingaillas wrote: | >The freaking out about "oh no I gotta write a small library | myself" is absurdly overblown here | | I don't think it is. | | At work, I'm adding some basic metrics/logging functionality | to an internal library, to see how it's being used. The idea | is to log a few parameters and the tech lead suggested using | JSON format. | | No problem right? Well my work environment is quirky and | let's just say it is hard to use outside libraries for | various reasons. It can happen there is just a lengthy IT | process to go through... eventually most reasonable requests | will be filled (copied/mirrored internally, or binaries | imported). But there is a delay. | | This is all besides the point other than to say: I either | need to wait a few weeks, or write my own minimal JSON | library. | | How hard can that be? I mean, it's just JSON. Well earlier | today I was checking reddit and saw an announcement that | "JSON for Modern C++ was released" (https://www.reddit.com/r/ | cpp/comments/p69plb/json_for_modern...). Hey cool, I can see | what the library looks like and maybe rip off some of their | code while I'm waiting for a "please mirror this internally" | request to finish. | | This library is thousands of lines long... for JSON. I'm not | disparaging the author or JSON, it looks like an awesome | library with great diagnostics, I'm more trying to point out | that even for the SIMPLE format of JSON, a serious library is | 10K+ lines. That's a hell of a lot of extra work to put on a | team when writing a JSON (or whatever) library probably isn't | the actual work that needs to be done. | | Elm likely has a JSON library ready to use, but having your | seasoned team reinventing the wheel for so many other | libraries isn't a good use of dev time. I can't think of | simpler libraries to write than JSON and even that is 10K | lines long. Other than the insanity of nodejs and leftpad and | libraries like that. If the attitude for every single library | needed is "we can write that from scratch" the team is never | going to get anywhere. | whateveracct wrote: | A json serialization (no parsing) library is not going to | be 10k+ lines, and it's going to be extremely simple. | | You can define a JSON AST type very simply, and then | converting that to wire bytes is also quite trivial. Also | simple to test via golden testing (you could even use | property testing + shell out to jq to validate the json) | | https://github.com/nikita-volkov/jsonifier This one is | nowhere near 10k lines - and it is heavily optimized and | polished! | panzagl wrote: | The answer is ditch JSON for something already supported | (XML? CSV?) or homebrew a more minimal serialization format | that you can implement in a couple of days. | vlunkr wrote: | > The freaking out about "oh no I gotta write a small library | myself" is absurdly overblown here | | This isn't a good representation of the argument. People | don't want to write libraries because it's more valuable for | everyone to spend time writing features using existing | libraries, provided there are good libraries available. | People aren't "freaking out", they just have deadlines, and | you know, other things to do with their lives besides write | code that has already been written. | mst wrote: | I would imagine that it's a good representation of their | experience of such things, but a poor representation of the | experience of such things of the person they're replying | to. | whateveracct wrote: | Nah it's a pretty good representation. And acting like time | should 100% be spent writing features is shortsighted - | sometimes it's worth it to pay fixed costs such as filling | in a gap of the ecosystem of the language you chose for | higher reasons than cranking out business code. | KronisLV wrote: | > The freaking out about "oh no I gotta write a small library | myself" is absurdly overblown here. | | Maybe in the context of the parent comment this holds true, | but in my experience this is like walking on a knife's edge. | | There's the very distinct possibility that you'll end up with | homebrew frameworks and libraries that are overcomplicated, | buggy, not commented and exceedingly hard to work with. I've | seen that happen many times and it makes me consider not just | whether people want to do that, not whether people have the | time to do that, but even whether it's possible for them to | do. | | In one project people wanted all of their front end | components to be custom and as a consequence spent 3x-5x | longer building everything, none of their components were | Googleable for someone who's been onboarded and thus people | forgot how they even work after 2 weeks of not editing them | and had to rediscover that later. I tried adding a component | sandbox/playbook to help them provide examples, but no one | was interested in doing that when they were already behind | the expectations of the business. Picking an off-the-shelf | framework would have saved them all of these troubles. Maybe | there were actual reasons behind the choice of approaching | the project this way, apart from padding their resumes, | however after inquiring about those, i didn't get a | convincing response. | | In another case, i had to work on a custom web back end | framework, which had been developed by another company, in a | country the language of which i don't speak. Curiously | enough, all of their code comments were in this language, | there yet again was a lack of any sorts of documentation, the | implementation was obtuse, slow and any simple changes to the | forms took days to implement properly, even when it would | take around 30 minutes in established technologies. | Furthermore, the actual framework hadn't received any updates | in years and therefore i fear to think what sorts of security | issues it had. An off-the-shelf framework would have at least | been updated and probably would have more decent | documentation. | | In short: - never underestimate the ability | of people who lack oversight to make things worse - | frameworks and libraries that are used by thousands of people | are probably at least decent - there's definitely also | something to be said about how well tested they are and how | known the bugs are - because of the above, popular | technologies seem like a pretty safe bet, as does off-the- | shelf code appear to be - of course, despite all of the | above, it's perfectly okay to explore new tech stacks and | write your own code, just don't half ass it | dimitrios1 wrote: | > but it's not ideal if you're trying to run a lean team that | ships products quickly. | | Good. The longer I do this, the longer I realize that unless | your in a race-to-the-bottom industry (something like vying for | eye balls to increase ad spend), then this is categorically a | bad thing. I would prefer the quality of engineering required | in knowing how to do some of these things yourselves. | | Take your time. Understand what you are doing. Some of the | world class technologies we all know and use daily use minimal | dependencies. | | And with more malicious code entering more package | repositories, it might be apt advice more than ever today. | pjlegato wrote: | Quality engineering must always be balanced against the | reality of finite budgets. Sure, lots of amazing engineering | can be achieved in theory, _given infinite funding_. | | That never happens in the real world. One always has limited | time to produce a viable product. There is always some | extrinsic constraint to how much time can be spent taking | your time and understanding what you're doing. | | Moreover, if you are operating in any commercially viable | product space, you're always competing against other firms | for finite market share. If it takes x years to ponder and | understand how to build and ship a masterful feat of | engineering, while some other company ships a "sort-of-works" | product with bugs and engineering flaws in <<< x years, the | other company will usually win in the marketplace. | | Your company usually goes bankrupt, and all the engineers | will complain at their next jobs about what a wonderfully | designed engineering system they were building, and how awful | it is that nobody appreciates such things these days. | PragmaticPulp wrote: | > Your company usually goes bankrupt, and all the engineers | will complain at their next jobs about what a wonderfully | designed engineering system they were building, and how | awful it is that nobody appreciates such things these days. | | This is precisely why I try to interview tech leads about | what they _shipped_ rather than what they _built_. There | are a lot of otherwise very talented developers out there | who will spend years playing around in your codebase, | writing beautiful code, but not actually shipping anything | useful. Replacing them with shipping-focused engineers, | even if they 're not as technically competent, usually | results in big productivity boosts. | | This isn't a popular opinion among developer communities, | but it's a common theme in the management forums I'm part | of. It's important to have fun and budget some time for | things like open-source contributions and library building, | but the top priority must always be on shipping product. | Silhouette wrote: | This is the popular wisdom but I question how universally | applicable it is. We all know that having the best | technology doesn't necessarily mean you win in a commercial | market and we all know that being first mover can be an | advantage, but those observations don't tell us what will | be successful in the long term. | | How often does substandard technology and technical debt | become a drag on a business not long after that first move, | allowing someone else to overtake because the poorly built | system couldn't scale to production levels or wasn't | adaptable enough for changing requirements or failed so | often that the early users drifted away? How often do we | see developers advocating shortcuts and showing limited | understanding of basic software development or computer | science ideas, only to see the product they work on being | rewritten within a year or two, or the whole team shut | down? | | You can try to be fastest always. You can often succeed, at | first, if you take enough shortcuts. But you can't sustain | that pace without enough quality in your people and your | code. Planning to throw each implementation away and | rewrite with more resources every year or two is a very | unicorn-like strategy. It reminds me of VCs whose strategy | is to invest liberally, who are fully aware that most of | those investments won't work out but they're hoping for one | or two in each batch to become the next big hits. | | Real engineering isn't done in a vacuum and its goal isn't | perfection. Real engineering takes issues like costs and | timescales and staffing into account and aims to find a | solution that is good enough on all counts. But it still | has to be good enough. Producing junk but quickly and | cheaply is an effective strategy until it's not and the | success of any product using that strategy comes down to | little more than the luck of the draw. | pjlegato wrote: | I totally agree. Engineering should be the best it can | be, within the constraints of the resources available. | | My post was addressing the common case where an engineer | seems to ignore the 'resource constraints' side of the | equation altogether. | | Balancing these factors is more art than science. No two | projects have the same set of resource constraints, nor | the same set of engineering challenges. Luck is a big | factor. The solution depends heavily on the exact details | of each particular case. | JamesSwift wrote: | See also: engineers who think that engineering | considerations trump all other business considerations. | You need to know when it makes holistic sense to rewrite, | or ship a hack. There are a lot more people at the | decision-making table than just engineering. | Silhouette wrote: | That is certainly true but somehow I suspect under- | engineering is a more frequent problem in our industry | than over-engineering. | | IME retrospectives rarely sound like "We hired a team of | strong developers, they did a solid job, but then the | business failed as a result". The kind of developers who | are strong enough to do a solid job are probably also | experienced enough to recognise the other considerations | in play and adapt if necessary. | 0xFACEFEED wrote: | > Quality engineering must always be balanced against the | reality of finite budgets. Sure, lots of amazing | engineering can be achieved in theory, _given infinite | funding_. | | While this is obviously true, I don't think it depicts the | actual decision making process that leads to messy | codebases and crappy products. In my experience lack of | experience and/or laziness play a big part. | | A competent tech lead that's passionate about quality AND | is willing to be annoying for the greater good makes an | enormous difference. I'm talking multiple orders of | magnitude difference. | | It's the difference between spinning up a k8s cluster + | service mesh vs tiny single server vps with basic failover. | The former is thousands of hours of dev time across | multiple disciplines while the latter a seasoned engineer | can handle by themselves. | mwcampbell wrote: | > Good. The longer I do this, the longer I realize that | unless your in a race-to-the-bottom industry (something like | vying for eye balls to increase ad spend), then this is | categorically a bad thing. | | It's not that simple. I realize this may be uncommon, but | it's possible to work on a product that is truly worthwhile, | that improves peoples' lives, and whose target users urgently | need a solution to the problem you're solving. I recently | developed a product that I believe meets this description (I | won't plug it here). I chose Elixir for the web application. | While I think that's a defensible choice, given the real-time | nature of the application, I sometimes wonder if I would have | been better off choosing a more mainstream language -- one | with an official Stripe client library, for one thing. Any | day I spent unnecessarily reimplementing something because I | chose Elixir is a day that the target users couldn't benefit | from my product. And, bearing that in mind, I should get back | to work. | aszen wrote: | In a more mainstream language, while it may have a few | Stripe client libraries but if your true use case of being | real time isn't full filled then it makes no sense to | choose them. A working stripe client takes at most a day to | write, compared to years that can go in changing the | architecture of your application | WJW wrote: | If you have enough talent that a good quality Stripe | integration takes only a day to write, bending Rails or | Laravel to serve websockets is not going to take more | than a few days to write either. The true pain of non- | standard languages is not in having to implement any | specific dependency yourself but in having to reimplement | a few dozen trivial-but-not-easy things yourself. It's a | death by a hundred small cuts. | PragmaticPulp wrote: | > I would prefer the quality of engineering required in | knowing how to do some of these things yourselves. | | Realistically, a couple of engineers writing a library from | scratch isn't going to be higher quality than adopting a | mainstream, battle-tested library that accomplishes the same | thing. | | Writing your own implementations of everything can be fun, | but it's not possible to compete with all of the iterations | and reviews that a mainstream library collects over time. | aszen wrote: | This is a common argument i have seen devs make when | evaluating building from scratch vs adoption, here's what | building from scratch gives you, a leaner more | understandable piece of code that does what you want and | nothing more. | | An open source library is necessarily generic and has to be | battle tested to make sure it fulfills all use cases, while | the library you write only has to cover your own needs that | makes it easier to understand, extend and debug | Silhouette wrote: | _Realistically, a couple of engineers writing a library | from scratch isn't going to be higher quality than adopting | a mainstream, battle-tested library that accomplishes the | same thing._ | | That's true but the vast majority of what you find on NPM | is not mainstream, battle-tested libraries. | | Libraries that do clear that bar tend to be widely useful | but that suggests generality you won't necessarily need for | any single use case. A couple of good engineers might | struggle to beat a well-established open source library at | everything it does, but that is rarely what they are trying | to achieve. They just need something that is better for | their own specific needs at that time, which might be a | useful and realistic target. | dimitrios1 wrote: | Once you detach from "I must use a library for every thing" | land, you begin to realize you don't need the overwhelming | majority of them. Which results in writing cleaner, | simpler, more focused code, with less of a surface area for | bugs. It's a whole mindset, tbh. | ModernMech wrote: | I appreciate libraries for: | | - ubiquitous things, like data structures | | - hard to get right things, like time | | - implementations of specs, like Unicode | | - hardware interfaces, like CUDA | | For everything else, I'll take the above and roll my own | solution. | dimitrios1 wrote: | except for the last one, all of those should be part of | the language you are using, and well thought out + | researched. I guess I should have been more specific: | third party dependencies. | scotttrinh wrote: | In this specific case (Elm vs. JavaScript) We're talking | about JavaScript here, so: | | > - ubiquitous things, like data structures | | There are a few basic data structures in JS, but almost | everything else is in user-land. | | > - hard to get right things, like time | | Date is a notoriously bad API in JavaScript. | | - implementations of specs, like Unicode | | We just get a String type in JavaScript which is UTF-16, | so... | alephu5 wrote: | What about something tedious and ubiquitous, such as | swapping between camel and snake case? | aszen wrote: | as an example i made a firebase auth client in elm using | their api and json decoders in elm. honestly i feel it's | much better than the official js client for the app i was | building because it's so focused, minimal and exactly | suited to my app's architecture | pkolaczk wrote: | Often you don't need to reimplement 100% of functionality | of a library but just a 1% of it. Then, a talented team can | usually make that 1% higher quality just because they are | not limited by the complexity and tradeoffs added by the | remaining 99%. | | Also many "battle-tested" libraries are not really very | high quality - they all have bugs, unnecessary complexity | and technical debt. Higher degree of testing they get is | often offset by the higher number of feature requests, and | more features means more complexity and more bugs. | | And in reality I saw it many times when a niche library | written by a solo developer is of a higher quality than a | super popular behemoth written by hundreds of developers | over 10 years. | k__ wrote: | But...! | | I've also seen many developers for years adopting | mainstream libraries and frameworks wrongly. | | The atrocities I've seen built with Ember, Rails, Angular, | and the like. | | Often these people built their own (albeit less powerful) | libraries and could work much better with them. | KronisLV wrote: | > Often these people built their own (albeit less | powerful) libraries and could work much better with them. | | In my experience, if someone fails at using mainstream | libraries, they will also likely fail in creating their | own, at least if it is to later be used and maintained by | anyone else successfully. | k__ wrote: | I don't know about that. | | The problem with mainstream libraries is to grasp the | mental model of their creators. | | I met a bunch of developers who understood software | design patterns as they are taught in the GoF book, but | couldn't see them when applied in a framework/library. | Often this was because the design patterns weren't used | 1:1 or framework creators simply used the wrong name for | a pattern. | [deleted] | aszen wrote: | Elm is build on top of solid foundations, and has a good | standard library unlike js so it's much easier to reinvent | things as you say. One of the core ways to ship products | quickly is to ensure you don't break things often, and elm lets | u do that provided one learns it well enough | theobeers wrote: | From the opening section of the blog post, I wondered why an | incremental move to TypeScript wouldn't have worked for them. | The rest seems to be all about Elm (I haven't read it | thoroughly), but I feel there's a disconnect between the | problem they started with and their choice to dive into a | wholly new ecosystem. | | edit: Ah, hold on; I just got to where they comment on this. | "TypeScript, which adds optional static typing to JavaScript | and is probably one of the best things to happen to JavaScript, | can partially mitigate the issues with the JavaScript dynamic | type system. But being a superset of JavaScript it needs to | compromise on elegance and simplicity. It also has several | 'blind spots.'" etc. I don't know that I'm 100% convinced. | cardanome wrote: | TypeScript has a slow compiler and horrendous error messages | (especially compared to the Elm). Plus it is far away from | the no runtime exception guarantees that Elm offers by | design. | | Also TS is just part of a potential solution while Elm comes | with all batteries included. You still have to set up your | code formater, liner, decide on a framework, state management | library and so on and so on. With Elm, you just use elm- | format. No arguing about code style, not arguing about how | structure your code. There is only way to do it. It is not | only a language but a framework. You get everything you need | out need out of the box. | toastal wrote: | Elm also has a sound type system and no side effects | because it doesn't need to be compatible with vanilla | JavaScript | wk_end wrote: | To play Devil's (Elm's?) Advocate here: sometimes I wonder if | the TypeScript promise of incrementally adding types to an | existing JS code base is wishful thinking. | | I'm at a company that's transitioning to TypeScript, and the | reality is that you can't just flip a switch and have a well- | typed codebase: if we just turn `strict` on, `tsc` gives us | thousands and thousands of errors. And as we've gone through | trying to annotate things, it's clear that in order to get | various components to a state where they're properly type- | safe, we'll need to almost completely rewrite them. | | Compared to Rakuten, our codebase isn't even that huge or | legacy - it's often very poorly written, but it's less than | 50K lines and less than a couple of years old. No doubt the | situation for Rakuten would be even worse; I'm sure huge | swaths of their code would need to be trashed anyway. | | If TypeScript is ultimately going to force you to rewrite - | and still leave you with a less-robust solution - I could see | why starting with a clean-slate with Elm would be appealing. | Existenceblinks wrote: | I had a problem with perf optimization on Html.Lazy long time ago | that I can't solved before I moved on. | | Since Elm is immutable and lazy render, most of the time, compare | underline object reference (referential equality check), the | reference (memory location) almost always changes on every update | cycle because it needs to update model, thus, a new reference as | a result. And that makes Html.Lazy worthless. I had some kind of | 1000 html tree nodes, and it rendered every branch every time. I | probably did something not right, but I already tried solving | that for a few days, no success. | | If you have the Elm in Action book, that memory location pitfall | is explained on the very last page about when memory location of | a object changes. | agumonkey wrote: | anybody using purescript and its streamed ui lib ? | osener wrote: | Do you have a link for this library? | agumonkey wrote: | I just spent 10 minutes digging google and I cannot find it | again. | | I didn't even try to find about it last year, it seemed the | only ui lib for purescript with a tiny docs website (beige / | pale themed) | | Really surprised not being able to find it again.. I'll reply | again if I end up finding it | dodecaphonic wrote: | Maybe you mean Concur? https://purescript- | concur.github.io/purescript-concur-react/ | StefanWestfal wrote: | From a self taught view, the compiler helped me a lot and when it | compiles it usually works and when not the community is very | helpful. Over all I found libraries usually of good quality while | also not needing a lot as Elm includes a lot out of the box (i.e. | React, Redux, axios, type guards, etc.). | | Elm-UI made working with styling much easier for me and was the | main reason I gave Elm a try. | | The Evan and the core team seem to have a clear vision of what | they want and I can understand that but this is personal opinion. | To make a system work well you have to be strict and including | new features all the time might introduce complexity down the | line. This might seem a bit closed in form the outside. | | So far I am very happy with it. | fulafel wrote: | What are Elm users using on the back end? FP or mainstream | languages? | wolfadex wrote: | I have coworkers using Rails for the back end of their Elm app. | I think NoRedInk is using some Rails and some Haskell. I've | have a friend who uses Python for his back ends. Also heard | that some people really like using F#, as well as Node. | | Or if you want to do Elm full stack there's | https://lamdera.com/ or https://package.elm- | lang.org/packages/choonkeat/elm-fullstac.... | GiorgioG wrote: | The bus factor of 1 makes it a non-starter for me for any serious | project. | adelarsq wrote: | Sad, but true. | G4BB3R wrote: | I could use Elm as it is today for at least a decade without | updates, since it's very stable. Anyway, I am sure there are | very competent people from the core devs or from the community | that could make a new leadership if that happened. | GiorgioG wrote: | Your assurances don't particularly mean much - no offense. A | decade from now I don't want to have a codebase with a | toolchain with no future. | dsiegel2275 wrote: | It is refreshing once again to see an Elm post that looks at the | pros and cons of the language and ecosystem, instead of solely | focusing on a perceived problem with the way that the community | is run. | sergiotapia wrote: | I'll never even consider Elm after they added DRM to the | compiler. https://news.ycombinator.com/item?id=27819874 | jeofken wrote: | Would it not be to prevent supply chain attacks, and to | guarantee the user that all code you run is pure and type safe? | | They don't hinder anyone from forking and removing this | limitation, allowing any package author to run native code on | your machine. | macintux wrote: | > They don't hinder anyone from forking and removing this | limitation, allowing any package author to run native code on | your machine. | | That has arisen a few times here. Yes, they actually do | actively discourage forking (to the point of threatening | "excommunication" from the community). | vmchale wrote: | Yeah if anything the need to constantly fork the compiler | indicates a problem lol. | jeofken wrote: | Who cares? It's a computer program, just have it do what | purpose you require | macintux wrote: | Forking has long-term maintenance costs, even without the | hassle of trying to hide your efforts from the Elm | maintainers. | | I'd be fine forking it to pursue a personal project. I'd | never do that for any critical business need. | rtfeldman wrote: | Just to correct this: for as long as I can remember, Evan's | stance has been "feel free to fork Elm, just please don't | call your fork Elm, since that would confuse people." | | There have been a couple of forks with different names, and | nobody's been "excommunicated" or whatever. The forks | haven't gotten much traction, but they're probably still | out there. | macintux wrote: | I have heard otherwise, both in comments here and via | https://lukeplant.me.uk/blog/posts/why-im-leaving- | elm/#forka..., but it's entirely possible I'm wrong. | | Added: This comment is also not terribly friendly. | | https://github.com/gdotdesign/elm-github- | install/issues/62#i... | rtfeldman wrote: | My word choice certainly could have been better (I was | upset, and it showed), but to quote what I said there | anyway: "If you understand the design goals, but don't | agree with them, why not channel that in a positive way - | e.g. by building something that fits your vision instead | of directly working against Elm's design goals?" - in | substance, this is consistent with what I said above: | it's totally encouraged if anyone wants to go in a | different direction from Elm's design, just please don't | call it Elm. | | As it turned out, this is exactly what the OP in that | thread did - he created https://www.mint-lang.com - which | I think is a very positive development indeed! | G4BB3R wrote: | That's not true, lamdera is a fork and has it's own channel | inside elm slack. Terezka (that is from core team) already | said that if part of the community wants to fork Elm, that | would be ok. | | https://discourse.elm-lang.org/t/clients-expressing-doubt- | ab... | macintux wrote: | I have heard otherwise, both in comments here and via | https://lukeplant.me.uk/blog/posts/why-im-leaving- | elm/#forka..., but it's entirely possible I'm wrong. | | Added: This comment is also not terribly friendly. | | https://github.com/gdotdesign/elm-github- | install/issues/62#i... | macintux wrote: | Ah, I see, lamdera isn't a "we'll change Evan's | architectural decisions" kind of fork, which seems to be | much of the source of contention. ___________________________________________________________________ (page generated 2021-08-18 23:00 UTC)