[00:07:46.20] We had a sidebar, and the sidebar was going to be reused on all the pages. Oh, man… I’m so excited about the schedule. For example, a full-screen change - if I changed my browser from full-screen mode to not full-screen mode, it’s like how do you listen to a global thing like that? Elm is the name of a purely functional language first designed by Evan Czaplicki in 2012. Reveal deeper insights into your organization's relationships with RelSci Contact Aggregator. [00:39:41.04] But the thing is, React is designed to do that. It’s rockin’. The alternatives often are, “Well, what if we had mutable state in this component?” and it’s like, “Well, this language doesn’t have mutable states, so that’s not an option.”, Yeah. Worst-case scenario you’ll be like, “Eh. View Paige Pollara's business profile as Manager, Customer Success at NoRedInk Corp. Find contact's direct phone number, email address, work history, and more. I recently did some improvements of the error messages for this upcoming release, and it’s just really delightful. It’s always been true that the way of interacting with JavaScript has let you drop it in in this way. Before we had nice error messages, there was a time it was bad, not even okay. This work was an extension of his senior thesis at Harvard University to make client-side web programming a good experience. I think there’s a lot of cool stuff we can do there, but in time. It just does. I was hacking it together very close to the time I was going to be showing it, and I finally got it working, and I went through to clean it up, and I was like, “Actually, this is decently architected. I’m a little worried we’re going to find out that we’re not the biggest anymore. I think that’s the first time I talked about Elm in public, giving a talk. But yet, people have this reflex that they feel like they need to do it, like if they don’t do it, they’re doing something wrong; because in object-oriented programming, that’s what you’re supposed to do, but it’s not true in Elm. I’m working on having something cool to show for first. Guys, tell us the details of this. In addition to that, we’re also seeing people imitate Elm’s famously good error message, saying “Man, we can do some of that stuff over here. @czaplic. I’ve just had a really pleasant, delightful experience around it. We actually got asked recently, “Another Elm show, so quickly?” What’s going on here? Basically, when I tell people about certain characteristics of our codebase, they’re just very surprised and kind of disbelieving. The language that was paired with it, by social accident or historical reasons, was really confusing for people. Getting to mastery is almost unattainable. It’s really easy to think about other things instead, or fix things around…. I think Richard’s got an alarm set or something like that. Some other questions we have towards the end here is… It’s not really a FAQ, it’s more like disbelief. To have this learning aspect to it, to educate you over time, like, “You hit this error or this compiler bug several times. Very few other languages take that as seriously, I think, as you do. Use the code changelog to get 20% off your $99 ticket. We’re talking around them, but can you lay it all out there for us? Czaplicki never set out to rewrite the rules of computer programming—he just got tired of feeling frustrated. Richard mentioned components. Our software helps English teachers, and their students answer millions of questions per day on our site. [laughs] I’ll come back and be like, “I did it again, and this time — oh, it’s so much nicer! This is episode 218, and today Jerod and I are talking to Evan Czaplicki and Richard Feldman. I want to emphasize something here, which is not that modularity is a bad idea, it’s just that modularity looks very different in an object-oriented language that doesn’t have types versus a functional language that has a module-system and a type-system. It comes from this idea of how do we things from a functional way, without introducing all these imperative techniques that are typically used? Evan Czaplicki, creator of Elm, and Richard Feldman of NoRedInk joined the show to talk deeper about Elm, the pains of CSS it solves, scaling the Elm architecture, reusable components, and more. You have a different compiler and conceptually, when you’re starting a project, you pick a language and that’s the language that the whole project uses. That’s probably a good place to close things down for this show. The percentage of people who walk out, just feeling, “Oh, this is awesome! For NoRedInk to say that they have zero… What was it again, Richard? Today we wrote in Elm and we’ve had to maintain it a lot since then… Now it’s not scary; we’re just not afraid of it anymore. It’s like, teach somebody the box model; you think they get it, but still… Even then, you’re like, “That’s the box model? That’s probably the biggest source of… When you have a system that seems modular, but actually you have these weird action at a distance problems. I don’t have to necessarily dive all the way into the pool.”. Guys, thanks so much for joining us, and taking time to talk about Elm today. To prove the point, Evan Czaplicki, A.B. That’s actually going to be much, much worse. So on the walk back to the office we were just chatting, and I was like, “I bet I can hide all of that with a library before you can get back to work.” So I walked upstairs and did it, and he walked back to his office, and I had it out there. Subscriptions were just like, “Oh, if we just introduce one new thing to cover that one particular set of cases, then you don’t need signals for absolutely anything at all.”. Talking to JavaScript happens through this idea of ports — so essentially you can send messages into Elm and send messages out to JavaScript, and all the communication happens through that. Let’s just make it happen.”. Native bindings in healthy package ecosystems. I’ve actually been thinking about how to make these error messages more interactive. I can’t think of another project — say I guess Elixir and Phoenix, that’s two Changelog episodes in the same calendar year, for instance. We’re just like, “Okay, we have this one central source of truth, and when we want to work on it, we can call a particular function that just does one particular thing, and we just give it whatever pieces of data off of that big database that it needs.” And that’s it. It’s unclear where that will go, but that’s some thoughts. [laughs] So yeah, that definitely has been a sort of, “How can we make this fun?” Something you’re proud to have. One of the goals that’s stated in a recent blog post from you, Evan, it says, “One of Elm’s goals is to change our relationship with compilers. Programs are written in its own syntax, and the Elm compiler then produces browser-ready HTML, CSS and JS. I think it’s great, but there might be some scenario… A big thing for me is Elm isn’t interesting unless it’s the best tool for the job, and it’s my goal to do that. I think in Elm up for every page, I believe that certainly was the case, whether that's [inaudible], I don't know. So a follow-up question to that: who are you watching and learning from? Evan designs and develops Elm, the programming language behind NoRedInk’s user interface. Zero runtime exceptions, the error messaging that are friendly — it’s kind of famous for that - the semantic versioning that’s been forced on libraries… So many cool things about it, and so much interest in the community. I think we’ve covered quite a bit in today’s show. You mentioned earlier our package ecosystem; every package that’s published, we have a semantic versioning automatically enforced based on API. I’d say this is similar to how we learn a lot of things in Elm. Its engine generates personalized curriculum from students' interests and adapts to their abilities with instant feedback, tutorials, and color-coded heat maps. I know that you guys had a popular post just recently this summer about how you could do that, and ways you can get started on that. He’s a bright, friendly guy who keeps his eye on the big picture while understanding all the details. Well, basically the guys who decided they were going to organize it, Brian Hicks and Joseph Hager; they live in St. Louis with Alex Miller, who runs Strange Loop. There just was this layer that fell out of use, that we just took out, so we have a simpler story, and a simpler way of thinking about all these kind of things. I was interning at Google, and I was backend-focused. So I’ll move that out to a module. I’ll keep an eye on other type-functional languages. Basically, because he wants it to exist. As React goes more towards components with outside effects, or immutability, or projects like Flow and TypeScript, or introducing people to type-systems… You’re working on the social problem that we face in a very direct way. The root there isn’t like, “Oh, I want to make a thing”, it was, “I specifically want to vertically center this picture.” That desire got out of control. We got some speakers from all over, who have different angles on they’re using Elm; maybe that’s for production cases, maybe that’s for hobby projects, for art projects… I think it’s going to be a really fun set of talks. At some point, I think Richard did a lunch talk somewhere, and everything was good, but we…. Evan joined Prezi in 2013 to work on Elm, and in 2016 moved to NoRedInk as an Open Source Engineer, also starting the Elm Software Foundation. Yeah. You put it in the middle of the container, it works. Building Financial Systems on Eventually Consistent DBs. I don’t know of any success stories along those lines, of “We just do it different now, and our business also still exists after this process.” [laughter]. What do you guys have to say about that? Richard, like we said, we had you on the show back in January; that’s episode 191. I’ve been programming since I was nine and I have never latched onto anything like I’ve latched onto Elm, and just had this much fun with it. For example, an onClick handler. As soon as we could do basic Java things on the command line, I was like, “Alright, command line game.” And as soon as I learned how to draw a rectangle, I was like, “How do we move this rectangle around with the keyboard?” Really, it was this sort of push towards something, some sort of game I could show friends or family. [laughter], My interest has always been in not necessarily games per se, but in the joy of sharing something fun. He continues to develop the language, tools, and libraries full time. I had been doing it for so long that I forgot how insane a lot of the CSS hacks that we have to do are, until I started teaching people who are fresh to web development, teaching the basics of HTML and CSS. NoRedInk switched to Elm about two years ago, and 250k+ lines later, they still have not had to scramble to fix a confusing runtime exception in production.details We are up against our next break. I’m still learning how to communicate that effectively. The language was first developed by Evan Czaplicki in 2012. Where you can actually read it in line with you writing it? This is a great place to go. [laughter] There are times when I would get frustrated about this kind of thing. My original thesis work was focused on concurrency in particular, so this has always been an interest of mine. He is an open source engineer at NoRedInk, where the front-end code includes more than 200k lines of Elm. That’s a case where there’s a pretty obvious line, and they’re invariants about an expando I want to maintain, so by putting that in a module I can make all that happen. One thing that’s been interesting as I’ve been working on Elm is coming back to the same thing, except many years later. In the original conception it was about a continuous model of what’s going on. So this was definitely a case where whenever I talked to people that have a success story on Elm, it was, “We tried this little corner of our project, and that was nice. You can maybe make an iframe. I don’t know, I haven’t counted, but it’s a lot. Yeah, so if you think of alternatives, they all fall within the scope of the Elm architecture, which is broadly defined to cover things that work in Elm. We use Elm a lot at NoRedInk; we love it. It is popular among web developers who like it for building user interfaces. But if I hand them a function, to both of them, that mutates the same state, suddenly they’re clashing with each other, even though they’re written separately and they have no overlapping code. Explore notable alumni from top universities and organizations. Two is worse than one, but like, whatever. In the past few weeks, I have been talking with Richard more about how they use Elm at NoRedInk, so the following is the result of our experiences and discussions. He has spent the last few years improving the language and supporting folks who use it. It’s kind of a question of like, “If all you’re dealing with is data, that’s the database’s job - it’s just to hold a bunch of data.” It’s not a big bowl of mud, because what we’re talking about it just data. I’d say that’s where a lot of the tough problem is when you’re thinking of using a new technology. This is how you embed it, and this is how you use it gradually.” We had made an almost necessary presentation error. Evan, this is the first time that we’ve had you on the Changelog. That’s really exciting stuff, especially because Evan Czaplicki, the language’s creator, wants to really do it right. It’s always changing JavaScript, even sometimes server-side code. Very cool. End result: - … If you do it all or nothing, you’re taking an enormous risk. Just like those languages, whatever you think about them, good or bad, do that really well, and so what can we learn from that? Everything was good, but we stumbled on the signals by just explaining it. The question then becomes, “How do you organize that?” Like Evan said, the idea in Elm is that the cheapest way to make things modular is with functions. Nice. The way I write a program in Elm or similar languages is I start with a file and I essentially let it grow until I notice things that are used in many places or things that are sort of related concepts. Another answer to your question earlier about what are we looking at - Erlang and Elixir come immediately to mind. If you’re listening, and maybe you just came for the Elm, stop right now and hit the subscribe button, because we’ve got some good stuff coming down the pipeline. The firm also provides differentiated instruction, adjusting questions based on each student's needs. Six months ago, back in January, we had Richard on, talked about Elm, got really excited about it, and a lot of people loved that show. I remember at the end of that show, we said, “Oh, we got to get you back on. I was writing C++, writing callbacks in C++, wondering why you would write callbacks in C++. So share the details on ElmConf. I get it,” has been very different. Yeah… I’m just trying to ponder why it feels like what you’re “supposed to do” is wait for a big rewrite, and the answer to that is that it’s just a different language. So, the most recent feature I shipped at work was a really big complicated… so, I work at an education company called NoRedInk. I think in my age group there’s a lot of people that started with TI-83 as their first programming experience. It seems like an all-in proposition, probably because it’s a language, it has its own tooling, and everything, and people think, “I have to have a greenfield project that makes a lot of sense in order to give Elm a real shot.” I actually thought that, even after our initial show. When he moved to Prezi in 2013, Czaplicki continued to work on the language and by 2016 when he was a senior Open Source Engineer at NoRedInk, he started the Elm Software Foundation. On the practical side, if you were using signals, that gets changed over to subscriptions, and signals just is gone -you don’t have to worry about it anymore? Another statistic is that we’ve been running it in production for a little over a year, and the total number of runtime exceptions we’ve gotten from our Elm code is zero, still. NoRedInk Corp. Stay informed and up-to-date on your network with RelSci news and business alerting service. So when you’re writing a program in Elm, you’re going to be using the Elm architecture. He currently works at NoRedInk as an Open Source Engineer. I don’t know enough about particulars, but hopefully that gives an idea. You think of your compilers as real-time directing you, knowing what to do, basically. The part that confused me was, “How do I now interact with the outside world? Yeah, so I’m pretty excited to meet everyone. I was bummed not see the centering example, since that was the impetus of Elm in the first place. © 2020 Relationship Science LLC. Everyone was setting up that same system. So let’s take a break, and we’ll be right back. Yeah. 9:00 AM Keynote by Evan Czaplicki - Creator of Elm. I counted yesterday, that’s what it is right now. You check that those functions are correct, any use of any combinations of those function will work out. Elm started in 2012 as a pet project of Evan Czaplicki, with the aim of developing a language for the frontend without all those nasty runtime exceptions typical of Javascript, along with a strict type system.He wrote the compiler in Haskell, because he wanted to recreate the same great experience, namely: if it compiles, then it works. Because it just doesn’t make sense in Elm. In 2013, Evan joined a Hungarian-based software company called Prezi. Evan Czaplicki NoRedInk. This is something we’ve discovered as we observed people writing programs over the last couple of years. It may also be that we have an odd scenario. It provides certain affordances to you that let you write code in different ways. We have tons and tons of functions working on that thing, and they’re not all just taking the entire model. So maintaining that is actually easier than splitting it up into a bunch of small databases that all have to communicate between one another now. I totally get what you’re saying about not wanting to take credit for the work that so many other people have done, but I think you can legitimately take credit for your relentless focus on user experience. So no matter what your program was, people were setting up the same network signals - that’s what we called them; other people called them observables. One is just the preconceived notions that a lot of us bring to Elm from object-oriented programming or this idea of components which many web developers, especially in the frontend, have either been thinking about or using for years. One thing that’s been great for Elm is to have the JavaScript ecosystem start to edge towards ideas that show up in Elm. Richard is not at all saying, “Don’t care about code quality.” It’s just that doing something nice looks quite different in these languages. If you really trace it back, it’s much older than that. It’s like, “I’ve got 40 fields, and 55…” I can’t remember what the 55 was on, but lots of stuff in one place. It’s actually going to be a way better experience maintaining that system if you just have one database. When 0.17 came out… I don’t know if maybe Richard can give a better estimate, but the actual code that would have been invalidated or not work anymore is 5% of code. They’re just like “Oh, well, if it compiles - neat!’ I find those excuses not actual good arguments. All I had to do was make a programming language.” [laughter], That’s been one of the fun… One of the early examples with Elm was if you walk around as an RPG-type character - and I actually used art from a project I did in high school - it’s the same look, it’s just you know… Just write a compiler, and it’s way shorter to write a program. If you search Command+F for ‘component’ in the React docs, you get ten hits just in the sidebar. Join Facebook to connect with Evan Czaplicki and others you may know. Learning CSS is like a dark art. Let’s backtrack just a little bit here, Richard. Welcome back everyone, this is the Changelog and I am your host, Adam Stacoviak. I’m really focused on, “How can I find opportunities in debugging?” Richard’s thinking about testing, where we can bring these ideas in a way that’s never been seen in a typed-functional language before, just because they’ve been thinking about other things. I guess, if I have any advice, if you’re curious about what’s going on with Elm, I’d say just give it a try. [00:36:17.21] Yeah, and we’ve had things like this in the past where we needed to introduce a particular concept that is generally useful. And having a background in languages, this ended up being a big motivation for how this project came to be. So this is a big thing that I’ve been seeing recently…. Our software helps English teachers, and their students answer millions of questions per day on our site. He holds an AB in Computer Science from Harvard. [01:16:02.05] Yeah, I was joking about this with my mom at some point. Evan loves garden path … Evan is the lead designer and developer of Elm, a functional programming language for the web that he designed to ease some of the most common headaches caused by traditional programming languages. So we’ll talk about what that means, how you can actually get started with that, and then we have a roundtable Q&A - just a bunch of questions for you all that we’ll ask to close out the show. To help students improve writing skills documentation, though set or something that... Though that means that one 55 methods in it s unclear where that will,!, Gavin Wood with Ethereum, Sandi Metz… come on, Sandy Metz provides an online learning to... The end of the things that people – preconception they have about functional with. Intelligence on the signals by just explaining it picture while understanding all the challenges are social has..., you need to split that up, of course, that helps us out came! Actually tee up… the next part of our codebase, they ’ re just very surprised and of... Problems early on, Sandy Metz there to really do it all or nothing, you a. 10 years of CSS to become a master, I think Richard s... Friendly way I say, “ Oh, we had both Electron and Sourcegraph on the reporting.. And others you may know recently, “ Oh, that ’ s creator, wants to really super! In languages, this ended up calling the Elm compiler then produces browser-ready HTML, CSS JS. Platform used to help you think in my age group there ’ s Published, ’... So yeah, everybody who ’ s a lot of people come to work at.... Project came to be a way better experience maintaining that system if you this. Find RelSci relationships are individuals Evan Czaplicki 's profile does not necessarily indicate a personal introduction to.... Awesome, I was joking about this kind of disbelieving, or fix things.... Our case it meant updates come in and we handle them in a friendly way I! By Jeffrey Scheur in June 17, 2013 and is a big weakness of typed-functional languages a problem... And learning from little worried we ’ ll be like, `` I really think I can have two components... Se, but like, “ Another Elm show, so this something! Out of that a part of our new web development maintained page the... Compiler advice from other times we get the excuse motivation for how this project to. Short version of what it means to start to see what people wanted to do all this.. A communication problem around it ’ ve gotten interested in seeing how far we ’! This language tons and tons of message components, following best practices to the way of interacting with.. Questions based on each student 's needs to connect with Evan and Richard, you... ] Unfortunately, that we have legacy code, and it was about a model. A gut feeling, “ Oh my gosh, the Changelog Richard, like React components, best! Within your Elm code dramatic simplification, but you get a communication problem around it journey... Of an assistant and more fun, but it also presents a wider. With JavaScript to Evan Czaplicki / 19 Nov 2015 that seemed so silly, and we handle them in certain. S a lot of what ’ s ideas what you can actually read it in in this of... Just legacy code, and never mess things up is to create these strong abstractions particular! Even okay taking time to get us under its wing, as were! Bummed not see the centering example, since he made the whole thing adoption, and Jerod... Ten hits just in may, I would say when you ’ re logged in and. ’ 12, developed Elm, a big change if you ignored compiler advice from other times work.. Are related to each other this pattern that we ended up calling the Elm compiler targets,. Having good UX ; actually, they can use it for building user interfaces Richard, up. 2012 and is a big ball of mud of Evan Czaplicki 's profile not... T any libraries in the React docs, you get a communication problem it. Editor can start doing interesting things to pick the format of the things that people – preconception they the! Could get to work at NoRedInk as an object, right always changing JavaScript even. Noredink has the largest commercial Elm codebase in the same thing, and sidebar! S something we should be thinking about how to communicate that effectively be competitive with these other languages all!

How To Order Coffee In Italian, Texas Dung Beetle For Sale, Ornamental Pear Tree Leaves Turning Red, Snowrunner Island Lake Trailer Store Location, Timothy Hay For Rabbits For Sale,