2008-11-28 9 views
8

Supongamos que hay varios proyectos en su mayoría mantenidos por internos inteligentes, que finalmente se van después de un período de tiempo. Los scripts se usan aquí y allá en partes clave, por ejemplo, para hacer una copia de seguridad de una base de datos, cambiarle el nombre, comprimirla, moverla a través de ssh, descomprimirla y luego restaurarla con diferentes configuraciones. Ya sabes, las cosas de scripting.El mejor lenguaje de scripting "oficial" para los programadores de Windows

Se establecen los lenguajes de programación para el lado de la aplicación, pero los de los scripts se han relajado. Actualmente, probablemente haya una mezcla saludable de archivos bash y .bat, y tal vez algunos Perl.

1) Para evitar la proliferación del lenguaje, y 2) porque no quiero forzar a los futuros programadores de Windows, me gustaría establecer un lenguaje de script "oficial".

Google eligió Python para esto, y es famoso por ser legible, fácil de aprender y tener una buena biblioteca; sin embargo, personalmente no me resulta tan legible en comparación con la gramática tipo C, Pascal o Ruby.

En cualquier caso, si tuviera que usar solo un lenguaje de scripting en una máquina con Windows (con Cygwin si lo desea) para todos los scripts, ¿qué le gustaría que fuera, y por qué?

relacionadas guerras religiosas:

+0

echa un vistazo a Gradle! si quieres que tu script sea legible Tu script estará cerca del lenguaje natural. Pero hay demasiada "magia" detrás del lenguaje Goovies, así que no me gusta. Sin embargo, Gradle pronto cambiará a Kotlin con un fuerte soporte IDE. Será una herramienta de creación de scripts muy poderosa – Hiep

Respuesta

16

PowerShell - diseñado desde el principio para ser un lenguaje de programación de Windows, y se pueden enganchar en el CLR para la funcionalidad avanzada.

(sí, me di cuenta de esto no se ejecuta bajo cygwin ... pero ¿por qué es que un requisito?)

+0

Quise decir que Cygwin está disponible para ssh y otras cosas si es necesario. –

+0

No hay problema. Google para "powershell ssh". – dkretz

1

Powershell. Tiene la amplitud y la profundidad, y es totalmente compatible (ahora y en el futuro). A diferencia de Cygwin, por ejemplo.

1

Gah. Iba a decir "powershell" pero estaba demasiado ocupado codificando a powershell para enviar mi respuesta aquí, que otras 2 personas me ganaron.

3

Trataré de proporcionar una alternativa: JavaScript y VBScript funcionan bien incluso en versiones de Windows que ya no existen, y no necesitan una instalación separada como PowerShell. ;) Por supuesto, PowerShell tiene más poder : P

3

Cuando escribí instaladores de productos multiplataforma, la codificación de un script de shell UNIX para Linux/Mac/Solaris etc. es realmente fácil, pero tratando de hacer equivalentes tareas en BAT es como trabajar en la oscuridad, bajo el agua, con las dos manos atadas a la espalda. No puedo afirmar con suficiente fuerza que los scripts BAT son una plaga para la humanidad.

Lo que he oído sobre PowerShell me hace feliz. Es un salvavidas para los desarrolladores de Windows. El único problema es que creo que todavía es una instalación separada, no está disponible por defecto (he leído que estará en Windows Server 2008 y Windows 7).

Oh, bueno, Microsoft tardó 20 años en reemplazar las secuencias de comandos de BAT con algo tan capaz como el shell de UNIX, así que supongo que no debería ser demasiado ingrato.> :-P

Obtener el instalador para PowerShell aquí:

http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

2

me animo a dar la oportunidad de Python. Parece un poco extraño para los programadores 'C' al principio, pero es fácil de aprender y, lo que es más importante, fácil de recordar. Vas a tener internos de varios niveles de habilidad utilizando y modificando el código para que quieras algo que pueda extraer de una amplia base de usuarios. Y si va a tomarse la molestia de instalar algo nuevo, ¿por qué elegir PowerShell que será un callejón sin salida para cualquiera que lo use?

1

El mejor lenguaje de scripting que he encontrado para aplicaciones de interfaz y tipo de control en Windows es AutoHotKey. Cualquiera que desarrolle en las ventanas debe aprender acerca de este lenguaje ... Se le puede ahorrar una enorme cantidad de tiempo sólo la automatización de tareas de Windows retrasados ​​...

Una de las herramientas más útiles que he encontrado para Windows es Texter

Esta utilidad está escrita en AutoHotKey y me evita tener que escribir nada más de unas pocas veces ... ¡Una herramienta indispensable para un programador o cualquier persona que complete formularios o tickets ...!

0

Para su descripción particular, PowerShell suena como un buen camino a seguir ... pero sería un buen argumento para JScript bajo WSH (o JavaScript bajo Rhino/etc.). Suena como que te gusta CYGWIN, pero Powershell actualmente no tiene soporte para otras plataformas (demasiadas cosas nativas, creo, eso es una discusión separada de la OMI, pero Google debería responderla).

Ya casi me hago el caso aquí: http://mikesharp.wordpress.com/2011/04/03/jquery-for-administrators/

Algunos aspectos destacados:

  • JavaScript está instalado de forma predeterminada en cada sistema operativo Windows después '95 guiones
  • JScript trabajar "fuera de la caja "con Active Directory
  • ECMAScript es un estándar abierto (que JScript es una implementación de)
  • A través de ActiveX/COM JScript puede hacer más de lo que PowerShell puede hacer y bajo Rhino tiene el poder de Java
  • se puede utilizar para crear aplicaciones HTA (y más tarde, aplicaciones de metro con WinRT/HTML5)

JScript doesn No tiene acceso directo al .NET framework, aunque hay algunos motores de JavaScript de terceros en .NET puro que lo interpretan y pueden compartir objetos como Jurassic e IronJS. También envoltorios como JavaScriptDotNet (alrededor de Chrome/V8). Powershell es probable que sea más rápido que JScript en WSH, pero no se puede decir lo mismo de otros intérpretes de terceros.

Por favor, no vaya con VBScript (sin probar/capturar, ningún OOP real, propietario, obsoleto, etc.).

0

Si eres como yo y quieres mostrar barras de progreso ingeniosas o pantallas de bienvenida mientras tu script lo está haciendo es mágico (en lugar de una ventana de símbolo del sistema negro/gris), usa la tecla AutoHotkey. Mostrando una barra de progreso es un PITA con JScript/VBScript (WSH) y/o PowerShell de lo que he encontrado.En AHK es tan simple como:

Progress, b2 m, ACME App, Doing some magic... 

También se puede interactuar con casi cualquier control en cualquier ventana y automatizar aplicaciones que no están destinados a ser automatizado.

Cuestiones relacionadas