Microsoft discussed on Software Engineering Daily


To be a bigger need for integration because as your microsoft's is grow than than the number of integration points grows with it okay so at this point i can see the motivation for wanting to replace the esp as the integration mechanism for a and b i still don't quite understand why do you need a new language why not set up like a java script framework why do you need a completely new language to define these integrations so there's just a whole number of issues with going with existing languages wasn't even know where to start so i is is that the type systems and existing languages are are not type systems that are not our network aware jason and xml are fundamental parts of talking over a network and wreck tables today base right so tables records sql j sonics mel and so in all other languages these are libraries that you have to explore to be able to work within what about like proto buffs buff as well yeah so when you're dealing with integrations over the network data transformation is a is a massive amount of the work right you have to be able to do data in one format converted to another format move it out so at the heart of ballerina it's got a strongly type system all these types are built in to language itself and so there's a lot of obsession about how you transformed from one type to the other and it's in a very natural syntax it's a it's amazing at how natural it is to do that that's one thing the second thing is is that you really do need a union type system in order to work over a network a union type system is one where a type can be different types at the same one of a different set of different types so if you're talking over a network and you're going to get a response back that response can either be in some sort of positive response that is a record that you expect or it could be an error right you really don't know and oftentimes there could be three four or five different potential responses that you get each one of those responses can be mapped to a different data structure type and so why put that burden on the end user to try to get a generic pack it at and then you have to inspect the packet to figure out what data type you wanna map into it in ballerina we provided a union type system that says look when i call out to this in point i expect either a string a jason or an error to come back and it's going to be one of those three things and the underlying the underlying system will take care of dealing with the mapping of that and then there's language semantics for the developer determined finding out which one of those three it was can match against the types and whatnot and so there's also sorts of scaffolding that you history historically need that goes away with a union type system other things are the runtime model the runtime model is integration scenarios is a worker based runtime model and so the threatening pattern that is ideal here is that you want one thread per worker in a java environment for example they give you one thread per class in you know jay us there's one thread for the entire thing go has a threading model that similar to this but if you want to have everything be non blocking i o you need to have your own specialty thread model which means you need to implement your own scheduler which means you need to.

Coming up next