Hola.
¿Que es mejor? Un IDE o Compilador
La pregunta carece de sentido puesto que un IDE o entorno de programación y un compilador son cosas diferentes, lo que ocurre es que la mayoría de IDEs hoy en día (sino todos) integran funcionalidades de compilación, pero que vayan en conjunto y cojidos de la mano no significa que sean lo mismo, un compilador es algo aparte, individual.
La definición de IDE (o en su defecto un editor de texto) se podría reducir a ser una herramienta para la escritura del código, y el compilador para compilar el código... como su propio nombre indica por si solo.
¿es mejor un IDE o usar un editor de texto y un compilador?.
Un editor de texto no es un IDE. Un editor de texto está enfocado a la edición de texto (o código) en general, mientras que un IDE es una herramienta especializada en el desarrollo de algoritmos programáticos mediante "X" lenguaje de programación. Creo que esto es suficiente para poder autoresponderse a la pregunta por uno mismo:
¿qué es mejor para programar, un IDE o un editor de texto?.
Hoy en día existen bastantes editores de texto "cómodos" que cumplen de forma superficial y parcialmente con algunas funcionalidades básicas de un IDE (ej. Sublime Text, Notepad++), entre ellas el resaltado de sintaxis, el autocompletado de miembros, el análisis sintáctico del código, y la compilación de código, y algunos otros también soportan la depuración de código (ej. Visual Studio Code, o los editores anteriormente mencionados... con ciertos plugins de terceros), pero no se les puede llamar IDE, sencillamente por que no lo son de forma completa, de lo contrario se llamarían IDE.
Algunos programadores de lenguajes de markups como HTML o XML y/o de algunos lenguajes de scripting como Python o Ruby los hay quienes prefieren usar un editor de texto (ej. Sublime Text) antes que un IDE especializado en dicho lenguaje de programación (ej. PyCharm, RubyMine), pero aquí no estamos cuestionando los gustos o el sentido de conformidad personal de cada individuo, sino qué tipo de herramienta es más óptima para llevar a cabo la tarea de programación. y para muchos lenguajes de programación el hecho de preferir usar un editor de texto antes que un IDE es sinónimo de haber adoptado malos hábitos de programación y ser altamente conformistas con una tipo de herramienta inferior al tipo de herramienta que realmente está destinada a beneficiarnos en tal propósito: un IDE. De hecho, para algunos lenguajes de programación de alto nivel resultaría absurdo intentar desarrollar una aplicación mediante un simple editor de texto... sencillamente sería de locos, por que se necesita al IDE para la automatización de ciertos procedimientos y la autogeneración de código en segundo plano que nos ahorraría el equivalente a estar varias horas (o dias, o semanas, según la embergadura del proyecto) escribiendo de forma manual el código en un editor de texto, y encima sin la posibilidad de poder depurarlo eficientemente en éste.
Por otro lado también hay que mencionar que existen muchas IDEs que son malas o al menos yo las considero malas (y esto por lo general también va acompañado a que sean IDEs gratuitas) tanto en la estética como en su intento por optimizar el rendimiento del usuario final. Las hay que son de todo excepto cómodas... y es que un IDE promete ser más óptimo, pero no más cómodo que un editor de texto ligero.
Un IDE profesional proporciona toda una amplia gama de características que no se verán en editor de texto (o un intento de IDE como Sublime Text o Notepad++), sin ir más lejos: algo tan necesario como es un diseñador de tipo WYSIWYG (what you see is what you get) de interfaces gráficas (o GUI builder por su nombre en Inglés), o un sistema sofisticado de depuración (mucho más que lo que tenga cualquier editor de texto), o algo de lo más básico como es el procedimiento inicial de creación de proyectos personalizados para un lenguaje específico (ej. una aplicación de consola, o una librería), o algo más avanzado como las herramientas de diagnóstico para la evaluación del consumo de memoria y rendimiento del CPU (conocido como Profilling por su nombre en Inglés), o funcionalidades de evaluación de unidades de código (o Unit Testing por su nombre en Inglés), o emuladores de dispositivos Android, o herramientas de automatización gráfica de la aplicación (conocido como Coded UI por su nombre en Inglés, aunque por el momento solo lo he visto disponible exclusivamente en el IDE Visual Studio), o herramientas de evaluación de la complejidad ciclomática de tu código, y así podriamos seguir hasta llenar la hoja entera de un cuaderno por delante y por detrás.
Un editor de texto no es un IDE, que eso nos quede claro. Si vas a programar de forma seria, entonces usa un IDE, pero si no necesitas las funcionalidades adicionales de un IDE y prefieres usar un editor de texto por que te sientes más...cómodo o simplemente por que te es suficiente para escribir pequeños códigos que no necesitan de tratamiento profesional en un IDE, pues hazlo a tu manera como tú prefieras, ya que al final en mi opinión lo único que importa es utilizar la herramienta que mejor nos consiga hacer optimizar nuestro tiempo y rendimiento.
Saludos.