[+] El lenguaje script [+]

Iniciado por Erik#, 3 Marzo 2009, 18:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Erik#

Bueno, este post consta de las ventajas y desventajas de los lenguajes scripts más utilizados (vbs, python, perl, ruby, tcl y batch).

PYTHON

Actual versión: 3.0
Versión más estable: 2.6

PRO'S:

Es un lenguaje perfecto al ojo humano.
Puedes crear juegos en 3D haciendo graficos detallados y muy buenos.
Su código es muy simple y facil de reconocer.
Sus funciones no son complicadas de utilizar.
Puedes hacer programas orientados a objetos.
El codigo va por sangrias.
Es multiplataforma.
Tiene una gran cantidad de funciones desarrolladas en C y Python.
Tiene bastantes librerias que pueden servirte para desarrollar scripts de muy buena calidad.
Puedes integrarle graficos.
Actualmente si eres fanatico de los ejecutables puedes crear ejecutables con varios programas hechos por usuarios.
Tienes muy buena documentación por la red.
Hay interpretes python para moviles.
- Se iran añadiendo...

CONTRAS:

Necesitas un programa o mejor dicho un interprete para poder hacer funcionar los códigos.
Para los que no apoyan el openSource, mayormente este lenguaje es openSouce .
Documentación sobre librerias interesantes como TK, GTK, PyGAME, PyOGRE no hay mucha en castellano.
Para poder hacer funcionar librerias no estandar hay que instalarlas para poder ejecutar los scripts.
Te puedes liar si eres muy novato con las sangrias.
- Se iran añadiendo...

LIBRERIAS INTERESANTES:

Nombre: PyGAME
Descripción: pygame es una libreria no estandar de python con la que puedes crear videojuegos 2D y si eres bueno en 3D para PC.
Web oficial: http://www.pygame.org/
Descargas: http://www.pygame.org/download.shtml
Documentación en ingles: http://www.pygame.org/docs/
Ejemplos de juegos: http://www.pygame.org/tags/

Nombre: PyOGRE
Descripción: pyogre es una libreria no estandar de python con la que puedes crear juegos y efectos 3D para el ordenador.
Web oficial: http://www.python-ogre.org/
Descargas: http://sourceforge.net/projects/python-ogre/
Documentación en ingles: http://wiki.python-ogre.org/index.php/Main_Page

Nombre: ToolKit
Descripción: TK es una herramienta de desarrollo de graficos muy sencilla en python, actualmente se podria decir que es la estandar, se ha utilizado tambien en TCL, PERL, Ruby...
Web oficial: http://docs.python.org/library/tkinter.html
Descargas: Viene por defecto en python y en linux, buscar en los repositorios.
Documentación: Actualmente estoy desarrollando un curso de PyTK, podeis verlo aquí: http://foro.elhacker.net/scripting/python_curso_de_python_con_interfaces_graficas_tk-t232514.0.html

HOLA MUNDO:

Aqui mostraremos el simple hola mundo que se efectua en los lenguajes:

Código (python) [Seleccionar]
#!/usr/bin/python
print "Hola mundo"



PERL

Actual versión: 5.10.0
Versión estable: 5.0

PRO'S:

Es un lenguaje con muchísimas librerias con las que puedes trabajar.
Es muy parecido a C.
Es orientado a objetos.
Es multiplataforma.
Puedes programarlo con interfaces graficas.
Puedes programar subrutinas.
Es bastante rapido.
Actualmente si eres fanatico de los ejecutables puedes crear ejecutables con varios programas hechos por usuarios.
Hay buena documentación por la red.
- Se ira añadiendo...

CONTRAS:

Es algo dificil de leer.
Para los novatos se pueden liar con los {}.
No se pueden crear videojuegos como en python.
Necesitas un programa o mejor dicho un interprete para poder hacer funcionar los códigos.
Para los que no apoyan el openSource, mayormente este lenguaje es openSouce.
Para poder hacer funcionar librerias no estandar hay que instalarlas para poder ejecutar los scripts.
No hay mucha documentación en castellano
- Se ira añadiendo...

LIBRERIAS INTERESANTES:

Con perl, tienes algo interesante llamado CPAN con el que puedes descargar las librerias actuales que te interesen en perl, es similar a APT de las distribuciones basadas en debian y en el mismo.
Info en el foro: http://foro.elhacker.net/scripting/recopilatorio_de_temas_interesantes_scripting-t132767.0.html;msg622361#msg622361

