2010-04-09 11 views
14

Soy un desarrollador de Delphi en la plataforma de Windows, recientemente leí el tutorial de PHP en W3CSchools, parece interesante.¿Cómo se usa el lenguaje de scripting (PHP, Python, etc.) para mejorar su productividad?

Todos sabemos que los lenguajes de scripting son muy buenos en el desarrollo de sitios web, pero también quiero utilizarlos para mejorar mi productividad o realizar tareas tediosas rápidamente, tal vez un procesamiento de cadenas/archivos rápido y sucio.

¿Qué suele hacer con los lenguajes de scripting además del desarrollo de software? ¿Y necesitamos un IDE/editor receptivo y decente para obtener productividad al escribir scripts para este propósito?

+4

encuesta pregunta. por favor hazlo wiki comunitario. – Mike

+6

sea lo que sea Mike ...no importa – ecounysis

+0

No hay nada que te impida construir código descartable en los lenguajes 'empresariales'. Si está acostumbrado al lenguaje y las herramientas, aún será más rápido. – CurtainDog

Respuesta

17

Te diré cómo he mejorado mi productividad con Python en Windows. Intento escribir todo en Python, cada aplicación que necesito, a menos que sepa que no se escalará y necesitaré herramientas más eficientes (en cuyo caso, personalmente uso C++, pero también podría usar C#/Delphi).

Resulta que para la mayoría (> 95%) de las herramientas y utilidades necesarias, Python (junto con PyQt para la GUI) es lo suficientemente bueno, y para mí es un lenguaje mucho más productivo que C++. La clave es dejar de pensar en Python como un "lenguaje de scripting". No es menos un lenguaje de programación que C++/Java/C#/Delphi/lo que dices tú. Tiene sus puntos fuertes y tiene sus limitaciones. Mientras los conozca y sepa cómo elegir la herramienta adecuada para el trabajo, lo hará bien.

No necesita ningún IDE especial. Utilizo Scite para todos mis códigos Python (en Windows y Linux, por cierto), y funciona muy bien.

+6

+1 para Python es un lenguaje de programación de propósito general. –

+1

Es cierto que los "lenguajes de scripting" son una noción menos relevante ahora que hace 10 años. Python se puede caracterizar como un lenguaje * dinámico *, con todas las ventajas que esto trae (el tipado dinámico es uno de ellos). – EOL

+0

Gracias Eli, a diferencia de otros lenguajes dinámicos, me parezco más a Python (Simple y OO), y me gustaría poder comprar fragmentos de código ya hechos de marketspaceon.net, ya sabes, también quiero hacer algunas tareas basadas en web (primarias para presentar una aplicación de escritorio, y la descarga relacionada/gestión de licencias, etc.) –

2

La respuesta breve sería que puede hacer muchas cosas con los lenguajes de scripting, pero aún puede llamarlo programación o desarrollo de software.

Pero, respondiendo a sus preguntas, lo que me parece más útil en mi trabajo, para aumentar mi productividad, es un montón de scripts shell/perl/python.

Creo que el uso más común de los scripts son varios tipos de informes (en un sentido amplio), dicen tener un archivo de registro y querer recuperar cierta información (o algún tipo de estadística), el script puede ayudarte a lograr eso en muy poco tiempo.

Algunas palabras clave para usted: shell scripting, expresiones regulares, formato de salida.

Gracias

+0

Kuba, gracias por compartir. –

1

Por lo tanto, con frecuencia he estado usando Python para prototipos de soluciones a diversas tareas de programación (es bueno para conseguir el algoritmo justo antes de la aplicación con todas las campanas y silbatos en algún otro lenguaje de programación), y tengo estado usando scripts BASH shell para automatizar una variedad de tareas (por ejemplo, ejecutar un programa en múltiples conjuntos diferentes de entrada, guardar los resultados, conectar a grep y otras utilidades, etc.).

Cuando se trata de tedio, realmente recomendaría BASH. Puede obtenerlo en Windows instalando Cygwin. Por ejemplo, con frecuencia encuentro haciendo cosas como la siguiente para mis diversos cursos:

 
for i in {1..10} ; do 
    ./process_data input-$i.txt | tee result-$i.transcript 
done 

que no es necesario un buen editor ... cualquier editor de texto no tendrán ningún problema. Dicho esto, si está buscando un buen editor de Python, Eclipse con PyDev es bastante bueno. Personalmente, utilizo Xcode como editor de código de propósito general para todo ... aunque realmente no trae nada a la mesa para las secuencias de comandos de shell de Python o BASH ...por supuesto, no tienes Xcode en Windows. Sin embargo, puede usar Notepad ++, Bloc de notas o Wordpad.

+0

Geany es bueno también, y plataforma cruzada. – detly

+0

+1 para cygwin/bash –

+0

Gracias Michael, ya que también quiero utilizar un lenguaje de secuencias de comandos/dinámico para hacer algunos trabajos del lado del servidor web, será mejor que busque un lenguaje que admita web scripting ... –

1

Como usuario de windows/linux en el trabajo 50/50, python es especialmente útil, ya que casi todo lo que escribo es multiplataforma, y ​​también porque Windows realmente no tiene un lenguaje de shell muy útil. Con pyqt, puedo crear una interfaz gráfica de usuario bastante impresionante en unas pocas horas. Estoy bastante seguro de que en los próximos años, Python se hará cargo del mundo.

+0

¿PyQT es compatible con todas las funciones de QT? QT parece interesante para el desarrollo de escritorio –

+0

@Edwin, ese es su objetivo. Y aún no me he encontrado con una característica de Qt que no era compatible con PyQt. Puede ser un poco confuso; sin embargo, porque los números de lanzamiento PyQt no necesariamente siguen los números de la versión Qt. Pero el combo python/pyqt es bastante poderoso –

+0

¡Suena bien! Por cierto, ¿hay una lista de aplicaciones de escritorio bonitas que se desarrollan con Python + QT? –

1

soy TextMate usuario y desarrollo activamente extensiones ("paquetes") para mi propio uso en php, ruby ​​y javascript.

+0

Gracias, no uso Mac, desafortunadamente ... –

11
  1. Puede ayudarse DEFINITIVAMENTE automatizando muchas tareas con lenguajes de scripting.

    Tenga en cuenta: algunos de esos idiomas "script" - como Perl - son realmente muy potentes lenguajes de desarrollo de software de propósito general que acaba de pasar a ser etiquetado como "secuencias de comandos" porque su nicho de mercado y/o filiación inicial fue de secuencias de comandos (y porque es fácil hacer scripts simples con ellos).

    Personalmente utilizo Perl para la automatización de secuencias de comandos rápidas (2% de uso), desarrollo web (8% de uso) y desarrollo de software financiero empresarial (90% restante).

  2. En cuanto a ejemplos de lo que puede hacer, la respuesta es "casi todo" y depende en gran medida de cuál es el trabajo típico que necesita automatizar. Uso Perl para cosas relacionadas con el sistema de archivos (organización de archivos/limpieza/cambio de nombre) para la manipulación de contenido de archivos (el origen de Perl y una de las suites más sólidas sigue siendo procesamiento de texto) y reportes variados ("R" en Perl significa "Informes") y para el crujido de datos variados que es demasiado difícil de hacer rápidamente en Excel.

    Tenga en cuenta que Perl tiene una gran variedad de bibliotecas (llamadas módulos) disponibles a través de CPAN que se pueden utilizar para hacer prácticamente cualquier cosa excepto tostar pan o viajar en el tiempo; así como numerosos marcos para el desarrollo de software serio.

    Para reflejar la respuesta de Python, Perl también se puede usar para cosas de GUI en Windows. No detallaré aquí ya que SO tiene discusiones muy completas sobre el tema en caso de que decida ir con Perl.

  3. Como un ejemplo muy específico ilustrar lo anterior, los 2 últimos proyectos que hice por mí mismo la indexación de los sistemas que indexan los nombres de archivo, los metadatos y contenidos y proporcionan una manera de buscar a través del índice. La primera era búsqueda de código local (versión pobre del dispositivo Google Code Search), la segunda era un sistema de administración de colección de archivos para mis mp3 (I double dog se atreve con cualquier software existente para permitirme buscar expresiones regulares al azar por etiqueta palabras clave). Ambos usaron back-end SQLite y Perl para indexación y front-end. El segundo ejemplo específico fue un conteo de 2 líneas que contestan la cantidad de votos que tuve para una etiqueta específica en StackOverflow :)

  4. Se beneficiará enormemente de un buen IDE o simplemente editor de programación para CUALQUIER programación, scripts incluidos. En Windows puede usar Notepad ++ o UltraEdit o muchos más, por lo que debería tener una lista en algún lugar. Cualquier editor con "intellisense" (terminación workd inteligente) obtiene una ventaja.

