Salesforce, Apple, Hiroko discussed on Software Engineering Daily
It very, Meta data focused. So component component, but it runs on the sales core stack is has all kinds of behaviors built into it. So they built a wire system where you can essentially have and points to pull data from an exchange data with that are they really baked into the framework and then they built a bunch of what they call based components which are into building blocks for. Your you UI. So you have a button or accordion or you know various widgets, you can just grab and drop in and make part of your system. This ray object oriented you know es six module style and they've actually open sourced it and put lighting wants out there for other people use on any stack, which I think is a really interesting representation of character explained that a little bit more. Seals historically builds their own stuff right apex proprietary language. All the stuff that you can use on their platform is not open source they really they use some open source stuff but they're very much about their walled garden kind of an apple style approach. And leading low components being open source of course, the actual runtime on the stack is not open source. They have all kinds of extra security stuff built into it, but there's a version of the library that's open source and it's a philosophical difference. This is my opinion I don't work for salesforce. But I think a philosophical difference for them to really participate in the technology world in a different way than they have in the past rather than just build their own version of everything they seem to really be thinking about how they fit into the larger sort of software ecosystem and what sort of libraries they want to help curate they wanna use what do they want to share us is really interesting to see them really. Participate in open source and be a little more open, minded open arms with the rest of the tech world and they've been the past. So anyways I digress. So we're talking about lending woke opponents to prefer with es six modules. These will be very familiar to you. They are extremely performance. They struggle a little bit because the love component standard isn't really totally done. So for example, shadowed them really in the weeds here a little bit, but chatted essentially A. Internal encapsulated document object model for single component in the U. Y. and they've essentially built their own version of shadow dom as a temporary placeholder. Until the shadow down part of the SPEC is sort of fully realized out in the world has all browsers pick up on it and things get formalized. And so there's a weird little wrinkles, things like your CSS in the shadow dom with leading web component. and. The team behind welcome. It's incredibly sharp. I really have enjoyed talking to them and I think it's going to be a really interesting standard even more. So than just in the civil service while I think there's real potential here to go after larger types of product. So their vision is that this is going to be a real framework jobs gra framework for the web that people like use an his fast and really nice to work with. They want to go out there and make a compelling alternative to react in view and angular and all sorts of stuff that's already out there. So, kind of pulling it back to the social world what what do you do with these little widgets they are meant to be. Small enhancements to screens and salesforce from their sort of wearing the salesforce had in their world. You have a record that represents an account or contact or some other data, and you're going to add another section to that record or replace record with your own page. And they've their obsessions rate, our security declared of behavior and meditate right it's pretty easy summarizes those three, and so as a developer, I can write a custom Ui Macho can right aligning component with some logic to it maybe backed by the database maybe in the database in south way and that little widget because. I. Surfaced for my admits that I work with. So the people that are not running code a little more configurations focused on through the business flows I can say, okay, here's a a weather widget where it'll show you whether it's raining or sunny or whatever I at the location of the persons whose record looking at. And so I can create the weather widget and then in their tools and the declared tools where they go and sort of drag and drop figure the UI, they can see both the standard widgets that they can use to construct that you I and customers. It's that people have created for them locally, but also installed. So salesforce has an APP store much like a phone has an APP store. Then people can install a complex business apps like the one that my company does or they can install simple things. Like whether widget for contact and then that Admin can see those which it's from their screen and also configure them. So you can actually sort of surface configuration, Meta data for your widget and say, okay, you know I have a colors you can pick from these three colors. Here's the check box or pickling or some kind. So pretty robust little SORTA widget system, the where kind of struggle, and this is sort of a a historical Achilles heel for salesforce is he was trying to build really complex things a standalone. Why satellites domain on the stack but really not meant to enhance an existing stream but be its own screen or a series of screens like really your own single page application. Some of the more abstract concepts you want to use a knitting things together like like session based caches that you can invalidate sort of as you need to or some of the more sophisticated navigation behavior. So for example, salesforce really controls the oral they use the or of their own stuff, and you can't really manipulate your L. From your components. So if you're trying to, let's say deep link to state in your component. Can Be really troublesome to do. So because I expect the real the looking at and and appear a certain way so they can process it. So using sort of at scale for robust and complex applications is something that's. Challenging and the communities working hard to sort of come up with patterns to make possible. So I said I wanted to go back to layers. Let me go back there real quick. One of the things in this again is just me speculating ecosystem all time about a decade. salesforce has organically grown from what it was originally to what it is today today, it is a robust complex sophisticated general purpose platform to build stuff. And one of the things that sort of is interesting is their database letter layers incredibly sophisticated all kinds of allegations and logic tie to when things get saved. What happens all that behavior? The UI layer is incredibly sophisticated. We just heard about you know letting components an oral and visual force and all these different things done in the middle. It's always been a little bit lackluster. There's great sort of business logic tied to the database behavior. Right. So if you WANNA react to records changing if you want to interact records in, mutate them or reject them as they are save is a phenomenal support sort of database triggered behaviors. But if you want to do something every ten seconds or you WanNa Damon that runs and does logic. Or reacts of things that aren't strictly database triggers a time based. It's really tricky to do in salesforce. They don't really have a traditional sort of business logic layer rican rights are general purpose stuff and there's no way to import libraries. So I worked with a company a few years ago. That was trying to do natural language processing whistles, horse, and there are tons of. Great NLP. Libraries that exist out there. Open source of this company couldn't use core stack because you can't import that sort of stuff. Right? If it's in APEC sure you can't import libraries for many other programming language and so they were pretty stuck in sales bought Hiroko some years ago now, and at the time it Kinda thought maybe Hiroko come the middle it's like a A Sandwich and you've got the top layer in the bottom layer but you're missing the middle and I thought fill that gap. But really, it hasn't been in the gaps still exist at one complain about sort of a holistic structure of salesforce as a platform is that middle layer is still pretty weak. They've done a few different things to improve one ROKU has helped, but there's really not as integrated with the course because I would like but more recently sales versus before on more tooling in them. At, a layered, there's a really great feature that they're working on called salesforce functions and sales. Functions are essentially sort of like a lambda with Amazon where it's a little a micro function that you're going to run and the compute is not yours to manage. So you essentially define the function and you make it part of your part of your code setting say Okay I want you to run this function a synchronous when these things happen and salesforce is going to manage some of their own compute i..