Autocompletado de Código Inteligente, Chats inteligentes, Generación de codigo con IA, correccion de errores de forma automatica, generacion de documentacion automatica, y generar Tests en segundos, son al parecer algunas caracteristicas que los editores de código o IDEs actuales y futuros estarán implementando para mantenerse al día con lo que practicamente ya es una caracteristica comun, el uso de servicios basados en Inteligenia artificial, es decir servicios como GPT por parte de OpenAI.
De hecho a mi parecer, este año sin duda será el año de las IA, y no solo porque ChatGPT se volvio popular, sino porque gracias a esto, muchas empresas anunciaron, desarrollaron y publicar investigaciones o Papers en mayor medida que en años anteriores, ademas que se crearon muchos servicios y esto no hace mas que ayudar a avanzar más rapido el uso de este tipo de herramientas y servicios basados en IA.
Aunque esta premisa es solo la idea principal, porque el tema es realmente muy amplio. Ya que solo este año se empezo a implementar IAs en muchas aplicaciones cotidianas, por ejemplo:
- Photoshop ya tiene implementado la edicion con Inteligencia artificial
- Google y Microsoft integraron autocompletado y generacion de textos en sus editores de Codigo, ademas que tambien proveen sus propios chats inteligentes (Google Bard y Bing Chat).
- Y en redes sociales se han estado utilizando mucho generadores de Avatars, Deepfakes y clonacion de voz por IA.
Así que si los usuarios habituales de la web ya estan usando herramientas inteligentes, era obvio que los desarrolladores y programadores tambien iban a hacerlo.
Y esto me lleva a hablarles de la herramienta habitual de todo programador y como esta siendo potenciada tambien ultimamente por Inteligencia artificial, a tal punto que parece que estuvieramos hablando de una nueva forma de escribir código profesionalmente desde este tipo de programas.
Me estoy refiriendo a los editores de código, así que para ver de que va todo esto, el día de hoy les hablare de algunos editores y IDEs que ya estan integrando estas caracteristicas, y que a mi parecer solo vamos a ver más y más, este tipo de funcionalidades potenciadas por IA, entre estos editores estan Project IDX, el nuevo editor de codigo de google, Cursor, un editor baado en GPT, Repl.it un editor basado completamente en la nube, y por supuesto Visual Studio Code a traves de Github Copilot.
Aunque estoy seguro que estos no son los unicos editores de Código, ni IDEs, que tienen estas funcionalidades y tampoco seran los unicos que escucharemos que implementarán estas caracteristicas, pero he escogido estos porque son los que ya permiten usar caracteristicas inteligentes al día de hoy, y son los que probblemente mucho useremos en los años que vienen.
Pero para entender bien todo esto, debemos tener bien en claro que es lo que estan ofreciendo este tipo de editores de código. las cuales son dos caracteirsticas principales, la primera es el autocompletado de codigo inteligente y lo segundo y es la ejecucion de código en la nube, que si bien no es un tema de IA, si esta muy relacionado y es algo que se esta viendo cada vez más.
Autocompletado de Código Inteligente
Ok, empecemos con la caracteristica que yo creo que es la más usada y la que tambien ha este punto es la mas comun de todas las caracteristicias inteligentes. Este es el Autocompletado de código por IA.
Por ejemplo la extension para editores de codigo más popular con estas caracteristica es Github Copilot, que se puede instalar en Visual Studio code, IDEs de Jetbrains, e incluso Vim o NeoVim.
Y a diferencia de como funciona un autocompletado tipico, todo lo que escribes, se va procesando en un servidor, y un modelo inteligente va dandote una sugerencia de lo que podria continuar y todo esto en cuesto de segundos.
Github pudo crear esto gracias a que OpenAI hace algunos años atras desarrollo un modelo de lenguaje diseñado especifamente para generar código llamado Codex, el cual es una variacion de GPT pero solo enfocado a gnerar código.
De hecho esta extension ha tenido tanto exito que Github esta desarrollando otras extensiones que funcionan como complemento de Copilot. Por ejemplo:
- Tiene una extensión para procesar Voz, llamada Copilot Voice en donde puedes dictar por Voz que codigo quieres escribir
- Tiene otra para consultar comandos desde la terminal llamada Github Copilot CLI, es decir solo preguntas en lenguaje humano el comando que quieres y la IA te da los comandos para lograr lo que pides en la terminal
Y tambien ya actualizaron la extension de Github Copilot actual, para que pase de ser simplemente autocompletado de código a poder ser todo un set de herramientas inteligentes. Por ejemplo en las ultima actualizaciones ya tiene un Chat que esta integrado para que puedas conversar con una IA y preguntar sobre tu base de código o generar codigo dentro del editor.
Tambien tiene una extension complemento para que copilot te ayude dandonte recomendaciones de mejorar el codigo, encuentre bugs o corriga errores, llamada Copilot Labs, o incluso tambien provee atajos de teclado o tambien opciones que con un click derecho tambien puedes obtener explicaciones, correciones o sugerencias lo que convierte a vscode en algo mas que solo un editor. Todo esto ya lo he mostrado en un tutorial de Github Copilot de mi otro canal, asi que se los dejo en la descripcion
Y en cuanto a todas estas caractreias, las pueden encontrar en la web de Github Next en donde aqui se listan los proyectos en los que esta trabajando Github actualmente, y en donde si tienes una cuenta puedes pedir acceso temprano para que ya puedas ir probando estas caracteristicas.
De hecho aqui no solo encontraras extensiones de copilot, sino tambien de Github, como por ejemplo que estan trabajando en un sitio para conversar con una IA entrendada en documentacion de bibliotecas y Frameworks, llamado copilot for docs, con la idea que a futuro ya no pases leyendo una enorme documentacion sino que simplemente preguntes a un chat y obtengas la respuesta, o tambien la posiblidad de redactar mensajes o corregir pull rquest que se envien en la plataforma.
Por lo que podemo preever que el VSCode Y Github que usaremos de aqui en unos meses, tendra mucha más caracteristicas basadas en IA.
Y bueno Vscode es la aplicacion que promete más en ofrecer caracteristicas inteligentes, no solo por ser el editor más usado, sino porque com es desarrollado principalmente por Microsoft, y este financia a OpenAI, y Github al ser parte tambien de Microsoft, tiene acceso anticipado a los modelos actuales o en los que esta trabajando OpenAI.
Aunque claro todos sabemos que OpenAI tambien tiene una API, lo que quiere decir que cualquier desarrollador podria usar GPT-4, y pagar por este para integrarlo en su propio editor de código o crear uno nuevo con modelos inteligentes. De hecho esta es la idea del siguiente editor, Cursor.
Cursor, editor de Código basado en IA
Ok, no se cuantos de ustedes esten enterados, pero Visual Studio Code, a pesar que es un editor de código abierto por Microsoft, este tiene alternativas que la comunidad a desarrollado y que que son más abiertas incluso, por asi decirlo, es decir hay variaciones de visual studio code, que no traen extensiones y configuraciones de Microsoft por lo que son considerados más abiertos. Uno de estos es Code OSS que es mantenido tambien por Microsoft. Es decir que es algo similar a lo que pasa con Chrome y Chromiun, en dodne Chrome es el producto de Google, pero Chromium es su version abierta que otros pueden usar, es por esto que tambien hay navegadores como Brave, Opera, o Microsoft Edge que permiten ofrecer las mismas caracteristicas bases que Google Chrome, y añaden las suyas tambien.
Y les menciono todo esto, porque justamente han hecho un fork del repositorio de Code OSS, lo han integrado enteramente con la API de OpenAI, es decir GPT y han creado un "nuevo editor de código", llamado Cursor, y yo se lo que estaran pensando si es un fork de vscode y usa GPT, practicamente es lo mismo que vscode con copilot, y en teoria sí, pero en la practica realmente se percibe un poco distinto.
Veran Cursor, tiene la mayoria de caracteristicas que de momento esta desarrollando github con copilot, pero que no las trae como extension sino que ya vienen integradas en el editor, es decir tiene un chat para conversar con GPT, tiene autocompletado de codigo inteligente, tiene opciones que cuando das un click puede generar codigo, arreglar errores, o documento codigo, y todo esto desde el primer momento en que lo instalas.
Haciendo que la diferencia con vscode se note, por ejemplo el Chat no necesita que copies y pegues texto en un recuadro de chat como en Github copilot chat, solo necesitas pedir lo que quieres y el chat de cursor toma como contexto el archivo actual que tengas abierto, o si quieres decir que lea varios archivos, solo coloas un @ con el nombre del archivo y listo puede aceptar distintos archivos como entrada, para que la IA pueda tomar a todos estos como contexto, lo que es muy util para no tener que copiar y pegar porciones de codigo, ademas que le ayuda a la IA a tener más contexto rapidamente.
Es decir como la API de openai esta integrada por defecto, puede saltarse las limitaciones de no poder tener acceso a todo el editor, simplemente porque no es una extension.
Aunque este editor no es Abierto, de hecho tampoco es es gratis. Es decir como el consumo de la API de OPenAI tiene un costo, lo que hace este editor es ofrecer un plan gratuito con algunas peticiones, y ofrece un plan de 20$ donde puedes usar ilimitadamente todas estas caracteristica inteligentes.
Ahora si alguien externo a Microsoft ha tenido la idea de crear su propio editor con caracteristicas inteligentes, y basado en vscode, porque no lo tendrian otras empresas del sector que son competidores de Microsoft, por ejemplo Google.
Project IDX
No es novedad que este año Google ha desarrollado una fuerte competencia contra Microsoft y OpenAI, cuando OpenAI lanzo GPT, Microsoft creo Bing Chat, y Google respondio con Bard, o cuando Microsoft anunciaba sus integraciones, Google tambien respondia con casi lo mismo, pero usando sus servicios. Bueno, ahora parece que tambien tendremos una alternativa a VScode que viene por parte de Google llamado Project IDX, es decir, este es un proyecto experimental aun de Google, el cual es un editor basado en VSCODE, pero que funciona en la nube, y que tiene caracteristicas que se integran con servicios de la nube de Google.
Y aunque pueda parecer raro para algunos que Google use el código base de vscode para competir con vscode, esto de hecho es algo muy comun, por ejemplo Microsoft hace algo similar con Edge, es decir Edge esta basado en Chromium, que es un proyecto abierto de Google. Bueno, Google esta desarrollando su propio editor, basado en code oss, que es un proyecto abierto de Microsoft.
Ahora lo que nos ofrece Google no solo es una version de code oss, sino su version Web usando sus servicios de la nube, y claro incluido alli los servicios basados en IA, y esto es interesante, porque si recuerdan, Google tambien es el que desarrolla framewrks como Flutter, que no solo es util para crear aplicaciones moviles, sino tambien web, lo que significa que podrias consturir aplicaciones complemtante en la nube usando este editor.
Lo que es beneficioso para muchos desarrolladores, ya que no necesitarian de una laptop potente para desarrollar aplicaciones web o moviles por ejemplo, que siempre estas consumen muchos recursos, solo necesitarias una conexion a internet y todo funcionaria en la nube, ademas de usar caracteristicas inteligentes.
De hecho esto a muchos les debe sonar como Stadia, que fue otro servicio de Google, donde ejecutaba todo un juego en la nube, y solo dejaba que el jugador con un controlador para que pudiera jugar, sin tener que instalar nada, y que por cierto el el cual fracaso como plataforma al no tener muchos juegos que ofrecer, pero que como infraestuctura fue una gran idea que ahora usan plataformas como Nvidia o MIcrosoft. Bueno esto seria en idea lo mismo pero para código.
Ahora en cuanto a Project IDX como esta basado en VSCode este tiene las mismas caracteirsticas principales, como integracion con Git, su tipico explorador de archivos, integracion con las extensiones existentes, y en teoria podrias usar las mimas configuraciones o al menos la mayoria de vscode.
Pero en adicion a estas, tambien tiene otras caracteristicas propias como:
- la creacion de workspaces, que a las finales son maquinas virtuales que ejecutan tu código en la nube, para que solo abras el editor y listo ya esta todo instalado, o puedes crear un workspace vacio para configurar tus propias herramientas desde cero
- IDX Chat, el cual aparte de generar respuestas, tambien da informacion del repositorio obtenido y la licencia de uso, si en casolo hubiese. y tambien ya incluye acceso al contexto del editor, es decir que puede darte cosas como decite que clase de todos tus archivos es la que lanza el error, o decirte en que archivo encontrar determinada clase, simplemente pidiendoselo
- Tambien tiene un extension con Firebase para que puedes desplegar tu proyecto desde alli mismo
- Soporta configuraciones ne Nix, que es un proyecto que permite preconfigurar una maquina con todos los entornos de desarrollo que queramos
- Y pos supuesto desarrollar aplicaciones de flutter desde un navegador sin isntalar nada
https://youtu.be/-wlZY4tfGMY?t=631
Ahora, en lo personal, a excepcion de la genracion de codigo en la nube, no me llama mucho la atencion Project IDX, es decir esto ya es posible actualmente.
Por ejemplo, Github tiene un servicio llamado codespaces donde puedes tneer vscode en la nube, y ejecutando en maquina muy potente, o tambien esta replit, otro editor basado en la nube, o proyectoc como code-server, te permiten ejecutar tambien vscode en tu propio servidor. Y estos tambien y aofrecen autocompletado inteligente. De hecho todos estos servicios en el pasado ya se los he mostrado en tutoriales y tampoco es qeu todo los desarrolladores lo usen.
Y en cuanto a la generacion de aplicaciones en la nube, proyectoc omo Expo en react native, tambien te permite crear aplicaciones en la nube. Por lo que esta siendo google, es basaciment coecionar todos estos tipos de servicios en un solo producto.
De hecho a mi parecer estos dias es mucho más factible tomar cosas existentes unirlas y lanzarlas como un producto nuevo, que enseñar a las desarroladores a usar caracteristicas que ya tienen en sus herramienta.
Repl.it
Sí el autocompletado de codigo inteligente es una caracteristica moderna, quizas ya notaron que la ejecución en la nube es otra que de cierta forma tambien se intenta promover, así que es justo mencionar a un editor que ya permitia hacer esto desde años atras y que con el tiempo ha mejorado bastante, este editor es Repl.it, el cual lo puedes acceder desde la web, y ya posee entornos configuradoes pero con una interfaz propia de la plataforma asi que no es un visual studio code adaptado como los editores anteriores.
De hecho Replit con los años ha permitido extender sus funcionalides, como que todos los proyectos que desarrollas ya estan desplegados por defecto,tiene la posiblidad de que multiples desarrolladores editen codigo al mismo tiempo, ofrece maquinas mas rapidas para planes pagados, mejorando el CPU y RAM, y permite extender los espacios de trabajo con configuraciones con paquetes Nix, tiene una comunidad interna muy activa donde comparten tutoriales, y en donde sus usuarios puden monentizar la escritura de codigo a traves de un programa llamado Bounties en donde los usuarios ofrecen dinero porque desarrollen determinado tipo de proyectos practicos, e incluso Replit tambien ofrece una aplicacion movil y de escritorio donde puedes acceder a tus mismos proyectos que desarrollas en la web.
Y por supuesto tambien tiene su propio autocompletado inteligente, al cual llaman Ghostwriter que es basicamente el Copilot de este editor.
Y el editor funciona muy bien, y es muy facil empezar a usarlo, pero para proyectos empresariales o reales, la forma en la que esta configurado el editor lo vuelve muy incomodo para considerarlo como una opcion principal, asi que en lo personal lo veo mucho mas enfocado a proyectos de front o pequeños proyectos de backend, que no necesten de muchas configuraciones de desarrollo profesionales.
Aun asi dejaria que ustedes lo pueben y vean si realmente cumple con sus necesitdades.
Y todo esto es gratis
Ahora la pregunta que muchos se hacen, esto es gratis. Bueno es obvio que si al completar codig, o pedir a un chat una repsuesta, un servidor procesa tu prompt y te devuelve la accion, o texto. asi que a mas uso de estas caracteristicas mas recursos se consume un servidor. por lo que alguien tiene que terminar pagando.
DE hecho una parte del convenio que OpenAI tuvo con Microsoft no solo fue para tener financiacion, sino tambien para poder hacer uso de la nube de Microsoft, Azure, la cual es necesaria para mantener la enorme infraestructura de los modleos de OPenAI como GPT.
Así que esto nos lleva a pensar es normal que busquen monetizar desde el minuto 1, todas estas herramientas de hecho al momento de escribir esto, si bien todos estos programas tiene un plana gratuito, si quieres usar sin restricciones:
- Gihub copilot tien eun costo de 10$ mensual
- Curso tiene un costo de 20$
- PRoject IDX aun no tiene una salida
- Replit tiene un costo de 20$ al mes
asi que ya se pueden dar una idea de lo que cuesta. Pero lo bueno es que a mas herramienta vayan surgiendo, esto hara que los costes se abaraten, no solo porque habra mucha más demanda de servicios, y buscaran mas usuarios, sino porque a medida que se ivestiga mas, se mejoran el rendimiento de los modelos para que sean muchos más accesibles, abaranto costos.
Por ejemplo:
- en la ultima actualizacion de GPT este es mucho más rapido, tiene informacion mas actualizado, y puede aceptar entradas muchos mas grandes, por el mismo precio
- midjorney genera imagenes a mitad de tiempo, lo que en la practica signifia que puee genrar el doble de imagens sin paar mas
Personalmente no lo he visto con un gasto este año cuando he renovado suscripcion de Github Copilot, de hecho me ha ayudado a avanzar muy rapido, no solo en proyectos de clientes, sino tambien cuando asesoro a otras personas, el generar codigo al instante, es muy util para no estar perdiendo esos valiosos segundos, que podrias usar perfectamente en pensar, o añadir más funcionalides en lugar de pasar tiempo tipeando en el teclado. Ademas como cambio mucho de lenguaje, tiendo a recordar solo alguna palabras y el autocompletado es muy util para tenerlo al instante, y recordar. Y el costo realmente es muy accesible sobretodo si sabe que los desarrolladores ganan muy bien por projecto, solo lo presupuestas por tiempo y ya esta. De hecho esto es algo que me he dado cuenta que muchos desarroladores no hacen muy bien, asi que pronto estare creando un video de Finanzas para programadores, en donde hablare el tema de costos por proyecos, financiacion y monetizacion de proyectos de codigo.
Conclusión Final
En fin a modo personal y ya pasando más de dos años usando este tipo de servicios o aplicaciones inteligentes que ayudan a escribir codigo, creo que es muy claro que este tipo de software ha llegado para quedarse, y usandolo en mi día a día creo que es una herramienta que vale pagarla, y que no es cara si desarrollas profesionalmente.
Pero en cuanto a la capacidad de ejecutar codigo en la nube ya sea con maquinas virtuales o con contenedores, creo que es una idea que no termina de convenserme del todo, es decir la idea luce muy bien, ejecutar codigo sin instalar nada, pero en la practica esto no es tan simple, para empezar solo sirve para determinados tipos de proyectos y no cualquier tipo de desarrollo, que necesiten algun tipo de processamiento grafico por ejemplo, ademas encontrar mucha informacion para configurar el entorno no es tan abundante la informacion y esto sin contar que toma tiempo iniciar el entorno de desarrollo y que si quieres instalar algo adicional, tienes que reiniciar todo el entorno de desarollo o workspaces nuevamente.
Por supuesto estos problemas que mencione evenvualmnete seran mejorados, pero de momento de nuevo, los entornos en la nube no los considero como un entorno principal de desarrollo.
De hecho Repl.it lo he usado en el pasado y esta bien para practicar temas muy puntaules o hacer proyectos demo, pero para desarrollar proyectos serios no lo tomaria como una opcion, Cursor lo he usado muy poco y creo que pagar por otro editor no es una idea muy buena sobretodo si ya pago por copilot y en cuanto a IDX aun no es estable, pero para lo poco que he probado no va muy distinto de Github codespaces, asi que creo que es mas un competidor direct de esto que de vsual studio code.
Entonces en mi top personal en cuanto a servicios de editores en la nube estaria asi:
- Github codespaces
- Replit
- Cursor
- Project IDX
estoy seguro que esto puede cambiar a futuro, pero de momento es lo que hay.
Espero que esta reseña les haya parecido interesante y si tienen alguna sugerencia de un tema que esperan que vea no duden en escribirla en los comentaros, y no olviden visitar mi segundo canal en donde pueden ver tutorials y proyectos mas completos de codigo
Nos vemos en un siguiente video.