Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

The Basques introduced us to object orientation?

by betmatt (Scribe)
on Jan 27, 2021 at 17:15 UTC ( [id://11127524]=perlmeditation: print w/replies, xml ) Need Help??

Dear Monks,

I'm looking at the following video and I'm thinking 'wow', the Basques seem to think as if they were programming out an object-orientated computer language. Interestingly I have previously believed that object orientation was a derivative of Biology. I'm now wondering whether the initiators are scholars of the Basque languages. The Basque region has a very varied ecology that might have contributed to the structure of the language, forcing them to think like ecologists. This is very interesting because little is known about the language. I would guess that the language developed the way it did because of the Geography. The cost to such grammar would be too high otherwise. Are others in agreement?

https://www.youtube.com/watch?v=S1l9oDiSiEQ&feature=emb_logo
  • Comment on The Basques introduced us to object orientation?

Replies are listed 'Best First'.
Re: The Basques introduced us to object orientation?
by choroba (Cardinal) on Jan 27, 2021 at 17:30 UTC
    What a coincidence, I watched the very video few weeks ago.

    > because little is known about the language

    The language is still spoken in the region, so I guess it's known pretty well. What remains unknown is its history, and without time machines this is unlikely to change.

    Anyway, which of its features made the language remind you of the OOP? What's your first language, BTW?

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
Re: The Basques introduced us to object orientation?
by jdporter (Paladin) on Jan 27, 2021 at 18:15 UTC

    Yeah... I don't know about that. The guy talks about the syntax of Basque a little -- subjects, objects, verbs, etc.... Maybe that got you thinking? But many (dare I say most) languages have syntax. Those things are not really distinctive of OO languages. Does Basque have (support) polymorphism, inheritance, encapsulation, and composition? In ways that other languages don't?

    I reckon we are the only monastery ever to have a dungeon stuffed with 16,000 zombies.
      Polymorphism, inheritance, encapsulation and hierarchy I was thinking. With the examples shown in the video, Basque seems to specify the class first and then declares an instance of that class though post-declaration of 'the'. More than that. It also seems to declare 2 classes first and then says what happens to the instance of the subject class. It seems to call objects for both the predeclared classes. I suspect that Basque also allows for multiple inheritance, polymorphism, encapsulation and hierarchy. To be honest I don't know, however from the example given it looks like it could do. My first language is English. I tend to think procedurally. Object orientation when applied well (not through Java) seems an ok way to go. English speakers might gravitate to procedural languages though. I suspect that is true for all Indo-European languages. I'm currently experimenting with the idea of learning multiple languages in parallel through cognates. I'm not a linguist, but my mother could speak 8 languages. I'm not quite sure why LanX thinks that I need to be an Anthologist to look into this sort of thing - people should ignore that comment I think.
        Postfix articles are common in other languages, too (Albanian, Bulgarian, Danish, Icelandic, Turkish...) There are also languages that don't have articles at all (e.g. Czech, Russian, Latin, Finnish, Chinese...).

        If we use the metaphor, most programming languages use SVO, not SOV (I'm not sure I've ever seen "instance argument method", but programming languages are weird). Also, in OOP, the method is resolved based on the subject's class, but I'm not sure Basque has different meanings for the same verbs for different classes of nouns (but I can imagine a language like that). Many languages represent linguistic phenomena by different means (e.g. definiteness is expressed by an article in English, by a case in Finnish, by verb conjugation in Hungarian, and by word order in Czech).

        Programming languages were created by humans who already knew natural languages. They follow and simplify them, so any similarities are easily explained by similarities between human languages. Claiming Basque to be an OO language is a provoking and interesting idea, but I fear it remains a fantasy.

        map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

        I don't see any evidence that Basque exemplifies those features any more than any other human language.

        Basque seems to specify the class first and then declares an instance of that class. It also seems to declare 2 classes first and then says what happens to the instance of the subject class. It seems to call objects for both the predeclared classes.

        You're hallucinating! Pareidolia? Wishful thinking? Whatever.

Re: The Basques introduced us to object orientation?
by stevieb (Canon) on Jan 28, 2021 at 00:23 UTC
    "I have previously believed that object orientation was a derivative of Biology"

    In reality, anything can be related to anything else, if one forces things enough.

    I know plant biology exceptionally well. I create my own cannabis strains for example.

    My "Spiceberry" strain can be looked at as a form of object orientation.

    Spiceberry was created by breeding a Blueberry female plant (Indica dominant (80% Indica, 20% Sativa)) with an Afghani #1 male plant (100% Indica). This breeding selection process was across hundreds of plants to find the right parents. So far, we're here:

    spiceberry | |- isa blueberry | |- isa indica, sativa | |- isa AF#1 | |- isa indica

    After three years of breeding out plants to find the parents that had the exact features I wanted, I then cross bred the two parents hundreds of times to hone in on ensuring only the traits are desired are present, and those I don't want, aren't.

    Although there is a ton of terminology and other jargon for these processes, simplicity is best.

    In the end:

    spiceberry | |- isa blueberry | |- isa indica, sativa | |- has sweet taste |- has short, bushy growth profile |- has purplish colour tones in the bud |- has smooth flavour |- has lots of crystals | |- isa AF#1 | |- isa indica |- has paranoia reducing properties |- has strong, fuel-like odor |- has restless leg syndrome calming effects |- has tight, dense bud qualities |- has very colourful flowering properties |- has very short growth profile

    So by breeding out the two plants, I inherit the best from both plants. By breeding the way I do, I remove the traits I don't like so I am guaranteed they will never show up. In programming, we simply ignore the stuff we don't want by not using it, or even override it. The traits that I don't like in one strain, I sometimes literally override it with that trait in the other plant.

    Don't know why I put all that together, but meh, I'm bored.

      The link to biology is probably from Alan Kay's work in OOP e.g.
      I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages

        Alan Kay, who is often credited with coining the term "objected-oriented programming", was asked to provide some thoughts and history on it: (source: Stefan Ram)

        [The term "object-oriented" was first used] at Utah sometime after November 1966 when, influenced by Sketchpad, Simula, the design for the ARPAnet, the Burroughs B5000, and my background in Biology and Mathematics, I thought of an architecture for programming. It was probably in 1967 when someone asked me what I was doing, and I said: "It's object-oriented programming".

        The original conception of it had the following parts.

        • I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages (so messaging came at the very beginning -- it took a while to see how to do messaging in a programming language efficiently enough to be useful).
        • I wanted to get rid of data. The B5000 almost did this via its almost unbelievable HW architecture. I realized that the cell/whole-computer metaphor would get rid of data, and that "<-" would be just another message token (it took me quite a while to think this out because I really thought of all these symbols as names for functions and procedures.
        • My math background made me realize that each object could have several algebras associated with it, and there could be families of these, and that these would be very very useful. The term "polymorphism" was imposed much later (I think by Peter Wegner) and it isn't quite valid, since it really comes from the nomenclature of functions, and I wanted quite a bit more than functions. I made up a term "genericity" for dealing with generic behaviors in a quasi-algebraic form.
        • I didn't like the way Simula I or Simula 67 did inheritance (though I thought Nygaard and Dahl were just tremendous thinkers and designers). So I decided to leave out inheritance as a built-in feature until I understood it better.

        My original experiments with this architecture were done using a model I adapted from van Wijngaarten's and Wirth's "Generalization of Algol" and Wirth's Euler. Both of these were rather LISP-like but with a more conventional readable syntax. I didn't understand the monster LISP idea of tangible metalanguage then, but got kind of close with ideas about extensible languages drawn from various sources, including Irons' IMP.

        The second phase of this was to finally understand LISP and then using this understanding to make much nicer and smaller and more powerful and more late-bound understructures. Dave Fisher's thesis was done in "McCarthy" style and his ideas about extensible control structures were very helpful. Another big influence at this time was Carl Hewitt's PLANNER (which has never gotten the recognition it deserves, given how well and how earlier it was able to anticipate Prolog).

        The original Smalltalk at Xerox PARC came out of the above. The subsequent Smalltalks are complained about in the end of the History chapter: they backslid towards Simula and did not replace the extension mechanisms with safer ones that were anywhere near as useful.

        OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.

        ... [T]here were two main paths that were catalysed by Simula. The early one (just by accident) was the bio/net non-data-procedure route that I took. The other one, which came a little later as an object of study was abstract data types, and this got much more play.

        If we look at the whole history, we see that the proto-OOP stuff started with ADT, had a little fork towards what I called "objects" -- that led to Smalltalk, etc. -- but after the little fork, the CS establishment pretty much did ADT and wanted to stick with the data-procedure paradigm. Historically, it's worth looking at the USAF Burroughs 220 file system (that I described in the Smalltalk history), the early work of Doug Ross at MIT (AED and earlier) in which he advocated embedding procedure pointers in data structures, Sketchpad (which had full polymorphism -- where e.g. the same offset in its data structure meant "display" and there would be a pointer to the appropriate routine for the type of object that structure represented, etc., and the Burroughs B5000, whose program reference tables were true "big objects" and contained pointers to both "data" and "procedures" but could often do the right thing if it was trying to go after data and found a procedure pointer. And the very first problems I solved with my early Utah stuff was the "disappearing of data" using only methods and objects. At the end of the '60s (I think) Bob Balzer wrote a pretty nifty paper called "Dataless Programming", and shortly thereafter John Reynolds wrote an equally nifty paper "Gedanken" (in 1970 I think) in which he showed that using the lambda expressions the right way would allow data to be abstracted by procedures.

        The people who liked objects as non-data were smaller in number, and included myself, Carl Hewitt, Dave Reed and a few others -- pretty much all of this group were from the ARPA community and were involved in one way or another with the design of ARPAnet->Internet in which the basic unit of computation was a whole computer. But just to show how stubbornly an idea can hang on, all through the seventies and eighties, there were many people who tried to get by with "Remote Procedure Call" instead of thinking about objects and messages. Sic transit gloria mundi.

        Please note: I have touched this text up a bit, including formatting and very minor editing.

          A reply falls below the community's threshold of quality. You may see it by logging in.

      "Don't know why I put all that together, but meh, I'm bored."

      You must have been on a roll!
Re: The Basques introduced us to object orientation?
by Bod (Parson) on Jan 29, 2021 at 23:33 UTC
    This is very interesting because little is known about the language

    I find that surprising. If Basque isn't spoken today, it certainly was until recently.

    My uncle was of Basque origin. He came here (the UK) as a child refugee during the 1936-39 Spanish Civil War and spoke (fluent I believe) Basque as well as Spanish. Unfortunately he passed away some years ago so I cannot ask him this or any of the many other things I would love to know about his life.

      > If Basque isn't spoken today, it certainly was until recently.

      I can assure you it still is, I met plenty of Basques when studying in Bordeaux, which is close.

      I even met a guy - Patxi - from a remote mountain village, who only started to learn Spanish after he was 12.

      Similar to Welsh and Irish, many speak it only as a second language or have only passive understanding (but might not admit it) - all of this depending on the location.

      The Basque region on the Spanish side has also a certain degree of autonomy and is encouraging Basque curriculum in schools and university. And running several tv and radio stations.

      see Basque language for more.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://11127524]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-04-25 07:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found