Ofrecida por FIROS: http://foro.elhacker.net/profiles/firos-u4838.html

Tambien puedes ver el manual de Tkinter en Perl ofrecido por Tifa: http://foro.elhacker.net/scripting/tutorial_perltk-t235670.0.html

HOLA MUNDO:

Aqui mostraremos el simple hola mundo que se efectua en los lenguajes:

Código (perl) [Seleccionar]
#!/usr/bin/perl
print "Hola mundo";



VISUAL BASIC SCRIPT

Versión: No tiene versión es un lenguaje nativo de Windows (utltima versión de windows: 7)
Versión estable: No tiene versión es un lenguaje nativo de Windows (ultima versión estable de windows: Vista).

PRO'S:

Es en código nativo, se necesita el interprete wscript.exe
Es en código nativo no necesita ser compilado.
Puede interactuar totalmente con el sistema.
Puedes utilizar sockets (simples).
Estos códigos mayormente puedes usarlos en Visual Basic 6.
Se puede interactuar con IE.

CONTRAS:

Solo sirve para windows.
No es muy potente.
No puedes usar librerias externas.
No puedes crear juegos ni graficos.
Es openSource para los que no les gusta enseñar código.
No tienes mucha flexibilidad.

HOLA MUNDO:

Aqui mostraremos el simple hola mundo que se efectua en los lenguajes:

Código (vb) [Seleccionar]
msgbox "Hola mundo",vbInformation,"Hola mundo"

RUBY

Actual versión: 1.9.1-rc2.
Versión estable: 1.9.0

PROS:

Es íntegramente orientado a objetos (incluso las clases son objetos)
Second chance, si un objeto no sabe cómo responder a un método se le da una segunda oportunidad (creo que se llama al método method_mising) para que vea si puede resolverlo (hasta el momento conozco 3 lenguajes que implementan ésto, SmallTalk, Ruby y Objective C (y éste es compilado :D ))
Las clases están abiertas, ésto es que puedo agregar o reescribir métodos de cualquier clase en cualquier parte del programa (incluso de las clases nativas del lenguajes)
Bloques (clousures)
Mixin, poder agregar a una clase métodos de un módulo.
Existe documentación en inglés (ésto es muy positivo ya que el lenguaje es japonés, y hace poco que se tradujo su documentación a inglés).
Poder ejecutar comandos del sistema operativo con sólo `` (ejemplo `ls -l`).

CONTRAS:

Mucha convensión de nombres, para que sea constante debe empezar con mayúscula, las variables de clases deben empezar con @@, etc.
Abuso de end's, cada bloque termina con ends, puede llegar a ser desventajoso.
Muchas formas de hacer lo mismo (eso genera que el código quede confuso, es más programadores perl famosos por querer hacer todo en una sóla línea hagan cosas raras que sólo ellos entienden).
Es lento (incluso su versión de java jruby es más rápido), aunque en la versión 1.9 ésto parece solucionado.

HOLA MUNDO:
Aqui mostraremos el simple hola mundo que se efectua en los lenguajes:

Código (ruby) [Seleccionar]
puts "Hola mundo"
Continuare, modificare este post, solo hare 1, pero esque quiero descansar los dedos xD

0x0309

Haber si te ayudo un poco con lo que sé.

Visual Basic Script
Sí es interpretado, requiere Windows Script Version (wscript.exe) v5.6 instalado que incluye Visual Basic® Script Edition (VBScript) versión 5.6. Los archivos pueden codificarse para no ser leídos por ojos humanos con una utilidad de Microsoft (sce10en.exe), de esa forma un archivo .vbs queda como .vbe . Pero, como bien explica una utilidad de código abierto (srcdec18) se puede revertir la codificación, pues es una codificación, no una cifrado.
Si es mezclado con html, solo puede verse utilizando Internet Explorer.




Erik#

Cita de: 0x0309 en  3 Marzo 2009, 20:51 PM
Haber si te ayudo un poco con lo que sé.

