En promedio, ¿cuántas líneas de código se necesitan para escribir un navegador web?

Esto depende de muchos factores. Por ejemplo:

  • ¿El sistema operativo subyacente ya tiene widgets que admiten HTML? Por ejemplo, Android tiene algunas herramientas para convertir HTML en texto con estilo que se puede mostrar en un navegador: http://developer.android.com/ref…. Si quisieras un navegador absolutamente mínimo, entonces probablemente podrías hacerlo en menos de 2000 líneas.
  • ¿Qué funcionalidad le interesa? Por ejemplo, el intérprete / compilador de JavaScript podría ser fácilmente varios cientos de miles de líneas. Marcadores, soporte rss, soporte de complementos?
  • ¿Qué bibliotecas de terceros utilizas? Webkit? Si es así, eso podría reducir la cantidad de líneas que tiene que usar.

Si está preguntando cuántas líneas entran, por ejemplo, Chrome o Firefox, entonces las indicaciones son aproximadamente de 500,000 a 3 millones de líneas de código. (Ver aquí para Chrome, por ejemplo: http://dmnet.bitacoras.com/vario…, Firefox: http://msquaredtechnologies.com/…)

Como la mayoría de los otros que han respondido, la pregunta se reduce a la funcionalidad. La capacidad de mostrar texto, imágenes y reaccionar a los clics de enlace no es terriblemente difícil de hacer en muchos idiomas, ya que la mayoría usa una de las bibliotecas estándar de WebKit (o similares) para manejar la funcionalidad inactiva y sucia. Uso Xojo (anteriormente RealBasic) y tienen un ejemplo de un navegador web bastante funcional con menos de 50 líneas. Incrustar un navegador web en su programa se está convirtiendo en una característica bastante común.

Puede hacerlo en menos de 850 si ya tiene libwebkit: http://surf.suckless.org/

Si desea un navegador razonablemente completo, puede consultar http://www.uzbl.org/ que lo hace en menos de 5000 líneas de C, más un montón de archivos de configuración y alrededor de 1000 líneas de scripts para cosas adicionales como un administrador de cookies y navegación por pestañas.