Investigacion

14
1. Mi nombre es brayan lewis muñoz rivas nacido en turbo el 28 noviembre de 1995 bachiller técnico en sistemas en el año 2011 actualmente vivo en turbo Antioquia , inscrito en ingeniería en sistema de la unad en el cead turbo a la edad de 18 años tome la decisión de presentarme a la armada nacional y preste mi servicio militar en la ciudad de Bogota como parte de la primera banda de la armada nacional en Colombia conformada por infantes de marina, una vez culminado el servicio militar continúe en mi realización profesional con los estudios de ing en sistemas. La evolución histórica de los lenguajes de programacion Charle babbage 1791-1871 creo y diseño la primera máquina programable ya que antes existían varios lenguajes pero no una programable como tal aunque la creo y fue el por asi decirlo el que abrió paso a este mundo denominado programación fue ese hombre aunque no pudo hacer la maquina como tal por los atrasos en cuanto a la tecnología de ese entonces ya que contaban con un par de ruedas y tuercas y no lo suficiente para crear lo que se necesitaba, se intentó pero fue un fracaso, luego de esto y con base a Babbage aparece ada lovalace (1815-1852) quien fue la primera programadora diseño y creo el primer algoritmo para la máquina de Babbage en algoritmo teórico y se llevó el titulo como primera programadora, luego de esto aparece grace Murray hopper 1906-1992 esta mujer creo el primer compilador (a0) para el UNIVAC 1 en el año 1951 aun que para esta fecha ya existían ordenadores programables en código maquina el cual todos conocemos que es una lista de códigos en 0-1 y esta mujer fue la que popularizo la idea de lenguajes independientes de la maquina antes de ella si programabas en un modelo todos los programas solo funcionaban para este modelo, de paso de tiempo un poquito atrás donde salió la palabra Bug bueno ps este sucedió en la markll en el año 1947 cuando se encontró en una de las válvulas para ser precisos en las #70 y de este fue que se tildo por bug a los errores ….. Continuando con la historia con los LP veamos los ordenadores para conocer la evolución de estos ya que de estos prima de la misma manera los LP (lenguajes de programación) 1943 tenemos al colossus mark 1-2-3 este fue el primer ordenador programable antes no habían ordenadores este fue el primero y se construyó con el fin de uso militar guerra y etc

Transcript of Investigacion

Page 1: Investigacion

1. Mi nombre es brayan lewis muñoz rivas nacido en turbo el 28 noviembre de 1995 bachiller técnico en sistemas en el año 2011 actualmente vivo en turbo Antioquia , inscrito en ingeniería en sistema de la unad en el cead turbo a la edad de 18 años tome la decisión de presentarme a la armada nacional y preste mi servicio militar en la ciudad de Bogota como parte de la primera banda de la armada nacional en Colombia conformada por infantes de marina, una vez culminado el servicio militar continúe en mi realización profesional con los estudios de ing en sistemas.

La evolución histórica de los lenguajes de programacionCharle babbage 1791-1871 creo y diseño la primera máquina programable ya que antes existían varios lenguajes pero no una programable como tal aunque la creo y fue el por asi decirlo el que abrió paso a este mundo denominado programación fue ese hombre aunque no pudo hacer la maquina como tal por los atrasos en cuanto a la tecnología de ese entonces ya que contaban con un par de ruedas y tuercas y no lo suficiente para crear lo que se necesitaba, se intentó pero fue un fracaso, luego de esto y con base a Babbage aparece ada lovalace (1815-1852) quien fue la primera programadora diseño y creo el primer algoritmo para la máquina de Babbage en algoritmo teórico y se llevó el titulo como primera programadora, luego de esto aparece grace Murray hopper 1906-1992 esta mujer creo el primer compilador (a0) para el UNIVAC 1 en el año 1951 aun que para esta fecha ya existían ordenadores programables en código maquina el cual todos conocemos que es una lista de códigos en 0-1 y esta mujer fue la que popularizo la idea de lenguajes independientes de la maquina antes de ella si programabas en un modelo todos los programas solo funcionaban para este modelo, de paso de tiempo un poquito atrás donde salió la palabra Bug bueno ps este sucedió en la markll en el año 1947 cuando se encontró en una de las válvulas para ser precisos en las #70 y de este fue que se tildo por bug a los errores …..

Continuando con la historia con los LP veamos los ordenadores para conocer la evolución de estos ya que de estos prima de la misma manera los LP (lenguajes de programación)

