| I like that too, I just wish UNIX IPC pipes had more metadata than throwing raw strings at one another and hoping the receiving process understands. I know people are going to roll their eyes at this, but Powershell's IPC constructs are a step forward. Everything inherits from Object which has the following prototype: public class Object
{
public Object();
public string ToString();
public bool Equals(object obj);
public static bool Equals(object objA, object objB);
public static bool ReferenceEquals(object objA, object objB);
public int GetHashCode();
public extern Type GetType();
}
So if you want to just do strings you still can (string will inherit from type object, and must implement toString()).However if you want to do a List<Object> you still can, and better still the receiving process can use GetType() which has to be implemented, and then have a few different workflows to handle the type (e.g. List, string, et al). UNIX was created in 1969(!) so nobody can blame them for designing it the way they did. However if you were creating UNIX today you'd definitely want to look at OOP and inheritance as a core pillar. See this post for this topic:
http://technet.microsoft.com/en-us/magazine/2007.07.powershe... |
It would be an interesting to see if any such projects exist, because it would fit very easily into the current pipe IPC infrastructure, with the addition of transformative pipelines for interfacing with the existing string-base utilities, but that's necessary anyway.
I mean to say that there's no need to modify existing IPC mechanisms, just a need to establish a common serialization standard and embed it into a shell.