Richard Hale Shaw on Hungarian Notation
RHS has a great little piece on Hungarian Notation. I particularly liked his affinity towards 'C' and how he started on it a couple of decades ago (a not too different experience for me as I recall). Since we are on the topic of language evolution & naming conventions - I am reminded of Fortran, a language I had used considerably in my earlier career years doing mathematical applications. Fortran has a unique capability with implicit declarations: variable names that started with 'i, j or k' were 'vectors' or integers. Similarly, 'd' was double precision or 'f' was a float (real) type. Fortran had another unique type that is still unmatched - the 'complex type' (it's matched only by a language's external function library). We are still not too far away in this path of variable declaration and naming conventions - see Cw (C-Omega) declaration of streams:
Example 1: int* OneToTen = FromTo(1,10); // explicit declaration of stream OneToTen
Example 2: res2 = select CustomerID, ContactName, Address, Phone from DB.Customers; // type implicitly known from query results
While I see the benefits of strong-types and using Intellisense in this case, we may have to still rely on some naming convention & declaration as shown in above Example 2. For now, naming convention to me is governed more by the application's requirements (client requirements, documentation, etc).