¿Que tenemos que saber sobre LabVIEW?
Como director de producto de LabVIEW, me hacen esta pregunta muchas veces.
Honestamente, no es la pregunta adecuada. Se convierte en una cuestión válida añadiendo un pequeño matiz y el contexto de la aplicación (por ejemplo, “¿Qué es lo mejor para esta tarea que tiene estas limitaciones?”). Sin este detalle, es como preguntar por qué es mejor el pan que la harina.
Si se quiere crear un sistema de medida o de control, entonces el software de diseño de sistemas NI LabVIEW es una herramienta con la que se puede ahorrar los riesgos, gastos e inconvenientes de crear un sistema mediante lenguajes de bajo nivel como C.
No estoy sugiriendo que LabVIEW sea un lenguaje de programación “mejor” que C – especialmente teniendo en cuenta que grandes porciones de LabVIEW se escriben no sólo en G sino también en C y C++. Más bien, quiero decir que tienen puntos fuertes diferentes que los programadores deben entender para poder tener éxito.
La relación entre LabVIEW y C es similar al pan y a la harina. Si se desea hacer un sándwich, debería usar el pan directamente. Si se quiere hornear un bizcocho, debería usar la harina para poder cocinarlo. Hornear harina para hacer pan desde el principio puede ser costoso y consume mucho tiempo (sobre todo si lo que desea es una comida rápida), pero cuando se trata de un bizcocho, la harina es esencial.
Del mismo modo, puede que resulte difícil decidir qué lenguaje de programación es mejor para una tarea. Todo se reduce a la utilización de la herramienta correcta para el trabajo correcto.
C proporciona control a bajo nivel
C es a menudo mejor para aplicaciones con recursos ajustados que requieren ser gestionados cuidadosamente. Puesto que C es un lenguaje de relativamente bajo nivel, obliga a considerar y especificar hasta los más pequeños detalles, como las asignaciones de memoria y subprocesos.
Un buen programador puede utilizar este control a bajo nivel para eliminar la sobrecarga en la mayoría de las implementaciones de nivel superior. A este nivel, se puede aprovechar también la arquitectura del destino de ejecución o las características del sistema operativo del host para lograr un mayor rendimiento.
Por este motivo, los programadores de NI escribieron la mayor parte de las librerías de LabVIEW en C o C++. Las operaciones como las E/S y el análisis de archivos son tan rápidas en LabVIEW como en C, ya que están escritos en lenguajes de bajo nivel y optimizados para cada una de las plataformas y sistemas operativos que soporta LabVIEW.
Eficiencia versus control
En determinados momentos, la eficiencia del desarrollador es mejor que un código optimizado a mano. Renunciar a un poco de control y confiar en desarrolladores que han resuelto problemas similares puede beneficiar a muchos proyectos en términos de productividad. Los lenguajes de programación están constantemente progresando hacia niveles más altos de abstracción. Esto ayuda a centrarse en el problema en cuestión en lugar de hacerlo en los pequeños detalles.
LabVIEW: Para la ejecución en paralelo y E/S del mundo real
No importa cuál sea el lenguaje de implementación, la división entre el diseño de sistemas de alto nivel y la implementación a bajo nivel resultan inevitables.
En las aplicaciones de medida y control, la programación es sólo una tarea de un diseñador del sistema. Los ingenieros a menudo no tienen tiempo para mantenerse al día o reescribir el viejo software para que soporte los avances en computación, hardware de medida, los sistemas operativos, etc. El valor añadido de un ingeniero consiste en encontrar la mejor manera de adquirir, manipular y presentar los datos del mundo real -no en inventarse nuevas maneras de gestionar las asignaciones de memoria y grupos de subprocesos. ConLabVIEW, se puede construir la aplicación final usando librerías de bajo nivel de NI ya probadas, soportadas y mantenidas.
Elegir C significa que se necesitará implementar, soportar y mantener las propias librerías de nivel inferior o comprarlas a un proveedor (NI ofrece el software NI LabWindows ™/CVI y NI Measurement Studio para este caso de utilización).
Un consejo de sintaxis, C está optimizado para una ejecución secuencial de instrucciones tan rápida como la CPU pueda manejar. Esto es perfecto para el cálculo puro, cuando se ejecuta sólo una tarea y las instrucciones son más básicas. Por el contrario, la sintaxis gráfica de LabVIEW está optimizada para la ejecución paralela de tareas temporizadas.
LabVIEW le permite saltarse la creación de los fundamentos e ir directamente a la personalización.
LabVIEW es algo más que un lenguaje de programación y librerías asociadas. Cuando se utiliza el entorno de desarrollo integrado (IDE) de LabVIEW con hardware de NI o de terceras partes, se obtiene una experiencia de desarrollo que es mayor que la suma de sus partes. El software es consciente de los recursos de hardware disponibles y puede presentar los canales de E/S disponibles y el hardware de ejecución como menús desplegables y elementos de proyecto. Se pueden prevenir o detectar las configuraciones incorrectas durante la edición, evitando los costosos y difíciles errores de depurar durante la ejecución – La siguiente generación de hardware de medida (como el transceptor vectorial de señales NI PXI-5644R) permite incluso que LabVIEW redefina el firmware del hardware para alcanzar los niveles de prestaciones que los diversos lenguajes de programación e instrumentos tradicionales no pueden.
Demasiados proyectos se terminan tarde o sobrepasan el presupuesto asignado porque la gente subestima los esfuerzos necesarios para unir las partes provenientes de orígenes dispares. Al utilizar LabVIEW, los controladores del hardware devuelven los datos en el mismo formato que las librerías de análisis consumen, los widgets de interfaz de usuario muestran los datos técnicos en el mismo formato que las librerías de análisis los producen, eliminando la necesidad de ensamblar los diferentes componentes.
Entonces, ¿que es mejor: LabVIEW o C?
La respuesta bien podría ser “depende.” Dependerá del problema que se está tratando de resolver. LabVIEW y C son herramientas útiles que, en las manos de usuarios capacitados, pueden resolver casi cualquier problema: LabVIEW tiende a ser mejor para las aplicaciones de alto nivel de pruebas, medidas y control, y C es más apto para las implementaciones a bajo nivel de tareas con cálculos intensivos. La próxima vez que alguien le pregunte si LabVIEW triunfa sobre C, no dude en responder “depende”. Puede que sea la única respuesta que conseguirá que el debate vaya en la dirección correcta.