Ockham's Razor of the Scientific Focus.


Occam's razor, also written as Ockham's razor, or law of parsimony, is a problem-solving principle attributed to William of Ockham (c. 1287–1347), who was an English Franciscan friar, scholastic philosopher and theologian.

The principle can be interpreted as: 'stating among competing hypotheses, the one with the fewest assumptions should be selected'.

According to Ockham, 'simpler theories are preferable to more complex ones'.

Discriminating Wisdom.

Discriminating Wisdom in Buddhism is the wisdom that allows to see things (for example: scientific assumptions) clearly, 'as they are', in a separation as well as a part of larger whole, nondually.

Uses in Science.

Assumptions can be complex or simple. Complex assumptions consist of multiple assumptions, either complex or simple, or of a mix of these.

Complex assumptions can be reduced to a set of simpler partial assumptions, then can be looked with a discriminating wisdom, modelled and analyzed to see if any of the partial assumptions can be removed for a simpler model.

Simpler models often do not restrict us so much, allow for more options based on a fewer of the assumptions.

An Example.

To have a square precisely defined, we need to provide either:

1. A vector/turn definition.
- a vector with a direction,
- a turn at the vector's end.

2. A two straight lines with a point definition.
- a straight line,
- a second straight line, parallel but not overlapping first line,
- a point.

This can be reduced using the 'Ockham's razor' and the 'Discriminating Wisdom' to a basic sets of simple partial assumptions:

[Discriminating wisdom is used to reduce complex assumptions into a set of simpler partial assumptions, then to analyze].

[Ockham's razor is used to remove redundant information, such as the requirement for a point between two lines to be placed exactly in the middle of a square - a perpendicular straight line can be placed through this point, then this point can be moved along the perpendicural straight line into the midst of the square].

Let's not prune too much or too little of the neccessary premises information, however. We need all of required premises to do attribution in a sane way - to jump into a conclusion in a sane way.

1. A vector/turn definition.
- we know a starting coordinates of a vector,
- we know the end coordinates of a vector,
- the starting and end points of a vector are not overlapping,
- we know a turn at the end of a vector: either to left or to right.

2. A two straight lines with a point definition.
- we know an equation of the first straight line,
- we know an equation of the second straight line,
- lines defined by equations are parallel,
- lines defined by equations are not overlapping,
- we know coordinates of a point.

By looking at both definitions, we can see that definition with a vector/turn requires fewer assumptions about our knowledge of a square than a definition with two lines and a point.

Our first definition is simpler and therefore superior by principles of the Ockham's razor theory.

See also, if You wish or need, ... : Buddhism, Arts & Sciences.


'Ola AH': a Concurrent or the Real-Time Language?


Recently had lot of insights concerning 'Realtimeness' of 'Ola AH' Programming Language i am to create - or more precisely, lack of a 'Real Time Language Features' in this language by it's design.

Current State.

'Ola AH' Programming Language was designed without strict real time features in mind, but still concurrency is important part of it. It would take a lot of effort to change this now, and would make 'Ola AH' Programming Language much more difficult tool to learn & use.

'Concurrency' is about running software parts simultaneously & coordinating them, without bothering about 'pessimistic cases of time deadlines' for processes runs. Concurrent systems still can work in real time.

'Real Time Systems' have additional property - when a task execution time exceeds it's time deadline, we can say that system failed. It's concurrency taken to extreme.

Architecture & Operating Systems Dependency.

Exact time of an instruction running depends both on hardware architecture (parts used) as well as on the operating system & it's version.

Currently, only RT Linux supports real-time demands for personal computers, as far as i know.

Other considerations & design.

So far i don't plan to make 'Ola AH' Programming Language to acquire 'Real Time Properties', because of:
- lack of education & experience in Real Time Systems by language's creator,
- 'vendor lock' & dependency on RT Linux,
- amount of effort with regards of change required for programming language semantics (Stitie Space, Stitie Machine, State, Strategy, Router, Events, MATEN, Prism, Mindful Imaging - perhaps more),
- amount of effort required by developers using this language - both to learn as well as to use - they would need to count how much every instruction 'costs' processor-cycles-wise, other-devices-wise, taking in account operating system used, it's version, as well as hardware architecture. Amount of processors & concurrent running adds to the task's difficulty,
- with current design of 'Ola AH' it's still possible to write 'Real Time Solutions', with slight syntactical support ('asm insert' instruction & 'AH' Anti-hack mode), it's just very hard to do still,
- this would reduce this Programming Language's niche severely - language would lose it's general purpose & simplicity, as more competent programmers are harder to find and more costly to hire. personnel rotations would cost even more than that - it would take a lot of time & cost to take over a project from a former team member.