Symeon wrote:
Quote:
I think many of us see Databasic as more than just a scripting language |
I use scripting language not in the older meaning of a shell-scripting
language in unix, but in the more contemporary meaning of a
non-statically typed high-level language that is low on ceremony and
high on productivity.
Quote:
However you are at the end
of the day reading and writing MV data and applying business logic to
it. oo has limited use in that environment especially as databsic has
all the tools you need to extract and analyse such data. |
Yikes ! OO brings tremendous advantages at the business application
level, since you can build a domain model in the OO language that
reflects the language the business folk use when talking about their
business domain. The main emphasis being on reflecting the abstractions
therein. You are right that you can use code without direct reflection
of domain-specific abstractions, but then the mental burden of mapping
between the business domain and its reflection in code is much greater.
I like Pick very much - it is an extemely simple filing system and easy
to use programming language - and for many situations these are
sufficient. Without more direct support for abstraction, though, your
system architecture become shaped around the solution implementation
rather than the business domain it supports.
I studied a number of large scale application as part of my PhD (which
focused on how to tackle legacy systems) and found that many Pick
applications were very quick to develop but over the years aged
disgracefully. The main problem I found with Pick applications is that
folks were unable to distinguish in the application code (apart from
random explicit comments) how the implementation mapped to the business
domain. This encouraged waves of hacking (localised changes violating
implicit abstractions) which over time made the systems unmaintainable
(other than by a fearless few).
One of my big disappointments is that folks often talk about how
quickly they can develop an application in Pick - and I have seen this
to be true. At the same time, the lack of contemporary language and
database principles explicitly supported in Pick I worry deeply about
Pick applications lacking the malleability need to reflect ongoing
requirements changes. Typically, I see Pick-based applications falling
further and further behind the evolving requirements, until most of the
developers' time is spent on "fire fighting" and little on moving their
applications forward.