¿Por qué deberíamos ir por Python? ¿Es más avanzado que C ++ o Java?

Cuando las personas hablan de que un idioma es más “avanzado” que otro, generalmente expresan una opinión mal fundada o solo piensan en un área de aplicación, o en una dimensión de las muchas en las que puede evaluar un idioma.

Python es bueno para unir rápidamente aplicaciones web o scripts: es conciso, proporciona tipos de datos prácticos y tiene buenas bibliotecas. Es terrible trabajar si quieres controlar estrechamente el uso de la memoria o modificar el código crítico del rendimiento. CPython, la implementación principal, también es muy lenta en comparación con los otros idiomas que menciona, lo que puede o no ser un problema.

Java (o un lenguaje .NET) es excelente si desea un lenguaje de alto rendimiento sin preocuparse por la administración de la memoria.

C es excelente si desea escribir código de sistemas de bajo nivel, y especialmente para implementar sus propias estructuras de datos.

Fortran, a pesar de ser uno de los primeros lenguajes de programación, sigue siendo el estado de la técnica en cuanto a código numérico de alto rendimiento: el lenguaje está diseñado para permitir una buena optimización del compilador para este tipo de aplicaciones (más que C / C ++) y La optimización de compiladores de Fortran son conocidos por ser excelentes.

Evitaré entrar en cualquiera de los debates de escritura estática versus dinámica, pero ese es un factor importante que tiene implicaciones para la velocidad, la productividad y la confiabilidad del software.

No es realmente más “avanzado” que C ++ o Java.

Una de las mayores ventajas de Python es que es perfecto para un desarrollo rápido. No toma mucho tiempo programar algo en Python en comparación con C ++ y Java porque no tiene que hacer tantas tareas requeridas atribuidas a otros idiomas. Esto permite un mantenimiento rápido y un desarrollo rápido. Una forma de entender la simplicidad de la sintaxis de Python es mirar un HelloWorld para diferentes idiomas:

C ++ HelloWorld:

  #include 
 utilizando namespace std;
 
 int main ()
 {
   cout << "Hola Mundo";
   devuelve 0;
 }
 

Java HelloWorld:

  clase pública principal {
     public static void main (String [] args) {
         System.out.println ("Hello World");
     }
 }

Python HelloWorld:
print "Hello World"

C ++ tomó 7 líneas y Java tomó 5 líneas. Python, por otro lado, solo tomó 1.

Otro beneficio es que el código Python es frecuentemente elegante y fácil de leer, muchas veces más que C ++ y Java. Se parece a un pseudocódigo, por lo que incluso un novato en programación puede entender lo que el programador pretendía cumplir con el código. Esto es en parte porque las muescas son críticas en Python. No sangrar algo o sangrar algo por accidente puede cambiar drásticamente la forma en que se ejecuta su código. Sin embargo, las muescas hacen que el código 10x sea más fácil de leer.

Además, Python es muy fácil de aprender y se usa muy a menudo en las clases de programación introductoria. Esto es, nuevamente, en parte debido a su sintaxis similar a pseudocódigo. El beneficio de esto para una empresa es que capacitar a sus programadores no es más una tarea desalentadora (si es que ya lo es. No sé si es difícil para las compañías capacitar a sus programadores, pero supongo que sí).

Por último, Python es un lenguaje de programación multi-paradigma, muy parecido a C ++. Es OOP, funcional, de procedimiento, y un par de otros. Esto permite a Python poder atacar una variedad de tareas que tienen las empresas.

  • C ++ es una amalgama entre la programación modular y la orientada a objetos, y Java es un lenguaje casi completo orientado a objetos, Python nunca fue diseñado para un propósito específico.
  • C ++ se inventó cuando los proyectos de la época crecían más allá de la capacidad del lenguaje C, por lo que cuando los proyectos iban más allá de las capacidades de C ++, la gente cambiaba a otros idiomas.
  • Java fue el lenguaje cuando Internet estaba en auge porque era el lenguaje generalizado para las aplicaciones de programación para ser independiente de la plataforma, ahora no es un gran problema porque casi todo es independiente de la plataforma, pero considere el momento de la década de 1990. La industria de la computación se dividió en campos, Mac, Windows + Intel, IBM. fue horrible para los programadores porque las aplicaciones de Windows no se ejecutaban en el mac ni se ejecutaban en IBM. así que Java, que originalmente estaba destinado a ser un lenguaje para la programación de dispositivos electrónicos, recibió un impulso porque era una plataforma independiente, esa era la era de Internet, desde entonces java ha estado a la vanguardia de la industria del software.
  • La razón principal de la fama de Python es que era de código abierto, por lo que la gente continuó agregando cosas nuevas al lenguaje, por otro lado, C ++ y Java están estancados, por lo que no hay un incremento en el lenguaje desde la década de 1990.
  • La razón por la que se inventó Python está mejor escrita por el propio inventor en la documentación.

Tenía una amplia experiencia en la implementación de un lenguaje interpretado en el grupo ABC en CWI, y al trabajar con este grupo aprendí mucho sobre el diseño del lenguaje. Este es el origen de muchas características de Python, incluido el uso de la sangría para la agrupación de sentencias y la inclusión de tipos de datos de muy alto nivel (aunque los detalles son todos diferentes en Python).

