Repository: Qiskit/qiskit

Issue:
Review the messages encouraging the use of slower Python simulators alternatives 
### What is the expected enhancement?
After #1484 Python and C++ simulators no longer live under the same `Aer` provider but they are split between `Simulators` and `LegacySimulators` providers respectively. `Simulators` make it clear they are the built-in simulators coming with the foundational Terra element but now, strings such as:

> The 'qasm_simulator' backend is not installed in your system. Consider using a slower backend alternative: 'qasm_simulator_py'

Does not make sense. What should we do? Using `LegacySimulators.get_backend()` prints a deprecated warning. Should we simply remove these messages?




Discussion:

Resolving patch:
diff --git a/qiskit/backends/builtinsimulators/simulatorsprovider.py b/qiskit/backends/builtinsimulators/simulatorsprovider.py
--- a/qiskit/backends/builtinsimulators/simulatorsprovider.py
+++ b/qiskit/backends/builtinsimulators/simulatorsprovider.py
@@ -49,8 +49,7 @@ def get_backend(self, name=None, **kwargs):
                 resolved_name = resolve_backend_name(
                     name, backends,
                     self._deprecated_backend_names(),
-                    {},
-                    self._alternative_py_backend_names()
+                    {}
                 )
                 name = resolved_name
             except LookupError:
@@ -70,8 +69,7 @@ def backends(self, name=None, filters=None, **kwargs):
                 resolved_name = resolve_backend_name(
                     name, backends,
                     self._deprecated_backend_names(),
-                    {},
-                    self._alternative_py_backend_names()
+                    {}
                 )
                 backends = [backend for backend in backends if
                             backend.name() == resolved_name]
@@ -138,11 +136,3 @@ def _get_backend_instance(self, backend_cls):
 
     def __str__(self):
         return 'BasicAer'
-
-    @staticmethod
-    def _alternative_py_backend_names():
-        """Return Python alternatives to C++ simulators."""
-        return {
-            'qasm_simulator': 'qasm_simulator_py',
-            'statevector_simulator': 'statevector_simulator_py'
-        }
diff --git a/qiskit/backends/legacysimulators/legacyprovider.py b/qiskit/backends/legacysimulators/legacyprovider.py
--- a/qiskit/backends/legacysimulators/legacyprovider.py
+++ b/qiskit/backends/legacysimulators/legacyprovider.py
@@ -25,15 +25,20 @@
     CliffordSimulator
 ]
 
+DEPRECATION_MSG = """Simulators in the LegacySimulators provider are deprecated. If you want
+ maximum compatibility, you can use those in the Simulators provider. If you want to make the most
+ of performance, consider installing the Qiskit Aer element and user the Aer provider."""
+
 
 class LegacyProvider(SimulatorsProvider):
     """Provider for legacy simulators backends."""
 
+    def backends(self, name=None, filters=None, **kwargs):
+        warnings.warn(DEPRECATION_MSG, DeprecationWarning)
+        return super().backends(name=name, filter=filters, **kwargs)
+
     def get_backend(self, name=None, **kwargs):
-        warnings.warn('C++ simulators in the `LegacyProvider` are deprecated. Install '
-                      '`qiskit-aer` and import `Aer` from `qiskit` if you want make the most '
-                      'of performance. The `LegacyProvider` will be removed after 0.7',
-                      DeprecationWarning)
+        warnings.warn(DEPRECATION_MSG, DeprecationWarning)
         return super().get_backend(name=name, **kwargs)
 
     def _verify_backends(self):
diff --git a/qiskit/backends/providerutils.py b/qiskit/backends/providerutils.py
--- a/qiskit/backends/providerutils.py
+++ b/qiskit/backends/providerutils.py
@@ -62,7 +62,7 @@ def _match_all(obj, criteria):
     return backends
 
 
-def resolve_backend_name(name, backends, deprecated, aliased, alternatives):
+def resolve_backend_name(name, backends, deprecated, aliased):
     """Resolve backend name from a deprecated name or an alias.
 
     A group will be resolved in order of member priorities, depending on
@@ -73,7 +73,6 @@ def resolve_backend_name(name, backends, deprecated, aliased, alternatives):
         backends (list[BaseBackend]): list of available backends.
         deprecated (dict[str: str]): dict of deprecated names.
         aliased (dict[str: list[str]]): dict of aliased names.
-        alternatives (dict[str: str]): dict of alternative backends.
 
     Returns:
         str: resolved name (name of an available backend)
@@ -89,17 +88,6 @@ def resolve_backend_name(name, backends, deprecated, aliased, alternatives):
         resolved_name = next((b for b in resolved_name if b in available), "")
 
     if resolved_name not in available:
-        if resolved_name in alternatives:
-            logger.warning("The '%s' backend is not installed in your system. "
-                           "Consider using a slower backend alternative: '%s'",
-                           name,
-                           alternatives[resolved_name])
-        else:
-            logger.warning("The '%s' backend is not installed in your system. "
-                           "Consider using one of these slower alternatives: \n%s",
-                           name,
-                           '\n'.join(["- '{}'".format(b) for b in available]))
-
         raise LookupError("backend '{}' not found.".format(name))
 
     if name in deprecated:


Test patch: