Hola,
en la documentación de sap.ui.define (https://sapui5.netweaver.ondemand.com/1.52.29/#/api/sap.ui/methods/sap.ui.define) hay una parte que menciona la diferencia:
Diferencias con el AMD Estándar
La implementación actual de sap.ui.define difiere de la especificación AMD (https://github.com/amdjs/amdjs-api) o de cargadores AMD concretos como requireJS en varios aspectos:
El nombre sap.ui.define es diferente al simple define. Esto tiene dos razones: primero, evita la impresión de que sap.ui.define es una implementación exacta de un cargador AMD. Y segundo, permite la coexistencia de un cargador AMD (por ejemplo, requireJS) y sap.ui.define en una aplicación siempre y cuando UI5 o las aplicaciones que usan UI5 no estén completamente preparadas para ejecutarse con un cargador AMD. Ten en cuenta que la diferencia en los nombres de las API también implica que el cargador de UI5 no se puede utilizar para cargar módulos 'reales' AMD, ya que esperan que los métodos define y require estén disponibles. Los módulos que utilizan la sintaxis de Definición de Módulo Unificado (UMD) pueden cargarse, pero solo cuando no hay un cargador AMD presente o cuando exponen su exportación también en el espacio de nombres global, incluso cuando hay un cargador AMD presente (como hace jQuery)
sap.ui.define carga actualmente módulos con llamadas XHR síncronas. Básicamente, esto es un tributo a la historia síncrona de UI5. PERO: la carga de dependencias síncronas y la ejecución de fábricas explícitamente no forman parte del contrato de sap.ui.define. Por el contrario, ya está claro y planeado que la carga asíncrona se implementará, al menos como una alternativa si no como la única implementación. Consulta también la sección Contrato Asíncrono arriba.
Las aplicaciones que necesiten garantizar la carga síncrona de dependencias DEBEN utilizar la antigua API jQuery.sap.require.
sap.ui.define no admite complementos para usar otros tipos de archivos, formatos o protocolos. No está previsto admitir esto en el futuro.
sap.ui.define no admite URL absolutas como nombres de módulos (dependencias) ni permite nombres de módulos que comiencen con una barra diagonal. Para hacer referencia a un módulo en una URL absoluta, se puede registrar una raíz de recurso que apunte a esa URL (o a un prefijo de la misma).
sap.ui.define no admite el 'azúcar' de requireJS donde las declaraciones de dependencias de estilo CommonJS usando sap.ui.require("algo") se convierten automáticamente en dependencias de sap.ui.define antes de ejecutar la función de fábrica.
También, para información adicional:
- JQuery.sap está obsoleto desde la versión 1.58 (https://sapui5.hana.ondemand.com/#/api/jQuery.sap)
Saludos
Fabrice