¿Qué tan fácil y conveniente es Python para computación científica?
Very! Deberías intentar asistir a las conferencias SciPy (cada año hay una en los EE. UU. Y una en Europa) para sentirte realmente bien, pero incluso el resto del sitio scipy.org
debería darte una impresión.
¿Tiene una biblioteca de algoritmos que se pueda comparar con los de matlab?
No sé matlab, pero la cantidad de cosas disponibles en/para Python es asombrosa.
¿Es Python un lenguaje de scripting o compila?
Python es un lenguaje de , y ofrece muchas implementaciones (todo de código abierto). El más popular, CPython, compila fuentes en su propio bytecode que luego ejecuta su máquina virtual (la compilación es muy rápida y se realiza de forma transparente cuando es necesario, pero los archivos compilados normalmente se almacenan en el disco y se compilan sólo cuando es necesario). Eso es muy similar a Java/JVM o C#/.Net, excepto que el paso de compilación se puede subsumir con el paso de ejecución (pero, por supuesto, puede tener un sistema de compilación que compila con anticipación, si lo desea).
Jython compila el bytecode de JVM, que luego ejecuta una JVM; IronPython de Microsoft (su primer proyecto de código abierto, creo) compila a CRL (".Net bytecode") que .Net y Mono pueden ejecutar. Ambos admiten compilación justo a tiempo y anticipada a sus respectivos códigos de bytes.
PyPy puede compilar fuentes de Python para muchas cosas, incluyendo (para un subconjunto de Python) directamente (anticipado) al lenguaje de máquina nativo o (para todo Python) a un código intermedio que luego se compila en la máquina lenguaje en la forma justo a tiempo. PyPy es increíblemente flexible en términos del tipo de sistemas de compilación que puede configurar. (Su nombre proviene del hecho de que está codificado en Python, y eso sin dudas es una ventaja en muchos términos, pero la velocidad del código que crea y su flexibilidad son sus principales fortalezas en la actualidad).
Estas cuatro implementaciones son todas de calidad de producción en este momento (históricamente, llegaron a ser así en el orden que he enumerado, PyPy más recientemente, y realmente bastante recientemente, pero me gusta mucho lo que veo allí en estos días)
¿Es un lenguaje excelente para el prototipado un algoritmo?
No puedo pensar en una mejor; ver chapter 18 del libro de cocina de Python, especialmente la introducción de Tim Peters, para más. Esa introducción es totalmente legible en el enlace de Google Books que acabo de dar, y realmente no puedo hacerle justicia en lo que ya va a ser una larga respuesta de SO; por favor haga clic en el enlace y lea esa introducción!
¿Cuánto tiempo me tomará para aprender lo suficiente como para ser productivo proporcionado Conozco bien y C OO programación algo?
Cuando conocí a Python, después de navegar por el tutorial, decidí darle una oportunidad cuando tuve un fin de semana con mi familia lejos: me gustaría dedicar un fin de semana (de viernes a domingo 18:00 de la medianoche, o bueno, quizás sea lunes) para aprender el idioma haciendo en él una aplicación web CGI para calcular y mostrar varios tipos de probabilidades de bridge (como un entusiasta del bridge, pero conocido en el campo principalmente a través de mi probabilidad y el trabajo informático al respecto , es un problema que he amado hace mucho: aprendí de Fortran en mi primer año, aunque en ese momento como estudiante de educación superior no se suponía que debía hacer programación hasta el penúltimo año, al perforar tarjetas para resolver ese tipo de problema;)
Por supuesto que no esperaba acabado la tarea desde cero en 54 horas o menos (hora menos de sueño ;-) mientras que la enseñanza a mí mismo la lengua y su biblioteca (CGI y los algoritmos necesarios que ya conocía bien) , pero quería ver hasta dónde llegaría (evaluando Python frente a los otros idiomas en los que era gurú en ese momento, principalmente perl y C++).
Menos de 24 horas más tarde (hay que haber dormido muy poco esa noche, estaba demasiado emocionado), di un paso atrás y tuve que admitir que había terminado, no solo mi pequeña aplicación web CGI tenía toda la funcionalidad tenía en mente, pero también pude dar salida en diferentes lenguajes naturales construyendo desde cero un pequeño sistema de plantillas (sabía que había muchas) por eso llamé a la mía yaptu, "Otra herramienta de plantillas de Python" - - pero simplemente no tuve tiempo de aprender nada fuera del idioma y la biblioteca estándar ... rodar el mío fue más rápido ;-).
Fue entonces cuando me enamoré irremediablemente de Python. No mucho tiempo después, terminé abandonando mi carrera actual de alto vuelo por un hechizo escribiendo libros y trabajando independientemente con Python, y unos años más tarde me moví a través de un océano y dos continentes para unirme a una de las compañías más grandes que usaba Python (mi actual empleador, Google), mientras tanto se había vuelto a casar (a mi esposa actual, Anna, también fue coautora en uno de mis libros y la primera mujer miembro de la Python Software Foundation). Nuestra placa de "vanidad" lee P ♥ THON ... ;-). Entonces, OK, soy parcial. Pero todo comenzó con esos < 24 horas en las que logré más de lo que esperaba hacer en> 54 horas (a pesar de ser, como todos los desarrolladores de SW, un optimista incurable cuando se trata de "cuánto tiempo me tomará hacer X "para cualquier X centrada en SW ;-).
¿Está basado en OO?
Sí, pero multi-paradigma (como C++ ... pero incluso más de C++) - usted no tiene que utilizar class
es cuando no los necesita, y tiene un apoyo razonable para el dia también la programación (definitivamente no es tan profunda como los lenguajes de FP "verdaderos" como Haskell, pero sigue siendo muy útil para muchas tareas).
Mientras estamos en el tema, ¿cuál es el trato con la comida de la línea aérea? – kubi
Lo sentimos, pero ¿no puedes simplemente googlearlo? –
http://docs.python.org/index.html – twneale