Visual Basic Script
Sí es interpretado, requiere Windows Script Version (wscript.exe) v5.6 instalado que incluye Visual Basic® Script Edition (VBScript) versión 5.6. Los archivos pueden codificarse para no ser leídos por ojos humanos con una utilidad de Microsoft (sce10en.exe), de esa forma un archivo .vbs queda como .vbe . Pero, como bien explica una utilidad de código abierto (srcdec18) se puede revertir la codificación, pues es una codificación, no una cifrado.
Si es mezclado con html, solo puede verse utilizando Internet Explorer.





Gracias, de VBS se lo justo xD, pero ya sabia que se usaba wscript.exe pero viene por defecto...xd

Anibal784

Cita de: Erik#
Su diseño grafico es de bastante mala calidad.
Si la serpiente es bastante fea... ¿qué quieres decir conque su diseño gráfico es bastante mala calidad?, no es un lenguaje de diseño gráfico (aunque se puede integrar con gimp).

Cita de: Erik#
No puedes crear juegos con graficos excelentes ni notables.
Claaaaro, y pygame es una librería que no sirve para nada...

Cita de: Erik#
Necesitas un programa o mejor dicho un interprete para poder hacer funcionar los códigos.
Eso es cierto puede verse como contra.

Cita de: Erik#
Para los que no apoyan el openSource, mayormente este lenguaje es openSouce .
Que yo sepa, el lenguaje es completamente openSource, es más me parece que es de código libre, igual existen librerías que pueden ser cerradas.

Cita de: Erik#
Documentación sobre librerias interesantes como TK, GTK, PyGAME, PyOGRE no hay mucha en castellano.
Tk, ni siquiera en inglés, es bastante dificil encontrar ese tipo de información

Cita de: Erik#
Para poder hacer funcionar librerias no estandar hay que instalarlas para poder ejecutar los scripts.
Por lo general en cualquier lenguaje pasa eso... a ver, no me equivoco, en todos los lenguajes pasa eso, por algo no son estándar.

Cita de: Erik#
Te puedes liar si eres muy novato con las sangrias.
Si, puede ser.

Como contras, yo agregaría, se puede llegar a confundir los bloques si se mezclan tabs y espacios (igual está sumamente desaconsejado hacer eso).
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

Foxy Rider

Justo alguien que no sabe de programación viene a escribir de programación ...
curioso ...

CitarNo puedes crear juegos con graficos excelentes ni notables.

aajam, mirá, tenés pyOgre, y, Ogre3D es un Motor 3D de muy buena calidad ....
fijate de qué hablás ;)

(después de leer detenidamente)

así que asumo que es un copy&paste esto, ya que abajo mencionás pyOgre ...

ruby,tcl y batch son lenguajes, TE GUSTE O NO ...
tienen sus construcciones como cualquier otro lenguaje...

"Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas"  -> http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n

del resto, no opino ...

Alex~

Anibal784

