Is there any disadvantage to using Oracle's Easy Connect syntax? Oracle allows a few different syntaxes for specifying where to find your database service. The one I've seen most commonly (in the few short years I've been developing software professionally) looks something like this:

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=myservice)))


I don't think this syntax has any particular name, but it is what Oracle generates in its TNS files if you use graphical tools to modify it. But Oracle also allows the following much more compact syntax, at least with tools like SQL*Plus and application divers:

myserver:1521/myservice


This is known as Easy Connect, and I have read that it was introduced by Oracle 10g. That makes it around 10 years old. I'm not sure if this can be used in a TNS file, and as short and simple as it is, I don't see much need to put it in a TNS file. Which is the good thing about it in my opinion: you can just use it directly with your application instead of needing to maintain a TNS file.

However, from the work I've done and the clients I've worked with, its usage seems to be rather uncommon. The only reason I even know about it is because ESRI started recommending its usage for establishing connections in newer versions of ArcGIS. That leaves me wondering why it's uncommon, so is there some kind of downside to using Easy Connect that I'm missing?

(I'd appreciate if someone could add more tags. I couldn't think of/find any more that made sense.)
The only real downside is that there are a number of configuration options that you can put in a TNS alias that you can't use when you use the easy connect syntax.  Easy connect is designed to simplify the syntax for simple connections.  In order to do that, though, it loses the ability to create more complex TNS aliases that do things like load balancing/ failover or that request a dedicated server session.  If you don't need any of that, there is no downside to using the simpler syntax.  As soon as an organization has one use case that uses something that the easy connect syntax doesn't support, though, it either has to support a hybrid configuration where some things use easy connect and others use TNS aliases or it has to use TNS aliases everywhere.

Supporting hybrid configurations or changing how connections are handled can be somewhat painful depending on your perspective.  It's relatively easy for the Oracle client to handle a bunch of different naming conventions.  It's much more difficult for an organization to support.

It's relatively easy for organizations to come up with ways of distributing a single, shared tnsnames.ora file to everyone or to stand up a central LDAP server to host the organization's TNS information.  If some applications use easy connect syntax and some organizations use TNS aliases, that can be problematic when an organization wants to do things like consolidate databases or move databases from one host to another.  If an organization wants to add load balancing support, it can be problematic when some applications fail over automatically and some don't.  Someone has to track which applications are which, admins have to treat applications differently rather than being able to count on organization conventions that are adhered to across the board.  None of this is impossible, of course.  But consistency across the environment makes DBAs and admins much more productive and allows teams to support many more applications/ databases/ whatever with any given level of staffing.