On Github druellan / notepadplusplusminmin
programo desde hace 30 años
en HTML desde hace 20 años
Programo desde hace 30 años
Programo tecnologías de Internet desde hace 20
Cuando pedí mi primer acceso a Internet, me dieron un diskette donde venía esto...
Al parecer eso funciona con esto...
Primero una advertencia
¡Si se les ocurre algún editor interesante que pasé por alto, me pueden decir!
Nop, tampoco VIM / EMACS → https://xkcd.com/378
Un montón de editores van a quedar afuera
En Windows, busqué la mejor herramienta para manejar texto sin formato
Había que buscar algo mejor
Todavía hoy en día uso Editplus
Encoding / Format / case
Regex search & replace multifile
Algunas herramientas de editores especializados
Pero lo más revelador para mí ...
Colorización de código
Lindo visualmente pero hay algo más
Mejor interpretación del código
¡Vaya! es como que quiere ayudarme
Por ejemplo, algunos temas que usé en Eclipse
Símbolos oscuros monocromos
Colorización de tags, elementos y propiedades
Separación de código con distintos contrastes
Separación de código cromática, con paletas
Uno de mis editores favoritos hasta que lo compró Macromedia para integrarlo en su producto Dreamweaver
Editor especializado en HTML
Validador de código y tabla de propiedades
Podías aprender mientras trabajabas el código
Otro de los editores de Nick Bradbury
Uno de los editores que empezaron a surgir especializados en Frontend
Mejor selector de propiedades CSS y preview
Es la preview la que evolucionó en una vertiente de editores
Cambio de ámbito. El desarrollo frontend es ahora parte del diseño.
No necesariamente tenías que ser desarrollador para crear una página, sólo saber usar la herramienta
Herramientas de creación enfocadas a un público particular. Ej:empresas.
Hotmetal Pro incluía una interesante vista híbrida
Fue comprado por Corel y convertido en un editor XML
Realmente intentaba congeniar dos vertientes, que era inevitable se separaran
Parte de la suite Office. Destinado principalmente a sectores empresariales, se popularizó entre usuarios
Componentes ActiveX y tecnologías de MS. Soporte para propiedades exclusivas de IE
De hecho, el código resultante era tan propietario que no terminaba de funcionar bien en otros navegadores, y no podía ser editado por otro programa
Claramente enfocado a competir con Microsoft FrontPage
No pretende se tenga acceso al código fuente para nada, ni siquiera usa HTML como formato de archivo
El trabajo se compila a HTML y se publica
Permite definir acciones y animaciones
Complementos avanzados, como galerías, carritos de compra y animaciones Javascript
Casi un generador de páginas estáticas
Dreamweaver comenzó como un editor con 3 modos: código, pantalla partida, wysiwyg
Emitía un código moderamente prolijo (sobre todo comparado con Frontpage) y era respetuoso con los estándares
Macromedia supo potenciarlo hasta convertirlo en un editor de referencia
Poco a poco se fue integrando en el pipeline de los estudios de diseño
8 años después, la UI y el editor se habían convertido en una herramienta sumamente compleja
Todavía se podía editar y desarrollar código, pero la estrella era la UI WYSIYWG
Microsoft Expression es una copia bastante aproximada de Macromedia Dreamweaver
Pero también empezó a incorporar herramientas interesantes, como la Super View
¿Es entonces la herramienta definitiva de frontend?
Software como Microsoft Expression Web solucionaron el tema del feedback inexacto con previews
Pero no deja de ser lo mismo que abrir el navegador web
Uno de los primeros editores realmente multilenguaje y multiplataforma
También uno de los primeros en permitir temas globales, que afectan todo el editor, no sólo el área de edición
Pero sobre todo...
Ya otros editores venían ofreciendo "code completion" & "code hinting"
Pero "code intellisense" o "code intelligence" permitía recibir sugerencias y documentación basadas en tu propio código
Con todo esto ya estamos listo para ...
Vuelco de las herramientas de programación clásicas al desarrollo de frontend y backend
Eclipse nació para la programación en Java, pero pronto se convirtió en un entorno para desarrollo de todo tipo
Este es Aptana, plugin de Elipse específico para el desarrollo web
En el caso de Aptana tenías también live preview, pero no funcionaba con todos los browsers
¿Qué más se podría desear?
¿Es el entorno perfecto?
¿Es entonces el entorno perfecto?
Muchas veces había discrepancias entre los editores
Algunos eran hackeables por el usuario, como Eclipse, pero tan complejos que no valía la pena
Algunos de estos aspectos fueron mejorando, otros empeorando, pero sucedió algo...
Volviendo a las bases, un editor que sea bueno editando
Rápido / moderno / innovador
Extensible a base de plugins
Sublime Text ofrece una excelente base de extensión para los plugins
Todo esto y mucho más lo podemos obtener con plugins de terceros
Intellicode en Sublime es un port de Komodo Edit
¿Es el entorno perfecto?
SublimeGit / Sublime Linter 3 / jQuery Completions / CSS Extended Completions / GitGutter / Bracket Highlighter / Git Conflict Resolver / DiffView / Sublime SFTP / Color Highlighter / DocBlockr
Hay incluso un plugin experimental que incorpora la intellisense de Komodo
¿Es el entorno perfecto?
¿Ahora si tenemos lo que queremos?
La idea es buena, pero...
Ciclos de actualización lentos
Mover la mayor cantidad posible de recursos al open source
Los ciclos lentos eran un problema para la sintaxis y complementos de CSS y JS
Sublime movió ahora estas extensiones a su propio repo para ayudar a mantenerlas actualizadas
Los plugins son creaciones de terceros
Índice centralizado
Los plugins pueden estar hosteados por terceros, con ciclos de actualización propios
Will Bond y su package control. No es un repositorio centralizado pero un índice
(Recientemente Jon Skinner reconoció el valor de esto y contrató a Will)
Pobre integración entre plugins
Plugins que realizan tareas similares en distintas instancias y que terminan compitiendo entre sí o son muy diferentes
Metaplugins
Un metaplugin, es un plugin que sirve de plataforma para que otros plugins agreguen funcionalidades
Sublime Linter, el mejor ejemplo. En Atom, Autocomplete Plus, que es ahora parte del core
Soporte y continuidad de desarrollo
Incentivar una comunidad o un modelo pago
La mayoría de los plugins son open source, usualmente mantenidos por un desarrollador
Pueden desaparecer o quedar abandonados en cualquier momento
Sublimerge un buen ejemplo de plugin pago
En Atom, Autocomplete Plus, que es ahora parte del core
Los plugins son tan potentes como la API
¡Hackear el editor!
Y en muchos casos esta API se queda corta para integrar tal o cual funcionalidad
En tal caso, o se espera tener esa funcionalidad, o se desarrolla en el editor
Estos dos editores nacieron de la premisa de emplear tecnologías en su desarrollo
Salto importante. Ahora los desarrolladores de frontend están realizando sus propias herramientas
Brackets es un proyecto interesante por estar enfocado en frontend
Los recursos más interesantes que provee son el "quick edit"" y el "live preview"
La API para las extensiones es muy completa, y permite crear UI muy complejas, pero son poco consistentes
La API para las extensiones es muy completa, y permite crear UI muy complejas
También produce plugins muy inconsistentes entre sí
Brackets Git / QuickDocsJS / jQuery quickdocs / colorHints / FuncDocr / Interactive Linter / CSS Class Code hint / New Project Extension / eqFTP / Extension Ratings
Brackets GIT y eqFTP son realmente excelentes
Atom surgió como un proyecto de Github, y está claramente inspirado en Sublime Text
Es un editor más orientado a la programación, pero tremendamente flexible
Permite plugins muy complejos, que pueden hacer uso de muchos recursos externos
Linter / Pigments / Minimap / Atom Ternjs / Atom HiDPI / Merge Conflicts / Dockblockr / Project Manager / Remote Sync / Aligner / (Autocomplete Plus)
Aligner es interesante. Es un metaplugin que permite extender la sintaxis
y soluciona bastante elegantemente las inconsistencias
y el overload de la UI
Seguimos necesitando una buena cantidad de plugins si queremos un entorno bien afinado
¡Crear tu propio editor!
Para React Native, Hack y Flow.
Plataforma para IoT
Basado en Electron como framework crossplatform
Enfocado a aplicaciones web
Usa Monaco, el editor web propietario de Microsoft
El debugger es sumamente completo
Y el codehinting es contextual, de forma que se minimizan las largas listas de recomendaciones
SublimeGit / Sublime Linter 3 / jQuery Completions / CSS Extended Completions / GitGutter / Bracket Highlighter / Git Conflict Resolver / DiffView / Sublime SFTP / Color Highlighter / DocBlockr
¿Se acuerdan de estos paquetes para Sublime Text?
SublimeGit / Sublime Linter 3 / jQuery Completions / CSS Extended Completions / GitGutter / Bracket Highlighter / Git Conflict Resolver (parcial) / DiffView / Sublime SFTP / Color Highlighter / DocBlockr (parcial)
La mayoría ya están integrados en VS Code
Según sus desarrolladores, la idea es conseguir algo a mitad de camino entre un editor y una IDE
Son todos editores basados en tecnologías web
Que tan "nativos" se sientan depende de que tan bueno es el renderizado del motor
Siguen teniendo problemas de escalabilidad
Bespin fue uno de los precursores del editor de código en la nube
Tenía incluso capacidades colaborativas multiusuario
El core fue la base para la creación de Cloud9
Tenemos una amplia selección
El que quieras. Pero hay algo que deberías saber antes...
Estas dos herramientas cambiaron la forma en la cual nuestros editores interactúan con el código
Ya no dependemos de un editor o un entorno IDE particular para realizar cómodamente optimizaciones del código o un deploy
El editor asegura solamente un nexo y provee la interfaz para la herramienta
Todas estas herramientas no dependen de un único editor
De hecho, no necesitan ni plugins ni extensiones, pero el editor provee un entorno y una interfaz que permite su uso sea más accesible
Su configuración, viaja con el proyecto, no con el editor
Incluso VS Code usa internamente Gulp y reconoce la existencia de .gulpfile, permitiendo disparar los tasks directamente desde el editor
Incluso se puede trabajar a la inversa: que el navegador (o la consola de inspección) sea tu editor de cabecera
El que quieras. Que no te condicione ni condicione a otros.
El impulso de trabajo en equipo, especialmente de forma remota, es lo mejor que le pudo pasar a los desarrolladores, pero sobre todo, dejar que cada uno trabaje como más le gusta
https://github.com/druellan/notepadplusplusminmin
https://github.com/druellan/sublimetext-package-list
https://github.com/druellan/atom-package-list
https://github.com/druellan/vscode-extensions-list