+2

¿Por qué el voto a favor? – DVK

+1

Probablemente porque la gente piensa que la flecha hacia abajo significa "No estoy de acuerdo/no me gusta esta respuesta", no "Esta respuesta no fue útil". – tzot

+0

Hola DVK, Muchas gracias por compartir tu experiencia de la vida real, ¡lo tengo! –

3

Los lenguajes de scripting pueden ser muy potentes.Así es como yo creo Lua mejora mi productividad:

  • La central de datos es la matriz asociativa (tabla hash mutable). La implementación de Lua es extraordinariamente eficiente y sirve bien como hash, tabla, conjunto y lista.

  • El procesamiento de cadenas se encuentra en un excelente punto dulce: casi tan poderoso como las expresiones regulares, y mucho más legible. El carácter de escape de patrón % es diferente del string escape char \. El "patrón con captura" de Lua es más simple que las expresiones regulares POSIX y mucho más simple que las expresiones regulares de Perl, y cumple con el 90% de mis necesidades de escaneo de cadenas. Un excelente ejemplo de diseño de ingeniería.

Estas dos características cubren los principales datos. Además de esto,

  • La tabla es el único tipo mutable, por lo que los programas son más fáciles de razonar.

  • Lua tiene funciones anidadas de primera clase, por lo que todo el poder del paradigma funcional está disponible si lo necesita — pero si no lo usa, no paga.

  • Lua tiene una construcción de iteración incorporada, nativa del lenguaje, que es adecuada para iterar sobre colecciones, sistemas de archivos, lo que sea. Mucho mejor que tener algún "objeto iterador" con "métodos de iterador". La iteración es lo suficientemente importante como para que me beneficie enormemente tener una construcción de lenguaje dedicada a ella (el ciclo genérico for).

  • El lenguaje es lo suficientemente simple que después de un estudio modesto, entiendo todo de la misma.

  • Implementación interactiva a la velocidad de la luz.

  • Por necesidad, puedo importar cualquier biblioteca de C existente a Lua.

  • Las bibliotecas estándar de Lua satisfacen la mayoría de mis necesidades sin dejar de ser lo suficientemente pequeñas como para ser comprensibles. Si necesito una biblioteca de propósito especial (XML, HTTP, análisis sintáctico), generalmente ya está disponible y es fácil de entender.

  • Nuevamente cuando lo necesito, puedo ampliarlo fácilmente con mis propios tipos de datos.

