#1952 pods

rmw Thu 12 Jul 2012

what does it mean "pods are the unit of versioning and deployment"? in what way it provides modularity?

SlimerDude Thu 12 Jul 2012

From docLang::Pods:

Pods are the top of Fantom's namespace as well as the unit of deployment. A pod's name is globally unique and is used to organize the top level of Fantom's namespace. In this respect pods serve the purpose of both a Java package and a JAR file (or .NET namespace and DLL).

fantlan Thu 12 Jul 2012

hey I always had that question!! I didnt really understand the answer though...

brian Thu 12 Jul 2012

What is nice about pods is that they are like JAR files, but a lot better because:

  1. they have well defined metadata and versions
  2. they have well defined dependencies checked at both compile time and runtime
  3. when the pod for a given type is missing, you know exactly what pod it is because types are qualified as "pod::Type"
  4. they bundle all your module's code together and provide notion of "pod internal" access visibility
  5. installation requires nothing more than dropping foo.pod into lib/fan/
  6. you can fully reflect all your pods, their types, and have reflection access to everything very elegantly
  7. there is no classpath hell

Login or Signup to reply.