ECMAScript 2021 with Paul Jensen
one of the biggest announcements for developers in our tokyo release is the update to our ecmascript engine today's guest gives us some inside information behind this update welcome to breakpoint the servicenow developer podcast here's your host chuck tamasi hello servicenow admins builders developers and of course all the curious individuals and i say that with the utmost love and respect welcome to breakpoint the servicenow developer podcast where we bring you the latest tools tips and of course the tradecraft to accelerate your career in this episode i have the great pleasure of speaking with senior principal product manager paul jensen how are you today paul hey doing great thanks for having me on the podcast this is my first podcast where i'm actually recording one and i've listened to about 10 000 of them before but never been on the other end of it so look forward to it you're a podcast guest virgin yes yes we're just going to leave that up to the listeners imagination whatever hazing is involved with that i'm i i don't know i don't get too many of these well before we begin i always like to get to know our guests so please share a little bit about yourself yeah sure thing um i've been in the software engine industry for about 15 plus years now i started out as a software engineer at a small startup in in colorado and uh made my way kind of as a integration engineer doing full stack development integration engineer then kind of went into management and started delivering integrations to actual customers as well so kind of made a shift away from a product and engineering organization into a organization that delivered to customers directly and so got a good mix of of cust direct customer experience and then kind of got uh got into some discussions with the chief product officer at another company who convinced me that i had been a product manager for many years and just didn't realize it and so i ended up making a career change into product management and i've been doing that for the past uh six or seven years now and just recently joined servicenow earlier this year and have been really excited to be involved in in the um developer experience here welcome aboard thank you thank you it's always nice when somebody tells you you know you've been doing this role you just haven't realized it you go oh really yeah maybe i should check into that as a profession yeah especially when they're like you know the chief product officer of a company they're typically very convincing individuals and so i i was i was you know convinced very quickly well you would hope by the time they get to that level of an organization they kind of know what they're doing and the resources and what what you are doing it's like you you know they're the part of their job is to get the right butts in the right seats on the bus exactly exactly now enough about the work talk when you're not at work what do you enjoy doing uh let's see i i love golf outdoors uh hiking um spend a lot of time on the boat on the weekends i i take my two and a half year old daughter and my my wife out we kind of go explore and go check out little islands we'll take our dogs with us and let them swim and run around and all that so we we try to get outdoors because we both work from home and we're indoors all day during the week so oh yeah i think most of us can appreciate that as well it sounds like you're near the water where are you located in wilmington north carolina so it's about an hour and a half from raleigh the capital and it's a small coastal town out here oh very nice well i have to make a point to stop there sometime sounds beautiful please do now you and i were setting this podcast up for a couple of weeks and we were talking earlier about your first day at your last job i just this is a nice little insight thing i like to share with people when the opportunity comes up so tell me about that yeah sure and this is when i made the switch to product management as well from from being uh you know in in engineering management and so i i joined this this startup there was about 200 plus people at this point so you know borderline startup they were pretty well funded but my first week i joined at their annual conference that they had where it's a week-long uh set of events and so my first day was in a you know large conference room with 250 people and and motivational speakers and guests and the ceo talking and all the all the c-suite talking and motivating everybody and and uh and then that night there there was a party uh where it was you know privately hosted at a a farm with with horses and stuff around and and you know all the bourbon on tap you you could have and then the next day was was on uh you know team building with your with your teams which you know i had never met and so i got to do that and then throughout the week there were more parties and there were you know uh on friday closed it out with a beer tap in the office and i was really confused as to how this company got funding when all we did was have fun and drink and and hang out and party so i quickly realized though the following week when you know we started going 100 miles an hour and did so for the next six years that that was just a you know a small reward for the hard work from the 51 weeks prior i just happened to join at that right time so that was a fun experience work hard play hard you walked in on the play hard part i really did i really did yeah but i also also worked hard as well and and got to play hard towards the end well speaking of hard work we've put in a lot of hard work and introduced ecmascript 2021 to the platform in tokyo what can you tell our listeners about that yeah this is a really exciting feature that that we're delivering in tokyo this has been an idea in the community for quite a while oh yes i'm sure all the listeners are are keen on uh and and originally you know when the request was made the uh the ecmascript version was es6 um and we had been on es5 for a few years prior to that request of hey let's upgrade this you know more modern javascript and so that's you know been in the back of the minds of many folks here at servicenow for a while that we know we need to deliver a more modern development experience for our community but you know prioritization just didn't quite allow that to happen for for a number of years and what's interesting is in this past year the team's been working very hard on planning to deliver ecmascript in its current form so we went beyond es6 which is what was you know part of the official request sure we went all the way up through ecmascript 2021 which at the time was the current standard they just recently i think in june uh uh you know approved es uh 13 or yes or equis 2022 of course but we were able to go all the way up through 2021 and and make it work with our existing infrastructure that we had in place we were able to deliver to the development experience the ability to write ecmascript 2021 and down so when you go to stack exchange and you find a code snippet and it's written uh beyond ds5 in a more modern way then it's much more likely to to work you know more directly within servicenow than before you no longer really have to scroll down and find hey here's an es5 version of the script you know that now you can copy and paste into your background script yeah so many times you get those snippets on licenses here's an es6 script just copy and paste it oh come on yeah yeah yeah so thank you for all of that hard work and i just want to point out to the listener that um you can change this in a couple of places in the application picker if you do the drop down and you've got your your scope picked this this is for scoped apps only as of tokyo i want to point that out we'll get to that in a second and uh there's a little icon up there that will take you into the sysap record or if you're like me you type sysunder app.list find the record blah blah blah you can also do this through the settings in studio if you're in studio dev studio you go in and there's a chooser picker there it's not the default though you have to opt into ecmascript 2021. now paul i went to equidash international.org and i found the the spec for ecmascript 2021 is and we called ours equiscript 2021. are they the same thing is it is it parody on those two so we are implementing the ecmascript 2021 standard in in our application now as many developers are familiar with there's always going to be some degree of compatibility that an engine or an application uh you know has against a standard right so one thing that we're doing is we as part of tokyo we are releasing documentation that is a compatibility matrix that you may be familiar with there's an like es compat open source project that's out there in github where you can go and look at all the different browsers and engines that are out there and see what is their percentage of completion against the standard and what are the the very granular features that they support we took that and and made it tailored to servicenow to make sure that folks know what are the actual features within the standard that we currently support in the tokyo release so we will give you an indication as to whether or not we just currently don't support it but may intend to or whether or not it's just incompatible with the way that we execute javascript server side today so an example of that would be async or a weight we currently do not support uh as there is a major infrastructure change that would need to happen for that to to be done so we've marked that as not currently supported although of course that is something that we would love to support in the future and the engineers and and product teams are well aware so we're trying to figure out a way to do that it just wasn't in scope for tokyo okay you mentioned there are certain things that we did not implement and if a customer discovers a feature say from es7 that we don't currently include what should they do that's a great question so uh well one way would be in the documentation of that compatibility matrix or should be a feedback option um i would love to hear from anybody that that would like to see features that are not supported there uh especially use cases around it and and code snippets that may you know help us understand your pain point and and help us you know try to prioritize adding a feature like that there's also the ideas portal right where this original request came from uh i know it sat there too long that is not the intention going forward i'm monitoring that uh you know definitely weekly i get emails every day that people are pretty excited about this feature coming out in the ideas portal so that's a great way to to let us know you know whether or not there's any any gaps that are that are affecting you and in fulfilling you know your your business requirements right of extending the platform of course you know any current channel you have where you're submitting feedback right so you can even do it uh you know through your account management team or uh if you don't have that avenue you can always honestly reach out through me to me on linkedin i'd be happy to to take requests too and and and have discussions with you as well and of course dear listener i will put the link to the compatibility matrix in the show notes the description on youtube all the usual places where you can find that now paul the feedback from the community on this so far has been great it's only been a few days since we released this the biggest response i've been hearing is when will this be available in global yeah so you know we took an approach uh of of making sure that we could safely enable this modern experience and and you know do it in a little bit of a crawl walk run type of scenario where we are enabling it for scoped applications we are having customers opt in to the feature when they create a new sculpt application um we know that many people work in global and they need to you know execute code from within the global scope and the team is evaluating how and when we could deliver that feature so it's definitely something that the team knows of we we understand that there are many folks still in the global space and we want to deliver that so uh it's it's my hope that we will and it's just a matter of of how and when that the team is trying to figure out i appreciate you answering that head on yeah you know it's it's a it's a big concern you know it's i'm not oblivious to the fact that that not everybody is in a scoped app uh you know we even uh within servicenow there there is is still some some work directly in global and so we we want these features to be available in global and somebody had even asked well what if i make one of these global groupings in studio where i grab a bunch of global stuff in a quote unquote scope my answer to that was if if you have an application field on your form and it says anything except global you have the ability to use the new javascript by using one of those scope global apps you're still in global yeah that's my understanding as well um you know i haven't test specifically tested that exact scenario um i just i know that from some testing in let's say the background scripts where you can kind of quickly you know execute a set of code if you are in global and you try something as simple as defining a variable saying let a equals one right and you do that in a global scope it will throw an exception right uh i think many of us are familiar with that uh by copying and pasting code on the web and putting it there and saying ah it got me again as soon as you change that scope to a scoped application that has the ecmascript 2021 feature toggled then that is when you know that declaration will proceed and there will not be any kind of stack trace that happens as a result of that so it definitely has to be executed from the initial scope of a scoped application with this enabled and the things that are brought into that application should execute through the same pipeline as that application which should enable ps12 great transition into my next question if you enable this on a scoped app and is it available in all server-side places like let's say the server script of a service portal widget yes so all all service type places this should be enabled um any any kind of editor that that's brought up in the ui will also have linting support which you know means it will tell you if you've tried to uh to use a feature that's not supported or it will allow you to use the more modern features that we do support it will no longer have the red squiggly of death underneath the let uh a equals one so uh it will it will let you know that it's there and that that it's supported but yes it is supported on the the server side um you know the many server side options that we have excellent and i love the fact that you you can catch it before it becomes a problem one of my favorite questions for all product managers is can you give us a hint of what's on the road map safe harbor safe harbor yeah so i mean i i've hinted a little bit already answering the global direct directly head-on right the the you know we're definitely evaluating how and when we can deliver support for modern javascript and global i think beyond that we're you know investing a lot in the developer experience and especially for professional coders uh you know folks like yourselves that are listening to a development podcast right that are that are either doing this either as a career as a as a as a hobby but but your focus is development and and you know learning new techniques and you know enhancing your your skill set uh so things around that um are gonna be you know we're gonna continue honestly to to keep supporting ectoscript release over release um whether that's every single release or not to be determined but we're not going to stop at es2021 right es2022 just got approved in june so you know it would not be good for the community if we just said you know what hey in another five years let's think about going and releasing es2026 uh you know that's not what the community is looking for so we're going to keep looking at supporting more and more features of the standard increasing our compatibility so you know today i don't know the exact percentage let's let's call it around 85 percent is our compatibility of the es 2021 standard you know we want to increase that we want to also support new features as the standard evolves each each year and then lastly we are you know continuing to look at features that have been requested around supporting third-party libraries and then in the long run we know that the that the underlying engine you know could eventually use an overhaul uh but that's that's a much longer term you know thing on on the roadmap i know i speak for many developers out there really appreciate the fact that we are almost taking a look over our shoulder at this point and then looking forward so thank you for allowing the engine to stay up to date a little bit more than it has in the past like you said we don't want to be here in five six seven years going hmm looks like it's time for another major forklift and and also the investment i'm i'm very very excited to hear more about the whole scripting engine the environment for the pro developers i know there's been a lot of focus on low code capabilities in the platform app engine studio being a classic example floating the flow designer being another example that's great i am totally on board with that because that enables more people to build applications but the old crusty guys like me who have been doing this for 40 years who will go with their code you know you know that that's that's i say that a bit tongue-in-cheek there are times when your low code applications hit an inflection point where you've got to start adding some coded capabilities where you need to engage those computer science majors who have the scripting capabilities in your organization to put in those requirements those features that you need to fulfill a business requirement i have a friend right now i've been friends with him for 40 years he's been very much a mentor to me and he's he he doesn't say i have opinions he says i have strongly held convictions and i always try to get him over to the servicenow side of things and say hey come on over he goes one of the bees in his bonnet is that uh you know we have had some issues keeping our ecmascript up to date so i'm looking forward to another couple of releases going now are you ready we can we can put that one under the fence and uh yeah i i hope the work we're doing is going to be the the the conviction that he needs to to make the jump i would love that i would too yeah thank you very much paul this is very exciting stuff i know a lot of listeners are going to enjoy not only what we've done in tokyo but what's coming there's there's more stuff for the pro developers that you know you can learn on you can build on you can uh you can now copy and paste from stack overflow no not 100 obviously there's you know but most environments don't have a server-side capability like we do so when you see these solutions you know keep that in mind there's there's still maybe some fine tuning you need to do for the servicenow environment before we leave can you let the listener know how they can get in touch with you should they have a question or ask for an enhancement yeah outside of the the normal feedback channels which you know i always encourage folks to go through um i'm always open to have a discussion through linkedin so we'll we'll make sure to put my linkedin url here in in the podcast details but yeah other than that that's that's really the best way to get involved with me and i i would love to add to my resume that i personally enabled folks to copy and paste from stack exchange so i i think i need to go do that update my linkedin there yeah you had to put that on that's classic well thank you thank you paul and thank you wonderful listener for joining us today don't forget you can check out the other servicenow podcasts you can find them over at community.servicenow.com under the resources menu oh by the way that's where you find the idea portal too so if you've got another idea for our product team please put it there or up vote if something's already there that you thought of you can subscribe to this podcast for free get it automatically delivered to you they show up every other wednesday on my podcatching client it's great fun it's like a little present every every other wednesday breakpoint is brought to you by servicenow executive producer is me chuck tomasi video and captions are added and put on youtube by earl duque and you can find out more about the servicenow developer program over at developer.servicenow.com again thank you so much paul a lot of great information that you shared with us today yeah thanks for having me please let us know what you think about this podcast you can leave feedback or ask questions in the servicenow community for more great information on servicenow development check out the servicenow developer portal at developer.servicenow.com thanks for listening i don't know too many podcasts that do that but i do kind of let you uh determine whether or not we need to go there you know what i think we can scratch that because you already answered it and and my answer to that i hope this is right and now i forgot the other question yeah yep yep yeah i might take that part off that's just rambling that's going to be some fun to edit i'm out of prison i can talk now
https://www.youtube.com/watch?v=b9gJsOyV9zY