por - python español
Python para un programador aficionado(algunas preguntas) (7)
Soy un programador aficionado (solo en TI-Basic antes de ahora), y después de mucho, mucho, mucho debatir conmigo mismo, he decidido aprender Python. No tengo mucho tiempo libre para enseñarme cien idiomas y toda la programación que hago será para uso personal o para distribuir a las personas que los necesitan, así que decidí que necesitaba un lenguaje bueno y fuerte para ser bueno en . Mis preguntas:
¿Es python lo suficientemente potente como para manejar la mayoría de las cosas que un programador típico podría hacer en su tiempo libre? Tengo en mente cosas como generadores de estadísticas complejos basados en la entrada del usuario para juegos de mesa, hacer juegos pequeños, automatizar procesos de instalación y construir sitios web interactivos, pero probablemente cientos de cosas en esas líneas
¿Python maneja las tareas de red bastante bien?
¿La fuente de Python puede estar ofuscada, o será de código abierto por naturaleza? La razón por la que pregunto esto es porque si hago algo interesante y lo distribuyo, no quiero que algún idiota script kiddie edite su propio nombre y diga que lo escribió
Y qué tan popular es python, en comparación con otros idiomas. Idealmente, mi lenguaje sería bueno y útil con ayuda encontrada en línea sin dificultad extrema, pero no tan común como para que cada idiota con computadora conozca a Python. Me gusta la idea de conocer un lenguaje un tanto oscuro.
Muchas gracias por cualquier ayuda que pueda brindar.
¿Es python lo suficientemente potente como para manejar la mayoría de las cosas que un programador típico podría hacer en su tiempo libre? Tengo en mente cosas como generadores de estadísticas complejos basados en la entrada del usuario para juegos de mesa, hacer juegos pequeños, automatizar procesos de instalación y construir sitios web interactivos, pero probablemente cientos de cosas en esas líneas
Seguro. Python es una buena herramienta para todos los que no sean la automatización de los procesos de instalación, donde podría ser la herramienta adecuada, pero es más probable que la herramienta correcta se decida por lo que específicamente está automatizando.
¿Python maneja las tareas de red bastante bien?
Sí. Deberá mirar Twisted .
¿La fuente de Python puede estar ofuscada, o será de código abierto por naturaleza? La razón por la que pregunto esto es porque si hago algo genial y lo distribuyo, no quiero que un idiota de script idiota edite su propio nombre y diga que lo escribió
"Código abierto" se refiere a la licencia de su código, no a la visibilidad de su código fuente. Ocultar el código fuente de Python no es especialmente posible, y los resultados de descompilar el bytecode de Python darán como resultado un código mucho más legible que las herramientas equivalentes en idiomas como C. ¡ No se preocupe por esto! No puede evitar que las personas roben su automóvil o su computadora si están dispuestos a infringir la ley, y usted no puede hacer lo mismo con su código en ningún idioma.
Y qué tan popular es python, en comparación con otros idiomas. Idealmente, mi lenguaje sería bueno y útil con ayuda encontrada en línea sin dificultad extrema, pero no tan común como para que cada idiota con computadora conozca a Python. Me gusta la idea de conocer un lenguaje un tanto oscuro.
Esta es una pregunta sin respuesta. Google le dará muchos resultados contradictorios con diferentes métricas, la mayoría de ellas útiles. También estás siendo un poco tonto;)
En cuanto a los materiales de aprendizaje, recomiendo Cómo pensar como un científico de la computación , que es un buen texto que no presupone ningún conocimiento de programación existente. Está disponible de forma gratuita en línea, o puede comprar una copia impresa si lo prefiere. (No se moleste en aprender 3.x todavía. No hay suficiente soporte de biblioteca para hacer muchas cosas útiles como lo que quiere hacer, y cuando lo recoja será fácil, no es muy diferente de 2.5 / 6/7 .)
¿Es python lo suficientemente potente como para manejar la mayoría de las cosas?
Sí. Período. Estudia el juego EveOnline para más información. Mira el marco de pygame . Libre de usar Google para encontrar más.
¿Python maneja las tareas de red bastante bien?
Sí. Mire la cantidad de frameworks web de Python más el framework Twisted . Siéntase libre de usar Google para buscar redes de Python.
¿Se puede ofuscar la fuente de Python?
No útilmente Esto no es C.
¿Y qué tan popular es python, en comparación con otros idiomas?
Mira el índice TIOBE .
- Absolutamente.
- ¿Qué tipo de redes? Tiene socket, http, xml, smtp / pop, telnet y mucho más integrado.
- La ofuscación de Python no será tan buena como un lenguaje compilado. Por lo general, eso no es un problema.
- Es la novena etiqueta más popular en , por lo que hay mucha ayuda disponible.
Probablemente si. Tal vez el problema de la estadística sea un poco lento, y tal vez un juego dependiendo de qué tipo de juego, pero en general el rendimiento es lo suficientemente bueno, y se ahorrará mucho tiempo en la programación real. Si REALMENTE necesita rendimiento, puede crear un módulo en C, pero generalmente hay una biblioteca escrita para hacer lo que desea.
No lo he usado, pero hay un marco llamado Twisted que parece ser bastante bueno.
No. Bytecode se puede descompilar fácilmente, y solo funciona en una versión específica de Python, por lo que su código no es tan portátil.
Python es bastante popular y Python Package Index tiene una gran lista de bibliotecas de terceros. No está tan extendido como, por ejemplo, Java, pero mucha gente lo usa y probablemente puedas obtener respuestas para lo que quieras.
Creo que Python es muy poderoso para hacer muchas cosas, pero al igual que Java y C ++, a menudo depende de buenas bibliotecas de terceros. Vengo de un entorno Java pero uso Python para muchas cosas, y ha sido un viaje divertido. He hecho cosas como estadísticas y automatización, pero no estoy seguro acerca de la IU, aunque a menudo depende más del conjunto de herramientas que del lenguaje.
La red de Python funciona bien. No sé si lo usaría para construir un sistema de comercio algorítmico rápido o una aplicación VOIP, pero para la mayoría de los intentos, especialmente en niveles más altos de abstracción, es fácil y fácil de usar. Necesitaría bibliotecas externas para cosas como SSH o FTP.
Python es bastante popular y tiene un soporte en línea muy bueno, una comunidad activa y grandes corporaciones (como Google) que lo usan. Encontré el tutorial en línea oficial y la referencia excelente.
Debo decir que no estoy de acuerdo con la línea "cada idiota con una computadora". Hay una diferencia entre conocer un idioma y usarlo correctamente, y eso es cierto para todos los idiomas, incluso para los naturales :) Python tiene muchos elementos funcionales que no son tan triviales de usar para las personas que provienen de un entorno de procedimientos, por lo que siempre hay espacio para el crecimiento.
El único problema con Python comparado con lenguajes como C y Java es que no está tipado estáticamente. Esto hace que sea mucho más rápido escribir código, pero también lo hace * mucho más fácil) para cometer errores que pueden ser bastante desagradables de depurar. Por ejemplo, la misma variable puede contener una referencia de cadena en algún punto y una referencia a una lista de cadenas en algún otro punto.
Puntos 1 y 2: INFIERNO SÍ.
Punto 4: tipo de. Python es bueno en algunas cosas de la red. No es Java o C ++. Simplemente use zlib (biblioteca zip) y pickle (serialización) para todo, y mire xmlrpclib si necesita IPC.
Punto 3: No. Sin embargo, puede escribir partes C (para el rendimiento crítico y difícil de copiar) de su código, y eso haría que no fuera trivial realizar ingeniería inversa.
Python está a la altura de la tarea (y mejor) para 1, 2 y 4.
La mejor solución para 3 de lo que describes probablemente sea hacer que tus programas realmente sean de código abierto con licencia GPL o BSD. De esta forma, la gente editará tus fuentes geniales (pero a menudo serán programadores experimentados, no solo script kiddies) y continuará luego, pero deja tu nombre para la posteridad.