UP | HOME

Engineering (वेदान्त)

I am the guy behind now defunct https://karma-engineering.com/lab/ (due to banking sanctions and the whole fucking disaster in general). But It seems that I have learned something by doing.

Fundamental notions are eternal (timeless)

  • The notion of a Natural Number (and of a number line) will never change. Peano’s Numbers (defined in terms of (+1)) are eternal too.
  • The notion of a Set (as an unordered abstract aggregate with nesting).
  • The notion of a Sequence which always has a particular order and may or may not have duplicates.
  • The notion of a Table as a Set of Ordered Pairs gives us an actual transcoding, and RNA and DNA transcription machinery actually uses tables.
  • The notion of a Path as a sequence of steps
  • The notions of a Fork and a Join, and of Alternative outcomes in general will stay.
  • The notion of a Directed Graph, as a useful generalization, because Causality is “directed” by unfolding of the Universe.

All the notions which can be generalized from Molecular Biology are eternal. (The Mother Nature discovered these notions by endless trial and error).

First of all, everything in Nature has a particular structure - nothing abstract ever existed.

Abstractions (and generalizations, which are closer to actuality) are product of the mind of an external observer and does not exist anywhere outside of its head. Numbers and operations on them are such generalizations and pure abstractions.

  • A symmetry of a structure.

The meaning of a symmetry is how relevant, if at all the point of view (location of an observer) is, literally.

ox becomes xo if one looks at it from different directions.

oo is oo no matter how you look, and o is the same no matter how you rotate it.

All the useful notions of symmetry are exploited in Molecular Biology (by Life Itself). It does not “aware” that symmetrical molecular arrangements has certain properties (which other arrangements lack) but it “uses” these “actual facts” in its building blocks.

Good parts of Math and Philosophy concerned itself with “What Is”. So should good programmers do.

There are philosophical findings that just a handful of notions, forms (shapes) and operators (combinators) are enough for everything.

  • Partitions of a Set and actual cell-membranes
  • Logical connectives (operators)
  • Lambda Calculus
  • Curry Howard correspondence
  • Sum and Product types and pattern matching on Sum types
  • Lists and Tables as universal data structures

If one restricts oneself with just these he still will be able to define and express everything, but in just the right way (in Buddha’s terminology).

So, when we program we should think about our structures as if they are “universal” and “fundamental”. Abstract Lists (and the linked-list “natural” implementation) are definitely both universal and fundamental, as has been noticed by the great minds in the past.

Avoid languages without sum-types and pattern matching on them. People who made and use these languages are ignorant.

Reduce (collapse) every notion to the universal and fundamental ones, so you always will be grounded in What Is Real. This is how really smart people, like Donald Knuth or Joe Armstrong, design very large and robust systems, like TeX or Erlang - they know what if fundamental in the first place.

Author: <schiptsov@gmail.com>

Email: lngnmn2@yahoo.com

Created: 2023-08-08 Tue 18:40

Emacs 29.1.50 (Org mode 9.7-pre)