2010-02-28 14 views
8

Actualmente estoy trabajando en un proyecto grande y relativamente pronto necesitaré un lenguaje de scripts para scripts de utilidad, como implementar el proyecto completo desde el origen, verificar y corregir la base de datos, crear un paquete listo para implementar, y más. El proyecto está escrito en PHP y pensé en usarlo, pero descarté que no sea adecuado para la tarea.¿Qué lenguaje de scripting usar para scripts de utilidad?

Lo que yo principalmente requerir sería, ordenadas por improtance:

  1. portable a través de los tres primeros sistemas operativos: Windows, Linux y OS X
  2. Un montón de buenas bibliotecas disponibles, embravecido de la manipulación de archivos y directorios al acceso a la base de datos. La GUI no es necesaria, aunque las redes pueden ser (descargar algunas cosas a través de FTP o HTTP). Una gran ventaja sería la capacidad de comprar de forma nativa un repositorio de Subversion.
  3. Se requiere un buen apoyo de la comunidad. Tanto Python como Ruby son excelentes en esta área.
  4. Capacidad de ampliación: si no hay una buena biblioteca disponible para hacer algo, qué fácil me resulta implementarla o utilizar una solución nativa (ejecutar un programa, llamar a una función nativa).
  5. Facilidad de implementación: qué tan fácil es ponerse en marcha en Windows (XP & 7, Server 2003+), Linux (CentOS 5.2, Ubuntu & Ubuntu Server 8.04+) y OS X (10.5+).
  6. Facilidad de aprendizaje. Si bien todos los lenguajes de scripting no son difíciles de aprender para ningún programador que valga la pena, me interesa uno que sea bastante rápido y fácil de aprender.

Eso es todo lo que puedo pensar por ahora. Revisé Python y Ruby; Python cumple todos los requisitos, y Ruby parece hacerlo también, aunque no estoy seguro de la facilidad de implementación en Windows y la disponibilidad de las bibliotecas. Sin embargo, también estoy buscando sus experiencias con el uso de este tipo de guiones escritos en el idioma de su elección.

Respuesta

10

Lo dijo: Python cumple todos los requisitos. Ese es mi "voto", aunque puedo ser un poco parcial.

Editar: (en mi experiencia de primera mano, en el contexto de las tareas descritas en cuestión)

  • no tengo experiencia con los lanzamientos de construcción de Python (I encontrar hormiga o incluso hacer una mejor herramienta para esta tarea particular).
  • "Messing" con bases de datos: ¡muy rápido!
  • Mover archivos, inspeccionar directorios, etc.: ¡muy rápido!

A riesgo de parecer engreído o inexperto, con respecto a las actividades de tipo scripting, nunca me pinté en una esquina que Python no me permitió salir.

Sin embargo, una posible "crítica" de Python es, paradójicamente, su extensa biblioteca de paquetes (además de su generosa biblioteca estándar); si bien es bueno tener todas estas bibliotecas de "terceros", a veces puede ser difícil calibrar la madurez y la eficacia de algunos de estos paquetes, y a veces se pierde un tiempo seleccionándolos (o decidiendo si escribir "desde cero") . Sin embargo, tales evaluaciones pueden ser lo suficientemente rápidas, sin embargo, gracias a la naturaleza interactiva del intérprete.

+0

Lo mismo ocurre con Ruby, aunque a un nivel menor. Pero: "Sin embargo, también estoy buscando sus experiencias con el uso de este tipo de guiones escritos en el idioma de su elección". – CMircea

+0

Creo que Python es un mejor todo terreno que Ruby, que parece más centrado en el desarrollo web. –

+0

+1 por la paradoja de sentirse abrumado por las bibliotecas de calidad variable. No se presta suficiente atención ... –

1

http://ant.apache.org/

lo uso tanto para proyectos de PHP y Java. Y para responder a sus puntos:

  • portabilidad: 100%
  • bibliotecas para db, redes, E/S, SVN: sí, algunos están integradas, para el resto utiliza extensiones
  • de la comunidad: muchos libros y recursos en línea
  • posibilidad de ampliación: sí, hormiga fue diseñado para ser extensible
  • instalación: muertos fácil
  • facilidad de aprendizaje: bastante fácil
+0

Gracias, parece interesante, lo buscaré. – CMircea

+0