1943 tenemos al colossus mark 1-2-3 este fue el primer ordenador programable antes no habían ordenadores este fue el primero y se construyó con el fin de uso militar guerra y etc

1946 ENIAD o el primer turing Completo se le denomina por este nombre porque tiene el poder computacional equivalente a la maquina universal de Turing esto es una extracción o idea de un matemático que significa que puede calcular cualquier algoritmo si pose:

-si tuviese memoria infinita

-si tuviese almacenamiento infinito

Y de esto es donde se le abrió paso a los ordenadores programables (arquitectura de Von Neumann)

1960 Circuito integrado el cual da un gran avance ya que remplazarían las funciones de los tubos de vacío

Page 2: Investigacion

1971 Microprocesador con la aparición de estos se aumentó en gran cantidad el procesamiento de la información y encamino y doto la inteligencia a objetos animados y así mismo a la computadora.

1981 IBM PC fue el primer pc tal y como es ahora y salió en el 81 para personas aún que ya existían otros ordenadores de IBM pero no personales como este.

Ahora hablando un poco de los Lenguajes ‘’Padre’’ de la idea de que tenían que tener lenguajes independientes de hoppe se empezaron a crear lenguajes independientes como

Foltran (1957) →Algol, BasicAlgol (1958) → Pascal, Modula 2, Simula

Lisp (1958) → clojure, Scheme

Cobol (1959)

Simula (1962.67)→ Smalltalk, c++

CPl (1963)→ c,c++,Java,C#,ObjectiveC como podemos ver estos lenguajes de programación son de los primeros existentes y del CPL es que derivan estos Lenguajes tan complejos hoy dia

En los años 70`s nace la segunda Generación de los lenguajes y vemos a:

Pascal (1970) muy académico y formal muy usado en algunas universidades C (1972) un lenguaje de medio nivel Prolog (1972) es algo lógico ML (1973) es funcional Scheme (1975) funcional SQL (1978) diseñado a base de datos

En los 80`s son los lenguajes imperativos en los que se mejoran y combinan los paradigmas inventados en las décadas de los 60-70

C++(1980) en este lenguaje bueno toma cosas de otros lenguajes y añade mejoras

Matlab (1984) se basa en operaciones altamente matemáticas graficos etc es un lenguaje propiamente matemático

Eiffel(1985) es de diseñ por contratos y etc Erlang (1986) orientado a concurrencia y etc etc Perl (1987)

En los años de 90’s es donde aparecen los auge funcional como lo son

Haskell (1990) Python (1991) Ruby(1993) CLOS (1994) Java (1995) importantes aunque no son funcionales

Page 3: Investigacion

JavaScript (1995) C# (2000)

Evolución de la actualidad de hace solo pocos años aparecen los paradigmas, meta programación, programación distribuida y son los más relevantes de la época

F# (2002) Groovy, Scala (2003) Clojure (2007) Dart (2011) Swift (2014)

Los lenguajes actuales no se pueden decir así mismo si son funcionales o imperativos ya que son una mezcla de paradigmas y eso.

2) Ahora bien Hablemos un poco de la diferencia que ay en 5 lenguajes de programación

Como lo son c,c++,c#,php,Java,javascript

1. Java 

Java es considerado como el lenguaje perfecto para los desarrolladores y programadores, por facilidad de aprendizaje y por ser genérico y por tanto, poder ser usado casi para cualquier tipo de aplicación.. Actualmente es el lenguaje de programación de alto nivel mas usado al permitir desarrollos para la plataforma Android. Java puede ser utilizado para la creación de aplicaciones de escritorio, para aplicaciones de dispositivos móviles y tablet Android y para aplicaciones Web. 

2.  PHP 

Es un lenguaje de programación muy conocido ya que se usa prácticamente en todas las aplicaciones de código abierto y libre. Con PHP se puede implementar una aplicación web muy rápidamente y con muy poco esfuerzo. Sistemas como WordPress, joomla, moodle, están desarrollados con PHP. El único problema es que es un lenguaje exclusivo para el desarrollo de aplicaciones Web. 

3. JavaScript 

JavaScript es extremadamente funcional, este lenguaje se usa fundamentalmente en la generación de la comunicación con las interfaces de sitios web. Se puede utilizar también en la creación de Frameworks de estilo para interfaz de usuario. Cuando usted está en el desarrollo web, es muy importante conocer JavaScript para permitir que sus páginas sean interactivas. JavaScript es aplicado para la inclusión de animaciones en las páginas web,

