21 marzo, 2009

LENGUAJES DE PROGRAMACIÓN

Un lenguaje de programación son una serie de palabras reservadas que utilizadas correctamente en un orden y combinándolas nos permiten crear un programa. Es como un idioma. Este digamos conjunto de palabras se guardan en un documento de texto que después compilamos y obtenemos el programa ejecutable. Ahora ya sabes que es un lenguaje de programación.


Tipos de lenguaje de Programación
  • Primera generación: lenguaje maquina.
  • Segunda generación: se crearon los primeros lenguajes ensambladores.
  • Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol…
  • Cuarta generación. Son los lenguajes capaces de generar código por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aquí también se encuentran los lenguajes orientados a objetos, haciendo posible la reutilización d partes del código para otros programas. Ej. Visual, Natural Adabes…
  • Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todavía están poco desarrollados. Ej. LISP

CRITICAS Y CARACTERISTICAS DE LOS S.O


WINDOWS
•Windows, ya desde sus inicios, ha estado envuelto en la polémica. Al principio se decía que Windows era una copia del sistema operativo de Apple;
•Se hablaba de si existía competencia desleal con algunos programas que se incluían dentro del sistema.
•Con la aparición del Software Libre las polémicas se orientan a si Microsoft debe publicar el código fuente de su sistema operativo o no; algunos afirman que Windows y Linux KDE poseen cierto parecido estético.
•Desde la salida de Windows 95, Windows ha sido el Sistema Operativo más popular y usado entre usuarios,
•Se le llama el SO "básico", ya que debido a su popularidad, la mayoría de software son realizados para plataformas de Windows.
•También por su facilidad de uso para principiantes.
•Otra crítica que se le hace al sistema, específicamente a Windows Vista, es la gran cantidad de recursos del sistema que ocupa, estando "sobrecargado" de objetos, los cuales hacen que los computadores de hoy no soporten adecuadamente el sistema y no ofrezcan al usuario una experiencia fluida de uso.
•Debido al fracaso de Windows Vista, Microsoft lanzó un parche para "downgrading" a Windows XP en las versiones Business, Entreprise y Ultimate.

