• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Avinash Meetoo

Avinash Meetoo

Let us build a Smart Mauritius together

  • Home
  • About
  • Curriculum Vitae

Computing

Standard C++ — Evolution at its best

20 June 2022 By Avinash Meetoo Leave a Comment

Using the right tool at the right moment is the best way to increase productivity. Those who have a thorough knowledge of the different tools in existence (with their key functions and major weaknesses clearly identified) can prove this sentence true. The purpose of this article is to give a brief outline of what C++ is capable to do as a tool, following its recent standardisation.

I wrote this article way back on 25 March 1999, after having joined DCDM Consulting as a Business Analysts, fresh from my Computer Science studies in France, and having had the pleasure and experience of writing a major software in C++ during an internship in a startup called Technodigit in Lyon. Some parts of the article are outdated but most of its content is still relevant after 23 years…

C++ as a programming language

The C++ programming languages was devised by Bjarne Stroustrup in the early eighties as a better C. C++ has a clearer syntax and, as a result of it being object-oriented, was much more adapted to handle complexity.

With time, vendors including Microsoft and Imprise (formerly Borland) customised the language for their needs. In parallel, Bjarne Stroustrup and his colleagues at Bell Labs introduced new features in the language like exception handling, templates and namespaces. As a result, C++ became more complex and therefore more confusing to the programmers. At the beginning of the 90’s, C++ was already a highly powerful tool but so complex that very few people mastered it.

The need for Standard C++

The American National Standards Institution (ANSI) and the International Standards Organisation (ISO) decided therefore to set up a committee to work on a Standard C++ project, with the ideas of purifying the language while adding essential but overlooked features to it. Bjarne Stroustrup quickly joined the committee together with Alexander Stepanov and Meng Lee, destined to become heroes of the C++ community.

The Standard Template Library

Alexander Stepanov and Meng Lee introduced the Standard Template Library (STL) to Standard C++.

STL has a dual personality: it is both a container library (with facilities to handle dynamic arrays, linked lists, trees and so on) and it enables one to program using generic and functional paradigms.

A new way of thinking: containers and iterators

STL defines different kinds of containers such as dynamic arrays, lists and trees together with numerous operations acting on them (like adding and deleting elements). One of the major breakthroughs of STL is the fact that the complexities of these different operations are known and are invariant. Adding an element to the head of a list always takes constant time whatever the size of the list. The programmer can therefore calculate the complexity of his own algorithm based on the published complexities of these STL operations.

The elements of a container are accessed via iterators. These special objects mimic C++ pointers. An algorithm to read all elements of a container must do the following: set an iterator to point to the first element and access the other elements by incrementing the iterator until the end of the container is reached…

When the OO, generic and functional worlds meet: generic algorithms

… which brings us nicely to genericity. Given that all STL containers are accessed through iterators, generic algorithms can be devised which work with all containers (whether dynamic arrays, lists, trees, etc.). The complexity of a generic algorithm depends, of course, on the container on which it is being used. The current version of STL has about 80 generic algorithms including functions such as find, fill, randon-shuffle, sort and reverse among others.

If the programmer decides to implement a new container (e.g. b-trees) having the same semantics of an STL container, all 80 generic algorithms will immediately work as expected thereby greatly increasing productivity by cutting development time. In the same way, writing a new algorithm (e.g. topological_sort) respecting the principle of genericity will enable it work with all STL existing containers.

Function objects

Another breakthrough in STL is to treat functions as objects. They can be passed as arguments to other function objects and can be composed with other function objects. Furthermore, they can be used as higher-order function objets (that is, functions returning functions as result). We can say that well-written STL function objets as just like mathematical functions. Well-written in this context means that the function objects does not have side effects.

This feature enables the functional paradigm to be used in C++. Specifically, composition of function objects can be used as a technique to handle complexity. Each function object (whether written by the programmer or not) can be considered as a component and these can be glued together to solve computing problems. A central repository of function objects can be set up and every time a component having certain behaviours is needed the programmer can check if an equivalent function object exists in this repository. Electronic or civil engineers have used this technique for many years and it is high time that computer engineers start to use it. The immediate benefit is a decrease in development time.

The Way Forward

