# Reflexiones sobre IDE's



## Hellmut1956 (Dic 3, 2016)

Hola amigos, elegí este subforo para el hilo por no ser concretamente sobre Arduino o RaspBerry Pi, pero los temas los encontré en el curso de mis actividades preparatorias! No se como expresar el tema "al punto", así que me decidí presentar como me encontré enfrentado con el tema de este hilo!

Empezó por comprar una licencia de PyCharm de Jetbrains, por tener excelente apoyo para programar el Raspberry desde el PC y también lo bien que apoya la búsqueda de errores de forma nativa del programa que escribo y que es ejecutado en el RaspBerry. Cumple de muy buena forma, a mi opinión el programar desde el PC una placa "target". de ahí todo viento en popa!

Luego experimenté con la IDE de Jetbrains CLion, que permite programar en "C" y "C++" desde su mas reciente versión 2016.3. Mi objetivo, el usar el entorno que ya estoy familiarizado de usar el PyCharm para las placas Arduino! Otra vez quedé maravillado que realmente resulta posible usar CLion como editor dentro del entorno de la IDE del Arduino! hasta aquí sigue viento en popa!

Ahora me decidí por seguir un curso de "C" en YouTube y otra de la Universidad de Texas, Austin sobre el mismo tema. El curso en Youtube usa la IDE de IAR y el de la universidad de Texas la uVision de Keil. Ambos cursos usan como "target hardware" la placa "Stellaris Launchpad". Ambas IDEs permiten seleccionar el tipo de controlador de la placa "target" y "conocen la plaa Stellaris de launchpad, por lo que automáticamente se configuran para usar la interfaz "JTAG" que forma parte de la placa Stellaris Launchpad. El controlador es un ARM Cortex M4F.

Viendo como estas 2 IDEs apoyan el desarrollo de software y el entorno de placas para la búsqueda de errores, me miré con mas detalle las herramientas de la empresa Jetbrains! Aparentemente mi desconexión sobre para que las herramientas son útiles y para que probablemente no depende de que si la placa target contiene un os propio y es capaz de ejecutar un interpretador "Python" o un compilador "C". Esto está dado en las placas RaspBerry Pi por tener Linux como os!

En el caso de las placas Arduino resulta que alguien hizo el esfuerzo de integrar el entorno de la IDE de Arduino en CLion, o viceversa. Por eso en las placas Arduino la IDE de Arduino hace posible el uso de las herramientas de Jetbrain.

En el caso de la placa Stellaris Launchpad, y en las placas LPCXpresso que pienso usar, en el caso de los controladores de TI y aquellos de NXP, el entorno ofrecido por Jetbrains me parece inadequado, si no me falta ver algo, que no he visto aún!

Mi pregunta concretamente es si lo que me parece haber identificado y presentado aquí es correcto?

El segundo tema que quiero presentar aquí, lo hago en este mismo hilo, por haber sido amonestado por el foro de duplicar hilos al abrir un segundo hilo.

Viendo el curso de la universidad de Texas en las secciones de introducción al curso, por primera vez me encontré con que alguien toma el tema de la virtualización en el contexto de la programación y lo justifica de forma muy convincente:

El curso recomienda de forma muy urgente, que para cada no de los proyectos se genere un entorno virtual y que dentro del entorno virtual se definen las herramientas en las versiones deseadas y se inicializa el entorno de forma adecuada para el proyecto! Su argumento:

Solo así logras que cada entorno de un proyecto cumpla con los requisitos del proyecto, y que a la vez el os usado no es afectado por los setups que se requiera para cada proyecto específico! Describe por ejemplo que departamentos de soporte analizan un problema dentro del entorno que ocurre y esto lo hacen para cada caso de apoyo.

El efecto de esto para mí es, que tengo que reflexionar de como organizar mi forma de ejecutar uno de mis proyectos! Lo que en Inglés llaman el "workflow"! Soy un poco lento en esto de reflexionar, por que mi salud sigue interponiéndose con mis objetivos. Acabo de estar otros 2 días en el hospital!


----------



## RuoskaE (Dic 11, 2016)

He escuchado eso de los entornos virtuales para cada proyecto, yo lo estuve haciendo cuando programe en Django (una aplicación web) y la verdad es que si resulta bastante útil a la hora de implementar nuevos add-on's o comprobar el funcionamiento de ésta con alguna actualización. Al menos eso es lo que pienso, que estés bien, saludos.


----------



## Hellmut1956 (Ene 7, 2017)

El tema de la virtualización lo estoy tratando en el contexto de establecer un entorno menos susceptible a que me vuelvan a rendir inoperable mi os Windows 10. Actualmente en este contexto estoy empezando a estudiar el tema de la containerización aquí usando "Docker". Aproveché que la editorial "Pack" aún ofrece cualquiera de sus libros y vídeos por solo 5 USD y me compré 5 libros sobre Docker. Interesante para mí fue el descubrir desarrollos de las tecnologías de "máquinas virtuales, "VM" y de la "containerización" para crear algo que llaman "hybrid containerization" que combina las propiedades de los "VMs" y de los "Contenedores". Aquí pongo el enlace a un artículo que trata el tema! Aquí el enlace a otro artículo. En general, si el tema de la seguridad y la virtualización es de interés, vale poner el enlace al sitio en tus preferencias.

Quiero recalcar. Muy bien puede ser que el tema acabe siendo irrelevante para la cuestión de lograr mayor seguridad en mis experimentos con las placas Raspi. Estoy compartiendo datos que voy encontrando y me parecen tener importancia!


----------