LINUX
  • Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo.
    LINUX utiliza la llamada multitarea preeventiva, la cual asegura que todos los programas que se estan utilizando en un momento dado seran ejecutados.
  • Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.
  • Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II,Amiga y Atari, tambien existen versiones para su utilizacion en otras plataformas, como Alpha, ARM,MIPS, PowerPC y SPARC.
  • Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel y SPARC.
  • Funciona en modo protegido 386.
  • Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
  • Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un programa que están siendo usadas actualmente.
  • Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
  • Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. Este limite se puede aumentar facilmente con el cambio de unas cuantas lineas en el código fuente.
  • La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.
  • Librerías compartidas de carga dinámica(DLL's) y librerías estáticas.
  • Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
  • Compatible con POSIX, System V y BSD a nivel fuente.
  • Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
  • Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
  • Control de tareas POSIX.
  • Pseudo-terminales (pty's).
  • Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
  • Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.



  • MAC
    •Se concentran especialmente en el tema del "precio de la actualización", y es que aún siendo usuario de una versión anterior, el paso a la más reciente requiere del desembolso de su precio total del sistema operativo.
    •Parte del problema tiene su origen en considerar cada versión como una actualización de la anterior, sin embargo al no existir una distinción de precio a la hora de comprar la versión 10.4 ya seamos propietarios de la 10.3 o del Mac OS 9, se crea en el consumidor cierta sensación de desconsideración.
    •Por otro lado The Open Group ha criticado a Apple por utilizar el término "Unix" en las publicidades de Mac OS X pese a que Apple no dispone de la certificación oficial del sistema operativo y su uso puede suponer una violación de marca registrada.
    •Apple afirma que ellos utilizan el término por tratarse de una marca generalizada y que el coste de la certificación haría su sistema demasiado caro. Sin embargo, The Open Group mantiene que existe un límite de 110.000$ en el coste de la certificación para una sola compañía.

    ALGUNOS DE LOS LENGUAJES MAS CONOCIDOS




    1.PHP
    ¿Qué es?
    PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores la mejor mezcla entre rendimiento y flexibilidad.
    PHP compila para tu código una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilación de lenguajes como C++ donde el código es compilado a código ejecutable que es después ejecutado. Php es recompilado cada vez que se solicita un script.
    Una ventaja importante de interpretar el código es que toda la memoria usada por tu código es manejada por PHP, y el lenguaje automáticamente vacía esta memoria cuando el script finaliza. Esto significa que tu no tienes que preocuparte de las conexiones a la base de datos, porque PHP lo hará por ti.
    ¿Qué ventajas tiene?
    Es uno de los lenguajes de progrmación más populares, la gran fluidez y rapidez de sus scripts y su prometedor futuro, desarrollar aplicaciones Webs utilizando lenguajes como C o COBOL son cosas del pasado.
    2.C#
    ¿Qué es?
    C# es un lenguaje de propósito general orientado a objetos creado por Microsoft para su plataforma .NET.
    Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes. C# fue diseñado para combinar el control a bajo nivel de lenguajes como C y la velocidad de programación de lenguajes como Visual Basic.
    ¿Qué ventajas tiene?
    Es una parte esencial de la plataforma .Net, C# combina los mejores elementos de múltiples lenguajes de amplia difusión como C++, Java, Visual Basic o Delphi. De hecho, su creador Anders Heljsberg fue también el creador de muchos otros lenguajes y entornos como Turbo Pascal, Delphi o Visual J++. La idea principal detrás del lenguaje es combinar la potencia de lenguajes como C++ con la sencillez de lenguajes como Visual Basic, y que además la migración a este lenguaje por los porgramadores de C/C++/Java sea lo más inmediata posible.
    3.AJAX
    ¿Qué es?
    AJAX no es un lenguaje exactamente su nombre viene dado por el acrónimo de Asynchronous JavaScript And XML y es posiblemente la mayor novedad en cuanto a programación web en estos últimos años.
    El corazón de Ajax es el objeto XMLHttpRequest que nos permite realizar una conexión al servidor y al enviarle una petición y recibir la respuesta que procesaremos en nuestro código Javascript, estamos hablando del verdadero motor de Ajax, por ejemplo gracias a este objeto podemos desde una página HTML leer datos de una web o enviar datos de un formulario sin necesidad de recargar la página.
    ¿Qué ventajas tiene?
    La demanda de AJAX no sólo es amplía sino que de calidad debido a la dificultad de aprendizaje que conlleva, si la herramienta de Microsoft, Atlas, destinada a la realización de aplicaciones AJAX tiene éxito puede suponee un aumento en la demanda de esta tecnología.
    4.JavaScript
    ¿Qué es?
    Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado.
    ¿Qué ventajas tiene?
    La razón de mayor peso es que es utilizado por millones de páginas webs para validar formularios, crear cookies, detectar navegadores y mejorar el diseño, su fácil aprendizaje lo hace un lenguaje muy demandado.
    5.Perl
    ¿Qué es?
    Perl es la alternativa más popular a PHP, seguramente porque es el lenguaje más antiguo tambien dentro de las alternativas. En internet nos encontramos numerosos recursos que utilizan Perl, muchos de las aplicaciones "open source" requieren tener Perl instalado correctamente. Perl tiene una ventaja y es que es muy flexible, y tambien tiene un gran cantidad de modulos ya escritos.
    Bien escritos los scripts en Perl se asemejan bastante a PHP. La principal causa de la sucía apariencia de Perl es por la afición de sus desarrolladores a la escritura en "una línea" empaquetanto numerosas funcionalidades en una sola línea de código. leer más
    ¿Qué ventajas tiene?
    La potencía de Perl a la hora de procesar grandes cantidades de datos lo hace realmente popular a la hora de desarrollar aplicaciones del lado del servidor, aprender Perl o Php es básico a la hora de desarrollar aplicaciones Web.
    6. C
    ¿Qué es?
    Es un lenguaje de "medio nivel" pero con numerosas características de bajo nivel.
    Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel.
    ¿Qué ventajas tiene?
    Aprender C es básico mientras aprendes C estas aprendiendo conceptos básicos de lenguajes cómo Java o C#, además no sólo es mas sencillo que estos últimos sino que comporten gran parte de su sintaxis.
    7.ASP
    ¿Qué es?
    Active Server Pages (ASP) y ASP.NET es un intendo de Microsoft para introducirse en el mercado del desarrollo Web, y viene a ser como su estandar para su servidor Web, ISS. Asp ha sido atacado por la comunidad open source desde que este apareció, y dan numerosas razones para ello:El propietario, una única plataforma, la lentitud...
    Me gustaría decir "Si, si, y si", pero no me debo dejar llevar. La realidad es que ASP ha sido implementado en otras plataformas y que cuando esta funcionando bajo su servidor predeterminado IIS es relativamente rápido.
    ¿Qué ventajas tiene?
    Simplemente porqué en algunas ocasiones no tienes otra opción debido a la popularidad que ha alcanzado.

    ESTUDIEMOS C ++

    ¿QUE ES C++?
    C++ es un lenguaje de programación que surge a partir del C. (variable++ significa incrementar en 1 la variable, en este caso C++ significa que incrementamos C)
    Este es uno de los muchos lenguajes de programación que hay pero es especial. Es especial porque todas las grandes aplicaciones locales se hacen con él, y nadie puede considerarse programador si no sabe más o menos C y/o C++.(Nota: Linux esta hecho en gran parte en C y C++ y el código esta disponible para estudiarlo y modificarlo.)
    Cuando digo local me refiero a un programa que se ejecuta en el PC.
    Actualmente la informática tiende al WEB y cada vez más las aplicaciones son programadas para ser ejecutadas en servidores WEB que te devuelven la respuesta o programas interpretados por los navegadores. Pero lógicamente siempre existirán unas aplicaciones locales ¡¡aunque al final solo sea el S.O.!!
    Por ejemplo tu has clickeado sobre el título de éste blogg. Se manda la orden de buscar esta opinión en la base de datos y entonces escribe el código HTML en el que incluye los datos de la opinión como el título, el autor, la fecha, el texto, las calificaciones...
    Un programa de bases de datos local haría lo mismo pero en vez de en SU ordenador sería en TU ordenador.

    C++ es un lenguaje de PROGRAMACION ORIENTADA A OBJETOS. (POO)
    ¿ORIENTADO A OBJETOS? (POO)
    Los programas son cada vez más y más complejos, con muchísimas líneas de código y si se hiciesen con las técnicas de antes serían casi imposibles de hacer por tiempo y por un presupuesto muy alto.
    Buscando la manera de hacerlos más compactos y fiables se buscó imitar a la realidad.
    En la realidad todo son objetos con sus características y funciones no?, pues hicieron que con la POO pudiésemos crear objetos con sus propias funciones y características.

    VENTAJAS Y DESVENTAJAS . JAVA Vs C

    Ventajas:
    - Al compilarlo, se genera código objeto, nativo de cada máquina. Resultado: C++ es más rápido que Java. Y bastante más rápido, diría yo. Digamos que a la hora de elegir un lenguaje, la necesidad de velocidad de nuestra aplicación inclinaría la balanza hacia C++.
    - Es una extensión de C. Por eso, muchos programadores encontrarán muy sencilla la transición, ya que podrán seguir haciendo cosas a la antigua usanza.
    - Permite un control de la memoria y una capacidad de programación de bajo nivel impensable en Java. Otro platillo para C++.

    Desventajas
    - No es multiplataforma. Para lograr aplicaciones que se ejecuten en varios SO, se requiere de cierto esfuerzo. Platillo para Java.
    - No presenta una arquitectura estándar de desarrollo orientado a Internet. Digamos que Java es algo más que un lenguaje, es toda una plataforma, y apoyada por muchas empresas, lo que le otorda un grado de calidad del que carece C++.
    - Es una extensión de C. ¿Pero no era una ventaja?. Bueno, pues también es un inconveniente, pq bastantes dogmas de la POO se sacrifican para hacer hueco al C. Java corrige esos problemas.
    - No presenta un toolkit tan rico como el de Java. Java soporta el desarrollo rápido de aplicaciones, y muchas de las tareas de un programador están resueltas en su toolkit. Aunque hay muchas librerías en la red para C++, no son estándar del lenguaje, y algunas son de pago.
    - Es más complicado de aprender que Java. También Java es complicado, y cuando digo complicacdo me refiero a programar "bien" en Java, pero te obliga mucho más a seguir una metodología. C++, por ser en parte C, es demasiado libre en ocasiones.

    15 marzo, 2009

    SITUACION ACTUAL

    La elección de la base de datos es una decisión vital en el ciclo de desarrollo de un proyecto. No siempre lo mejor es lo necesario para un proyecto concreto. En función del trabajo a realizar, y tomando como parámetros el volumen de carga que tendrá soportar la base de datos, el sistema operativo sobre el cual rodará la base de datos, el presupuesto disponible y el plazo de entrega del trabajo, se debe realizar un análisis y una elección.
    A grandes líneas, podemos diferenciar los productos actuales en cinco grandes grupos:
    • Gran volumen . Soluciones corporativas que requieran una base de datos muy potente, estable y escalable, capaz de soportar una carga de trabajo muy severa: Oracle, Sybase y DB2.
    • Unix SQL . Bases de datos SQL comerciales (OpenBase SQL, PrimeBase) o de uso libre (mSQL, mySQL, PostgreSQL). Soluciones de bajo coste y rendimiento óptimo.
    • Soluciones Microsoft . SQL Server o MS Access, ya sea en local o en la Web. Bien utilizando las herramientas del fabricante (Visual InterDev) o desde otros lenguajes.
    • Velocidad crítica . Para soluciones locales de cientos de miles de registros, en donde la velocidad en las búsquedas es crítica: PardigmaSoft Valentina.
    • Desarrollo rápido . Integrando el entorno de programación y la base de datos: 4th Dimension, FileMaker.

    En el campo de las bases de datos, Dataquest (ahora Gartner Group, www.gartner.com) predice en un estudio de 2002 que el mercado de bases de datos seguirá creciendo a un ritmo cercano al 25% anual. Se indica que en este año las ventas de SGBD para la plataforma NT/2000/2003 igualarán las ventas de todas las plataformas Unix. Dataquest también afirma que las aplicaciones relacionadas con Internet, el comercio electrónico, la “inteligencia” de negocio integrada y las nuevas aplicaciones de negocio móviles guiarán el mercado de las bases de datos en los próximos años
    Sobre la situación de los SGBD comerciales IBM y Oracle han estado codo con codo durante los últimos años con cerca del 30% de ingresos por ventas de nuevas licencias en el mercado de SGBD cada uno. No obstante, hay que destacar que la distribución de estos porcentajes no es uniforme en la gama de aplicaciones. Por ejemplo, IBM sigue siendo líder en el área de los mainframes, especialmente con su línea OS/390 y AS/400. Por el contrario, si quitamos los mainframes, Oracle lidera el mercado con una gran ventaja.
    Sobre la situación de los SGBD comerciales IBM y Oracle han estado codo con codo durante los últimos años con cerca del 30% de ingresos por ventas de nuevas licencias en el mercado de SGBD cada uno. No obstante, hay que destacar que la distribución de estos porcentajes no es uniforme en la gama de aplicaciones. Por ejemplo, IBM sigue siendo líder en el área de los mainframes, especialmente con su línea OS/390 y AS/400. Por el contrario, si quitamos los mainframes, Oracle lidera el mercado con una gran ventaja.
    Según un último estudio del Gartner Group, la situación en mayo de 2002 sigue siendo hegemónica para Oracle, IBM y Microsoft

    Compañía 2000 2001 2002 2003
    Oracle 30.7 31.1 34.1 32.0
    IBM 30.0 29.9 30.3 31.7
    Microsoft 10.7 13.1 14.0 16.3
    Informix 4.8 4.3 3.3 3.0
    Sybase 3.6 3.3 3.2 2.6
    Otros 20.2 18.3 15.0 14.4
    TOTAL 100.0 100.0 100.0 100.0

    Considerando sólo los sistemas relacionales, mientras sobre sistemas operativos Windows, Microsoft es el líder en 2002 con el 39.9% del mercado (respecto a un 34.0% de Oracle), en sistemas operativos UNIX, Oracle es claramente predominante, con un 63.3%.
    Finalmente, el predominio del modelo relacional no sólo no cede sino que se afianza. La situación no ha variado significativamente en los últimos años, y, en el ejercicio 2001, de los 8.844 millones de dólares de ingresos por nuevas licencias en el campo de SGBD, 7.107 millones de dólares correspondieron a sistemas relacionales. Esto supone un 80,4% de los nuevos sistemas, con lo que no parece haber ninguna señal clara de que la situación vaya a cambiar en el futuro. Más aún si tenemos en cuenta que los mercados de los SGBD prerrelaciónales y objetuales tuvieron un incremento negativo en 2000, mientras que los relacionales crecieron un 15%.
    Por último, incluir dentro de este apartado una berve reseña sobre la importancia de los distintos SGBD para las nuevas contrataciones en el mercado laboral, extraída contabilizando simplemente las veces que aparecía cada uno de los SGBD en las demandas:
    En general, se mantiene el liderazgo de Oracle, IBM y Microsoft, aunque debido a que estas dos últimas compañías tienen más de un SGBD, el porcentaje aparece mucho más decantado de parte del SGBD Oracle (por encima del 50%). También se observa un aumento espectacular de SGBD como PostgreSQL o MySQL (encuadrados en la categoría de otros sistemas).

    COMPARACION ENTRE LOS SMDB

    Para elegir el SMDB (sistema manejador de base de datos) correcto, se han realizado infinidades de estudios compartivos. A continuación presento un cuadro con 4 de los SMDB mas conocidos y utilizados. El primero de ellos quizá pueda sonarle desconocido, se trata de un desarrollo que ha pasado varias pruebas de confiabilidad y hasta a superado a los SMDB convencionales o mas comerciales.








    14 marzo, 2009

    ¿Qué es un manejador de Base de Datos?

    Es un software de sistemas que tiene como propósito general facilitar el proceso de definir, construir y manipular bases de datos que se utilizan para diferentes tipos de aplicaciones.

    Componentes de software principales asociados a un SMDB

    • Generadores de aplicaciónes
    • Lenguajes de cuarta generación (4gl)
    • Software de consulta de Base de Datos
    • Generador de reportes y pantallas.

    Ejemplos: Informix, 4GL, Oracle, SQL server.

    Diferencia entre SQL Server y Oracle

    La mayor diferencia que existe entre SQL Server y Oracle es que SQL solo funciona bajo plataformas Windows y Oracle puede trabajar en practicamente cualquier plataforma, como la mayoria de los servidores trabajan bajo alguna distribucion de Unix normalmente SAP trabaja contra BBDD de Oracle

    Por otra parte SQL Server es mas barato y "facil" de instalar que Oracle y es ligeramente superior en rendimiento Oracle sin embargo ofrece mas opciones de configuracion que puede parametrizar el administrador de la BBDD para optimizar el rendimiento, ademas la parte PL-SQL de Oracle es mucho mas amplia que la del SQL Server ya que este ultimo es mas "conceptual" o standard que Oracle que esta mas orientado al trabajo.