Page 4: Investigacion

cargar imágenes, scripts u objetos en la página web, y en general en la mejora de interfaces de usuario. 

4.  C, C ++ y C # 

El lenguaje C y sus variantes son los lenguajes de programación por excelencia. De los citados en esta listas es el más antiguo y sirve como base a otros (ejemplo es la base de Java). Es un lenguaje genérico que permite realizar aplicaciones para distintos usos. 

C ++ es la evolución de C con la inclusión de POO, y se utilizan muchísimo en la creación de juegos y la programación de interfaces para dispositivos hardware. 

Otra evolución propia de Microsoft es el lenguaje C #. Un lenguaje con la misma sintaxis que sus predecesores que forma parte del paquete .NET. 

El tipo long: en C#, el tipo de datos longtiene 64 bits, mientras que en C++ tiene 32 bits.

La instrucción switch: a diferencia de la instrucción switch de C++, C# no admite el paso explícito de una etiqueta de caso a otra.Las directivas de preprocesador se utilizan para la compilación condicional. En C# no se utilizan archivos de encabezado.

Operadores de C#: en C# no se incluyen operadores adicionales como is y typeof. También presenta una funcionalidad diferente en algunos operadores lógicos.

C# admite punteros, pero sólo en modo no seguro (unsafe).La sobrecarga de operadores se realiza de forma diferente en C#.Cadenas: las cadenas (tipo string) de C# son diferentes de las cadenas de C++No existen métodos o variables globales en C#: los métodos y las variables deben residir dentro de una declaración de tipo (class o struct).Destructores: en C#, no se tiene control sobre cuándo se llama a los destructores, ya que es el recolector de elementos no utilizados el que se encarga de llamarlos automáticamente.

Constructores: de forma similar a lo que ocurre en C++, si no se proporciona un constructor de clase en C#, se genera automáticamente un constructor predeterminado. El constructor predeterminado inicializa todos los campos de la estructura con sus valores predeterminados.

En C#, los parámetros de los métodos no pueden tener valores predeterminados. Utilice sobrecargas de métodos para obtener ese efecto.

Como ya eh dicho anteriormente estos son 5 lenguajes de programación bastante conocidos en el campo de la programación y cada uno de estos va enfocado a una interfaz distinta ya que cada uno va enfocado a algo en especifico como en el caso de PHP el cual es propiamente un lenguaje en el cual implementamos aplicaciones web o mas bien esta enfocado solo a el desarrollo de aplicaciones web ahora hablando un poco de lo que es Java y Javascript estos dos aunque su nombre

Page 5: Investigacion

es similar son distintos ya que Java es un lenguaje de programación basado en clases para definir la funcionalidad y posibles valores de los estados de los objetos, en cambio JavaScript este se centra específicamente en definir objetos y especificar su funcionalidad y estado Ad-hoc para cada objeto y aunque estoy hablando de la diferencia porque no mencionar una semejanza de estos 2 ya que soportan características básicas de la OOP( herencia polimosfirmo) ahora continuando con java y javaScrip tenemos

JavaScript es un lenguaje interpretado, y Java es compilado. Los programas JavaScript son archivos de texto que pueden leer tanto los ordenadores como las personas, mientras que los de Java se compilan a un archivo especial optimizado para que lo lea un ordenador y lo ejecute.Java se depura en dos fases y JavaScript en una. Como con todos los lenguajes interpretados, en JavaScript solamente sabes si has cometido un error de sintaxis cuando vas a ejecutar el programa. En Java sin embargo, primero se realiza la fase de compilación, en la que el compilador ya indica los posibles errores de sintaxis que existan.

JavaScript tiene clausuras, Java las acaba de incorporar. Uno de los conceptos más importantes en la programación con JavaScript (y en otros lenguajes) son las clausuras. Java no las tuvo hasta la versión 8 aparecida hace poco tiempo

Las diferencias entre C, C++ y C# limitan los campos de aplicación

de cada uno de estos lenguajes de programación. De por sí, el nivel

de abstracción de los dos primeros permite un acceso a las capas más

bajas de nuestra máquina que, a los ojos de C#, serían casi

imposibles de ver. Por otra parte, el costo de este nivel de abstracción

se ve reflejado en los tiempos de desarrollo y curva de aprendizaje.

El Lenguaje CC es un lenguaje de programación con más de 40 años al día de la