Standard C++ is a major advancement over C++ just like C++ was over C. Owing to STL, component-based programming is becoming possible. Thinking in terms of containers, generic algorithms and components enables the programmer to concentrate on what is really important for the client: having a working solution for his problem that respects requirements and which is delivered on time. The big question is therefore whether the programming community is ready to embrace this new technology.

In the near future, it is estimated that this leading-edge technology will enable customisation and development of programmes to take up to 40% less time implying faster customer service at lower costs.

Filed Under: Computing, Education, News, Technology

Assises de la Recherche et de l’Innovation

30 April 2022 By Avinash Meetoo Leave a Comment

From 27 to 29 April 2022, my colleague, Ayooshee, and I participated in the “Assises de la Recherche et de l’Innovation” organised by the Mauritius Research and Innovation Council.

Day 1: TED-talks

On the first day, I did a TED-style talk on the kind of people Mauritius needs to tackle the complex problems which exist today. I spoke about the need to attract some members of the diaspora and foreigners while upgrading our education system. My mantra has always been: “We need peopleware, not only hardware or software”.

I also spend some time explaining the UNDP strategic plan and offer for 2022-2025 based on 6 kinds of solutions to bring in 3 directions of change. Of course, I focused on the 3 enablers: digitalisation, innovation and development (aka new ways of) financing projects.

Ayooshee made a nice talk on “Innovating for Social Change”.

Day 2: Panels

On the second day, I participated in a panel with industry and academia leaders. We explored topics such as how to instill a culture of innovation in the population (and, by extension, at work). We spoke about having role models, about having reward mechanisms for innovators and ways to have more robust ecosystems.

Day 3: Moderating a panel of education experts

On the final day, I moderated a high-level panel of education experts on how to best equip our young people (as well as upskill our existing workers) for the challenges of tomorrow. In particular, we talked about ways to make people more willing to collaborate. This will require a cultural shift in Mauritius but is an important step towards us building a nation of innovators.

We’ll see in the coming months and years.

Filed Under: Computing, Education, Future, News, Science, Society, Technology

Financial literacy: an experiment to empower women entrepreneurs of Mauritius and Rodrigues

21 January 2022 By Avinash Meetoo Leave a Comment

Woman entrepreneur and hydroponic farmer in Mauritius

Women entrepreneurs are contributing greatly to the resilience of the country and there are good reasons to believe that they could contribute even more. The UNDP Mauritius and Seychelles Accelerator Lab plans to test the hypothesis that women, irrespective of their knowledge of finance, can run their businesses better after accessing financial literacy material.

The collective intelligence exercise organised by the lab on 17 June 2021 revealed that one of the biggest concerns of owners of Micro, Small and Medium Enterprises (MSMEs) in Mauritius and Rodrigues was a lack of financial literacy. Establishing and operating a business involves complex financial and administrative operations, and many small business owners struggle with documents that require some knowledge of accounting or finance. As a result, small enterprises tend to operate in a “financial fog”, struggle with procedures, and are susceptible to making irrational decisions.

Experimenting self-paced financial literacy training for women-led MSMEs

Many of the small businesses in Mauritius and Rodrigues are operated by women. In some cases, these women entrepreneurs have a limited knowledge of finance. Improving the financial literacy of these women entrepreneurs is undoubtedly critical for enhancing the viability of their businesses. While formal training, to which enterprises already contribute a training levy to the Human Resource Development Council, could be a solution, small businesses encounter difficulties releasing their limited staff to full-time sessions. For women, this kind of training is also impeded by domestic responsibilities such as child care. Another factor playing against formal training is the ongoing COVID-19 pandemic, which has made face-to-face training practically impossible.

The UNDP Mauritius and Seychelles Accelerator Lab considers that self-paced online training on financial literacy could enable MSME owners to improve the management of their businesses more efficiently. Through simple online videos delivered in Mauritian Creole on precise finance topics, and an online forum to facilitate peer-to-peer learning, many Mauritian women entrepreneurs could benefit from a more flexible solution towards improving their financial knowledge.

The Accelerator Lab plans to explore and test the efficiency of this self-paced online training solution with the participation of 15 women entrepreneurs from Mauritius and Rodrigues. This experiment, to be held with the collaboration of an educational institution and tax and business authorities, will include 15 women entrepreneurs from Micro, Small and Medium Enterprises (MSME) of Mauritius and Rodrigues.

