• All these languages incorporated (over time for better or worse) some object-orientation.

    Objet-Orientation was actually introduced almost 40 years ago: putting the data (state/data structure) and function (behavior/operation/function) together into one definition, to ensure for good that not the wrong operation/function can be applied on the data (invoking a function / call with the wrong data...). Smalltalk is my favorite in that respect, because the first thing in every expression is the object reference that receives a message to do something, followed by a parameter, which is also an object reference. Smalltalk is also (almost the only language) in which classes are first-class objects, and the method new returns an instance of that class.

    | thisThing |
    thisThing := Something new.

    Smalltalk got also rid of the cluttering parentheses. In general, the code looks much more concise, but still very prosa. Class and method definitions look like this:

    Something subclass: /#Object
        "Defines 'Something' as subclass of class Object. --- PS: w/o /"
      name: ''   
    newWithName: aString
        "Class method that returns a new instance with name set"
      | aThing |
      aThing := Something new.
      aThing name: aString.
      ^ aThing
        "Instance method that returns the name"
      ^ name
    name: aString
        "Instance method that sets the name"
      name := aString

    Smalltalk uses parenthesis only to enforce precedence.

    Regarding Object-Orientation: Take a look at the brilliant approach of using CRC-Cards - Class-Responsibility-Collaboration-Cards­ - to crack the OO-nut without going technical. It helps to break down a system into very suitable software components without the syntax clutter of a any language, and helps to think in encapsulated, real-world objects rather than a sequence of operations on a pile of data data types.

  • I'm glad this got worked out...

  • Smalltalk was in my TODO list (my list of languages to be learned) along with Elixir, Lua and Lisp =)

    Our learning survey is mainly motivated by our commercial applications' needs (we learn whatever we need to, or invent sometimes). For example I was forced to learn Python in order to program a Telit 863-PY GSM module, then I liked it very much =)

  • I'd really recommend that you just use EspruinoTools command-line app:

    sudo npm install -g espruino
    espruino myfile.js

    And module loading will 'just work'.

  • ...indeed, one learns what the 'economic needs' - or - the market(s) dictate... just a little bit screwed, because 'the markets' are made and that mostly by non-engineers... leading to 'rabbit trails'. Because something is 'fashion', most go down these trails kudo-ing one another and many good things get thrown out... luckily, later, some of the discards recover and are picked up in one or the other way when returning to a more straight path... and luckily too: once in a while along the rabbit trails, some other good things are discovered as well...

  • Hi,

    Sorry for the late reply, we have been dealing with a CAN bus issue.

    I generally examplify "learning a programming language" with "using a rent car", or "taking a bus". You might feel yourself comfortable in your car (or some models of buses) but if you need to travel to meet with your friends, it wasn't be a problem the type of vehicle you use; you would just use it to reach the target. That's such a kind of thing to me.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

[SOLVED] Is there anyway to have a filesystem-like facility on ESP8266?

Posted by Avatar for ceremcem @ceremcem