• Email
  • Share
  • Contributors
  • Close Course

diseñar curso de manejo audio visual

Tags No tags specified

Module Information

Visual FoxPro provee a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web. Entre sus características se pueden enumerar: Capacidades para el manejo de datos nativos y remotos. Flexibilidad para crear soluciones de bases de datos. Lenguaje de Programación Orientado a objetos. Utilización de Sentencias SQL en forma nativa. Manejo de vistas, cursores y control completo de estructuras relacionales. Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL. Cuenta con un motor de generación de informes renovado y flexible para soluciones más robustas. Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML. La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto. En la actualidad, a pesar de que Microsoft ha decidido no continuar con Microsoft Visual FoxPro, existe una comunidad de desarrolladores que sigue trabajando en él, PortalFox y Mundo Visual FoxPro son las más importantes entre los desarrolladores de habla hispana. También se encuentra una comunidad muy activa de desarrolladores en los grupos de Google [1] donde existen muchos programadores que siguen desarrollando software para las distintas versiones de Windows. Historia[editar] Visual FoxPro proviene de FoxPro, que a su vez deriva de FoxBASE, creado por Fox Software en 1984; inicialmente un clon de dBase, acabó superándolo y, junto a Clipper, convirtiéndose en una de las estrellas de los lenguajes xBase. Cuando se presentó FoxPro 2.0 se incluyeron varias tecnologías que revolucionaron el mercado de desarrollo de bases de datos las cuales son: La adición de Tecnología Rushmore hizo posible que tablas tuvieran millones de registros sin la necesidad de pasar a tecnologías más caras Las instrucciones SQL que reemplazaban procedimientos completos. SQL fue, y todavía es, el lenguaje de los datos La presentación de medios tipo WYSIWYG (What you see is what you get) que significa: "lo que tu ves es lo que consigues" que abrió el camino a diseñadores de pantallas e informes. Microsoft compró Fox Software en junio de 1992 por 173 millones de dólares. En el momento de la compra el desarrollo de FoxPro 2.5 estaba casi terminado, añadiéndole la capacidad de generar ejecutables para Windows. Las versiones de FoxPro 2.6 para Windows, Mac y Unix se consideran las últimas versiones de FoxPro.
Show less
Visual FoxPro 3.0[editar] En junio de 19951​ aparece Visual FoxPro 3.0, conocido durante su desarrollo como Taz, es la primera versión Visual y se considera un punto de ruptura al evolucionar de un lenguaje procedimental a un lenguaje orientado a objetos. Fue lanzado en Standard Edition (versión recortada sin archivos de runtime distribuibles) y Professional Edition, con el runtime licenciado y el juego completo de componentes. Requiere como mínimo de un compatible IBM PC con microprocesador Intel 80386 ejecutando Windows 3.1 / Windows NT 3.5 o superiores, 8 Megabytes de memoria RAM (se recomiendan 12 MB), de 15 a 50 MB de espacio libre en el disco duro, mouse o equivalente y tarjeta gráfica VGA o superior. Tiene las siguientes características:2​ El contenedor de base de datos, también conocido como DBC, añadió el soporte para procedimientos almacenados, reglas de datos asociadas a tablas y un conjunto de funciones de datos adicionales. Las vistas, que son cursores SQL actualizables, añadieron un método completamente nuevo de acceso a datos para su procesamiento. Una implementación completa de programación orientada a objetos Soporte de Object Linking and Embedding y ActiveX Más adelante aparecerá Visual FoxPro 3.0b3​ que aporta soporte a los lenguajes de doble byte (Double Byte Character Set, como el chino o el japonés) y mejoras en el soporte de ODBC. Además el logotipo para de utilizar una fuente serif a una sans-serif bold, que utilizará en adelante. Visual FoxPro 3.0 for Macintosh, conocido durante su desarrollo como Speedy aparece el mismo año. Será la última versión de Visual FoxPro para Macintosh. Requiere un equipo Power Macintosh con un microprocesador PowerPC PPC 601 o superior, 8 MB de RAM, (16 MB de RAM recomendado), 80 MB espacio en disco disponible (instalación completa) y sistema operativo System 7.1.2 o posterior. Visual FoxPro 5.0[editar] En octubre de 1996 aparece Visual FoxPro 5.0, conocido durante su desarrollo como RoadRunner. Aunque hubo un desarrollo de Visual FoxPro 4.0 conocido como Renard, Microsoft decidió cuando finalizó su fase beta que todos los componentes principales de Microsoft Visual Studio tuvieran el mismo número de versión, por lo que todo el trabajo se pasó a la versión 5.0 Presenta un cambio en la estructura de los proyectos y otros archivos por lo que debe de realizarse una conversión desde versiones anteriores.4​ Trae como novedades: Integración con Visual SourceSafe Creación desde VFP de aplicaciones Web Un nuevo depurador mejorado Capacidad de crear y usar servidores COM (Component Object Model que significa Modelo de Objetos Componentes). Mejora del soporte de ActiveX Visual FoxPro 6.0[editar] El 18 de mayo de 1998 aparece Visual FoxPro 6.0, conocido durante su desarrollo como Tahoe. Tras FoxPro 2.6 para Windows es la versión con que más aplicaciones FoxPro se han realizado. Se incluye con Microsoft Visual Studio 6. Requiere de un compatible IBM PC con microprocesador Intel 80486-DX a 66 MHz o superior (se recomienda un Intel Pentium) ejecutando Windows 95/Windows 98/Windows NT 4.0 con Service Pack 3 o superior; 16 Megabytes (32 recomendados) de memoria RAM para Windows95/98; 24 MB (32 recomendados) para Windows NT 4.0; Internet Explorer 4.01 con Service Pack 1 (se incluye en el paquete); 85 MB de espacio libre en el disco duro para una instalación típica, 90 MB para una completa; 43 a 59 MB adicionales si debe instalar IE 4.0; de 57 a 493 MD para el MSDN; unidad de CD-ROM, mouse o equivalente y tarjeta gráfica VGA o superior (se recomienda Super VGA). 20 Aporta mejoras para Internet y una nueva galería de componentes y clases.
Show less
Visual FoxPro 7.0[editar] El 21 de junio de 2001 aparece Visual FoxPro 7.0, conocido durante su desarrollo como Sedona. Trae como novedades:5​ Soporte de la tecnología IntelliSense Mejoras del control del Entorno de desarrollo integrado (IDE) y un más rápido acceso al código fuente. Más de 50 comandos, funciones y variables del sistema se han mejorado o añadido a Visual FoxPro 7.0, algunas de las cuales incluyen nuevas capacidades para enlazar eventos a otros componentes COM. Mejora del soporte de interoperabilidad con componentes Component Object Model como Microsoft BizTalk Server Soporte de servicios web XML, permitiendo la exportación de datos de Visual FoxPro a XML y la importación de datos XML en tablas. Nuevo Explorador de objetos Administrador de la lista de tareas Mejor rendimiento Visual FoxPro 8.0[editar] El 1 de febrero de 2003 aparece Visual FoxPro 8.0, conocido durante su desarrollo como Toledo. Trae como novedades:6​ Manejo de errores estructurado, mediante TRY... CATCH... FINALLY, escalado de excepciones usando THROW y gestión del uso de objetos de excepción. Clase CursorAdapter para el acceso universal a datos en formato Visual FoxPro, XML, Microsoft SQL Server 2000, ODBC y OLE DB Soporte de incremento automático en tablas Visual FoxPro Soporte de Themes de Windows XP Diseño de vistas mediante SELECT SQL conmutando entre consulta / vista y salida de código fuente. Controles avanzados con capacidad de orientación de pestañas en los marcos de página, cambio automático de ancho de columnas, etc. Soporte GDI+ mejorado pudiendo usar y rotar imágenes en formularios en formato BMP, JPG, GIF normal y animado, TIFF, WMF y EMF y otros Bindeo de eventos Importación y exportación de XML jerárquico con el apoyo de DiffGrams entre cursores de Visual FoxPro y DataSets de ADO.NET Publicar y usar XML Web services basados en SOAP compatible con .NET via HTTP utilizando Microsoft SOAP Toolkit 3.0 (incluido). OLE DB proporciona acceso a datos Visual FoxPro como Microsoft Visual Studio .NET y Microsoft Office XP. Microsoft SQL Server 2000 Desktop Engine (MSDE) para crear soluciones de escritorio y compartidas compatibles con Microsoft SQL Server 2000 y migrar a SQL Server 2000 directamente sin modificar el código.
Show less
Visual FoxPro 9.0[editar] El 17 de diciembre de 2004 aparece Visual FoxPro 9.0, conocido durante su desarrollo como Europa con un amplio soporte a XML y una mejora notable en los reportes permitiendo detalles en múltiples bandas, la rotación de texto, y el encadenamiento de informe. Los informes de salida soportados incluyen XML, HTML, formatos de imagen, y personalización de la salida de impresión. En marzo de 2007, Microsoft anunció que no habrá VFP 10,7​ con lo que VFP9 es la última versión comercial de Visual FoxPro. Su soporte está garantizado hasta 2015 y se han publicado dos Service Packs, el 8 de diciembre de 2005 y el 11 de octubre de 2007. Se trata del soporte más largo para un producto de Microsoft. A finales de marzo de 2007, se origina una campaña grassroots entre la comunidad hispana de usuarios de FoxPro en MasFoxPro8​ para firmar una petición a Microsoft para continuar con la actualización de Visual FoxPro o liberarlo a la comunidad como Open Source. El 3 de abril de 2007, el movimiento tuvo eco en la prensa especializada9​ También el 3 de abril de 2007 Microsoft respondió a las solicitudes de los peticionarios, con esta declaración de Alan Griver: "Somos muy conscientes de la comunidad FoxPro y esto jugó un papel importante en el anuncio del 13 de marzo. Nunca es una decisión fácil anunciar que no vamos a sacar otra versión de un producto y es algo que consideramos con mucho cuidado. "No estamos anunciando el fin de FoxPro. Obviamente, las aplicaciones de FoxPro seguirán funcionando. Por algunas de nuestras estimaciones internas, hay más aplicaciones que se ejecutan en FoxPro 2.6 que en VFP y FoxPro 2.6 no ha recibido soporte en muchos años. Visual FoxPro 9 será soportado por Microsoft hasta el año 2015. "Para que Microsoft continuara evolucionando la base de FoxPro, tendríamos que comenzar por la creación de un entorno de desarrollo de 64 bits lo que implicaría una reescritura casi completa del producto principal. También hemos invertido en la creación de una base de datos escalable con SQL Server, incluyendo la libremente disponible SQL Server Express Edition. En cuanto a la formación de una asociación con terceras partes, hemos escuchado de una serie de grandes clientes FoxPro que esto haría imposible para ellos seguir utilizando FoxPro, ya que ya no sería de un proveedor aprobado. Nos pareció que poner el entorno en código abierto en CodePlex, equilibra las necesidades de la comunidad y los grandes clientes, y era el mejor camino a seguir." Sedna[editar] En el momento del anuncio del fin de la vida de FoxPro, el trabajo en la próxima versión con nombre en código Sedna que había comenzado sobre la parte superior de la base de código VFP9 ya había comenzado. "Sedna" es un conjunto de ampliaciones para VFP 9.0 de los componentes xBase para soportar una serie de escenarios de interoperabilidad con varias tecnologías de Microsoft, incluyendo SQL Server 2005, .NET Framework, Windows Vista, Microsoft Office 2007, Windows Search y Team Foundation Server (TFS). Microsoft liberó Sedna bajo licencia Shared Source en CodePlex. Microsoft ha aclarado que el núcleo de VFP seguirá siendo de código cerrado. Sedna fue lanzado el 25 de enero de 2008.10​ A partir de marzo de 2008, todos los componentes xBase de VFP 9 SP2 (incluyendo Sedna) están disponibles para el desarrollo comunitario en CodePlex. Sedna contiene seis componentes: VistaDialogs4COM, Upsizing Wizard, Data Explorer, NET4COM, MY para VFP y VS 2005 Extension para VFP. Información de Versiones[editar] Compatibilidad de Sistemas Operativos[editar] Versiones con Soporte Windows VersiónVFP 3.0VFP 5.0VFP 6.0VFP 7.0VFP 8.0VFP 9.0 Windows 3.xSiNoNoNoNoNo Windows NT 4.0SiSiSiSiSiNo11​ Windows 95SiSiSiSólo ejecutableNoNo Windows 98SiSiSiSiSólo ejecutableSólo ejecutable Windows MeSiSiSiSiSólo ejecutableSólo ejecutable Windows 2000SiSiSiSiSiSi Windows XPSiSiSiSiSiSi Windows Server 2003SiSiSiSiSiSi Windows VistaModo de compatibilidadSiSiSiSiSi Windows 7NoSiSiSiSiSi Windows 8NoNoSiSiSiSi Windows 8.1NoNoSiSiSiSi Windows 10NoNoSiSiSiSi Windows CE.Net?????? Información de archivos ejecutables[editar] VersiónVersión y compilaciónTamañon EXEFecha EXETamaño DLLNombre DLL VFP 9 SP2 con RevisionesVisual FoxPro 09.00.0000.7423 para Windows5,648 kb3 de abril de 20094,624 kbVFP9R.DLL VFP 9 SP2Visual FoxPro 09.00.0000.5721 para Windows5,648 kb21 de septiembre de 20074,624 kbVFP9R.DLL VFP 9Visual FoxPro 09.00.0000.2412 para Windows5,620 kb13 de diciembre de 20044,600 kbVFP9R.DLL VFP 8Visual FoxPro 08.00.0000.3117 para Windows5,236 kb25 de septiembre de 20034,200 kbVFP8R.DLL VFP 7Visual FoxPro 07.00.0000.9465 para Windows4,260 kb4 de enero de 20023,344 kbVFP7R.DLL VFP 6Visual FoxPro 06.00.8961.00 para Windows4,091 kb18 de agosto de 20003,295 kbVFP6R.DLL VFP 5Visual FoxPro 5.0.0.415 para Windows4,065 kb24 de enero de 19973,148 kbVFP500.DLL VFP 3Visual FoxPro 03.00.00.0711 para Windows4,374 kb16 de diciembre de 19953,657 kbVFP300.ESL FPW 2.6aFoxPro 2.6a para Windows2,444 kb28 de septiembre de 19942,946 kbFOXW2600.ESL
Show less
Microsoft Visual FoxPro 9.0 Microsoft® Visual FoxPro® database development system is a powerful tool for quickly creating high-performance desktop, rich client, distributed client, client/server, and Web database applications. Employ its powerful data engine to manage large volumes of data, its object-oriented programming to reuse components across applications, its XML Web services features for distributed applications, and its built-in XML support to quickly manipulate data. Note that Visual FoxPro 9.0 is the last version and was published in 2007. Download Visual FoxPro 9.0 SP2 Download Service Pack 2 for Microsoft Visual FoxPro 9.0. SP2 provides the latest updates to Visual FoxPro 9.0 combining various enhancements and stability improvements into one integrated package. Three Hotfixes for Visual FoxPro 9.0 SP2 Fix for the issue where a toolbar on an SDI form gets disabled. Fix for the issue where records from another user session that violate the criteria for a parent table are displayed in the browse window for a child table in a Visual FoxPro 9.0 Service Pack 2 multi-user environment. Fix for a reporting issue where the group header of a data grouping is not printed at the top of each page as expected after you install Microsoft Visual FoxPro 9.0 Service Pack 2. Visual FoxPro Samples and Updates Find code samples and product updates for Visual FoxPro. Visual FoxPro on MSDN Forums Join the conversation and get your questions answered on the Visual FoxPro Forum on MSDN. Visual FoxPro 9.0 Overview With its local cursor engine, tight coupling between language and data, and powerful features, Visual FoxPro 9.0 is a great tool for building database solutions of all sizes. Its data-centric, object-oriented language offers developers a robust set of tools for building database applications for the desktop, client-server environments, or the Web. Developers will have the necessary tools to manage data—from organizing tables of information, running queries, and creating an integrated relational database management system (DBMS) to programming a fully-developed data management application for end users. Data-Handling and Interoperability. Create .NET compatible solutions with hierarchical XML and XML Web services. Exchange data with SQL Server through enhanced SQL language capabilities and newly supported data types. Extensible Developer Productivity Tools. Enhance your user interfaces with dockable user forms, auto-anchoring of controls, and improved image support. Personalize the Properties Window with your favorite properties, custom editors, fonts, and color settings. Flexibility to Build All Types of Database Solutions. Build and deploy stand-alone and remote applications for Windows based Tablet PCs. Create and access COM components and XML Web Services compatible with Microsoft .NET technology. Reporting System Features. Extensible new output architecture provides precision control of report data output and formatting. Design with multiple detail banding, text rotation, and report chaining. Output reports supported include in XML, HTML, image formats, and customizable multi-page print preview window. Backward compatible with existing Visual FoxPro reports. Resources Visual FoxPro FAQ  Visual FoxPro Support Policy  Visual FoxPro Product Updates
Show less
Introducción a las características de Visual FoxPro Visual Studio .NET 2003 Microsoft Visual FoxPro le ofrece más de lo que puede esperar de un sistema de administración de bases de datos (DBMS): velocidad, eficacia y flexibilidad. Además, Visual FoxPro le lleva hacia la próxima generación y le proporciona modelos de objetos y eventos que ayudan a crear y modificar aplicaciones con mayor rapidez que nunca. Esta sección le mostrará las características principales de Visual FoxPro. Para obtener información acerca de las mejoras más recientes de esta versión de Visual FoxPro, vea Novedades de Visual FoxPro. En esta sección Creación rápida de aplicaciones Puede programar aplicaciones rápidamente con ayuda de los asistentes, los generadores, las barras de herramientas y los diseñadores de Visual FoxPro. Con el modelo de objetos y eventos de Visual FoxPro, puede crear prototipos e implementar rápidamente las aplicaciones. Ventajas de una mayor eficacia Visual FoxPro es mucho más eficaz que sus predecesores. La programación orientada a objetos acelera la programación de aplicaciones mediante características como la creación de subclases. El modelo de eventos de Visual FoxPro elimina la necesidad de usar READ de fundación o escribir controladores de eventos. La optimización de la configuración del sistema y la implementación de la tecnología Microsoft Rushmore mejoran el rendimiento de Visual FoxPro. Crear la interfaz de usuario sin programación Visual FoxPro dispone de controles eficaces que se agregan con el Diseñador de formularios, que proporciona interfaces que requieren poco o ningún código. Desarrollar aplicaciones con varios programadores Si varios programadores trabajan en sus aplicaciones, puede usar Visual FoxPro para permitir el acceso simultáneo a los componentes de base de datos. Además, para hacer un seguimiento y proteger las modificaciones realizadas al código fuente, puede usar programas de control de código fuente con el Administrador de proyectos. Interactuar con otras aplicaciones Con Visual FoxPro, es posible compartir datos con otras aplicaciones, como Microsoft Excel y Microsoft Word, utilizar objetos de otras aplicaciones y controlar otras aplicaciones mediante Automatización. Desarrollar soluciones cliente-servidor Puede utilizar Visual FoxPro como sistema para la programación de robustas aplicaciones cliente-servidor. Visual FoxPro combina una gran compatibilidad para vistas actualizables de datos del servidor con el acceso directo a la sintaxis nativa del servidor mediante el paso a través de SQL. Secciones relacionadas Introducción a Visual FoxPro Visual FoxPro es el sistema de administración de base de datos orientado a objetos que le permite crear soluciones empresariales de bases de datos avanzadas. Personalizar el entorno de Visual FoxPro Una vez instalado correctamente Visual FoxPro, puede personalizar el entorno de desarrollo. La configuración del entorno incluye el título de la ventana principal, el directorio predeterminado, las opciones de herramientas de proyecto, editor, depurador y formulario, el almacenamiento temporal de archivos, las asignaciones de campos para operaciones de arrastrar y colocar, entre otras muchas opciones. Uso de Visual FoxPro Las características de programación de Visual FoxPro están diseñadas para mejorar la productividad del programador, incluidos los métodos Access y Assign, la compatibilidad con más formatos de archivos gráficos y lenguaje para simplificar las tareas de programación. Desarrollar aplicaciones Visual FoxPro En esta sección se incluye información conceptual acerca de cómo desarrollar aplicaciones Visual FoxPro, instrucciones para crear bases de datos y la interfaz de usuario y otras tareas necesarias para crear aplicaciones Visual FoxPro. Programar en Visual FoxPro Visual FoxPro es una eficaz herramienta de administración de datos, pero además podrá beneficiarse de toda su eficacia para crear aplicaciones. Comprender las técnicas de programación orientada a objetos y el modelo controlado por eventos puede aumentar su productividad como programador.
Show less
En la programación de computadoras, siglas de Beginner's All-purpose Symbolic Instruction Code1​ (Código simbólico de instrucciones de propósito general para principiantes en español), es una familia de lenguajes de programación de alto nivel. El BASIC original, el Dartmouth BASIC, fue diseñado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College en Nuevo Hampshire, Estados Unidos, como un medio para facilitar la programación en ordenadores a estudiantes (y profesores) que no fueran de ciencias. De aquella, casi todo el uso de los ordenadores requería codificar software hecho a medida, con lo cual quedaba restringida a personas con formación como científicos y matemáticos. BASIC originalmente fue desarrollado como una herramienta de enseñanza. El lenguaje y sus variantes llegaron a estar ampliamente disponibles en los microcomputadores a finales de los años 1970 y en los años 1980. BASIC sigue siendo popular a día de hoy en un puñado de dialectos altamente modificados, y en nuevos lenguajes, influenciados por BASIC tales como Microsoft Visual Basic o Gambas en GNU/Linux. En el año 2006, el 59% de los desarrolladores para la plataforma .NET usaban Visual Basic .NET como su único lenguaje.2​ Es importante aclarar que una de las grandes desventajas en comparación con lenguajes como COBOL, RPG es que no maneja como parte integrada el acceso a archivos directos o RANDOM. Se tenía que apoyar en una aplicación externa para poder acceder de manera directa un registro de algún archivo.   Índice   [ocultar]  1Historia 1.1Antecedentes 1.2Nacimiento y primeros años 1.3Crecimiento explosivo 1.4Madurez 2El Lenguaje 2.1Sintaxis 2.2Procedimientos y Control de Flujo 2.3Tipos de Datos 3Disponibilidad y variantes del lenguaje 4Ejemplos de código fuente 4.1Ejemplo 1: ¡Hola Mundo! 4.2Ejemplo 2: BASIC original no estructurado (Applesoft BASIC) 4.3Ejemplo 3: Equivalente en BASIC estructurado (Quick BASIC) 5Véase también 6Referencias 7Bibliografía 8Enlaces externos   Historia[editar] Antecedentes[editar] A principios de la década de 1960, las computadoras eran sumamente caras y se utilizaban únicamente para propósitos especiales, ejecutando "una única tarea" a la vez. Sin embargo, durante el transcurso de esa década, los precios bajaron al punto que incluso algunas pequeñas empresas ya podían costearlas. La velocidad de proceso de las máquinas se incrementó al grado que a menudo quedaban demasiado tiempo ociosas, porque no había suficientes tareas para ellas. Todo ello fue debido a la rápida evolución del hardware. Los lenguajes de programación de aquellos tiempos estaban diseñados para propósitos específicos, como las máquinas en las que eran ejecutados; por ejemplo para desarrollar aplicaciones cálculo o procesamiento de fórmulas se diseñó el lenguaje FORTRAN, en tanto que para la programación en administración o gestión de información se desarrolló específicamente el COBOL. A fin de incrementar el rendimiento y amortizar mejor los costos (por reducción del tiempo ocioso de la procesador), y siendo que ya la velocidad de las máquinas comenzó a permitirlo, se propuso la idea de ejecutar más de una tarea "simultáneamente", fue así que surgió el concepto de sistema de tiempo compartido, que comenzó a ganar mucha popularidad. En sistemas de ese tipo, el tiempo de procesamiento del procesador central se dividía, y a cada usuario se le otorgaba secuencial y cíclicamente una pequeña porción o "cuota" de tiempo de proceso. Las máquinas eran lo suficientemente rápidas como para provocar en los usuarios la ilusión de que disponían de la funcionalidad de la máquina todo el tiempo para ellos ("seudo-simultaneidad" de procesos). Esa distribución del tiempo de cómputo entre los usuarios redujo considerablemente el costo de la computación, ya que una sola máquina podía ser compartida por numerosos usuarios.
Show less
Nacimiento y primeros años[editar] El lenguaje BASIC fue inventado en 1964 por John George Kemeny (1926-1992) y Thomas Eugene Kurtz (1928-) en el Dartmouth College. En años subsiguientes, mientras que otros dialectos de BASIC aparecían, el BASIC original de Kemeny y Kurtz fue conocido como Dartmouth BASIC. BASIC fue diseñado para permitir a los estudiantes escribir programas usando terminales de un computador en tiempo compartido. Estaba pensado para reducir notablemente la complejidad de los otros lenguajes del momento, con uno diseñado específicamente para la clase de usuarios que los sistemas de tiempo compartido permitían: un usuario más sencillo, fuera del área de las ciencias de la computación, a quien no le interesaba tanto la velocidad, solo el hecho de ser capaz de programar y usar la máquina sin demasiadas complicaciones. Los diseñadores del lenguaje también querían que permaneciera en el dominio público, lo cual contribuyó a que se diseminara rápidamente. Los ocho principios que rigieron el diseño de BASIC fueron: Ser fácil de usar para los principiantes. Ser un lenguaje de propósito general (no orientado). Permitir a los expertos añadir características avanzadas, conservando simple el lenguaje para los principiantes. Ser interactivo en todos los casos. Proveer mensajes de errores claros y amigables. Responder rápido en los programas pequeños en general. No requerir un conocimiento del hardware de la computadora. Proteger al usuario del sistema operativo. El lenguaje fue en parte basado en FORTRAN II y otra parte en Algol 60, con adiciones para hacerlo apropiado en sistemas de tiempo compartido y con elementos que facilitaran la operación aritmética de matrices. BASIC fue implementado por primera vez para la mainframe GE-265, máquina que soportaba múltiples terminales. En 1968 Edsger Dijkstra publicó una carta con una famosa crítica3​ en la que consideraba que los lenguajes de programación que usaban sentencias GOTO para estructurar un programa eran nocivos para la productividad del programador, y para la calidad del código resultante. En este artículo no se menciona a ningún lenguaje de programación en particular; únicamente se indica que el uso excesivo de GOTO en lenguajes de alto nivel es algo no recomendable, y proporciona las razones técnicas por las que esto es así. Pero sí se observó, desde sus inicios, una marcada tendencia de los programadores a utilizar excesivamente el GOTO en BASIC, máxime en los noveles; hecho éste que fue decreciendo con la incorporación al lenguaje de otros recursos, tales como subrutinas parametradas, y posteriormente con la aparición de técnicas de programación estructurada. Contrario a la creencia popular, BASIC inicialmente no era un lenguaje interpretado sino compilado. Casi inmediatamente después de su lanzamiento, los profesionales de computación comenzaron a alegar que BASIC era muy lento y simple. Tal argumento, hasta no hace mucho, fue un tema recurrente en la industria de las computadoras. Aun así, BASIC se extendió hacia muchas máquinas y plataformas, y se popularizó moderadamente en las minicomputadoras como las de la serie DEC PDP y la Data General Nova. En estos casos, el lenguaje era implementado como intérprete, en vez de un compilador, o alternativamente, en ambas formas de funcionamiento. Crecimiento explosivo[editar]   Captura del microordenador CommodorePET-32 mostrando un programa en el lenguaje de programación BASIC, bajo el emulador VICE en una distribución GNU/Linux. La primera línea, titula (rem) al programa para permitir su almacenamiento, la segunda, solicita una cadena de datos (input) que una vez obtenidos, almacenará en una instrucción que el lenguaje lleva incorporada, llamada variable alfanumérica ($). La tercera línea, establece una condición, (if) determina que si la cadena de texto almacenada no es igual (<>) al valor dado, proceda (then) a ejecutar la línea anterior, volviendo así a solicitar nuevos datos, pero en caso de ser igual, (=) continúe ejecutando la siguiente línea del programa. La cuarta línea, imprime el mensaje encomillado en pantalla (print), para terminar con la quinta línea que establece su fin. (end) Sin embargo, fue con la introducción de la microcomputadora Altair 8800 en 1975 que BASIC se extendió ampliamente. La mayoría de los lenguajes de programación eran demasiado grandes para ser albergados por las pequeñas memorias de que disponían la mayor parte de las máquinas en esa época; y con el lento almacenamiento que permitía la cinta de papel, y más tarde la cinta de audiocasete (los discos magnéticos aún no existían), y la falta de editores de texto adecuados, un lenguaje pequeño como BASIC resultaba una buena opción. Uno de los primeros en aparecer fue Tiny BASIC, una implementación simple de BASIC escrita originalmente por el Dr. Li-Chen Wang, y portada más tarde a la máquina Altair por Dennis Allison, a petición de Bob Albrecht (quien después fundó Dr. Dobb's Journal (DDJ)). El diseño de Tiny BASIC y el código fuente completo fue publicado en DDJ en 1976. En 1975 Microsoft (entonces formado por dos personas: Bill Gates y Paul Allen) lanzó el Altair BASIC. Luego comenzaron a aparecer bajo licencia versiones para otras plataformas, y millones de copias y variantes pronto estarían en uso. BASIC se convirtió en uno de los lenguajes estándar en el Apple II. En 1979 Microsoft estaba negociando con varios vendedores de microcomputadores, incluyendo IBM, para licenciar un intérprete de BASIC para sus ordenadores. Se incluyó una versión en las memorias ROM de los PC IBM para los equipos sin discos. Los equipos que disponían de una unidad de disquete, el BASIC era iniciado automáticamente siempre que no se colocara ningún disquete de arranque como sistema operativo. Las nuevas compañías intentaban seguir los pasos del éxito de Altair: IMSAI, North Star, y Apple, creando la revolución de la computadora casera. BASIC se convirtió en una característica estándar para casi todas las computadoras hogareñas; la mayoría venía con un sistema operativo básico e intérprete de BASIC, todo alojado en una ROM (algo hecho por primera vez en la Commodore PET en 1977). Pronto habría muchos millones de computadores alrededor del mundo ejecutando BASIC, un número mucho más grande que el de todos los usuarios de otros lenguajes juntos. Muchos programas, especialmente los de la Apple II e IBM PC, dependían de la presencia del intérprete de BASIC de Microsoft y no podían ejecutarse sin este; por lo que Microsoft usó la licencia de copyright en los intérpretes de BASIC para influir en las negociaciones con los vendedores de computadores. El BASIC fue también el lenguaje preinstalado en los computadores hogareños europeos de la década de los 80 como el ZX Spectrum (Sinclair BASIC), Amstrad CPC(Locomotive BASIC), MSX (MSX BASIC), el Commodore 64 y 128 (Basic 2.0, Basic 7.0, Simons' Basic), los Commodore Amiga (AmigaBASIC) o la familia Atari de 8 bits (Atari BASIC) y en los computadores hogareños japoneses NEC PC-8801 y NEC PC-9801 (N88-BASIC), haciendo muchas veces la función de intérprete y sistema operativo primitivo, ya que venían implementados ambos en ROM. Texas Instruments incorporó su propia versión en sus microcomputadoras, tal como la TI99/4A, y también con una versión extendida en una ROM externa o cartuchos (TI-Basic y TI Extended Basic).
Show less
Madurez[editar] En este período se crearon versiones de BASIC nuevas y más poderosas. Microsoft vendió varias versiones de BASIC para MS-DOS/PC-DOS, incluyendo BASICA, GW-BASIC (una versión compatible con BASICA que no necesitaba la ROM de IBM), y Quick BASIC. El fabricante de Turbo Pascal, Borland, publicó Turbo BASIC 1.0 en 1985 (versiones sucesoras aún se venden bajo el nombre de PowerBASIC por otra compañía). Aparecieron varias extensiones de BASIC para computadores caseros, típicamente con capacidad para gráficos, sonido, y comandos DOS, así como facilidades para Programación estructurada. Hubo lenguajes que usaron la sintaxis de BASIC como base para otros sistemas totalmente diferentes, por ejemplo GRASS. Sin embargo a finales de la década de 1980 las computadoras nuevas eran mucho más complejas, e incluían características (como la Interfaz gráfica de usuario) que hacían a BASIC menos apropiado para programarlas. Al mismo tiempo las computadoras progresaban de ser interés para aficionados a herramientas usadas principalmente para ejecutar aplicaciones escritas por otros, y la programación en sí se fue haciendo menos importante para una creciente mayoría de usuarios. BASIC comenzó a desvanecerse, aunque numerosas versiones aún estaban disponibles. Una de las más poderosas fue el denominado Locomotive BASIC 2 diseñado para el entorno gráfico GEM. Esta nueva versión del lenguaje permitía crear aplicaciones con interfaces gráficas dotadas de ventanas, menús y diferentes tipos de gráficos estadísticos. La suerte de BASIC dio un giro nuevamente con la introducción de Visual Basic de Microsoft. Si bien este lenguaje utiliza prácticamente todas las palabras clave (sentencias, estructuras de control y funciones intrínsecas) y forma de manejo y tipo de datos que versiones BASIC anteriores (DOS); VB es abismalmente más potente y evolucionado; y se ha convertido en uno de los lenguajes más utilizados en la plataforma Windows; se estima [cita requerida] que entre el 70 y el 80% del total de aplicaciones comerciales son programadas en VB. A partir de 2002, y con la introducción de la plataforma .NET Framework de Microsoft, Visual Basic comienza a utilizar el paradigma "orientado a objetos", aumentando la potencia del lenguaje y haciéndolo multiplataforma. Visual Basic for Applications (VBA) fue añadido a Microsoft Excel 5.0 en 1993 y al resto de la línea de productos de Microsoft Office en 1997. Windows 98 incluyó un intérprete de VBScript. La versión más reciente de Visual Basic es llamada VB.NET. Por otra parte, también existe la variante OpenOffice.org Basic menos poderosa pero similar a VBA de Microsoft. El Lenguaje[editar] Sintaxis[editar] La sintaxis mínima de BASIC solo necesita los comandos LET, INPUT, PRINT, IF y GOTO. Un intérprete que ejecuta programas con esta sintaxis mínima no necesita una pila. Algunas de las primeras implementaciones eran así de simples. Si se le agrega una pila, se pueden agregar también ciclos FOR anidados y el comando GOSUB. Un intérprete de BASIC con estas características necesita que el código tenga números de línea. Los números de línea fueron un aspecto muy distintivo del BASIC clásico. Sin embargo, el uso de números de línea tiene la desventaja de requerir que el programador estime cuántas líneas ocupará la parte del programa que escribe. Este requerimiento se cumple generalmente incrementando los números de línea en un intervalo regular, como 10, pero esto lleva a problemas a la hora que el código después agregado exceda el espacio disponible entre las líneas originales. Para aliviar este problema de los primeros intérpretes de BASIC, los usuarios expertos pronto escribieron sus propios programas utilitarios para renumerar sus programas, después del ingreso inicial. Más tarde aparecieron intérpretes de BASIC que incluían un comando específico RENUMBER, el que permitía renumerar rápidamente (y las veces que se quisiera) todo el código nuevamente, con cualquier intervalo entre líneas indicado y a partir de un número entero dado; eliminando así el principal problema de la numeración de líneas obligatoria. En los dialectos modernos de BASIC MIUN ya no es necesario incluir números de línea (aunque son permitidos), y la mayoría (o todos) han añadido control de flujo estructurado y los constructores de declaración de datos similares a los de otros lenguajes, tales como C y Pascal: do loop while until exit on... goto gosub select ... case Casi todos los dialectos de BASIC incluyen el comando REM (remark), que posteriormente fue sustituido por el símbolo ´ (apóstrofo o comilla simple). Es un comando no ejecutable, se utiliza a los fines de incluir líneas y notas aclaratorias en el código fuente, para la mejor comprensión (y documentación) del programa. Variantes recientes como Visual Basic han introducido algunas características orientadas a objetos, y hasta herencia en la última versión. La administración de memoria es más fácil que con muchos otros lenguajes de programación procedurales por el uso de un Recolector de basura (y a costas de la velocidad de ejecución). Procedimientos y Control de Flujo[editar] BASIC no tiene una biblioteca externa estándar como otros lenguajes como C. En cambio, el intérprete (o compilador) contiene una biblioteca incorporada de procedimientos intrínsecos. Estos procedimientos incluyen la mayoría de las herramientas que un programador necesita para aprender a programar y escribir aplicaciones sencillas, así como funciones para realizar cálculos matemáticos, manejar cadenas, entrada desde la consola, gráficos y manipulación de archivos. Viejos dialectos de BASIC no permitían a los programadores escribir sus propios procedimientos. Los programadores en cambio debían escribir sus programas con un gran número de enunciados GOTO para hacer las derivaciones de flujo y retorno del programa. Esto podía producir un código fuente muy confuso (la mayoría de las veces era así), comúnmente conocido como Código espagueti; el cual era sumamente difícil de mantener, mucho menos por programadores ajenos al desarrollo del software. Con la inclusión posterior de enunciados GOSUB (Go-Subroutine) se ramificaba el programa a especies de subrutinas, sin parámetros o variables locales. Ellas proveen una forma de implementar una suerte de procedimientos (realmente no lo son, sencillamente es un "salto y retorno") y estructurar más el programa, evitando bastante la utilización de la dañina sentencia GOTO. La mayoría de las versiones de BASIC más modernas, como Microsoft QuickBASIC (1985-1988) y BASIC PDS (Profesional Developmen System - 1990) añadieron soporte completo para subrutinas, funciones y programación estructurada. Esta es otra área donde BASIC difiere de muchos lenguajes de programación. Sin embargo la primitiva GOSUB se ha mantenido hasta las versiones actuales, por razones compatibilidad. BASIC, como Pascal, hace una distinción entre un procedimiento que no devuelve un valor (llamado subrutina) y un procedimiento que lo hace (llamado función). Muchos otros lenguajes (como C) no hacen esa distinción y consideran todo como una función (algunas que devuelven un valor “void” [vacío]). Mientras que las funciones que devuelven un valor son una adición relativamente reciente a los dialectos de BASIC, muchos de los primeros sistemas soportaban la definición de funciones matemáticas en línea, con DEF FN (“DEFine FunctioN” [DEFinir FuncióN]). El Dartmouth BASIC original también soportaba funciones al estilo de Algol, así como subrutinas desde sus primeros tiempos. Tipos de Datos[editar] BASIC es reconocido por tener muy buenas funciones para manipular cadenas de caracteres. Los primeros dialectos ya tenían un juego de funciones fundamentales (LEFT$, MID$, RIGHT$) para extraer y/o reemplazar subcadenas fácilmente. Como las cadenas son utilizadas en aplicaciones diarias, esta era una ventaja considerable sobre otros lenguajes al momento de su introducción. El Dartmouth BASIC original soportaba únicamente datos de tipo numérico y cadenas. No había un tipo entero. Todas las variables numéricas eran de coma flotante. Las cadenas eran de tamaño dinámico. Soportaba arreglos de ambos, números y cadenas, en una o dos dimensiones. Cada dialecto moderno de BASIC posee al menos los tipos de datos numérico y cadena. Estos tipos de datos se pueden distinguir usando un posfijo: los identificadores de cadenas terminan con $ (signo dólar, ejemplo la variable NOMBRE$), mientras que los numéricos sencillamente no llevan posfijo; a menos que se requiera indicar y forzar explícitamente qué tipo de numérico es, por ejemplo A% es entero, A! es real simple precisión y A# es real doble precisión. En BASIC las variables no necesitan forzosamente ser declaradas antes de usarse, excepto los arreglos de más de 10 elementos; aunque versiones BASIC relativamente modernas poseen la opción (considerada buena práctica de programación) para obligar al programador a declarar toda variable antes de su uso (una directiva como OPTION EXPLICIT). La declaración de variables en BASIC se hace usando la palabra clave DIM. Muchos dialectos también soportan tipos numéricos adicionales, como enteros de 16 y 32 bits (simple y long, respectivamente), además de sus números de coma flotante. Adicionalmente algunos permiten la utilización de tipos de datos definidos por el usuario, similar a los "records" de Pascal, o las "structs" de C. Versiones modernas de BASIC (como VBA) soportan una gran variedad de tipos de datos primitivos (o intrínsecos), además de los definidos por el usuario. La mayoría de los dialectos de BASIC soporta arreglos en todos sus tipos de datos; es común también el soporte para arreglos mulidimensionales
Show less
Dependiendo del dialecto de BASIC y del uso del enunciado OPTION BASE, el primer índice de los arreglos que se declaren será 1, por defecto es cero. En los ejemplos anteriores, si no se declara previamente "OPTION BASE 1", el primero es un arreglo en dos dimensiones de enteros 16 bits, con índices que van desde 0 hasta 100 (matriz de 101 x 101 elementos); en tanto que el segundo es un arreglo de enteros en una sola dimensión, de 0 a 30 (vector de 31 elementos). Observar que las dos formas de declaración de enteros son equivalentes, explicitándolo o con el uso del posfijo %. Análogamente para cadenas o string de caracteres, que en este caso además son de longitud variable (dinámicas, por defecto). Disponibilidad y variantes del lenguaje[editar] BASIC está disponible para casi todas las plataformas y sistemas operativos existentes. Una implementación gratuita que cumple con estándares y es multiplataforma es Bywater BASIC (bwBASIC). El intérprete está escrito en C y viene bajo la licencia GNU. Está diseñado para interfaz de texto o consola (no gráfica), no incluye soporte para crear interfaces gráficas de usuario (GUI's, Graphical User Interface). Hay un BASIC gratuito que si incluye soporte para GUI, es similar a Visual Basic y se ejecuta en Windows y GNU/Linux, es Phoenix Object BASIC. Las versiones de intérpretes/compiladores más conocidos son la línea de productos Quick BASIC y QBASIC, este último es solo intérprete, ambos son de Microsoft. En la actualidad lo es el moderno Visual BASIC, que Microsoft ha tratado de mantener al menos mínimamente compatible con incluso las primeras versiones de sus BASIC (en realidad es escasamente compatible), si bien existe FreeBASIC que es un compilador libre, compatible en sintaxis con QBASIC/QuickBASIC. Otras versiones comerciales incluyen PowerBASIC de PowerBASIC, PureBasic de Fantaisie Software, así como TrueBASIC de TrueBASIC, que cumple con los últimos estándares oficiales de BASIC. (True BASIC Inc. fue fundada por los creadores originales de Dartmouth BASIC.) REALbasic es una variante disponible para Mac OS Classic, Mac OS X, Microsoft Windows y GNU/Linux, comercializada por los actuales propietarios de Rapid-Q, otra implementación inicialmente libre de BASIC actualmente abandonada. Una versión de un dialecto simple de BASIC para la parrot virtual machine, muestra cómo se implementa un intérprete de BASIC en un lenguaje similar al ensamblador. SmallBASIC es un dialecto que ejecuta en muchas plataformas (Win32, DOS, GNU/Linux y PalmOS) y viene bajo la licencia GNU (GPL). Existen muchas implementaciones de BASIC freeware o GNU, como BCX, YaBasic, HBasic, XBasic, Gambas o Just BASIC, entre otras.
Show less
Visual Basic is engineered for productively building type-safe and object-oriented applications. Visual Basic enables developers to target Windows, Web, and mobile devices. As with all languages targeting the Microsoft .NET Framework, programs written in Visual Basic benefit from security and language interoperability. This generation of Visual Basic continues the tradition of giving you a fast and easy way to create .NET Framework-based applications. If you don't already have Visual Basic, you can acquire a version of Visual Studio that includes Visual Basic for free from the Visual Studio site. In This Section Getting Started Helps you begin working by listing what is new and what is available in various editions of the product. Programming Concepts Presents the language concepts that are most useful to Visual Basic programmers. Program Structure and Code Conventions Contains documentation on the basic structure and code conventions of Visual Basic such as naming conventions, comments in code, and limitations within Visual Basic. Visual Basic Language Features Provides links to topics that introduce and discuss imp
Show less
including LINQ and XML literals. Visual Basic Reference Contains the Visual Basic language and compiler information. Developing Applications with Visual Basic Discusses various aspects of development in Visual Basic, such as security, exception handling, and using the .NET Framework class library. COM Interop Explains the interoperability issues associated with creating and using component object model (COM) objects with Visual Basic. Samples Contains information about samples. Walkthroughs Provides links to step-by-step instructions for common scenarios. Related Sections Get Started Developing with Visual Studio Provides links to topics that help you learn about the basics of Visual Studio. .NET Framework Class Library Provides entry to the library of classes, interfaces, and value types that are included in the Microsoft .NET Framework SDK.
Show less
Este artículo trata sobre el lenguaje de programación. Para el grupo de humoristas, véase Monty Python. Para el revólver, véase Colt Python. Para otros usos de este término, véase Pitón. Python   Desarrollador(es) Python Software Foundationhttp://www.python.org/ Información general Extensiones comunes.py, .pyc, .pyd, .pyo, .pyw ParadigmaMultiparadigma: orientado a objetos, imperativo, funcional, reflexivo Apareció en1991 Diseñado porGuido van Rossum Última versión estable3.6.2 / 2.7.11 (17 de julio de2017 (1 mes y 17 días)) Sistema de tiposFuertemente tipado, dinámico ImplementacionesCPython, IronPython, Jython, Python for S60, PyPy, Pygame, ActivePython, Unladen Swallow DialectosStackless Python, RPython Influido porABC, ALGOL 68, C, Haskell, Icon, Lisp, Modula-3, Perl, Smalltalk, Java Ha influido aBoo, Cobra, D, Falcon, Genie, Groovy, Ruby, JavaScript, Cython, Go Sistema operativoMultiplataforma LicenciaPython Software Foundation License [editar datos en Wikidata] Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma. Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License,1​ que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.   Índice   [ocultar]  1Historia 2Características y paradigmas 3Filosofía 4Modo interactivo 5Elementos del lenguaje 5.1Comentarios 5.2Variables 5.3Tipos de datos 5.4Listas y Tuplas 5.5Diccionarios 5.6Conjuntos 5.7Listas por comprensión 5.8Funciones 5.9Clases 5.10Condicionales 5.11Bucle for 5.12Bucle while 6Módulos 6.1Interfaz al sistema operativo 6.2Comodines de archivos 6.3Argumentos de linea de órdenes 6.4Matemática 6.5Fechas y Tiempos 7Sistema de objetos 8Biblioteca estándar 9Implementaciones 10Diferencias entre Python 2.x y Python 3.x 11Véase también 12Referencias 13Bibliografía 14Enlaces externos   Historia[editar] Artículo principal: Historia de Python   Guido van Rossum, creador de Python, en la convención OSCON 2006 Python fue creado a finales de los ochenta2​ por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.3​ El nombre del lenguaje proviene de la afición de su creador por los humoristas británicos Monty Python.4​ Van Rossum es el principal autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido, refiriéndose a él como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for Life, BDFL). En 1991, van Rossum publicó el código de la versión 0.9.0 en alt.sources.5​ En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones, funciones y los tipos modulares, como: str, list, dict, entre otros. Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de Modula-3; van Rossum describe el módulo como “una de las mayores unidades de programación de Python”.2​ El modelo de excepciones en Python es parecido al de Modula-3, con la adición de una cláusula else.3​ En el año 1994 se formó comp.lang.python, el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje. Python alcanzó la versión 1.0 en enero de 1994. Una característica de este lanzamiento fueron las herramientas de la programación funcional: lambda, reduce, filter y map. Van Rossum explicó que “hace 12 años, Python adquirió lambda, reduce(), filter() y map(), cortesía de un hacker informático de Lisp que las extrañaba y que envió parches”.6​ El donante fue Amrit Prem; no se hace ninguna mención específica de cualquier herencia de Lisp en las notas de lanzamiento. La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la Corporation for National Research Initiatives(CNRI) en Reston, Virginia, donde lanzó varias versiones del software. Durante su estancia en CNRI, van Rossum lanzó la iniciativa Computer Programming for Everybody (CP4E), con el fin de hacer la programación más accesible a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, similar a la alfabetización básica en inglés y habilidades matemáticas necesarias por muchos trabajadores. Python tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC. El proyecto fue patrocinado por DARPA.7​ En el año 2007, el proyecto CP4E está inactivo, y mientras Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación activa.8​ En el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo BeOpen PythonLabs. CNRI pidió que la versión 1.6 fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una significativa cantidad de traslapo.9​ Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron en Digital Creations.
Show less
Python 2.0 tomó una característica mayor del lenguaje de programación funcional Haskell: listas por comprensión. La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves alfabéticas. Python 2.0 introdujo además un sistema de recolección de basura capaz de recolectar referencias cíclicas.9​ Posterior a este doble lanzamiento, y después que van Rossum dejó CNRI para trabajar con desarrolladores de software comercial, quedó claro que la opción de usar Python con software disponible bajo GNU GPL era muy deseable. La licencia usada entonces, la Python License, incluía una cláusula estipulando que la licencia estaba gobernada por el estado de Virginia, por lo que, bajo la óptica de los abogados de Free Software Foundation (FSF), se hacía incompatible con GPL. CNRI y FSF se relacionaron para cambiar la licencia de software libre de Python para hacerla compatible con GPL. En el año 2001, van Rossum fue premiado con FSF Award for the Advancement of Free Software. Python 1.6.1 es esencialmente el mismo que Python 1.6, con unos pocos arreglos de bugs, y con una nueva licencia compatible con GPL.1​   Código Python con coloreado de sintaxis. Python 2.1 fue un trabajo derivado de Python 1.6.1, así como también de Python 2.0. Su licencia fue renombrada a: Python Software Foundation License. Todo el código, documentación y especificaciones añadidas, desde la fecha del lanzamiento de la versión alfa de Python 2.1, tiene como dueño a Python Software Foundation (PSF), una organización sin ánimo de lucro fundada en el año 2001, tomando como modelo la Apache Software Foundation.1​ Incluido en este lanzamiento fue una implementación del scoping más parecida a las reglas de static scoping (del cual Scheme es el originador).10​ Una innovación mayor en Python 2.2 fue la unificación de los tipos en Python (tipos escritos en C), y clases (tipos escritos en Python) dentro de una jerarquía. Esa unificación logró un modelo de objetos de Python puro y consistente.11​ También fueron agregados los generadores que fueron inspirados por el lenguaje Icon.12​ Las adiciones a la biblioteca estándar de Python y las decisiones sintácticas fueron influenciadas fuertemente por Java en algunos casos: el package logging,13​ introducido en la versión 2.3, está basado en log4j; el parser SAX, introducido en 2.0; el package threading,14​ cuya clase Threadexpone un subconjunto de la interfaz de la clase homónima en Java. Características y paradigmas[editar] Python es un lenguaje de programación multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación imperativa y programación funcional. Otros paradigmas están soportados mediante el uso de extensiones. Python usa tipado dinámico y conteo de referencias para la administración de memoria. Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado enlace dinámico de métodos). Otro objetivo del diseño del lenguaje es la facilidad de extensión. Se pueden escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en aplicaciones que necesitan una interfaz programable. Aunque la programación en Python podría considerarse en algunas situaciones hostil a la programación funcional tradicional del Lisp, existen bastantes analogías entre Python y los lenguajes minimalistas de la familia Lisp como puede ser Scheme.
Show less
Filosofía[editar] Los usuarios de Python se refieren a menudo a la Filosofía Python que es bastante análoga a la filosofía de Unix. El código que sigue los principios de Python de legibilidad y transparencia se dice que es "pythonico". Contrariamente, el código opaco u ofuscado es bautizado como "no pythonico" ("unpythonic" en inglés). Estos principios fueron famosamente descritos por el desarrollador de Python Tim Peters en El Zen de Python Bello es mejor que feo. Explícito es mejor que implícito. Simple es mejor que complejo. Complejo es mejor que complicado. Plano es mejor que anidado. Disperso es mejor que denso. La legibilidad cuenta. Los casos especiales no son tan especiales como para quebrantar las reglas. Lo práctico gana a lo puro. Los errores nunca deberían dejarse pasar silenciosamente. A menos que hayan sido silenciados explícitamente. Frente a la ambigüedad, rechaza la tentación de adivinar. Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo. Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés.15​ Ahora es mejor que nunca. Aunque nunca es a menudo mejor que ya mismo. Si la implementación es difícil de explicar, es una mala idea. Si la implementación es fácil de explicar, puede que sea una buena idea. Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más de esas cosas! Tim Peters, El Zen de Python Desde la versión 2.1.2, Python incluye estos puntos (en su versión original en inglés) como un huevo de pascua que se muestra al ejecutar import this.16​   La LAMP comprende Python (aquí con Squid) Modo interactivo[editar] El intérprete de Python estándar incluye un modo interactivo en el cual se escriben las instrucciones en una especie de intérprete de comandos: las expresiones pueden ser introducidas una a una, pudiendo verse el resultado de su evaluación inmediatamente, lo que da la posibilidad de probar porciones de código en el modo interactivo antes de integrarlo como parte de un programa. Esto resulta útil tanto para las personas que se están familiarizando con el lenguaje como para los programadores más avanzados. Existen otros programas, tales como IDLE, bpython o IPython,17​ que añaden funcionalidades extra al modo interactivo, como el autocompletado de código y el coloreado de la sintaxis del lenguaje. Ejemplo del modo interactivo: >>> 1 + 1 2 >>> a = range(10) >>> print a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Elementos del lenguaje[editar] Python fue diseñado para ser leído con facilidad. Una de sus características es el uso de palabras donde otros lenguajes utilizarían símbolos. Por ejemplo, los operadores lógicos !, || y && en Python se escriben not, or y and, respectivamente. Curiosamente el lenguaje Pascal es junto con COBOL uno de los lenguajes con muy clara sintaxis y ambos son de la década del 70. La idea del código claro y legible no es algo nuevo. El contenido de los bloques de código (bucles, funciones, clases, etc.) es delimitado mediante espacios o tabuladores, conocidos como indentación, antes de cada línea de órdenes pertenecientes al bloque.18​ Python se diferencia así de otros lenguajes de programación que mantienen como costumbre declarar los bloques mediante un conjunto de caracteres, normalmente entre llaves {}.19​20​ Se pueden utilizar tanto espacios como tabuladores para indentar el código, pero se recomienda no mezclarlos.21​ Función factorial en C (indentación opcional)Función factorial en Python (indentación obligatoria) int factorial(int x) { if (x < 0 || x % 1 != 0) { printf("x debe ser un numero entero mayor o igual a 0"); return -1; //Error } if (x == 0) { return 1; } return x * factorial(x - 1); } def factorial(x): assert x >= 0 and x % 1 == 0, "x debe ser un entero mayor o igual a 0." if x == 0: return 1 else: return x * factorial(x - 1) Debido al significado sintáctico de la indentación, cada instrucción debe estar contenida en una sola línea. No obstante, si por legibilidad se quiere dividir la instrucción en varias líneas, añadiendo una barra invertida \ al final de una línea, se indica que la instrucción continúa en la siguiente. Estas instrucciones son equivalentes: lista=['valor 1','valor 2','valor 3'] cadena='Esto es una cadena bastante larga' lista=['valor 1','valor 2' \ ,'valor 3'] cadena='Esto es una cadena ' \ 'bastante larga' Comentarios[editar] Los comentarios se pueden poner de dos formas. La primera y más apropiada para comentarios largos es utilizando la notación ''' comentario ''', tres apóstrofos de apertura y tres de cierre. La segunda notación utiliza el símbolo #, y se extienden hasta el final de la línea. El intérprete no tiene en cuenta los comentarios, lo cual es útil si deseamos poner información adicional en el código. Por ejemplo, una explicación sobre el comportamiento de una sección del programa. ''' Comentario más largo en una línea en Python ''' print "Hola mundo" # También es posible añadir un comentario al final de una línea de código Variables[editar] Las variables se definen de forma dinámica, lo que significa que no se tiene que especificar cuál es su tipo de antemano y puede tomar distintos valores en otro momento, incluso de un tipo diferente al que tenía previamente. Se usa el símbolo = para asignar valores.
Show less
Tipos de datos[editar] Los tipos de datos se pueden resumir en esta tabla: TipoClaseNotasEjemplo strCadenaInmutable'Cadena' unicodeCadenaVersión Unicode de stru'Cadena' listSecuenciaMutable, puede contener objetos de diversos tipos[4.0, 'Cadena', True] tupleSecuenciaInmutable, puede contener objetos de diversos tipos(4.0, 'Cadena', True) setConjuntoMutable, sin orden, no contiene duplicadosset([4.0, 'Cadena', True]) frozensetConjuntoInmutable, sin orden, no contiene duplicadosfrozenset([4.0, 'Cadena', True]) dictMappingGrupo de pares clave:valor{'key1': 1.0, 'key2': False} intNúmero enteroPrecisión fija, convertido en long en caso de overflow.42 longNúmero enteroPrecisión arbitraria42L ó 456966786151987643L floatNúmero decimalComa flotante de doble precisión3.1415927 complexNúmero complejoParte real y parte imaginaria j.(4.5 + 3j) boolBooleanoValor booleano verdadero o falsoTrue o False Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de ejecución. Inmutable: si su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución. Listas y Tuplas[editar] Para declarar una lista se usan los corchetes [], en cambio, para declarar una tupla se usan los paréntesis (). En ambas los elementos se separan por comas, y en el caso de las tuplas es necesario que tengan como mínimo una coma. Tanto las listas como las tuplas pueden contener elementos de diferentes tipos. No obstante las listas suelen usarse para elementos del mismo tipo en cantidad variable mientras que las tuplas se reservan para elementos distintos en cantidad fija. Para acceder a los elementos de una lista o tupla se utiliza un índice entero (empezando por "0", no por "1"). Se pueden utilizar índices negativos para acceder elementos a partir del final. Las listas se caracterizan por ser mutables, es decir, se puede cambiar su contenido en tiempo de ejecución, mientras que las tuplas son inmutables ya que no es posible modificar el contenido una vez creada. Listas >>> lista = ["abc", 42, 3.1415] >>> lista[0] # Acceder a un elemento por su índice 'abc' >>> lista[-1] # Acceder a un elemento usando un índice negativo 3.1415 >>> lista.append(True) # Añadir un elemento al final de la lista >>> lista ['abc', 42, 3.1415, True] >>> del lista[3] # Borra un elemento de la lista usando un índice (en este caso: True) >>> lista[0] = "xyz" # Re-asignar el valor del primer elemento de la lista >>> lista[0:2] # Mostrar los elementos de la lista del índice "0" al "2" (sin incluir este último) ['xyz', 42] >>> lista_anidada = [lista, [True, 42L]] # Es posible anidar listas >>> lista_anidada [['xyz', 42, 3.1415], [True, 42L]] >>> lista_anidada[1][0] # Acceder a un elemento de una lista dentro de otra lista (del segundo elemento, mostrar el primer elemento) True Tuplas >>> tupla = ("abc", 42, 3.1415) >>> tupla[0] # Acceder a un elemento por su índice 'abc' >>> del tupla[0] # No es posible borrar (ni añadir) un elemento en una tupla, lo que provocará una excepción ( Excepción ) >>> tupla[0] = "xyz" # Tampoco es posible re-asignar el valor de un elemento en una tupla, lo que también provocará una excepción ( Excepción ) >>> tupla[0:2] # Mostrar los elementos de la tupla del índice "0" al "2" (sin incluir este último) ('abc', 42) >>> tupla_anidada = (tupla, (True, 3.1415)) # También es posible anidar tuplas >>> 1, 2, 3, "abc" # Esto también es una tupla, aunque es recomendable ponerla entre paréntesis (recuerda que requiere, al menos, una coma) (1, 2, 3, 'abc') >>> (1) # Aunque entre paréntesis, esto no es una tupla, ya que no posee al menos una coma, por lo que únicamente aparecerá el valor 1 >>> (1,) # En cambio, en este otro caso, sí es una tupla (1,) >>> (1, 2) # Con más de un elemento no es necesaria la coma final (1, 2) >>> (1, 2,) # Aunque agregarla no modifica el resultado (1, 2) Diccionarios[editar] Para declarar un diccionario se usan las llaves {}. Contienen elementos separados por comas, donde cada elemento está formado por un par clave:valor (el símbolo : separa la clave de su valor correspondiente). Los diccionarios son mutables, es decir, se puede cambiar el contenido de un valor en tiempo de ejecución. En cambio, las claves de un diccionario deben ser inmutables. Esto quiere decir, por ejemplo, que no podremos usar ni listas ni diccionarios como claves. El valor asociado a una clave puede ser de cualquier tipo de dato, incluso un diccionario. >>> diccionario = {"cadena": "abc", "numero": 42, "lista": [True, 42L]} # Diccionario que tiene diferentes valores por cada clave, incluso una lista >>> diccionario["cadena"] # Usando una clave, se accede a su valor 'abc' >>> diccionario["lista"][0] # Acceder a un elemento de una lista dentro de un valor (del valor de la clave "lista", mostrar el primer elemento) True >>> diccionario["cadena"] = "xyz" # Re-asignar el valor de una clave >>> diccionario["cadena"] 'xyz' >>> diccionario["decimal"] = 3.1415927 # Insertar un nuevo elemento clave:valor >>> diccionario["decimal"] 3.1415927 >>> diccionario_mixto = {"tupla": (True, 3.1415), "diccionario": diccionario} # También es posible que un valor sea un diccionario >>> diccionario_mixto["diccionario"]["lista"][1] # Acceder a un elemento dentro de una lista, que se encuentra dentro de un diccionario 42L >>> diccionario = {("abc",): 42} # Sí es posible que una clave sea una tupla, pues es inmutable >>> diccionario = {["abc"]: 42} # No es posible que una clave sea una lista, pues es mutable, lo que provocará una excepción ( Excepción ) Conjuntos[editar] Los conjuntos se construyen mediante set(items) donde items es cualquier objeto iterable, como listas o tuplas. Los conjuntos no mantienen el orden ni contienen elementos duplicados. Se suelen utilizar para eliminar duplicados de una secuencia, o para operaciones matemáticas como intersección, unión, diferencia y diferencia simétrica. >>> conjunto_inmutable = frozenset(["a", "b", "a"]) # Se utiliza una lista como objeto iterable >>> conjunto_inmutable frozenset(['a', 'b']) >>> conjunto1 = set(["a", "b", "a"]) # Primer conjunto mutable >>> conjunto1 set(['a', 'b']) >>> conjunto2 = set(["a", "b", "c", "d"]) # Segundo conjunto mutable >>> conjunto2 set(['a', 'c', 'b', 'd']) # Recuerda, no mantienen el orden, como los diccionarios >>> conjunto1 & conjunto2 # Intersección set(['a', 'b']) >>> conjunto1 | conjunto2 # Unión set(['a', 'c', 'b', 'd']) >>> conjunto1 - conjunto2 # Diferencia (1) set([]) >>> conjunto2 - conjunto1 # Diferencia (2) set(['c', 'd']) >>> conjunto1 ^ conjunto2 # Diferencia simétrica set(['c', 'd']) Listas por comprensión[editar] Una lista por comprensión (en inglés: list comprehension) es una expresión compacta para definir listas. Al igual que lambda, aparece en lenguajes funcionales. Ejemplos: >>> range(5) # La función "range" devuelve una lista, empezando en 0 y terminando con el número indicado menos uno [0, 1, 2, 3, 4] >>> [i*i for i in range(5)] # Por cada elemento del rango, lo multiplica por sí mismo y lo agrega al resultado [0, 1, 4, 9, 16] >>> lista = [(i, i + 2) for i in range(5)] >>> lista [(0, 2), (1, 3), (2, 4), (3, 5), (4, 6)] Funciones[editar] Las funciones se definen con la palabra clave def, seguida del nombre de la función y sus parámetros. Otra forma de escribir funciones, aunque menos utilizada, es con la palabra clave lambda (que aparece en lenguajes funcionales como Lisp). El valor devuelto en las funciones con def será el dado con la instrucción return. def: >>> def suma(x, y = 2): ... return x + y # Retornar la suma del valor de la variable "x" y el valor de "y" ... >>> suma(4) # La variable "y" no se modifica, siendo su valor: 2 6 >>> suma(4, 10) # La variable "y" sí se modifica, siendo su nuevo valor: 10 14 lambda: >>> suma = lambda x, y = 2: x + y >>> suma(4) # La variable "y" no se modifica, siendo su valor: 2 6 >>> suma(4, 10) # La variable "y" sí se modifica, siendo su nuevo valor: 10 14 Clases[editar] Las clases se definen con la palabra clave class, seguida del nombre de la clase y, si hereda de otra clase, el nombre de esta. En Python 2.x es recomendable que una clase herede de "object", en Python 3.x esto ya no hará falta. En una clase un "método" equivale a una "función", y un "atributo" equivale a una "variable". "__init__" es un método especial que se ejecuta al instanciar la clase, se usa generalmente para inicializar atributos y ejecutar métodos necesarios. Al igual que todos los métodos en Python, debe tener al menos un parámetro, generalmente se utiliza self. El resto de parámetros serán los que se indiquen al instanciar la clase. Los atributos que se desee que sean accesibles desde fuera de la clase se deben declarar usando self. delante del nombre. En python no existe el concepto de encapsulación,22​ por lo que el programador debe ser responsable de asignar los valores a los atributos >>> class Persona(object): ... def __init__(self, nombre, edad): ... self.nombre = nombre # Un atributo cualquiera ... self.edad = edad # Otro atributo cualquiera ... def mostrar_edad(self): # Es necesario que, al menos, tenga un parámetro, generalmente: "self" ... print self.edad # mostrando un atributo ... def modificar_edad(self, edad): # Modificando Edad ... if edad < 0 or edad > 150: # Se comprueba que la edad no sea menor de 0 (algo imposible), ni mayor de 150 (algo realmente difícil) ... return False ... else: # Si está en el rango 0-150, entonces se modifica la variable ... self.edad = edad # Se modifica la edad ... >>> p = Persona("Alicia", 20) # Instanciar la clase, como se puede ver, no se especifica el valor de "self" >>> p.nombre # La variable "nombre" del objeto sí es accesible desde fuera 'Alicia' >>> p.nombre = "Andrea" # Y por tanto, se puede cambiar su contenido >>> p.nombre 'Andrea' >>> p.mostrar_edad() # Se llama a un método de la clase 20 >>> p.modificar_edad(21) # Es posible cambiar la edad usando el método específico que hemos hecho para hacerlo de forma controlada >>> p.mostrar_edad() 21 Condicionales[editar] Una sentencia condicional (if) ejecuta su bloque de código interno sólo si se cumple cierta condición. Se define usando la palabra clave if seguida de la condición, y el bloque de código. Condiciones adicionales, si las hay, se introducen usando elif seguida de la condición y su bloque de código. Todas las condiciones se evalúan secuencialmente hasta encontrar la primera que sea verdadera, y su bloque de código asociado es el único que se ejecuta. Opcionalmente, puede haber un bloque final (la palabra clave else seguida de un bloque de código) que se ejecuta sólo cuando todas las condiciones fueron falsas. >>> verdadero = True >>> if verdadero: # No es necesario poner "verdadero == True" ... print "Verdadero"
Show less