fecha. Si bien se lo cataloga como un lenguaje de medio nivel tiene

muchas características de bajo nivel de programación. Es decir, la

brecha entre el código que escribimos en C y el hardware que

manipulamos es muy reducida, lo cuál nos hace posible mejorar la

performance de nuestras aplicaciones para que corran mucho

más rápidamente a lo que lo harían si hubiesen sido escritas en

Page 6: Investigacion

cualquier otro lenguaje de programación.

La principal causa de esta mejora de rendimiento es el acceso que

tiene a la memoria de nuestro sistema y a sus dispositivos periféricos.

Justamente, gracias al bajo nivel con el que se maneja y al acceso a

dispositivos periféricos con el que cuenta, es utilizado para

desarrollardrivers para distintos dispositivos de hardware.

Otra de las principales aplicaciones del lenguaje C es en el desarrollo

de software a nivel del kernel. Es decir, C es un lenguaje orientado a

la implementación de sistemas operativos ya que fue creado a la par

de Unix. Es el lenguaje más popular para crear software de sistema, si

bien también es utilizado en sistemas embebidos dado a la facilidad

que existe para crear compiladores para este lenguaje.

Una de las preguntas que más se hacen a la hora de hablar de

lenguajes es si son o no de código abierto:

o ¿Es C open source?

Un lenguaje es simplemente un estándar que establece las

especificaciones de cómo el mismo debería funcionar. C es un

lenguaje,  es responsabilidad del fabricante del compiladordecidir

como implementar el lenguaje en un sistema en particular.

Por ejemplo, un compilador muy popular de C y C+

+ es MinGW. MinGW es, en la actualidad, un entorno de desarrollo

gratuito y de código abierto implementado por MinGW Project para el

sistema operativo Microsoft Windows. Por otro lado tenemos

Page 7: Investigacion

compiladores como Visual C++(actualmente parte del entorno de

desarrollo Visual Studio) que contienen una licencia EULA, lo cuál lo

vuelve de tipo propietario o no libre. El mismo es fabricado

por Microsoft y requiere permiso expreso del titular del software para

ser redistribuído.

El Lenguaje C++ (C Plus Plus)

C, C++ y C#

Todo el código escrito en C es válido también en C++ ya que este

último es una extensión del primero. Es decir, C es un lenguaje

estructurado basado en un paradigma procedural y C++extiende las

características de este paradigma añadiendo la posibilidad de

manipular objetos (paradigma de programación orientada a

objetos). C++ es considerado hoy en día un lenguaje de programación

Page 8: Investigacion

multiparadigma.

C++ cuenta además con muchas más librerías que C para distintos

tipos de aplicaciones. Es principalmente utilizado para desarrollar

aplicaciones donde la gestión de memoria necesita ser ajustada al

máximo.

Los compiladores más populares de C++ son G++, Intel C++

Compiler, XCode y MinGW, como mencionamos anteriormente.

Luego tenemos entornos de desarrollo (IDE’s) para distintos sistemas

operativos, por ejemplo Visual C++ para Microsoft

Windows y CodeLite tanto paraMacOS, Windows y GNU/Linux.

El Lenguaje C# (C Sharp)C# (pronunciado “si-sharp”) cuenta con un alto nivel de abstracción en

comparación con los dos anteriores. Al ser un lenguaje de

programación de alto nivel mejora los tiempos de desarrollo de

aplicaciones pero hace mucho más dificil el acceso a las capas más

bajas de nuestra máquina, lo cuál puede ser una complicación al

momento de crear soluciones especializadas donde se requiera

mejorar el rendimiento de nuestras aplicaciones.

Este lenguaje fue desarrollado con la intención de que fuese sencillo,

moderno, de propósitos generales y orientado a objetos. Las ventajas

de C# es que cuenta con una sintaxis menos proclibe a generar

errores y tiene una curva de aprendizaje más corta en comparación

Page 9: Investigacion

con C yC++. Es utilizado principalmente para realizar aplicaciones

para el cliente y cualquier otro tipo de aplicación que requiera los

beneficios del framework .NET y necesite ser desarrollada de forma

ágil.

C#, desarrollado por Microsoft, es un incremento de C++. Es por esto

que el símbolo del lenguaje implica la superposición de cuatro signos

de suma, haciendo referencia a que C# esC++++.

El compilador de C# propio de Microsoft es el Microsoft Visual C# y,