Tuve una serie de quejas sobre el lenguaje ABC, pero también me gustaron muchas de sus características. Fue imposible extender el lenguaje ABC (o su implementación) para remediar mis quejas; de hecho, su falta de extensibilidad fue uno de sus mayores problemas. Tenía algo de experiencia con el uso de Modula-2 + y
Hablé con los diseñadores de Modula-3 y leí el informe Modula-3. Modula-3 es el origen de la sintaxis y la semántica utilizadas para las excepciones y algunas otras características de Python. Trabajaba en el grupo de sistemas operativos distribuidos Amoeba en CWI. Necesitábamos una mejor forma de administrar el sistema que escribiendo programas C o shell shell de Bourne, ya que Amoeba tenía su propia interfaz de llamada al sistema que no era fácilmente accesible desde el shell Bourne. Mi experiencia con el manejo de errores en Amoeba me hizo muy consciente de la importancia de las excepciones como característica del lenguaje de programación.
Se me ocurrió que un lenguaje de scripting con una sintaxis como ABC pero con acceso a las llamadas al sistema Amoeba llenaría la necesidad. Me di cuenta de que sería una tontería escribir un lenguaje específico de Amoeba, así que decidí que necesitaba un lenguaje que fuera generalmente extensible. Durante las vacaciones de Navidad de 1989, tuve mucho tiempo en mi mano, así que decidí intentarlo. Durante el año siguiente, mientras trabajaba en su mayor parte en mi propio tiempo, Python se utilizó en el proyecto Amoeba con un éxito cada vez mayor, y los comentarios de mis colegas me hicieron agregar muchas mejoras iniciales.
En febrero de 1991, después de poco más de un año de desarrollo, decidí publicar en USENET. El resto está en el archivo Misc / HISTORY.

esto fue también en la década de 1990, ya que entonces python era un lenguaje de código abierto y, como Google usó python, dio un impulso al lenguaje https: // pypi . python .org / visite este repositorio para las bibliotecas externas disponibles para el lenguaje python.

  • En Python han implementado el concepto de abstracción , puedes programar cualquier aplicación sofisticada en una materia, en unas pocas líneas usando unos pocos programas,

  desde scapy.todo *
 def analizar (ctsList):
   diff = [] 
   j = 0
   lcts = len (ctsList)
   para i en rango (0, lcts-2):
      diff.append (ctsList [i + 1] -ctsList [i]) #a [0] -a [1], a [1] -a [2]

   ldiff = len (diff)
  
   para i en rango (0, ldiff):
     si diff [i]> 0:
       Si diff [i] <140 y diff [i]> 70:
	  j + = 1
       else: imprime "intrusión detectada"
     más:
       si -diff [i] <140 y -diff [i]> 70:
	  j + = 1
       else: imprime "intrusión detectada"

     si j == ldiff:
       Imprimir "intrusión no detectada"


   i = IP (dst = "192.168.1.1", chksum = 1234)
   sr (i / TCP (chksum = 1234), marca = 0x02))
  
   ans, unans = __
  
   si ans == RST:
     Imprimir "punto de acceso legítimo"
   más:
     Imprimir "punto de acceso rogue confirmado"


   ping = promiscando (net, iface = Conf.iface)
   opfile = abierto ('ping', 'w')
   opfile.write (ping)

   opfile.close ()
   #deauth y autenticar al mismo ESSID
  
 def testCTS (pkt):
   ctsList = []
  
   Conf.iface = "mon0"
     tratar:
       Si pkt.haslayer (Dot11):
	 cts = str (pkt.cts)
	 imprimir 'cts:' + cts
	 ctsList.append (cts)

     excepto:
	 pasar

    analizar (ctsList)
  '' '
 def testDummy ():
   ctsList = [4000,8080, 4000, 4090, 8130,]
   analizar (ctsList)
   '' '
  
 def main ():
   #testDummy ()
   sniff (prn = testCTS, store = 0)
   
 si __name__ == '__main__':
      principal()

Este es un código para detectar el punto de acceso wifi para almacenar el marco para enviar entre los paquetes que se emiten a través de la red. Intente esto en C, se reducirá a miles de líneas y será tan complicado como el núcleo de Linux. (casi).

esto solo se trata de la seguridad de la red, pero puede hacer casi todo en Python, incluyendo NLP, aplicaciones web altamente escalables y botnets.

depende de lo que quieras hacer. Para la velocidad de una aplicación, vaya con Java (aunque C ++ probablemente sea mejor que Java ya). Para la velocidad de desarrollo, además de aprender nuevas formas de pensar, Python.

Alok Tripathy respondió por qué es más “avanzado”: sus beneficios se encuentran en la web y son un lenguaje de mucho más alto nivel (por lo tanto, ventajas como el desarrollo rápido, las comunidades activas, la aplicación divertida).
Las empresas utilizan Python, pero en la mayoría de los casos existen alternativas, es óptimo cuando se trata de una gran cantidad de datos que deben analizarse estadísticamente.

Python fue bastante avanzado para 1990, supongo.