Accelerated Tables for Everyone DELAYED to late April/early May

Only on old apps or also on apps?

I understand the decision to introduce an inconsistency in order to preserve backward compatibility, but I really don’t like that inconsistency.

The introduction of the new accelerated tables is a great time to do some improvements on both performance and consistency.

Having the old behavior on the get_user() is inconsistent with the other functions and is not intuitive. It wasn’t intuitive in the past, it will be even less in the future. The very fact that you (Anvil) were going to make its behavior consistent with the other new functions confirms it.

This type of stalemate is often addressed with an ugly but effective solution:

  • keep the old get_user()
  • create the new get_user2()
  • document get_user() as obsolete
  • show only get_user2() on the auto completion

Having both get_user() and get_user2() will make everybody happy:

  • old apps will not break, because willl keep the old behavior
  • new apps will use the new behavior, powerful, consistent and intuitive
  • users will understand what’s going on, there will not be confusion on the behavior

Having a 2 at the end of a function name may sound ugly because it is ugly, very ugly. But it is also very common and very effective.

I work with many cad and cam apis, and if they have been around for longer than a few years they all have functions ending with 2. Or with 3. In some cases also with 4. Excel apis have many functions ending in 2, and Excel has even the Value and Value2 functions exposed to the user.

2 Likes