# Rewrite in Elm?

**URL:** https://meta.discourse.org/t/rewrite-in-elm/48677
**Category:** Development
**Created:** [15 Agosto 2016, 8:20pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677 "2016-08-15T20:20:53Z")
**Posts on this page:** 8
**Page:** 2

<div class="post-metadata">

### Author: ![featheredtoast](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/featheredtoast/32/116994_2.png) [@featheredtoast](https://meta.discourse.org/u/featheredtoast)
#### Post date: [17 Agosto 2016, 6:59pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/21 "2016-08-17T18:59:00Z")

</div>

Wasn’t there reactjs talk at some point?

---

<div class="post-metadata">

### Author: ![uwe\_keim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/uwe_keim/32/326762_2.png) [@uwe\_keim](https://meta.discourse.org/u/uwe_keim)
#### Post date: [17 Agosto 2016, 7:14pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/22 "2016-08-17T19:14:01Z")

</div>

Back in 2008 I rewrote the complete C++ MFC code base of or German Desktop CMS in C# with the standard WinForms UI components.

Despite what Joel says (and I give a _lot_ about what he says!), it was the best decision we ever did, both technically and in terms of financial profit.

Some years later we replaced the complete UI with DevExpress components. Again, this was a good decision for us.

So just my two cents to give a subjective example that the rule does not always apply.

([This is the app in case anyone is interested](http://www.zeta-producer.com))

---

<div class="post-metadata">

### Author: ![Dan\_G](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dan_g/32/114732_2.png) [@Dan\_G](https://meta.discourse.org/u/Dan_G)
#### Post date: [17 Agosto 2016, 7:47pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/23 "2016-08-17T19:47:32Z")

</div>

> [@awole20](#):
>
> Wasn’t there reactjs talk at some point?

Not that the search function can find!

---

<div class="post-metadata">

### Author: ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)
#### Post date: [17 Agosto 2016, 7:49pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/24 "2016-08-17T19:49:45Z")

</div>

Oh people have suggested that too! There are even some installs out there where people have implemented a limited front end on our API. I’m not sure of any success stories though.

---

<div class="post-metadata">

### Author: ![Dan\_G](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dan_g/32/114732_2.png) [@Dan\_G](https://meta.discourse.org/u/Dan_G)
#### Post date: [17 Agosto 2016, 7:51pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/25 "2016-08-17T19:51:58Z")

</div>

Is the backend 100% API based with no templating or rendering going on at all in RoR?

---

<div class="post-metadata">

### Author: ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)
#### Post date: [17 Agosto 2016, 8:40pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/26 "2016-08-17T20:40:28Z")

</div>

It’s “almost” 100% APITM – you need to render a template to bootstrap our ember application. We also have SEO non-functional versions of some pages which are rendered server side.

---

<div class="post-metadata">

### Author: ![rtfeldman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rtfeldman/32/121631_2.png) [@rtfeldman](https://meta.discourse.org/u/rtfeldman)
#### Post date: [17 Agosto 2016, 9:27pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/27 "2016-08-17T21:27:26Z")

</div>

Based on our experiences introducing Elm at work, I would strongly recommend:

1. Introducing Elm
2. Introducing it incrementally

We now have the largest Elm production code base anyone knows of (36,000 LoC of Elm code), and even though we still have plenty of legacy code that hasn’t been ported over to Elm, our code base is **so much better** than the React-based structure we had before.

New development is faster, maintaining old stuff is easier, and our whole front-end is way more reliable. In over a year, our production Elm code has still never thrown a single runtime exception. (We’d know if it did, because we use Rollbar to log all the runtime exceptions our legacy JS code still throws on a regular basis.)

If you’re curious about our experience and what we learned along the way:

[![](https://global.discourse-cdn.com/meta/original/4X/9/8/2/9823b9db76ac9773044589e776699137afc0bf99.jpeg "6 Months of Elm in Production by Richard Feldman") ](https://www.youtube.com/watch?v=R2FtMbb-nLs)

I think if we’d gone for a full rewrite we’d still be using React for everything, and we’d be much worse off for it. 🙂

Also happy to answer questions about our experience, Elm, favorite pizza toppings, etc. 😉

---

<div class="post-metadata">

### Author: ![Dan\_G](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dan_g/32/114732_2.png) [@Dan\_G](https://meta.discourse.org/u/Dan_G)
#### Post date: [17 Agosto 2016, 11:06pm UTC](https://meta.discourse.org/t/rewrite-in-elm/48677/28 "2016-08-17T23:06:36Z")

</div>

And you didn’t even mention the book you are writing, Elm in Action? I’ve read the chapters available so far and it’s quite excellent!

[Previous page](https://meta.discourse.org/t/rewrite-in-elm/48677.md?page=1)
