The Eight days of creation
Genesis 1-2:3
Creating something from nothing is an idea familiar to developers. Genesis starts by detailing the first time this ever happened. It all started when God spoke. We don’t know what he said, but it probably translates as “File, New Project.”
Day Zero (Initial commit)
All this happened before day one, so it must have occurred on day zero. As a developer, the concept of starting counting from zero is probably familiar to you, so, hopefully this isn’t a stretch.
+Namespace Creation
+{
+ Class TheHeavens
+ {
+ Class TheEarth
+ {
+ Waters [Shallow..Deep]
+ }
+ }
+}
It might seem that not a lot happens at first, but it sets the outline for what’s to come. It’s essential to get a solid structure in place when starting a new project. Don’t just go creating things without a plan. Take time to plan, and it will make things more manageable and avoid rework.
Day One
+Class Light
+{
+ Brightness [Low|High]
+}
+Interface IDay
+{
+ Event Evening
+ Event Morning
+}
+Class Day : IDay
+{
+ Event Evening
+ Event Morning
+}
+Class Night
+{
+}
Some people struggle to comprehend days (with a morning and evening) before the creation of the sun and moon. However, in software development, we do things like this all the time with interfaces (or contracts.) The implementation might not exist yet or may change in the future, as long as the interface doesn’t change.
Day RaiseEvent Evening
Day RaiseEvent Morning
Day Two
Class TheEarth
{
+ Class Sky
}
Another day where it may seem like very little has happened. But, while the addition is small in number, it’s big in importance, and so it was worth taking the time to get it right. The reality of creating an atmosphere from a water-covered planet is no small task and not something to rush.
Day RaiseEvent Evening
Day RaiseEvent Morning
Day Three
Today starts with the abstract notion of “waters” getting divided into a defined collection of “Seas”.
+Class Waters
+{
+ Property Depth
+}
Class TheEarth
{
- Waters [Shallow..Deep]
+ Collection<Water> Seas
}
GOD commented |
|
Building on the work from previous days, it’s now time to start adding complexity.
Class TheEarth
{
+ Class Land
+ {
+ Interface IBearsSeeds
+ Class Plant : IBearsSeeds
+ Class Fruit : IBearsSeeds
+ Class Trees
+ {
+ Collection<Fruit>
+ }
+ Method ProduceVegetation()
+ {
+ For i = 0 :: Loads
+ Yield return Plant
+ Yield return Tree
+ EndFor
+ }
+ }
}
GOD commented |
|
It's Good. |
Land Invoke ProduceVegetation()
Day RaiseEvent Evening
Day RaiseEvent Morning
Day Four
Light was created a couple of days previously, but now it’s used.
Class Light
{
+ Optional Role
+ Size
}
Class Sky
{
+ Light GreaterLight { Role = GovernDay, Brightness = High }
+ Light LesserLight { Role = GovernNight, Brightness = Low }
+ Collection<Light> Stars { {Size = Tiny}, CollectionSize = Countless }
}
GOD commented |
|
Good. |
Day RaiseEvent Evening
Day RaiseEvent Morning
Day Five
+Class LivingCreature
+{
+ Method BeFruitFul()
+ Method Multiply()
+}
+Class SeaCreature : LivingCreature
+{
+ Method Swim()
+}
+Class Bird : LivingCreature
+{
+ Method Fly()
+}
Class Water
{
+ Collection<SeaCreature> Fish * various kinds
}
Class Sky
{
+ Collection<Bird> Birds * various kinds
}
GOD commented |
|
Good. Be blessed. |
Day RaiseEvent Evening
Day RaiseEvent Morning
Day Six
Launch day! Now creation gets into the hands of real people.
+Class LiveStock : LivingCreature
+Class GroundMovingCreature : LivingCreature
+Class WildAnimal : LivingCreature
There are probably other properties for LivingCreature
and the classes that inherit from it.
Additionally, some creatures can fly but aren’t birds; some sea creatures aren’t fish; non-sea creatures can swim.
The critical detail here is the big picture and not the specific minutiae.
It’s not that details don’t matter, they do, but sometimes the big picture matters more.
The ability to consider both the details and maintain a broader view helps with both technical challenges and life in general.
GOD commented |
|
Good. |
+Class HumanBeing : LivingCreature
+{
+ Property Likeness = OurImage
+ Method RuleOver(LivingCreature)
+ Sex [Male|Female]
+ Method Eat(IBearsSeeds)
+}
HumanBeing Invoke RuleOver(Fish)
HumanBeing Invoke RuleOver(Birds)
HumanBeing Invoke RuleOver(Livestock)
HumanBeing Invoke RuleOver(GroundMovingCreatures)
HumanBeing Invoke RuleOver(WildAnimals)
HumanBeing Invoke BeFruitful()
HumanBeing Invoke Multiply()
GOD commented |
|
Very Good. |
Day RaiseEvent Evening
Day RaiseEvent Morning
Day Seven
no commits
Day[7] Invoke Be(Blessed)
Day[7] Invoke Be(Holy)
A day of rest. Not a day to do nothing, but a day to enjoy and, to a point, engage with creation. Rest is good, necessary, and may even present a time to think about the work. When God finished creation, he didn’t stop engaging with it.
The story of creation isn’t about the details. It’s about the big picture:
- There was a creator.
- The creator did things in a deliberate, thought out way.
- There was a plan. It’s not all chance.
Just like the Bible, this wasn't written to be kept to yourself.
Please consider sharing this with anyone you think would appreciate or benefit from it. twitter | facebook | LinkedIn | WhatsApp | reddit | email
Good.