I just had this interesting question from a user, which was asking if Phosphorus Five is an operating system. He proceeded to tell me, that all he wanted to do, was to create web apps, and consume these apps in IIS.
Hence, I feel obliged to answer that question, realising it’ll probably be a frequently asked question – Especially considering I am explicitly labelling it as a “Web Operating System” on its GitHub site. The short answer to that question is as follows; “Errhhhh, I don’t know” …
The reason why, is because I have no freakin’ idea about how to categorise P5, since it doesn’t resemble anything out there. At least not anything I have seen before. Below is an excerpt from “the guide”, which is the primary documentation for P5.
Phosphorus Five, also referred to as P5 in this guide, is a lot of different things. It is a simple design pattern, it is an Ajax library, it is a programming language, and it is a framework. Some would also argue that it is a web operating system. What you choose to refer to it as, is really quite irrelevant. The point is that it solves your problems, particularly the ones you’re having, as you try to create rich and interactive web apps.
The short answer is that Phosphorus Five solves your web app problems – Simple and plain. You could refer to it as a collection of libraries. Arguably a framework too. In fact, you could also refer to it as a programming language. However, none of these categories are correct, according to the definition of all of the above mentioned categories.
Hyperlambda for instance, is not technically a programming language, it’s actually simply a file format. P5 is definitely not a framework, since it doesn’t provide the traditional hooks, that frameworks normally supplies – Such as abstract base classes and interfaces. Arguably it could be labelled as a bunch of libraries. However, the Active Event design pattern, doesn’t force you to even explicitly link in the assemblies. Hence, even “collection of libraries” is not entirely correct. You could explain it as a design Pattern, but design patterns can’t create Ajax widgets – At least none of the ones I know …
For these reasons, I have chosen to categorise it as a “web operating system”, which also is not entirely right BTW – It’s not (entirely) an operating system, since it is installed on top of either Linux, Windows or Mac – Which are pre-existing operating systems. However, from a logical point of view, it solves many of the same problems, both a framework, collection of libraries, design pattern, and operating system solves – Therefor, what you like to refer to it as, is up to you I guess. Regardless of what you refer to it as, one thing is certain.
It solves your problems!
In fact, if you wish to refer to it as a Unidentified Flying Object, I couldn’t care less to be honest with you! Simply put, because it solves your problems!
When that is said; Yes, you can use it to create apps you host in IIS, or Apache, or UltiDev. You can also use it to create console applications. If you create your own hosting process, you could also probably easily create Windows Services out of it. Probably have it contain the logic for your COM objects too, if you really dived deep into it. In fact, if washing machines ever had rocket boosters installed unto them, I betcha the controller system will be entirely made from Hyperlambda …
Hopefully that answers your questions about P5. It certainly didn’t answer any of mine though … 😉