The proposed experiment will require the following:

  • A person who is responsible for making financial decisions in a women-led MSME (typically, the owner) performs an initial Financial Literacy test online.
  • The person then has access, for a duration of three months, to short videos delivered in Mauritian Creole on various financial aspect of running a business.
  • During this period, all trainees will have the possibility to interact through an online learning platform, as a means towards peer-to-peer learning.
  • At the end of the three months, the person undergoes a similar test as at the beginning to evaluate her progress.

The Accelerator Lab wants to demonstrate that these women will be better equipped to run a profitable business as they would have acquired new knowledge and skills in finance.

We believe that MSMEs, with leaders who have a better grasp of finance, have a better chance of succeeding and, therefore, contribute to the development of the country. Such MSMEs also can create more jobs which is desirable in this COVID-19 context.

The next step

After consultations with potential stakeholders, including women entrepreneurs, the Accelerator Lab is in the process of identifying a partner to run this experiment during the first quarter of 2022.

The partner will be responsible to conduct the tests and create the multimedia content as well as provide the online learning platform. It will have to ensure that the videos created are straightforward to understand and really useful to small business owners. In other words, this experiment is not an academic experiment but rather an opportunity for women entrepreneurs to better run their companies and thus attain new heights. With 52% of its population being women, the Republic of Mauritius has all to gain by empowering its women entrepreneurs.

Women MSME owners who would like to be considered for this experiment, can contact the Accelerator Lab team. Individuals, public or private organisations willing to partner with UNDP to conduct this experiment are also encouraged to contact the team.

Filed Under: Computing, Education, Finance, Future, News, Society, Technology

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 15
  • Page 16
  • Page 17
  • Page 18
  • Page 19
  • Interim pages omitted …
  • Page 31
  • Go to Next Page »

Primary Sidebar

Search

I am proud of

My family
My company
My music
My photos

I am active on

Facebook
FB Page
Twitter
LinkedIn
Reddit
Hacker News
Stack Overflow
GitHub
Wikipedia
YouTube
IMDB
Last.fm

All posts

  • June 2025 (1)
  • April 2025 (1)
  • March 2025 (1)
  • February 2025 (2)
  • January 2025 (4)
  • December 2024 (4)
  • November 2024 (2)
  • October 2024 (1)
  • September 2024 (4)
  • July 2024 (1)
  • June 2024 (1)
  • May 2024 (4)
  • March 2024 (1)
  • February 2024 (1)
  • January 2024 (1)
  • December 2023 (2)
  • November 2023 (2)
  • October 2023 (2)
  • August 2023 (2)
  • July 2023 (3)
  • June 2023 (3)
  • May 2023 (4)
  • April 2023 (1)
  • March 2023 (3)
  • January 2023 (1)
  • December 2022 (1)
  • November 2022 (5)
  • September 2022 (2)
  • June 2022 (2)
  • May 2022 (1)
  • April 2022 (1)
  • January 2022 (3)
  • November 2021 (1)
  • September 2021 (1)
  • June 2021 (3)
  • April 2021 (1)
  • February 2021 (1)
  • January 2021 (2)
  • November 2020 (1)
  • October 2020 (1)
  • September 2020 (1)
  • August 2020 (1)
  • May 2020 (1)
  • April 2020 (3)
  • March 2020 (4)
  • January 2020 (1)
  • July 2019 (1)
  • June 2019 (1)
  • April 2019 (2)
  • January 2019 (1)
  • December 2018 (3)
  • November 2018 (1)
  • September 2018 (1)
  • August 2018 (1)
  • April 2018 (1)
  • December 2017 (1)
  • November 2017 (1)
  • October 2017 (1)
  • August 2017 (1)
  • July 2017 (1)
  • May 2017 (1)
  • March 2017 (1)
  • February 2017 (1)
  • August 2016 (1)
  • July 2016 (1)
  • June 2016 (3)
  • April 2016 (3)
  • March 2016 (3)
  • February 2016 (1)
  • December 2015 (1)
  • November 2015 (1)
  • October 2015 (1)
  • August 2015 (5)
  • June 2015 (1)
  • September 2013 (2)

Copyright © 2025 by Avinash Meetoo · Shared under an Attribution 4.0 International Creative Commons license · Log in