si bien está gratuitamente disponible a través del Visual Studio

Express o el .NET Framework SDK, no es open source. De todas

maneras, existen compiladores open source disponibles para ser

utilizados en sistemas ajenos a Microsoft, como son los

proyectos Mono y DotGNU.

3) http://www.muycomputerpro.com/2015/04/13/lenguaje-programacion-2015

http://www.um.es/docencia/barzana/DIVULGACION/INFORMATICA/tendprog.html

4) bueno en este tema amplio se hace referencia a que no ay lenguaje de programación malo como tal si no que cada uno se enfoca a determinadas tareas la comparación y constante disputa por el java y el php y decir que php es malo solo porq te deja hacer ciertas cosas que en java no se hace y el del porque java es de compilación y codificación y etc genera discusión por los desarrolladores de estos dos grandes leguajes , ahora una buena pracica de programación es el constante estudio de este y la indagación y practica la motivación correcta al ser un desarrollador y programador como tal debido a que el mundo de la informática avanza de tal manera que cambia diariamente los estándares normales de programación las cosas que se hacen hoy en el 2017 o 18 ya serán distintas ya sea en la manera de realizar las operaciones o la posibilidad de nuevos modelos de programación y diferentes cambios constantes que se realizan en este mundo el cual nos exige como ingenieros el constante estudio ,asi como los médicos estudian para recordar y mantener en mente

Page 10: Investigacion

lo mas posible todo, los ingenieros en sistema como tal nos toca hacerlo diariamente ya que dia a dia tenemos nuevas tendencias que hacen que muchas de las que creemos están en su mejor momento queden atrás debido a que otra tiene mejores complementos o esta mucho mas compleja en distintos puntos de vista, es como decir oh no se programar pero no le dedicamos el tiempo que requiere para realizar prácticas el conocer distintos lenguajes de programación hace que nos enriquezcamos en este mundo amplio, el conocer lenguajes que tengan cierta similitud pasiva entre ellos nos permite usarlos de la mejor manera para desarrollo de proyectos y aportar dia a dia a nuevas ideas no solo sentarse a codificar cumplir un horario y luego hasta ay llego todo no se trata de indagar y profundizar en este arte…

Ahora una lista de buenas pracicas serían estas

http://wiki.inf.utfsm.cl/index.php?title=Buenas_Practicas_de_Programaci%C3%B3n

5) C# es un lenguaje de programación simple pero eficaz, diseñado para escribir aplicaciones empresariales.El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las características de C++ en las áreas de instrucciones, expresiones y operadores.C# presenta considerables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones, eventos y recolección de elementos no utilizados (liberación de memoria).C# proporciona acceso a los tipos de API más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros para manipular memoria que no se encuentra bajo el control del recolector de elementos no utilizados.

Los programas en C# pueden constar de uno o varios archivos. Cada archivo puede contener uno o varios espacios de nombres. Un espacio de nombres puede contener tipos como clases, estructuras, interfaces, enumeraciones y delegados, además de otros espacios de nombres. A continuación, se muestra el esqueleto de un programa en C# que contiene todos estos elementos.

// A skeleton of a C# program using System;namespace MyNamespace1 { class MyClass1 { } struct MyStruct { } interface IMyInterface { } delegate int MyDelegate(); enum MyEnum { }

Page 11: Investigacion

namespace MyNamespace2 { } class MyClass2 { public static void Main(string[] args) { } }}

Porque utilizarloC# es un lenguaje orientado a objetos simple, elegante y con seguridad en el tratamiento de tipos, que permite a los programadores de aplicaciones empresariales crear una gran variedad de aplicaciones.C# también proporciona la capacidad de generar componentes de sistema duraderos en virtud de las siguientes características:

Total compatibilidad entre COM y plataforma para integración de código existente.

Gran robustez, gracias a la recolección de elementos no utilizados (liberación de memoria) y a la seguridad en el tratamiento de tipos.

Seguridad implementada por medio de mecanismos de confianza intrínsecos del código.

Plena compatibilidad con conceptos de metadatos extensibles.

Además, es posible interaccionar con otros lenguajes, entre plataformas distintas, y con datos heredados, en virtud de las siguientes características:

Plena interoperabilidad por medio de los servicios de COM+ 1.0 y .NET Framework con un acceso limitado basado en bibliotecas.

Compatibilidad con XML para interacción con componentes basados en tecnología Web.

Capacidad de control de versiones para facilitar la administración y la implementación.