Axum - The AdderAgent example part 2

 In my last post, I looked at the Adder code given in the Axum Programmer's guide, comparing it with an equivalent C# example.

 When learning a new language, I am always faced with the same dilemma, namely, how do I become proficient with this language as it was meant to be used. I write a very good C# code in Python, but my pythonic python code, that which takes advantage of a dynamic language with some nice functional constructs, borders on average, largely as I have had little real world Python experience, but the point is, I am trying to think now as a Python programmer when I code in Python. 

The same problem applies when, as an entrenched C++, Java, C# developer starting to write in Axum.

One question that might be posed here, is why I am so keen to understand Axum. It is not even a true Microsoft product at this stage, and might disappear without fanfare any time. The comprehensive answer to that question is probably subject to another post, however, to put it succinctly

  1. A personal challenge
  2. I strongly believe that any developer who doesn't seriously start looking at the multi-core development paradigm now, will be seriously behind in a few years time.

 That out of the way, how I normally tackle familiarity with a new language is to code first 15-20 Euler problems. I will give some Axum Euler solutions in later posts.

What, initially, struck me about writing in Axum is that the paradigm did not in fact feel too unfamiliar. I had just finished writing a C# based server for an Action Script based Google Maps application for a product at work. All the concepts seemed familiar.

If I view the MainAgent agent as a client talking to the AdderAgent server and the Channel as my 'documented' (ahem) protocol, I had no problems in visualising the concepts, and, indeed, felt quite comfortable in coding the Euler problems in a way that Axum was (I believe) intended.

Reading further through the documentation, I feel vindicated in this view, as, it appears this is precisely how I should be looking at it, and the language extends the analogy further with concepts such as Protocols and Correlators. I shall discuss these later.