1.- Indique las diferencias entre Lenguaje de Programación Interpretado y Lenguaje de Programación Compilado.
- Partiendo de la Definición de ambos lenguajes donde el lenguaje compilado es aquel lenguaje de alto nivel que tradicionalmente se implementa mediante un compilador, traduciendo el codigo a lenguaje maquina para una ejecución rápida, por el contrario el lenguaje interpretado es aquel que las instrucciones se traducen o interpretan una a una siendo 10 veces mas lentos que los programas ya compilados.
En teoría, cualquier lenguaje puede ser interpretado y también compilado; la diferencia entre
ellos es solamente una cuestión de práctica y conveniencia, y no por
propiedades del lenguaje; de hecho, muchos lenguajes son implementados tanto
por compiladores como por interpretes. Es por esto que podemos construir un cuadro de diferencias de ambos lenguajes:
LENGUAJE COMPILADO
|
LENGUAJE INTERPRETADO
|
- El Lenguaje se encuentra ya en una especie de código que la maquina ya conoce y puede desde allí llevar a cabo las instrucciones inmersas en el.
- Pasó por un archivo que termina en código binario
- Se usó un programa o varios para traducir el código fuente a
código máquina.
|
- Esta en un lenguaje diferente
- Cada instrucción debe ser llevada a traducción a un código que la maquina conozca.
- En ningún momento se guarda la traducción, se repite cada vez que se ejecuta el programa.
- Se usa un programa para traducirlo a código máquina cuando
se ejecuta ese código fuente.
|
2.- Defina "Software Libre" Indique sus 4 Libertades.
El Software Libre se define desde la pagina de GNU como el software que respeta la libertad de los usuarios y su comunidad, es decir los usuarios tienen la potestad de manejar (ejecutar, copiar, distribuir, estudiar, modificar y mejorar). Es el software q se define como Libre haciendo referencia a la Libertad de Expresión y no de precio. Un Software Libre debe responder y basarse a estas 4 libertades:
Libertades
- Ejecutarlo con cualquier propósito
- Estudiar como funciona y adaptarlo a sus necesidades
- Distribuir copias
- Mejorarlo, y liberar esas mejoras al publico
3.- Defina Software Abierto o Open Source.
Software abierto es una ramificación del movimiento de software libre cuyo código fuente y derechos frecuentemente son exclusivos por los que manejan los derechos de autor forman parte del dominio publico bajo la licencia de software de Open source. surgió a través de una campaña de mercadotecnia de Software libre, sin embargo llega a perder el enfoque "Libre" y se posiciona como estrategia de fomento
de la programación libre una orientación pragmática que otorga importancia
fundamental a la disponibilidad del código fuente de los programas y olvida el
resto de libertades y aspectos morales y éticos.
Los precursores de este movimiento "Open source" tuvieron la motivación principal de que los planteamientos éticos del software libre podrían resultar incomodos como el tema de la
libertad, hablar de responsabilidades y de conveniencia, es inducir a las
personas a que se cuestionen cosas que quizá prefieran ignorar.
Se creo una lista de 10 condiciones que debe cumplir una licencia para considerarse sofware abierto según la Debian Free Software Guidelines o Directrices de Software Libre de Debian.
-Condición 1. Libre redistribución: el software
debe poder ser regalado o vendido libremente.
-
Condición 2. Código fuente: el código fuente debe estar incluido u obtenerse
libremente.
-
Condición 3. Trabajos derivados: la redistribución de modificaciones debe estar
permitida.
-
Condición 4. Integridad del código fuente del autor: las licencias pueden
requerir que las modificaciones sean redistribuidas sólo como parches.
- Condición
5. Sin discriminación de personas o grupos: nadie puede dejarse fuera.
-
Condición 6. Sin discriminación de áreas de iniciativa: los usuarios
comerciales no pueden ser excluidos.
-
Condición 7. Distribución de la licencia: de deben aplicarse los mismos
derechos a todo el que reciba el programa
-
Condición 8. La licencia no debe ser específica de un producto: el
programa no puede licenciar licenciarse solo como parte de una distribución
mayor.
-
Condición 9. La licencia no debe restringir otro software: la licencia no puede
obligar a que algún otro software que sea distribuido con el software
abierto deba también ser de código abierto.
-
Condición 10. La licencia debe ser tecnológicamente neutral: no debe
requerirse la aceptación de la licencia por medio de un acceso por clic de
ratón o de otra forma específica del medio de soporte del software.
Entonces podemos concluir que el "Software Abierto" es la expresión con la que se conoce al software distribuido y desarrollado libremente. Se focaliza más en los beneficios prácticos (acceso al código fuente) que en cuestiones éticas o de libertad que tanto se destacan en el software libre.
4.-Diferencias Software Libre y Abierto (Ejemplos).
Software Libre
|
Software Abierto
|
- Se basa en 4 Libertades.
- Manejan la Libertad como principio fundamental.
- Devolver la libertad al usuario y permitirle evitar ser dependiente de las empresas creadoras de software sin por ello tener que dejar de usar software de calidad.
- Tiene tendencias filosóficas e incluso morales.
- Es una filosofia
|
- Tiene 10 condiciones que cumplir
- No implican libertad, solo disponibilidad de acceso al código fuente.
- Sus fines buscan lograr que el mundo empresarial se interese por los programas libres, en lugar de las soluciones privativas
- Se enfoca no tanto en lo ético del software, sino en el proceso de desarrollo del software.
- Es un modelo de Desarrollo
|
Ejemplos Software Libre
- Sistema Operativo LINUX
- Open Office
- NotePad ++
- eMule
- Shareaza
- FileZilla
- phpMyAdmin
- Apache
- Tom Cat
- Eraser
Ejemplos Software Abierto:
- Ubuntu
- Debian
- Android
- Open Officce
- Libre Officeñ
- firefox
- Clanwin
5.-¿Qué es el Modelo Vista Controlador?
Se basa en la separación de la
aplicación en tres capas principales: Modelo, Vista y Controlador. es un patrón de arquitectura donde, tenemos la encapsulación de los datos, la interfaz o vista por otro y por último la lógica interna o controlador.
Modelo
Contiene el núcleo de la funcionalidad (dominio) de la aplicación.
Encapsula el estado de la aplicación.
No sabe nada / independiente del Controlador y la Vista.
Vista
Es la presentación del Modelo.
Puede acceder al Modelo pero nunca cambiar su estado.
Puede ser notificada cuando hay un cambio de estado en el Modelo.
Controlador
Reacciona a la petición del Cliente, ejecutando la acción adecuada y creando el modelo pertinente
6.- ¿Qué es PHP?
PHP es un lenguaje de codigo abierto para paginas web y que puede ser insertado en HTML, es decir, en vez d eusar largos comandos en HTML las paginas de PHP manejan HTML con codigos incrustados que hacen "algo". Incrustado en HTML significa que en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas.
PHP se utiliza mas que todo en codigos del lado del servidor y fue diseñado para desarrollo web d econtenido dinamico.
PHP se procesa en servidores que son potentes ordenadores con un software y hardware especial.
El Esquema es: Petición de página web al servidor --> El servidor recibe la petición, reúne la información necesaria consultando a bases de datos o a otras páginas webs, otros servidores, etc --> El servidor responde enviando una página web “normal” (estática) pero cuya creación ha sido dinámica (realizando procesos de modo que la página web devuelta no siempre es igual).
Es bastante simple y amigable para principiantes sin embargo manea tambien opciones avanzadas para programadores mas avanzados y profesionales.
7.- ¿Que es Apache?
Un servidor HTTP de codigo abierto, actualmente es el servidor web mas usado en el mundo ya que destaca por ser robusto, seguro y de buen rendimiento. Apache se encarga de recibir las peticiones de paginas que provienen de los visitantes que acceden a nuestr sitio web y gestiona su entrega o denegacion.
Apache permite conrfigurar un hosting virtual que permite tener varios sitios web en un mismo equipo, o establecer niveles de control de acceso incluyendo soporte a la informacion.
Las Ventajas de apache son:
- Modular
- Código abierto
- Multi-plataforma
- Extensible
- Popular (fácil conseguir ayuda/soporte)
8.- ¿Qué es MySQL ?
MySQL es el servidor de bases de datos relacionales más popular, desarrollado y proporcionado por MySQL AB. MySQL AB es una empresa cuyo negocio consiste en proporcionar servicios en torno al servidor de bases de datos MySQL.
MySQL es un sistema de administración de bases de datos
Una base de datos es una colección estructurada de datos. Los información que puede almacenar una base de datos puede ser tan simple como la de una agenda, un contador, o un libro de visitas, ó tan vasta como la de una tienda en línea, un sistema de noticias, un portal, o la información generada en una red corporativa. Para agregar, accesar, y procesar los datos almacenados en una base de datos, se necesita un sistema de administración de bases de datos, tal como MySQL.
MySQL es un sistema de administración de bases de datos relacionalesUna base de datos relacional almacena los datos en tablas separadas en lugar de poner todos los datos en un solo lugar. Esto agrega velocidad y flexibilidad. Las tablas son enlazadas al definir relaciones que hacen posible combinar datos de varias tablas cuando se necesitan consultar datos. La parte SQL de "MySQL" significa "Lenguaje Estructurado de Consulta", y es el lenguaje más usado y estandardizado para accesar a bases de datos relacionales.
9.- ¿Qué es Xamp?
XAMPP, es un servidor de plataforma libre, es un software que integra en una sola aplicación, un servidor web Apache, interpretes de lenguaje de scripts PHP, un servidor de base de datos MySQL, un servidor de FTP FileZilla, el popular administrador de base de datos escrito en PHP, MySQL, entre otros módulos.
Te permite instalar de forma sencilla Apache en tu propio ordenador, sin importar tu sistema operativo (Linux, Windows, MAC o Solaris). Y lo mejor de todo es que su uso es gratuito.
XAMPP es una herramienta de desarrollo que te permite probar tu trabajo (páginas web o programación por ejemplo) en tu propio ordenador sin necesidad de tener que accesar a internet.
Si eres un desarrollador que recien está comenzando, XAMPP te provee de una configuración totalmente funcional desde el momento que lo instalas sin embargo, es bueno acotar que la seguridad de datos no es su punto fuerte, por lo cual no es suficientemente seguro para ambientes grandes o de producción.
XAMPP es un paquete formado por un servidor web Apache, una base de datos MySQL y los intérpretes para los lenguajes PHP y Perl. De hecho su nombre viene de hay, X (para cualquier sistema operativo), A (Apache), M (MySQL), P (PHP) y P (Perl).
Xampp es una herramienta muy práctica que nos permite instalar el entorno MySQL, Apache y PHP , suficiente para empezar proyectos web o revisar alguna aplicación localmente. Ademas trae otros servicios como servidor de correos y servidor FTP.
Si alguna vez has intentado instalar Apache, sabes que no es una tarea fácil, sin embargo con XAMPP todo es diferente. Una de las ventajas de usar XAMPP es que su instalación es de lo mas sencilla, basta descargarlo, extraerlo y comenzar a usarlo. En general es bastante fácil la instalacion de apache y php sobre Unix, sobre todo si dispone de un manejador de paquetes.
La mayor ventaja de Xampp es que es muy fácil de instalar y las configuraciones son mínimas o inexistentes, lo cual nos ahorra bastante tiempo. Sin embargo hay ocasiones en que es mejor dejar atrás la comodidad por las siguientes razones:
-No soporta MySQL desde la consola.
Xampp trae PhpMyAdmin para administrar las bases de datos de MySQL, sin embargo para tareas más específicas es mejor utilizar la consola (linea de comandos) y Xampp no la soporta.
-No se pueden actualizar individualmente las versiones de los programas que instala.
Xampp trae las últimas versiones de las aplicaciones que instala, sin embargo cuando pasa el tiempo y salen nuevas versiones de las mismas, no queda otra salida que reinstalar todo Xampp.
-Dificultad para configurar aplicaciones de terceros.
Y si queremos instalar una aplicación para manejo de subversiones en nuestro servidor?. Si en Xampp se puede mediante algún método alternativo ( llamesehacks), pero resultan bastante engorrorsos y a veces inservibles.
-Una desventaja es la garantía.
Este programa se distribuye con la esperanza de que sea útil, mas sin ninguna garantía, sin siquiera la garantía implícita de su mercadibilidad y aptitud para un propósito determinado.
10.- ¿Qué es App Server?
AppServ es un programa que aúna una serie de aplicaciones y utilidades, de manera que alinstalarlo, no solo tendremos instalados todo esto, sino que, además estarán perfectamente configurados y listos para usarlos en cuestión de minutos, mientras que si tuviésemos que instalar por separado estos programas, deberíamos dedicarle mucho más tiempo a su correcta configuración.
Pero ¿qué aplicaciones nos instala este paquete?
- Apache
- PHP
- MySQL
- phpMyAdmin
11.- ¿Qué es un Framework?
Una estructura de software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como
una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas
piezas para construir una aplicación concreta.
Los objetivos principales que persigue un framework son: acelerar el proceso de
desarrollo, reutilizar código ya existente y promover buenas prácticas de desarrollo
como el uso de patrones.
Un framework Web, por tanto, podemos definirlo como un conjunto de
componentes (por ejemplo clases en java y descriptores y archivos de configuración en
XML) que componen un diseño reutilizable que facilita y agiliza el desarrollo de
sistemas Web
VENTAJAS:
Las que se derivan de utilizar un estándar; entre otras:
- El programador no necesita plantearse una estructura global de la aplicación, sino que el framework le proporciona un esqueleto que hay que “rellenar”.
- Facilita la colaboración. Cualquiera que haya tenido que “pelearse” con el código fuente de otro programador (¡o incluso con el propio, pasado algún tiempo!) sabrá lo difícil que es entenderlo y modificarlo; por tanto, todo lo que sea definir y estandarizar va a ahorrar tiempo y trabajo a los desarrollos colaborativos.
- Es más fácil encontrar herramientas (utilidades, librerías) adaptadas al framework concreto para facilitar el desarrollo.