Philosophers Rule The Day
"Programming languages should be rooted in philosophy. The more a programming language is rooted in sound philosophy the more value it has." *1
What is "sound philosophy"? Well that is where things get heated.
"When a language designer decrees(when he should instead be deducting) that some of the features that were available to him in the design are too powerful for the users of his language then he is in the realm of morality and ethics and as such is subject to valid moral and ethical scrutiny, which are in turn based on rational and evidence based philosophy." *1.
Oh man those are fighting words and a challenge to anyone designing systems, languages, platforms and frameworks on which others will create.
Ok here comes the gut shot.
"Lisp’s design was such that it considered the user of the language equally important as the designer of the language....Contrast this design with the dictatorial designs of popular languages in industry. On the other hand Common Lisp’s design takes the freedom of the user even more seriously being a multi-paradigm Lisp." *1
"dictatorial designs", I love it. Man I miss lurking around comp.lang.lisp usenet, those guys really knew how to bring it.
With SchemaFreeSQL we have a Philosophy about Form, Function, and Objects, Like the designers of LISP we emphasize the freedom of our users with respect to these concepts. Before I get into our Philosophy on this subject lets see what others had to say about it.
The Philosophy about Form and Objects can be traced back to a early Greek Philosopher Thales then later discussed in more depth by Plato.
"Every object, function, and idea has an ideal form. This is the best possible and only possible, unchanging, and perfect form. ... An object or being which can be sensed or a notion which is seen in practice. No matter how good it is it will never be as good as the ideal....When someone senses the real object or notion in practice, they do not perceive it as it is, but instead perceive it in relation to the ideal form which is conceived innately within them." *2
Sorry Plato not buying it, neither did our man Aristotle.
"For Aristotle, the form of a particular thing is not separate (chorista) from the thing itself—any form is the form of some thing." *3
"Aristotle’s theory of forms centers on forms being intrinsically linked to objects. They have a substantial form which is unchangeable and an accidental form which changes. Furthermore, he believed forms to be impermanent and subject to change, growth, decay, and extinction." *4
So back to the question which is the "sound philosophy"? Our LISP author of course has the answer.
"By philosophy I mean the study of the fundamental nature of knowledge, reality and existence using the tools of observation, evidence, empiricism, logic and reason. This is the classical philosophy of Aristotle and Socrates which is rational absolutism. It is NOT the charlatan ‘philosophy’ of mysticism, positivism, relativism, perspectivism, nihilism and altruism of Plato, Marx, Imannuel Kant, Kierkegaard, Hegel and so many others whose theories have tragically played out in human history and some of which unfortunately are still continually adhered to right up until now. " *1
So Aristotle is the "sound philosophy", let the heated discussion begin.
I believe Aristotle would be a fan of SchemaFreeSQL. With SFSQL the absence of a "schema" does not mean the absence of structure. The structure exist in each created object and a created object's structure may change over time. Two object that are create equivalent may change independently, precisely because they do not have a defining schema. Their existence defines their structure just like two twins created equivalent in appearance will change independently of one another because they were never ===.
I feel it should also be pointed out that Aristotle understood that matter could not be created, and objects are composed of matter which is their "substantial unchangeable form". As developers we are not constrained by such laws, we are able to make objects from nothing.
With SchemafreeSQL an object is classless, a type unto itself, is uniquely identifiable, may have multiple "paths" and "names", and contain properties that may change independently of other objects sharing the same "path" and "name". A created Object may be a "Dog" then a "Cat" then a "Car". In fact a created Object may be a "Dog", a "Cat" and a "Car" all at the same time. In a way that makes more sense, a created Object may be a "Person", an "Employee", and a "Father" simultaneously. To be more succinct it's a "Father" because you deem it to be a "Father" you are not at the mercy of some "dictatorial" class system.
Just as LISP gives its users incredible freedom, with SFSQL you are afforded much freedom as well. You have the freedom to immediately start creating data object instances, to change the structure of your data as you see fit without consequence, to impose any type of constraint you see fit, to create multiple references to the same object allowing objects to be "multi typed", and still maintain the power to query the data with SQL. This new found freedom can be used to create solutions maybe not thought possible. Furthermore it is not forced upon you, it's not an all or nothing proposition. SFSQL has been created to enhance any SQL Database, ready to be used when you need it.
I ask that you try it for free and hope you reap the benefits from these new found freedoms SFSQL offers.
*1. Philosophy and Lisp
*2. Plato's Theory of Forms
*3 Aristotle The Theory of Forms