Este documento presenta una introducción al lenguaje de programación C++. Comienza con una breve historia del lenguaje y su creador Bjarne Stroustrup, luego discute algunos mitos comunes sobre C++ y destaca sus características clave como su compatibilidad con C, su multiparadigma y multiplataforma. Finalmente, sugiere dónde C++ puede ser una buena opción y enlaza recursos adicionales.
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
Una breve descripcion de python, la POO y su uso en ingenieria. Esta presentacion minimiza un curso de 4 meses en una sola clase.
A brief description of python and the OOP for engineering applications, it minimized a course of python from 4 months to just one class. From Corrientes to the world
Introducción al desarrollo (y diseño) para móvilesElun
¿Cómo es el paradigma de desarrollo móvil? ¿Cómo ofrecer al usuario lo que quiere o necesita junto con la mejor experiencia posible?
Jacob Wilschrey, jefe de desarrollo en Elun, realizó una presentación introductoria sobre el desarrollo y diseño de aplicaciones móviles, qué tipos existen y qué aspectos considerar al momento de pensarlas.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
En está charla trato de mostrar cómo la tecnología produce cambios profundos en la sociedad, y qué herramientas se están usando para hacerlo posible. Temas como Internet of Things, Big Data y Cloud han llegado gracias a una tormenta perfecta de factores que los hacen posibles.
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
Una breve descripcion de python, la POO y su uso en ingenieria. Esta presentacion minimiza un curso de 4 meses en una sola clase.
A brief description of python and the OOP for engineering applications, it minimized a course of python from 4 months to just one class. From Corrientes to the world
Introducción al desarrollo (y diseño) para móvilesElun
¿Cómo es el paradigma de desarrollo móvil? ¿Cómo ofrecer al usuario lo que quiere o necesita junto con la mejor experiencia posible?
Jacob Wilschrey, jefe de desarrollo en Elun, realizó una presentación introductoria sobre el desarrollo y diseño de aplicaciones móviles, qué tipos existen y qué aspectos considerar al momento de pensarlas.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
En está charla trato de mostrar cómo la tecnología produce cambios profundos en la sociedad, y qué herramientas se están usando para hacerlo posible. Temas como Internet of Things, Big Data y Cloud han llegado gracias a una tormenta perfecta de factores que los hacen posibles.
Swift sin hype y su importancia en el 2017 Software Guru
En esta presentación platicaremos de Swift y su futuro inmediato, las mejoras y las guías de diseño que esta siguiendo. Mostraremos herramientas relacionadas para los implementen en sus proyectos además de conocer frameworks que están hechos completamente en Swift.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Swift sin hype y su importancia en el 2017 Software Guru
En esta presentación platicaremos de Swift y su futuro inmediato, las mejoras y las guías de diseño que esta siguiendo. Mostraremos herramientas relacionadas para los implementen en sus proyectos además de conocer frameworks que están hechos completamente en Swift.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
2. Índice
• De la cuna hasta hoy
• Cazando mitos
• Potencia con control
• C++ contra el mundo
• Hábitat natural, hasta debajo de las piedras
• Previsión de futuro
• Enlaces interesantes
4. Situación histórica (años 80)
Sociedad Lenguajes prog. Sist. Operativos
SUN-OS
DOS
CP/M
APPLE
COMMODORE
UNIX
procedimental juventud
FORTRAN
LISP
COBOL
BASIC
PASCAL
C
SIMULA-67
5. Nacimiento de C++
• Bjarne Stroustrup crea C++ en 1983
• Necesitaba una herramienta:
– Para crear una versión distribuida del
kernel de UNIX.
– Compatible con C.
– Para acceder directamente el
hardware.
– Portable y eficiente.
– El nombre fue todo un problema,
hasta que Rick Mascitti sugirió C++
(incremento de C).
Bjarne Stroustrup es Catedrático de
Ciencias de la Computación en la
Universidad A&M de Texas.
Trabajó a la cabeza del departamento
de Investigación en Programación de
los laboratorios Bell de AT&T, desde
su creación hasta finales de 2002.
8. Mito VS Realidad
Mito Realidad Explicación
Es difícil de aprender DEPENDE Lo básico es sencillo, el nivel de dificultad aumenta según
avanzamos.
Es difícil programar con él DEPENDE Igual que antes depende de lo que queramos hacer y de
cómo queremos hacerlo.
No se utiliza en la actualidad FALSO Preguntárselo a Google, Microsoft, la NASA y multitud de
Pymes.
No sirve para aplicaciones de alto nivel FALSO Existen multitud de herramientas e IDE’s para el desarrollo
de UI, plugins, etc.
Tienes que hacerlo todo a mano FALSO Puede que al comienzo fuera verdad, ahora existen
multitud de herramientas y librerías gratuitas listas para
usar.
Es difícil encontrar los errores DEPENDE Normalmente son sencillos, pero los errores con templates
son complicados.
Depende totalmente del compilador FALSO Utilizando los estándares no existen problemas de
compatibilidad.
Hay que controlar todo lo que se hace VERDADERO Hay que tener completo control sobre el desarrollo
realizado
El código generado es muy complejo FALSO Igual que en todos los lenguajes, depende del
programador.
Es necesario conocer C para aprender C++ FALSO No es necesario, ambos son lenguajes independientes
aunque muy relacionados.
9. Problemas reales
• Las características avanzadas del lenguaje
pueden ser complicadas de aprender y utilizar
(templates, herencia compleja, …).
• Hay que tener mucho control de los recursos
utilizados para evitar leaks, pérdida de
referencias y errores.
• El ser un lenguaje multipropósito puede hacerlo
menos indicado para algunas tareas que otros
lenguajes más focalizados.
• El desarrollo multiplataforma con utilidades
avanzadas puede ser tedioso (programación
gráfica, hilos, etc.).
• Los mensajes de error cuando hay templates por
el medio son complejos.
• Las múltiples posibilidades del lenguaje pueden
hacernos perder el rumbo y el estilo.
11. Principales características
• 100% compatible con C.
• Multiparadigma (procedimental, Orientado a
objetos y genérica).
• De propósito general.
• Estandarizado. Revisiones ISO en 1998, 2003 y
2011.
• Multiplataforma.
• Lenguaje de nivel “medio”.
• Compilado.
• Optimizado. Alta performance.
• Gran libertad al usuario para decidir qué
hacer y cómo hacerlo.
• Gran responsabilidad del usuario con lo que
hace.
15. Comparativa entre lenguajes
C++ C Java C# VisualBasic PHP
Compilado Compilado Interpretado Interpretado Interpretado Interpretado
Multiparadigma Procedimental Orientado a Objetos Orientado objetos* Orientado a eventos Multiparadigma
- - SUN Microsoft Microsoft PHP Group
Multipropósito Multipropósito Multipropósito Multipropósito Gestión Web
Multiplataforma Multiplataforma Multiplataforma Multiplataforma* Windows Multiplataforma
- - GNU GPL/Java CP Propietaria* Propietaria Licencia PHP
Tipado fuerte,
estático, inseguro y
nominativo
Tipado débil,
estático
Tipado fuerte y
estático
Tipado estático,
dinámico, fuerte,
seguro, nominal
Tipado fuerte y
estático
Tipado dinámico
Tipos de datos:
• Fuerte: Una variable de un tipo no se puede utilizar cómo si fuera de otro tipo sin hacer una conversión previa.
• Dinámico: El tipo de dato se decide en tiempo de ejecución.
• Inseguro: Uso de tipos de datos puntero.
• Nominativo: La comparación entre variables se realiza teniendo en cuenta el tipo de las mismas.
18. Donde plantearnos el uso de C++
• Desarrollos donde el rendimiento es
importante o crítico.
• Desarrollos científicos en general.
• Desarrollos donde deberos comunicarnos
con el hardware.
• En programación de sistemas.
• Desarrollos de gestión con alta carga de
trabajo e información.
• Desarrollos multiplataforma.
• Librerías y funcionalidad a compartir
entre diversos proyectos y arquitecturas.
• En el aprendizaje de metodología y
programación.
21. El futuro de C++: C++0x
• Reemplaza a la anterior versión del 2003.
• Aprobada en Agosto de 2011.
• La versión definitiva se lleva puliendo desde 2008.
• Principales novedades:
– Incremento del rendimiento y facilitar el trabajo directo con hardware.
– Mejora en el manejo de rvalues.
– Operadores lambda (similares a c#).
– Enumeraciones fuertemente tipadas.
– Mejoras en plantillas.
– STL se completa con utilidades de programación interprocesos.
22. Enlaces de interés
Cultura básica:
• http://es.wikipedia.org/wiki/Bjarne_Stroustrup
• http://es.wikipedia.org/wiki/C%2B%2B
• http://www.dosideas.com/noticias/actualidad/109-entrevista-a-bjarne-stroustrup-creador-de-c.html
• http://codigomaldito.blogspot.com/2004/12/entrevista-bjarne-stroustrup-creador.html
Bibliografía:
• http://www.amazon.co.uk/Lenguaje-programaci%C3%B3n-c-Bjarne-
Stroustrup/dp/847829046X/ref=sr_1_fkmr2_3?ie=UTF8&qid=1321891075&sr=8-3-
fkmr2http://es.wikipedia.org/wiki/C%2B%2B
• http://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/Cpp/basico/cppbasico.pdf
• http://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/Cpp/avanzado/cppavan.pdf