Me parece que estoy usando Lua para todas las tareas que utiliza para obtener hecho con sh, awk, sed, Perl, y que multitud. También me parece que el 90% del tiempo puedo escribir un programa Lua simple y útil mucho más rápido que un programa C simple y útil. (El otro 10% es cuando estoy principalmente haciendo llamadas al sistema.)

A pesar de que he perdido la cuenta del número de idiomas que conozco bien (más de 10.000 líneas de código escritas), hoy en día casi todos los de mis necesidades se satisfacen con sólo 3:

  • Lua para casi todos los programas ligeros, incluyendo el procesamiento de cadenas/archivo rápido y sucio-que lo mencionas

  • C para la enseñanza (porque debo enseñar C)

  • Haskell para la creación de prototipos (ya veces de aplicación) sofisticada o larg sistemas electrónicos, especialmente compiladores

También he utilizado una mezcla de Lua y C para algunas aplicaciones bastante importantes, como nbibtex y noweb 3.

+0

Gracias Norman, he escuchado cosas sobre Lua, pero parece que hay menos recursos al respecto en la web. –

+0

@Edwin: creo que encontrarás todo lo que necesitas en lua.org. Una rareza de Lua es que no están utilizando foros web, sino que siguen con una lista de correo. ¡Está * muy * activo! –

