From You Can't to You Can: The Welcoming Nature of JavaScript
2018 / JSConf EU / 21:42
Transcript
23 paragraphs
This is an automatic transcript of the recording above. It is published in full and unedited, apart from correcting names the recogniser reliably mishears. It will contain mistakes.
00:11Hi! How are all of you? Are we well? Was it a good break? Did we get food? Are we refreshed? Yes? Really? Let's try that again. Yes? There we go. Excellent. My name is Tejas, that's pronounced by contagious. And I make that easy. Is your name I get a lot of mispronunciations. It is like contagious. Don't worry, I'm not sick. I'm not going to give you anything besides hopefully a good talk about JavaScript and its welcoming nature. Day to day I work at a data science platform called Contiamo. And we build very rich, expressive user interfaces that interact with machine learning and AI to help users make better decisions, essentially build decision tools. What in the world? I'm here today to talk to us about JavaScript.
01:11Do I need to do something? Especially how JavaScript as a language is is helpful and welcoming and more hospitable and accommodating to newcomers across the board from beginners to intermediates to more advanced engineers. I'd really like to get the slides fixed. It's throwing me off a bit. Let's see. Maybe should I not touch anything? Right. Okay. The tech guys are on the way. I guess I can just continue talking. So, where were we? Today we're going to talk about JavaScript. The title of the talk is from you can't to you can: The welcoming nature of JavaScript. From you can't to you can: The welcoming nature of JavaScript. Have you ever felt like JavaScript has been described or in some ways dismissed or reduced as kind of a toy language?
02:13As kind of it's a little bit brittle, it's a little bit shaky. Oh! We have slides. Excuse me. That's cool. Can we hear it for [ Applause ] All right. Woohoo! Thank you, sir. The title, it's called you can't to you can: The welcoming nature of JavaScript. Right? And so, we want to talk about how JavaScript through various language syntax features is just something that is so approachable and hospitable and then talk about my experience. So, make my point about JavaScript maybe being a language that some consider brittle and maybe not as robust, I would like to share with you a quote from a friend of mine. This quote and I think a good summation of how we think about JavaScript. Seriously? There we go.
03:07This is a heavy paraphrase of what a friend of mine has said. And it's heavy because it was way worse. The original text. Let me tell you. He's a scholar engineer and really talented. But fact of the matter is, some of the more I'd say opinionated languages have in opinion about JavaScript. My goal today is to examine some points of criticism about JavaScript and say, hey, maybe that is not a bug. But maybe that's a feature. Do you understand? Are you with me? Maybe that's not a weakness, maybe it's a strength. Maybe it's not a disadvantage, but an advantage. I want to talk to us particularly about four things. And then if we have some time at the end, I would like to kind of share just a bit of my story and experience with JavaScript.
03:56With that, I would like to for two seconds give us some context for those who haven't heard talk two seconds about the history of JavaScript. So, and in the beginning the web platform was really immature. Or just beginning. And, you know, the future of the web at the time I think it was the '80s, I'm not even sure, was foreseen as something that would be powered by Java, right? Java applets and browsers, web 2.0. Wow, how cool? Meanwhile, Netscape, Brendan Eich invented this language that would be powerful and see the web forward. I read that this language took three weeks to come up with. And I've heard that it is it was a rush to delivery. Now, how many of us have written rush to delivery code?
04:49And I don't even need we know what that's like, right? I think while some would say that part of JavaScript is maybe what makes it weak or unique, I would say that may have been one of the happiest accidents if it was an accident in the history of our time. And that's the reason I put the slide up there. Now, let's get to the four things. Number one. I can already see some of the TypeScript people in the room judging me. But let me tell you, I think dynamic typing with JavaScript is something that is weak and that creates brittle applications, I have honestly not seen a more welcoming construct. Mainly because static typing as it stands is extra syntax. And there's a lot to keep track of. I mean, this is from feedback from friends of mine who were journalists, architects, graphic designers with not a lot of web Dev or computer science experience.
05:56All of them wanting a change from what they studied. Guess what language they found a home? Not TypeScript. JavaScript by its nature of dynamic typing was the language of choice. I believe this is the reason. I believe through the dynamic nature of the language, what you get is the ability to go from zero to, oh, my gosh, it's working, in a fraction of the time it would normally take. I would also say that dynamic typing is educational. Absolutely educational. And what I mean by that is it teaches you the need for static typing. Right? How many of you have been bitten by implicit coercion? You try to do a computation and you get a nan, what can occur with the explicit JavaScript conversion because of the dynamic type system.
06:55What happens is really cool and something that I believe is unique to the JavaScript community. JavaScript as a syntax I would say is really, really, really friendly for the reasons we discussed. But I would say that's two sides of the same coin. The other side being the helpful, supportive, inclusive community that I'm looking at right now. If someone's bitten by a typing error in JavaScript, or just a computation that's impossible, what's the next step? You turn to StackOverflow or GitHub or something. Or discord and you find a community. That's because you're changing this thing. Whatever the cause may be. And you learn. I grew up in a school setting where information was ingested and then regurgitated practically and professionally.
07:44So, you learn things. And then you just do it in your job. That's just the way it's always been. That's what we have learned. I would argue when you have bitten by a few dynamic type problems, you learn the need and the importance of it and use it wisely. Number two. This is a quote that should not have happened. We'll talk about that in a second. Number two. This is an excerpt bit author of a book called JavaScript: The good Parts. The author is one of the greatest contributors for the community. He worked for Yahoo! and created a UI kit, and this is what he says about JavaScript APIs from the browser and from Node. JavaScript is coupled with the DOM, a horrendous API, before NodeJS. A lot of confusion about where JavaScript ends, and the DOM begins.
08:44While I would agree with the second part, I don't see why the DOM is particularly a horrendous API. In fact, I would say the DOM is the reason I have a job. The DOM is the reason for many of our careers here. Especially if you work with like React or VUE or something. We have a React fan! VUE fan. We have a UI fan. [ Laughter ] I would argue APIs, at least for me and other engineers who have started have been just these building blocks, right? From which you can show a pop up or a modal dialogue or accept user input using window.prompt. You can fetch data using the fetch API. It's declared. There was a talk at CSS Conf with declarative CSS where it's a declarative algorithm. The APIs give you this tool set in the browser and in Node that gets you up and running really fast.
09:44It's part of the welcoming nature of JavaScript. I was willing to admit for me as a junior engineer, I tried to use window and Node. It gave me an error. Window is not a function you can use it in JavaScript? I confused it for syntax. But, again, the community shown, and I learned, and I was able to learn. In fact, I have spent a lot of time talking about APIs. And really this talk is largely community based. It's not very technical. But I thought, you know, since I'm talking about APIs, I might as well use one. I wanted to build something. What I ended up doing was thinking about what can I build? And I thought about, well, you know, I really like talking in case you can't tell, and I really like people.
10:38And I don't want to have to hide behind the podium and change the slides. Or use a clicker. I just thought I could build something that as I'm talking, it would follow me through my slides. And that's basically what's been happening this whole time. Hello. My name [ Applause ] It's just the JavaScript ecosystem is so rich with these APIs. I built this thing. I put it on GitHub. It's called Praise. And it's very it's open source. It's very experimental. Please do not use it in production. It's only supported in Chrome. But it's literally just to make a point. And that point is, JavaScript is welcoming. Praise was the praise. See? It's experimental. That was the projects. APIs how long did this take?
11:39I sat next to my girlfriend, this beautiful young lady here. Took me four hours on a Saturday afternoon. I was at it, I made bindings for it. Why not? All of that's on GitHub. Number three. JavaScript, I have been heard JavaScript criticized as an unopinionated language. You can write whatever style of code you want and that's the language. You can write class based, object oriented, polymorphic, inherited style code, or stateless functional immutable code with monads flying around that looks like math. And there's no real it doesn't push you into a style. I have heard in this from Golang engineers. If you peek under the hood of JavaScript, it is, in fact, opinionated. I have written object oriented, polymorphic inherited style code, and there's a use case for that.
12:44But you get functions and objects and things that use prototype delegation. And so, this would lead me to think, JavaScript is kind of sort of leading towards more of a functional language. You get first class functions. You get recursion out of the box. There's a star there. I know, I know not everything is a function. But you catch my drift. And then in a team, you can kind of conventionalize the other functional best practices. You can have pure functions, immutable data structures. And go on and on and on. I would say JavaScript is easier this way. When I tried writing code kind of Java style, what ended up happening is I felt like I was going up an escalator that was moving down. Are you tracking with me?
13:31It felt like I was fighting the language. The way I use the language, the way I would say it was designed, things got a lot easier. The last thing I'll say is really, I mean, it's there was a point of controversy for a little bit last year. I'm to the going to say much about it. Because in my opinion it is incredible. It is the greatest mechanic a compiler can have. I guarantee you. Lastly, we'll talk about my slides don't change. It's experimental. Don't use it in production. We'll talk about this. Automatic semicolon insertion is such a blessing for beginning developers. Have you worked in another language and left off the semicolon and the compiler yells at you? Why? Am I not allowed to make a mistake?
14:29Gosh. Yet JavaScript, if it's someone just learning, what does it do? It just says, I see what you're trying to do. I got you. If there's one thing you get from this talk, let it be that JavaScript is your bro. Or sis. Or whatever, gender neutral. And so, those are the four things that I think really help JavaScript be this language that is so easy to adopt across the board. About ASI, I'll say one more thing. As I've learned and grown into a more seasoned engineer, I would recommend leave your semicolons on. Honestly, it's good as a starting out step to make have the optional. But you're fighting the compiler under the hood by not having them. Now that that's out of the way, let's shift gears a little bit.
15:23And I would like to talk about my journey with JavaScript. Because you see in many ways it is a journey of from you can't to you can. I was born with a disability. I was born with a disease. As I said in the beginning, I'm not contagious, don't worry. But it's still a disease. And it is life threatening. And I have been told I have the worst kind of it. Basically, the condition is called hemophilia. Do not confuse that with homophobia. But hemophilia is a disease where once I start bleeding I do not stop until I lose all my blood and die. And so, I mean, I can see some of you engineers in the room go, well, then, just don't get cut. Problem solved, dude. It's not rocket science. But let me tell you, internal bleeding is something that is far more common than external bleeding.
16:17And so, if you've walked today, if you came with a backpack. I guarantee you you have started bleeding into your niece or ankles or elbows. But you stop. So, you don't even notice. I've been in the emergency room literally by opening a heavy door. I have by climbing stairs. I've literally spent weeks in the emergency room. And so, this you can see by this how you can get a lot of you can'ts. Am I right? You can't play sports. You can't ride a bicycle. I have a bicycle. To this day I have no idea what to do with it. It just sits there. I probably should sell it. Who wants to buy a bike? You want it? Really? We'll talk after. I so, there's a lot of you can'ts. And that started to change when we brother, who is healthy, he went to an HTML class.
17:12And when I was 8 years old, he came home, and he showed me. He was like, look what I learned. He wasn't as interested. But I was like, are you kidding me? I can make a UI? What I was so interested. What ended up happening was he would go to school and my parents would go to work and I would be alone at home all day every day most of the year. And an entire school year I would attend 19 days of school. The rest of the time I'm alone at home doing what? Well, there's so many games you can play and cartoons you can watch. And candy you can eat until you get bored. And when you're bored, I've learned, you do what interests you. And for me, this was code. So, I started writing some code and made a couple websites as a child.
18:00I was in magazines. If there's child making websites in a small town, people hear. I was in a few magazines and then my parents, god bless them, they did the best thing they need to do. They put me in an advanced program for object oriented C++ at age 10. At age 10. I still have the diploma. And I'm like, I don't remember any of it. Right? As a 10 year old I'm sitting there with all kinds of includes at the top of the file. #include.cone io.h. Is there ice cream in the program? I had no idea. The compiler would yell at me for everything. As a 10 year old, I'm sitting there going, why is it yelling at me? I'm writing code. Is this another thing I can't do? I thought programming was my thing.
18:53People have applauded me. You can't, you can't, you can't. And now I thought I could. Eventually I got back into JavaScript as it evolved and things like Prototype and query, and things started picking up traction. And I won an award for web development in my home town. And not long after a job came and another job. And I'm interviewing all of a sudden for a position in Germany. Move here. And now, let me tell you, I have access to the best health care I have ever received. I go running. I lift weights, I've climbed mountains. I go rafting in the river. It's insane. And all of a sudden most of the "You can'ts" have become the" You can" largely because thank you. Yeah. You can go for it. [ Applause ] Largely largely because of the welcoming nature of JavaScript.
19:55Let me tell you, we have a language that is inclusive. That is tolerant. That will not entangle your mind with intersection types and discriminated unions and generics. While these are good things. There is a time and a place. We have a language that is inclusive. That is easy. On the other side of the coin, we have a community can we hear it for the community? [ Applause ] We have a community, man, is it inclusive? Look around you. This looks like the United Nations here, right? We have a community that is inclusive. That is tolerant. That is mostly vegan. I'll leave you I will leave you with this. I've thoroughly enjoyed our time together. I've thoroughly enjoyed working even with the organizers of this conference to make it a wonderful time.
20:51They have given me a wonderful time more I haven't organized anything. Don't get me wrong. But I'll leave you with this. I think we have the potential to make the language what it is how many of you have heard the TC39 talk? Right. Exactly. TC39 shapes the language and it is an open standard. It is an open source project with proposals. Contribute. Get involved. You have the power to make the language what you want it to be. If you don't want to code, you have the power to make the community what it is. You have the power. I leave up the slide for Praise if any of you are interested. It should change. If it doesn't change, whatever. But thank you very much. That's my talk. [ Applause ]
More talks
- 2026
The New UX
CityJS London 2026 - 2026
Frontend after AI: The New UX
Future Frontend 2026 - 2026
Harnesses in AI: A Deep Dive
AI Engineer Europe 2026 - 2026
AI Yesterday, Today, and Tomorrow: Extending AI Systems with Model Context Protocol
How to Web 2025 - 2026
How to Thrive as a Professional with AI
React fwdays 2025 - 2026
How to Optimize Your Health with React Native
React Universe Meetup Berlin 2026
Elsewhere
There is every talk I have given, all 69 of them, ConTejas Code, the podcast, and Fluent React, the O'Reilly book on how React works inside.