Los argumentos est�ndar son:
Entonces, �Cu�l es el framework correcto?... Para principiantes, aquellas personas que simplemente est�n aprendiendo a programar, creo que deber�an trabajar con la API hasta que est�n a gusto con la manera en que funcionan las aplicaciones y comprendan todos los mecanismos b�sicos que hay detr�s de cosas como el Loop de Mensajes, GDI, Controles y quiz�s a�n mutlithreading y sockets. De esta forma comprender�n los cimientos de todas las aplicaciones en Windows y podr�n aplicar este conocimiento com�n a MFC, Visual Basic o cualquier otro framework que no sporte todo lo que la API hace, simplemente porque dicho framework ya hace una gran cantidad de cosas y no puede soportar todas esas peque�as cosas que nadie usa. Entonces, cuando necesites usar esas cosas, es ah� dinde puedes agregarlas tu mismo utilizando tus conocimiento sobre la API.
�Pero la MFC no es mas f�cil? En cierta forma, es mas f�cil cuando muchas tareas comunes son realizadas por uno mismo, reduciendo la cantidad de c�digo que realmente necesitamos tipear. Sin embargo, menos c�digo no significa "mas f�cil" cuando no entendemos el c�digo que necesitamos escribir, o cuando no entendemos c�mo funciona dicho c�digo. Generalmente los principiantes que utilizan los wizards para comenzar sus aplicaciones, no tienen idea que hace la mayor�a del c�digo que se ha generado y pierden una gran parte del tiempo intentando darse cuenta donde agregar cosas o que cambios deben hacer para para alcanzar un cierto resultado. Si comienzas a escribir tus programas desde cero, ya sea utilizando la API o MFC, entonces comprender�s todo lo que est� puesto all� ya que fu� puesto por vos mismo y solo usar�s las cosas que entiendes como funcionan.
Otro factor importante es que la mayor�a de las personas que est�n aprendiendo por primera vez la API Win32, no tienen una fuerte base en C++. Intentar comprender la programaci�n en Windows utilizando la MFC y aprender C++ al mismo tiempo puede ser una tarea monumental. Si bien no es imposible, estar� lejos de ser mas productivo que hacerlo teniendo conocimientos sobre C++ y la API.
Sin embargo, y esto es importante... si quieres trabajar con la MFC sin entender la API y luego buscas ayuda por algo y la respuesta que obtienes hace referencia a la API (como por ejemplo "Usa el HDC provisto en el mensaje WM_CTLCOLORSTATIC"), seguramente quedes colgado ya que no entiendes como traducir un objeto de la API a uno de la MFC. En ese momento estar�s en problemas y las personas se frustrar�n contigo por no aprender todo aquello que necesitas de la API antes de intentar usar la MFC.
Personalmente prefiero trabajar con la API, solo me parece mejor. Pero si tengo que escribir una terminal para una base de datos o un host para un conjunto de controles ActiveX, considerar�a seriamente usar la MFC ya que podr�a eliminarme una gran cantidad de c�digo que, en otro caso, deber�a reinventar.
Versi�n en Espa�ol: Federico Pizarro - 2003