Hi Mark -
Please know first and foremost I respect your work and rationale here (especially as a somewhat reformed former database guy), however may i please respectfully disagree? this isn't meant to be argumentative in any way, just a general open discussion here
I always (at least try) to keep comments like this to fully respect that not every customer wish is in the best interest of the product itself globally for all users (heh, that's what paid-for customizations are for, right?!), or even from a reasonable development-to-production standpoint, but I think this issue (IDs showing in URLs) is beyond any mere cosmetic or customer wish-list type stuff.
You might wanna pour a big pot of coffee for this one, I have a bit to say on it ...
TL;DR
- Security.
- Indiscernible Performance hits.
- Everyone else is doing it!
The War & Peace Novella over URL ID Wrangling:
1.
Exposed User IDs: Joomla begin purposely randomizing the default Super User ID back in v2.5 (methinks... it was certainly randomized by 3.1); this was strategically done to alleviate nefarious characters (and machines!) on the interwebs from already knowing exactly what the ID was for your site's Super User. I certainly don't claim to be a security expert so I have no clue what could actually be done with this information (outside of having the single most important identifier of Joomla's SU), but I'm pretty certain joomla's move here was legitimately strategic and singularly focused on overall, total security. Right now, EasySocial shows to the global Internet your site's Super User ID, Administrator's ID and every other User on the site's ID. ALL Users IDs are being exposed. Again, I don't know that this ultimately is a major security problem without some super-aggressive algorithms running a password-cracker, and I certainly don't mind being educated on this otherwise, but my uber-paranoid security-first mindset has red flags going off all over the place for me on the issue of IDs showing, over any other point being made, but since there are some...
2.
Performance vs Return: I absolutely commend SI on their work and predisposition on performance load with your entire product suite - it is certainly one of the more attractive parts of deciding to purchase it as all of us are working for ways to "lighten-the-load" on our sites. There is always a balancing act here deciding on performance vs "fill-in-the-blank" that all of us have to consider: from the developers, to the customers/site-administrators right down to the ultimate benefactor, the site's end-users. Given what I know about you guys, SI is smart, thorough and highly knowledgeable about the intricacies of their products; I'd be willing to bet you even have some quality metrics on the performance hits related to additional ID queries here (i was totally blown away at the depth of analytics you had recently related for performance on the upcoming Komento 3.0 product - great stuff man!!). My balancing comment here is that I professionally sit in the very hot seated intersection of balancing developer implementation and what users actually require (devops, if you will) - production level environments that deliver real-world results are ultimately all that matters. From a performance perspective it is "technically" indisputable on the extra query calls, but in practical user experience (at least in our early experience), we notice no real gain on performance on IDs vs no-IDs in a URL. Again, I actually appreciate the learning process here so please coach me differently, but we do not see any discernible performance-related issues especially when directly comared with our other joomla components that do not expose IDs in urls, which brings me to...
3.
The Other Kids Are Doing It: Simply put, other Joomla Components are OoB with clean SEF URLs.
Joomla leaves url rendering up to the individual 3rd Party Component's own internal router. In our own experience, IDs in URLs is something we've haven't really seen out of our other joomla components for a good 3 years now (i'm not talking about the entire joomla marketplace, just the ones we are using here for our sites routinely). If you don't mind me using another component as a point of reference (yes, I DO know that components are written differently from a programming perspective and typically make for an "apples-to-oranges" comparison), but I think JReviews provides a decent example here:
JReviews strategically removed all IDs from their URLs back in 2013. I think the underlying point here isn't "how" they did this (getting into a default conversation about languages etc. that platforms are written on), but instead "why" they delivered this. IMHO, this has just become standard best-practice now for "out of box" clean urls - we haven't used any component in several years now where we had to use yet another component (talk about load/performance hits!) to rewrite the URLs cleanly. My main point here is that I don't see other component's opting to leave URLs "dirty" with IDs over "performance hits" - using JReviews again, "speed and performance" are still one of their hallmarks and primary advantage over their competitors in the market, all without leaving any unnecessary IDs in their URLs.
4.
Poorly Managed Expectations?!: The silly-customer/end-user, totally cosmetic argument: cmon, admit! It just looks better every minute of the day not only to see, but to share on social networks:
/my-community-profile/jjohnson/my-article-has-clean-urls
vs.
/my-community-profile/72-jjohnson/4-my-article-has-dirty-urls
* End-All, Be-All: What I sure as heck don't wanna see, is:
/my-community-profile/69-thisismysuperuseridforanyonetodobadstuffwith
Hoping this all just to be taken purely as an open conversation (and not as any outright objection). I am genuinely interested in hearing SI's full take on this issue and not simply as a "technical-intellectual" exercise - gaining your knowledge and perspective is highly beneficial to us so that we ultimately make the best business decisions and align a semblance of best-practices that we all are working towards. At the end of the day, it is in ALL our best interests to make SI's products the predominant market leader that we know it can be!
Thx for all that you guys do, Mark/SI - it's very much appreciated.
* i think i might need a nap...