Ant parece más una herramienta de compilación que un lenguaje de scripting general. Tampoco soy muy aficionado a Java. Preferiría especialmente si no estuviera forzado a usar OOP. – CMircea

+0

Ant también sería mi elección. No lo he usado extensamente, pero definitivamente se ajusta a sus requisitos. – Checksum

1

Python es un excelente lenguaje de scripting y muy portátil. Es mi elección cuando la portabilidad de mis scripts es el problema principal.

Pero la portabilidad rara vez es mi problema principal. La mayoría de mis guiones tratan bastante íntimamente con los problemas del sistema operativo. Entonces, cuando sé que me estoy ejecutando en Windows y puede que no tenga Python disponible, utilizo JScript bajo Windows Script Host.

+0

El problema con JavaScript es la imposibilidad de usar fácilmente bibliotecas externas. La forma de acceder a un archivo en Windows es completamente diferente de cómo lo haría en Unix, por lo que es inadecuado para la tarea en cuestión. – Gabe

+0

Python es el primero en mi lista en este momento, pero también le pregunté cómo funciona el lenguaje en esta tarea específica. No necesito hacer muchas cosas específicas de sistema operativo con los scripts. – CMircea

+0

@iconK: lo siento, no estaba claro. Para sus tareas y prioridades, iría con Python. buen soporte en muchas plataformas y bibliotecas muy buenas/ricas. –

0

Utilizo tanto Perl como Python de forma extensiva para la creación de scripts en Windows, por lo que no dudaría en utilizarlo para la implementación. Elegiría Python por su curva de aprendizaje más suave.

2

Ruby es decente, pero python es excelente. Python viene con una gran documentación, es fácil de aprender, tiene una gran comunidad, posee una biblioteca estándar muy útil, se preinstalará en la mayoría de los sistemas tipo Unix, y no es demasiado doloroso instalarlo en Windows.

+1

No es demasiado doloroso == Ejecute el instalador y haga doble clic en un archivo para ejecutar? Parece más fácil que en Linux. – CMircea

0

Perl, excepto tal vez para la curva de aprendizaje. La portabilidad no es un problema, para las bibliotecas hay CPAN, la comunidad es perfecta, llamar a los programas externos no es un problema y siempre se puede ajustar una biblioteca C y la instalación es una tarea fácil.

1

Python, sin lugar a dudas. Cumple con todos sus objetivos y tiene los beneficios de ser conciso y fácil de aprender.

0

Python es realmente genial para este tipo de cosas. Solo quería llamar su atención sobre Tcl, que es absolutamente increíble para el scripting de uso general y el manejo de archivos. Wikipedia entry about Tcl

1

iconiK,

Esta respuesta es única periféricamente relacionado con su pregunta, pero se están reuniendo más información de la que necesita para resolver este problema. Su análisis e investigación preliminar son bastante impresionantes, y el costo de posponer su decisión es mayor que el valor marginal de Python sobre Ruby o viceversa.

También estoy buscando para sus experiencias

Mi experiencia es que hay un límite a la cantidad que se puede aprender acerca de una tecnología mediante la investigación, y mi instinto me dice que ya hayan alcanzado ese límite. Estará mejor si deja de investigar y continúa con su proyecto. Si puede hacer un pequeño proyecto piloto, será genial, pero si no, se encuentra en el punto en el que aprenderá más simplemente buceando de lo que posiblemente pueda aprender haciendo preguntas.

Probablemente mi experiencia más reciente sea que en 1999 tuve que decidir si se escribiría un proyecto de compilación importante en Objective Caml o Haskell. Escogimos a Caml, y muchas veces deseé haber elegido a Haskell, pero en realidad, en 1999, Caml fue probablemente la mejor opción, y ciertamente hicimos un gran trabajo con ese compilador. La peor elección habría sido esperar para reunir más información.

Creo que la otra lección aquí es que debido a que ninguna tecnología es perfecta, cualquiera que sea la tecnología que elijas, tendrás remordimientos. El hecho de que tenga remordimientos no significa que tomó la decisión "incorrecta".

¡Código en buena salud!

+0

Sin embargo, tengo mucho tiempo. Hasta que el proyecto esté a medio terminar, puedo buscar el lenguaje de scripting perfecto. De todos modos, he elegido Python y estoy leyendo Dive in Python 3. – CMircea

Cuestiones relacionadas