Si quiero desarrollar un IDE, digamos Python IDE, ¿qué tan fácil es hacerlo? ¿Cuáles son las cosas que debo considerar al desarrollarlo?

Crear un IDE no es difícil, pero es complejo e implica el desarrollo de diferentes componentes, herramientas y utilidades. Un IDE se divide en partes más pequeñas para un fácil desarrollo, mantenimiento e integración.

Un desglose típico de tales componentes sería:

  • Interfaz de usuario
  • Editor de código
  • Archivos de proyecto / libs / gestión de activos
  • Utilidades auxiliares
  • Integración del compilador
  • Capacidades de depuración

Interfaz de usuario: el componente fácil y grande. Esto define y organiza otros componentes más pequeños que son útiles para un programador mientras escribe el código. Los componentes, como la caja de herramientas, la ventana de propiedades, el explorador de libs / objetos, el menú, etc., deben colocarse de manera lógica y estratégica para facilitar la escritura del código. Esto también incluye la colocación del editor de código, con pestañas o redimensionable, etc. y creo que este es el componente principal que decidirá qué tan fácil es su IDE.

Editor de código: el componente más importante y complejo. Las tareas básicas incluyen resaltado de sintaxis, sugerencia y finalización de código, organización del código (plegado / desplegado, región, etc.), navegación (como “mostrar definición”), capacidades de refactorización, carga y manejo eficiente de archivos muy grandes, etc. 95% de un el tiempo del programador se gasta en este componente, por lo que su enfoque principal debe estar en esto.

Gestión de archivos / bibliotecas / activos del proyecto: Esto permite que un programador administre archivos relacionados con el proyecto, bibliotecas externas / de terceros, activos, etc. Las funcionalidades básicas incluyen agregar, eliminar archivos, asociar o vincular con otro proyecto o biblioteca y a menudo se ve como un pequeño Explorador de archivos con estructura de árbol.

Integración del compilador: no desea crear un compilador completamente nuevo para su IDE, sino que utilizaría el compilador existente al integrarlo con su IDE para compilar y compilar código. Invoca el compilador, pasa los argumentos requeridos, lee o captura el resultado / salida y luego lo presenta al usuario.

Las características presentadas anteriormente son muy mínimas para un IDE. Puede tener varias otras funciones en su IDE, como la integración con el sistema de control de versiones, el sistema de gestión de proyectos, etc.

Creo que debería comenzar con alguna herramienta de código abierto existente. Como Eclipse para Python o Atom de GitHub.

No sé mucho sobre todo lo que debes considerar, pero creo que debes tener en cuenta estas cosas.

1. Estabilidad (para esto tendrás que hacer pruebas pesadas)
2. Ligero (debería funcionar con 50 pestañas del navegador abiertas en una computadora portátil de baja configuración) [como una computadora portátil ram de 4GB con un sistema de procesador central de 2.3 Ghz 2]
3. web amigable si es posible. Casi todo el mundo está esperando esa herramienta que puedes usar para programar en tabletas, teléfonos, PC, etc.

Sepa que construir un IDE es un proceso que lleva tiempo, pero si construye un IDE lo suficientemente bueno, puedo asegurarle que al mundo de la programación le encantaría probarlo 🙂

todo lo mejor.

More Interesting

Tengo una maestría en CS de una escuela superior y finalmente comencé mi carrera en el desarrollo de aplicaciones web. Mis amigos creen que esto es un desperdicio. ¿Es esto cierto?

Necesito impartir un seminario en dos días sobre aplicaciones web. ¿Cuáles son las últimas tendencias?

Estoy en mi segundo año de universidad con solo conocimientos básicos en OOP y estructuras de datos. ¿Qué y cómo debo aprender algo para poder obtener un trabajo decente de desarrollador?

Cómo colocar imágenes no rectangulares en un sitio web

Cómo extraer una tabla de datos en el archivo pivote a CSV, pero el archivo CSV tiene una estructura como la tabla pivote en jQuery

Quiero ser programador web, pero no sé si debería aprender PHP, Django o Python.

Quiero aprender sobre diseño web. ¿Cuál es el futuro de PSD a CSS / HTML?

¿Qué lenguaje de desarrollo web debo aprender en 2017?

¿Puedo crear un sitio web con imágenes e información detallada para exponer un fraude de beneficios?

Acabo de comenzar un negocio local en Knoxville y deseo crear un sitio web para él. ¿Alguien puede ayudarme?

Sé PHP, MySQL, HTML, ¿son suficientes para convertirse en un desarrollador web?

¿Vale la pena comenzar a aprender PHP en 2017 para el desarrollo web, o probar algo como Python Django?

Si prefiero las bibliotecas sobre los marcos y la simplicidad sobre la complejidad, ¿debería usar Foundation, Bootstrap u otra cosa como punto de partida?

¿Qué tipo de sitio web debo hacer? Quiero un sitio que permita a las personas publicar su experiencia sobre un tema determinado. ¿Es este un blog o qué?

Me uniré a la universidad este año. ¿Debo aprender C, luego C ++, luego Java y luego C # en 4 años?