+0

gracias por el enlace. Personalmente, me gusta más la sintaxis de PYthon :) –

2

Así que probablemente ya hayas tomado la foto, realizarás ciertas tareas mucho más rápido utilizando el lenguaje de scripting (y con respecto a la palabra scripting: ya no lo considero derogatorio, sino todo lo contrario). Demonios, tengo algunos amigos (accidentalmente programadores de Delphi) que aún usan Delphi para realizar algunas tareas únicas, buscar en archivos de texto, etc., pasar horas escribiendo clases y formularios Delphi, compilar una y otra vez, en lugar de escribir unos minutos Python/Ruby/Perl one-liners.

Pero creo que hay algo aún más importante en ello (dada la opción correcta): aprenderá nuevos conceptos de programación. Crecerás como programador. Sobrepasarás el viejo punto de vista "tienes el martillo, así que todo parece un clavo". Aprenderás a respirar nuevamente.

Por cierto, cuando digo "dada la elección correcta", recomiendo encarecidamente elegir un lenguaje correctamente diseñado con potentes conceptos de programación funcional. Así que realmente me saltaría PHP e iré por Python o Ruby.

+0

'aprender nuevos conceptos de programación', ¡eso es genial! Estos años desarrollé una aplicación de escritorio de Windows y la vendí en línea, siempre quiero hacer las cosas lo más rápido posible, no quería invertir tiempo en aprender otro idioma nuevo ... –

1

Uso los lenguajes de script para hacer un montón de pre/post procesamiento de datos. Pequeño o largo.

Casi todos los lenguajes de scripting tienen excelente/rápido manejo de archivos, texto, gráficos, etc. Y muy, muy fácil sin masas de código de placa de caldera y el paso de compilación.

Y como alguien mencionó, estará flexionando sus músculos y aprendiendo un nuevo mundo de posibilidades.

Salto de un lenguaje de scripting a otro, a veces los mezclo, solo para obtener lo que quiero hacer más rápido. Me hace valiente sabiendo que puedes hacer cualquier cosa que puedas pensar. Si no puede, siempre hay stackflow y cuantos más idiomas (la etiqueta independiente del idioma) pueda aceptar para una solución, más rápido (y mejor generalmente) obtendrá uno.

+0

Gracias por compartir zaf –

0

Utilizo las bibliotecas estándar de cada lenguaje de scripting para hacer las cosas rápidamente usando una API bien documentada.Por ejemplo, aquí están las herramientas que utilizo en los lenguajes de programación más populares:

  • PHP

    • XSLT - XML ​​generación de informes
    • ImageMagick - optimización de la imagen
    • rizo - pruebas de integración
    • intl - internacionalización
  • Python

    • tortuga - nostalgia
    • plistlib - Configuración OSX
    • SQLite - creación rápida de prototipos de base de datos
    • sched - rápida programación de tareas
    • difflib - diffing
    • shutil - archivo de archivado
  • Rubí

    • Rake - la automatización de copias de seguridad y los registros
    • esperar - la automatización de mensajes de autenticación
    • de abreviaturas - autocompletar
    • RSS - crear alimenta
    • fileutils - comparar archivos
    • gdbm - serializar el estado del programa
    • win32ole - Automatización MSXML/IE
    • did_you_mean - Evitar errores tipográficos
  • Perl

    • Env - la fijación de los problemas de Path
    • memoize - las pruebas de algoritmos
    • TAP - organizar pruebas
    • Params :: compruebe - API de validación

Referencias tipo

Cuestiones relacionadas