¿Qué tan difícil es programar el software de procesamiento de texto?

Escribir un procesador de textos moderno desde cero es lo que llamaría en la programación “rock hard”.

Hacer software de diseño de página es muy, muy, muy difícil. Incluso las pequeñas cosas son difíciles. Me gusta esto:

WWWWW

iiiii

Allí tenemos 5 caracteres “W” y 5 caracteres “i”, que nos dicen que decidir cuándo ajustar el texto en la línea siguiente no es cuestión de contar caracteres y decidir que hay 80 caracteres por línea. La longitud de cada línea dependerá de cada línea que tenga: diferentes caracteres, fuentes, estilos, tamaños, interletraje, seguimiento, palabras, subíndice, superíndice, fórmula matemática, imágenes, puntuación, espacios de ruptura / no ruptura, etc.

Si está escribiendo HTML, todo lo que se hace por usted, si está escribiendo un procesador de textos, no lo es.

Prefiero escribir (desde cero) un competidor en la Búsqueda de Google que Microsoft Word.

He trabajado en software de diseño de página, básicamente trabajando en la creación de PDF. Hacer algo como Word es similar, excepto que todo tiene que suceder 100 veces más rápido y aceptar la entrada del usuario para cada pequeño cambio.

El procesamiento de textos en sí mismo es bastante simple. Sin embargo, MS Word tiene una gran cantidad de funcionalidad: tiene tablas integradas, gráficos, enlaces para otras aplicaciones, un registro de quién editó qué, comentarios ocultos, macros, etc. Puede ser muy complicado.

Lo que eso significa es que sus datos pueden almacenarse de una manera muy compleja. No solo está almacenando texto sin formato, sino que está almacenando todo tipo de otros metadatos. Entonces, cuando “selecciona y copia” en el portapapeles, debe tomar decisiones interesantes sobre qué tipo de datos está copiando y cómo está formateado. ¿Cómo interpretarán otras aplicaciones los datos que ha puesto en el portapapeles?

En esa nota, otras aplicaciones tienen que descubrir qué tipo de magia negra está ocurriendo en los datos del portapapeles que ven. ¿Qué aplicación escribió esos datos y qué tipo de información contiene? ¿Su aplicación se preocupa por el formato de texto? ¿Le importan las macros incrustadas? ¿Qué tal widgets gráficos? Etc. ¿Y cómo debe su programa interpretar esos datos? Si hay un salto de página en Word, ¿qué significa eso en PowerPoint? Etc.

Microsoft intenta estandarizarlo para que las aplicaciones sepan qué hacer con él (o, al menos, todas las aplicaciones de Microsoft sabrán qué está pasando), pero están sucediendo muchas cosas.

En pocas palabras, es tan complicado como quieres que sea. Escribí un “procesador de textos” para mi asignación de programación final en mi primer curso de programación en la universidad. Fue bastante simple. Microsoft Word, sin embargo, se ha vuelto tan complicado que es muy difícil, sin mencionar que la mitad de su problema no es con Word, sino con el programa en el que está intentando copiar.

Fácil a mediano en lo que respecta a proyectos medianos.

La parte más difícil será la tipografía, más específicamente las fuentes. Las fuentes son una gran PITA. Si se limita a fuentes libres y de código abierto, el lado legal será más fácil de manejar. Por lo tanto, solo le quedará el sode de programación.

La segunda más difícil será, nadie usa su software porque todos conocen la palabra y la usan. Si elige su propio formato, tendrá 0 clientes. Si usa el formato de palabra que tiene, heredará los mismos problemas que tiene la palabra.

Si te refieres a escribir un WP desde cero, entonces diría MUY DURO.

Sin embargo, es posible escribir código para decir Open Office que genera un archivo ODT

¿Por qué estás cortando y pegando de todos modos? ¿No puedes simplemente insertar el archivo? No uso Word, así que estoy dispuesto a corregir esto.

More Interesting

¿Qué tan útil sería como estudiante de ingeniería de software obtener la certificación en Microsoft Azure o AWS?

¿Qué software es necesario para aprender ingeniería de software desde básico?

¿Por qué .NET no es tan multiplataforma como Java?

¿Qué compañía elegir entre Credit Suisse o Schlumberger como ingeniero de software?

¿Inicio (al menos desde el punto de vista de la administración) o MNC? ¿Cuál elegir?

¿Por qué los desarrolladores de juegos y software no mencionan la cantidad mínima de núcleos (CPU) en los requisitos del sistema?

Si tiene un cronograma muy ajustado, ¿elegiría cumplir la fecha límite con un código incorrecto o posponer el proyecto con un código bueno y limpio?

Me estoy enseñando a codificar. ¿Cómo eliges la pila tecnológica adecuada para aprender sobre tu idea de aplicación específica?

¿Cuál es la mejor compañía tecnológica para trabajar como desarrollador remoto?

Desde una perspectiva de ingeniería, ¿qué tan difícil es construir la puerta trasera para el iPhone que el FBI está solicitando a Apple?

¿Qué software, si lo hay, se usa generalmente profesionalmente para crear otro software o juegos?

¿Cuánto tiempo de desarrollador se ahorra debido a las buenas herramientas de depuración?

¿Es posible crear software que pueda encontrar sus propios errores y resolverlos?

Las únicas malas críticas que veo de Hack Reactor es que la segunda mitad es bastante horrible si no te apasiona lo que quieres hacer. Hack Reactor ha investigado esto?

¿Qué hace un ingeniero a diario?