@The Queen Of Ice, creo que tanto ruby, tcl y batch están tachados porque no tienen ningún pros y contra (no porque Erik# no los considere lenguajes).

Agrego otra cosa (que yo en opinión personal) creo que es una gran desventaja de perl, en perl cada variable tiene tipo y ese tipo se define con el nombre de la variable (@, $ y creo que %, aunque no recuerdo bien $ variable escalar, @ creo que lista/arreglo y % me parece que es diccionario), igual, algo con que se llega a confundir hasta que se le agarre la mano es lidiar con esos prefijos de variables y que para acceder a una posición concreta del arreglo se tiene que usar $ (ejemplo $arreglo[10]), si bien tiene su lógica, confunde al principio, si bien en la versión 6 si no me equivoco cambian eso y ahora si es un arreglo se hace @arreglo[10]. Otra cosa, perl no es orientado a objetos, si bien se puede llegar a lograr algo parecido, es puro hack y el lenguaje no fue pensado así (ahora la versión 6 es la primera que incorpora objetos). Pro de perl se puede acceder a los comandos del sistema operativo con ``, muy bueno, otra cosa es que permite crear arreglos de string de una forma fácil (no recuerdo bien como, lo vi muy por arriba a éste lenguaje pero se que se puede).
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.


leogtz

Perl si es orientado a objetos, tengo un buen libro sobre Perl, en donde se trata ese tema.

Object Oriented Perl, de Damian Conway

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

^Tifa^

CitarAgrego otra cosa (que yo en opinión personal) creo que es una gran desventaja de perl, en perl cada variable tiene tipo y ese tipo se define con el nombre de la variable (@, $ y creo que %, aunque no recuerdo bien $ variable escalar, @ creo que lista/arreglo y % me parece que es diccionario), igual, algo con que se llega a confundir hasta que se le agarre la mano es lidiar con esos prefijos de variables y que para acceder a una posición concreta del arreglo se tiene que usar $ (ejemplo $arreglo[10]), si bien tiene su lógica, confunde al principio, si bien en la versión 6 si no me equivoco cambian eso y ahora si es un arreglo se hace @arreglo[10].

Es una desventaja poseer variables con distintos tipos de datos definidos??? Que acaso no aplica este mismito caso en lenguajes mas profundos tipo C/C++? Yo lo veo bastante ventajoso conocer cuando una variable es de algun tipo... porque por ejemplo en el caso de PHP, no se realmente cuando cierta variable se refiere a un arreglo, o a una referencia asociativa o a una variable que guarda caracteres o numeros la verdad.... Solo me doy cuenta si me dirigo en ocasiones donde se declaro la variable y esto sinceramente no es ninguna ventaja, al menos para mi, prefiero conocer que tipo de dato es una variable para saber que estoy manejando sin mucho rollo....

No se quien puede confundirse realmente si esta interesado en aprender programacion que conste, pero no se quien podria confundirse con los distintos tipos de datos primitivos que se utilizan para declarar variables... sobretodo cuando esto es precisamente la primera introduccion que se les da a los estudiantes de sistemas para que conozcan los distintos tipos de datos de las variables que aplican no solo para la gran mayoria de lenguajes de programacion actuales incluyendo los POO sino tambien para casi todas las bases de datos relacionales existentes ... sino es que en todas, pero como no conozco todas por eso no generalizo.

Anibal784

Cita de: ^TiFa^
Es una desventaja poseer variables con distintos tipos de datos definidos??? Que acaso no aplica este mismito caso en lenguajes mas profundos tipo C/C++? Yo lo veo bastante ventajoso conocer cuando una variable es de algun tipo... porque por ejemplo en el caso de PHP, no se realmente cuando cierta variable se refiere a un arreglo, o a una referencia asociativa o a una variable que guarda caracteres o numeros la verdad.... Solo me doy cuenta si me dirigo en ocasiones donde se declaro la variable y esto sinceramente no es ninguna ventaja, al menos para mi, prefiero conocer que tipo de dato es una variable para saber que estoy manejando sin mucho rollo....
Intentaré explicarme mejor, es cierto el tener diferente prefijo sobre el nombre de la variable para saber de que tipo es es muy ventajoso, ahora la desventaja viene en que para (por ejemplo) acceder a un elemento de un arreglo se utiliza un $arreglo[29], ahora, no recuerdo bien, pero si es arreglos de arreglos, ¿debería ser @arreglo[10]?, ves la diferencia y a lo que yo apunto, eso si es bastante engorroso y podría (y es mas creo que en la versión 6 es donde se empieza a aplicar) siempre se acceda con @arreglo[indice]. Yo recuerdo que cuando intenté ver el por qué de que lo llaman un lenguaje difícil a perl lo primero que vi fue la distinción de nombrar a las variables (llámese @, $ y %) y dije "pero eso es muy bueno", hasta que llegué a la parte de cómo se accede a un elemento contenido en un arreglo o un dicionario, y ahí es donde se me hizo el metete. Insisto tiene su lógica y cuando se entiende la lógica es muy coherente y puede uno acostumbrarse y convivir con ello.

Cita de: Leo Gutierrez.
Perl si es orientado a objetos, tengo un buen libro sobre Perl, en donde se trata ese tema.

Object Oriented Perl, de Damian Conway

Saludos.
Jajajajaja, C es altamente procedural sin embargo se puede hacer orientación a objetos (GLib es un ejemplo), Lisp es funcional y tiene objetos, se puede hacer algo parecido a la orientación a objetos con perl, pero es un "hack" (utilizar diccionarios creo), el lenguaje no está preparado para ello (bueno, en la 5 lo prepararon un poco mejor, pero igual sigue sin ser orientado a objetos), la versión 6 (y ésta es la que descompagina todo) es la primera que implementa Orientación a Objetos en perl
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.