Fui parte del equipo central que comenzó a hacer tal cosa en 2007. Usted lo conoce como Google Chrome.
Calificaré “desde cero” en que Chrome no es un derivado de ningún navegador anterior. Sin embargo, no es desde cero en el sentido de que aprovechó muchas bibliotecas existentes, especialmente Webkit. Pero por volumen como lo fue en 2015, aproximadamente el 55% del código fue desde cero: código que no existía en 2007.
Sin utilizar un montón de bibliotecas existentes, el proyecto probablemente habría fallado al llegar demasiado tarde o al ser cancelado antes de eso. Los esfuerzos a esta escala necesitan justificación y “nos gusta desde cero” no es uno de ellos.
- ¿Qué tan poderoso de un servidor web necesito para mi aplicación de prueba en línea? Puede haber 2,000 usuarios a la vez tomando la prueba.
- ¿La calidad de los cursos completos relacionados con la pila de Lynda.com está a la par con CodeSchool y Team Treehouse?
- Con el surgimiento de IoT, ¿las aplicaciones independientes de escritorio están destinadas a 'morir'? ¿Vale la pena aventurarse en el desarrollo de tales aplicaciones?
- ¿Por qué la aplicación de Slack es solo un contenedor web en lugar de una aplicación nativa?
- ¿Es posible realizar un seguimiento de las actualizaciones del plan con Google Analytics?
Por lo tanto, la pregunta más importante que desea hacerse no es el cómo sino el por qué. ¿De qué manera los navegadores existentes tienen deficiencias que desea abordar? La respuesta a esa pregunta será su brújula para las tareas por delante.
Por ejemplo, si su respuesta es que son inseguros, entonces estará buscando mejores lenguajes de programación o verificación automática de software. Como tal, comience allí y escriba un único componente pequeño. Sugiero el análisis de URL, luego busque algo más complejo, como el procesamiento Unicode, etc.
Si su respuesta es que son lentos, entonces debe invertir en crear bibliotecas que generen código de forma instantánea y análisis de JavaScript. Hay un montón de compensaciones que puede hacer allí que podrían dar sus frutos. Un mejor almacenamiento en caché también es un buen lugar para comenzar.
Pero si no hay una razón en particular, entonces básicamente quieres aprender cómo funcionan los navegadores. Como tal, la mejor manera de comenzar es escribir el motor de representación html más simple que pueda en el idioma que mejor conozca. Es decir, html entra y salen píxeles. Puede aprovechar las “pruebas de píxeles” de Webkit para validar la salida de su programa.
Para las personas que te dicen que no vale la pena hacerlo, no estoy de acuerdo. Las piezas de software más críticas que usa hoy en día, Chrome, Linux, NGINX, comenzaron con una persona insatisfecha / curiosa y una voluntad del tamaño de una montaña.
En cuanto a mí, ahora soy parte del equipo central que está escribiendo un sistema operativo desde cero [1]. ¡Entonces a ti te digo buena suerte!
[1] Fuchsia no es Linux