¿Cuáles son los lenguajes de programación?

Una batalla de lenguajes de programación

@Autor: Runsen

Sé un poco sobre Python y Java. Esto se basa en mis propias ideas. puramente ficticio.

Situación actual

En marzo de 2020, se publicaron nuevas clasificaciones de lenguajes de programación. TIOBE ha publicado recientemente las clasificaciones de lenguajes de programación de marzo.

Podemos ver en la lista que los tres primeros son Java, C y Python. En comparación con el mes pasado, Python siguió subiendo de 1,85 a 10,11, ocupando firmemente el tercer lugar con una participación de 10,11.

Primero, comprendamos los usos de lenguajes de programación más comunes, como Java, Python, JavaScript, C/C, Go y C#.

"Es difícil estar de acuerdo con todos". Ante una variedad de lenguajes de programación, todos tienen opiniones diferentes. Cada lenguaje de programación tiene su propio significado. La guerra de la programación nunca ha terminado, y la "guerra" es. a punto de estallar.

Guerra civil familiar

Recientemente, la familia de lenguajes de programación celebró una "fiesta familiar" para discutir sus propias clasificaciones.

La siguiente es una conversación entre miembros de la familia.

Py, el tercer hijo: Últimamente me he portado muy bien. Desde el inicio de la inteligencia artificial en 2015, todos me han imitado y básicamente me he convertido en el jefe más invencible.

Lao Si C: ¿No es así? Lao San, tus rastreadores, análisis de datos, aprendizaje automático, aprendizaje profundo, procesamiento de lenguaje natural además de Django, flask y otros desarrollos web, etc., incluso tú. PyQt también quiere ocupar mi mercado de interfaz gráfica QT. Fuiste tú, un pícaro, quien me convirtió en el cuarto hijo.

Lao San Py: Todo eso se debe a que te resulta muy difícil escribir. Solo te llevará unos minutos aprender de mí. ¿Quién te dijo que fueras tan difícil de entender? Cien líneas de tu código, estoy muy confundido. Está hecho en solo unas pocas líneas. ¿Quién aprenderá de ti? Pronto, yo seré el jefe y tú serás mi hermano pequeño.

El cuarto hijo C le dijo al hermano mayor Java: Hermano, alguien quiere buscar el poder y usurpar el trono.

Jefe Java: Ahora, de hecho, es la era del tercer hijo. Ahora todos los analistas de datos solo conocen Python y todos gritan: La vida es corta, yo uso Python. La principal razón es que las habilidades de programación de los analistas de datos son demasiado bajas. Simplemente escriben código py y no pueden aprender ningún otro lenguaje.

C, el segundo hijo, dijo con desdén: Incluso si es muy bueno escribiendo Python, a lo sumo es solo una guía de paquetes, nada especial. Tercer hijo, incluso si tienes la capacidad de ser el jefe, no me atrevería a buscar el poder y usurpar el trono.

Py, el tercer hijo: ¿Por qué no comparamos y vemos si los desarrolladores me necesitan más o el jefe me necesita primero?

Jefe Java: Bien, comparemos. ¿Quién tiene miedo de quién? Déjame ver de qué eres capaz.

Lao San Py: Mi código es simple y fácil de entender. Por ejemplo, si imprimo una oración de HelloWorld, es solo una. Sólo quiero preguntarte si estás convencido.

Boss Java: Para imprimir un HelloWorld, realmente necesito varias líneas de código y declarar un objeto HelloWorld.

Segundo hijo C: También necesito definir una función principal. Imprimir un HelloWorld es realmente demasiado.

Lao Si C: Copié a Lao Zi y escribí Hello World más que Lao Zi.

Lao San Py: ¿Lo ves? Esta es la brecha. ¿Quién puede escribir tanto código? Es simple y tosco.

Jefe Java: Tercer hermano, no puedes hacer esto. Todo es un objeto. Al escribir una línea de código, creo que debes declarar un objeto.

Py, el tercer niño: ¿Qué objeto es? Si puedo imprimirlo, está bien.

Otros: Es cierto que el código escrito por Lao San es tan simple que incluso los estudiantes de primaria pueden aprenderlo. Estamos avergonzados de nosotros mismos, ¿necesitas más habilidades?

Lao San Py: Soy más impresionante que mis bibliotecas de terceros. Hay más de decenas de miles de ellas. También puedes hacerlo fácilmente. Mira la barra de progreso de la instalación. ¿Qué te parece? Impresionante o no.

Jefe Java: No acepto esto. Vaya al almacén de Maven y eche un vistazo.

Mi paquete jar se puede utilizar en cualquier escenario. Mi ecosistema se ha perfeccionado para un. Hace mucho tiempo. ¿Por qué no es tan bueno como tu tercer hijo?

Lao San Py: Dígales a otros qué información instaló en pom.xml y su dependencia es tan larga, ¿están dispuestos a escribirla?

La segunda C y la cuarta C: Cuando agregamos bibliotecas de terceros con gcc y cmake, necesitamos compilarlas.

El tercer Py: Mis solicitudes, selenium, beautifulsoup, pyquery, lxml, Scrapy, Crawley, Pyspider y una serie de bibliotecas de rastreadores y marcos de rastreadores son tan poderosos que escribo casi todos los rastreadores que tiene su mercado de reptiles. Hace mucho que perdiste tu parte.

Boss Java: Mi código de rastreador WebMagic, Nutch, Heritrix, Jsoup, SeimiCrawler, JLiteSpider es varias veces mayor que el suyo. En el pasado, básicamente me usaba para ocupar el mercado de rastreadores, pero ahora lo es. ocupado por ti, pena.

Lao Er C, Lao Si C: Rastreador, tenga cuidado de meterse en la cárcel. Ahora es la primera prohibición del rastreador, que prohíbe rastrear cuentas oficiales de WeChat. Todo se debe a la cantidad de tráfico falso de su rastreador. Ha causado y cuántos sitios web han colapsado, digamos que 12306 tiene un 20% o más de tráfico de acceso al rastreador. Cuántas personas tomaron boletos y luego aumentaron el precio para venderlos. ¿Cuántas personas no han podido conseguir entradas en el pasado? Esto ha desencadenado una serie de eventos en la cadena de activos sucios.

Lao San Py: Esto no es de mi incumbencia. El rastreo actual de la araña Baidu y cuántos sitios web lo aplauden son todos sus problemas.

Otros: Además de los rastreadores, ¿qué más haces?

Lao San Py: Mi análisis de datos tres espadachines numpy, pandas, matplotlib, además de Seaborn, Scipy, StatModels, Pyecharts, Bokeh, Blaze, Plotly, NetWorkX, Biopython, SymPy y gwpy y otra ciencia de datos La biblioteca Es simplemente invencible, todos lo gritaron y aprendieron Python de Excel.

Jefe Java: Aunque también tengo jars para análisis de datos, le envié a mi hijo scala para que me ayude a mejorarlo.

Lao Er C Lao Si C: Esto no se puede resolver con SPSS, stata, tableau, powerbi, excel, Echart, FineReport y otras potentes herramientas de análisis de datos. Todo lo desarrollamos nosotros y el jefe. ¿Por qué molestarse en escribir código?

Py, el tercer hijo: tengo la espada asesina de dragones Pycharm y la espada celestial anaconda. Una es para el desarrollo y la otra para el análisis de datos. Las dos espadas están combinadas y están. invencible.

Boss Java: No le tengo miedo a las herramientas de desarrollo IDE, tengo Eclipse, MyEclipse, IntellijIDEA y NetBeans, que tienen funciones asombrosas.

La segunda C y la cuarta C: Dev-C, C-free, CLion, Code::Blocks, CodeLite, C Builder, creemos que tampoco es un problema.

Lao San Py: Mi comunidad Django de desarrollo web es muy grande. En el mundo, Python tiene dos patas para ejecutar. Una pierna es mi Django, porque hay 20.000 paquetes y más de 10.000 son míos. Django, además de mis otros hijos, Flask y Tornado, desarrollé Douban y Zhihu nacionales y extranjeros: Instagram, Disqus, NationalGeographic, NASA.

Boss Java: desarrollo web, ¿cómo te atreves a compararme conmigo? Una familia Spring es suficiente, SpringMVC, SpringBoot, SpringCloud Además, también tengo mi propio servidor de aplicaciones Tomcat y Jetty. La arquitectura de microservicios ha sido popular entre la gente durante mucho tiempo. Si el sitio web anterior no se desarrolló con PHP, básicamente se desarrolló con mi Servlet y JSP anterior (aunque se quedó atrás, básicamente se mantuvo). Ahora mi familia Spring es la primera opción para el desarrollo de sitios web.

Lao Er C Lao Si C: Aunque casi no tenemos mercado en el desarrollo de sitios web, el desarrollo de software se basa exclusivamente en nosotros. Por ejemplo, la mayor parte del software inicial QQ, WeChat, Alipay y otros fueron desarrollados por nosotros. a nosotros.

Py, el tercer hijo: tengo la capacidad de comparar la inteligencia artificial más popular hoy en día, mi aprendizaje automático sklearn, keras de aprendizaje profundo, Pytorch, tensorflow, Caffe, PaddlePaddle, cuál no sé y cual no uso? Es por esto que soy el último rey.

Boss Java: ¿Estás pensando demasiado en Honor of Kings? El cliente de Honor of Kings debería desarrollarse en C# (Unity3D) y el servicio central de back-end está desarrollado en C, pero ya lo tienes. ninguna participación en ello. Inteligencia artificial, ¿por qué no puedo darme cuenta? Mis bibliotecas de aprendizaje profundo: DL4J, ND4J y Deeplearning4j. El marco de aprendizaje profundo es popular porque los analistas de datos solo pueden usar Python.

Lao Si C: CPP-Call-Tensorflow, Caffe2C API, PyTorch-CPP, mi rendimiento es muchas veces mejor que el tuyo. Por cierto, hablemos de rendimiento, Lao San, no eres muy bueno en esto.

Boss Java dura: no hay datos, ¿qué tipo de inteligencia artificial haces, tercer hermano? Echa un vistazo al marco de big data de mi comunidad Apache, ApacheHadoop, ApacheHive, ApacheHbase, ApacheSqoop, ApacheFlume, ApacheSpark. ApacheBeam, Apache Flink, Apache Storm, Spark Streaming, Apache Oozie y Clouders Manager (CDH) son todos desarrollados por mí, y la plataforma de big data la hago yo. Sin datos, ¿qué tipo de IA haces? ¿broma invitada por un mono?

Lao San Py: En términos de juegos, puedo tener mi Pygame. En términos de rendimiento, admito que es relativamente ineficiente. ¿No tiene big data también mi pyspark?

Lao Wu C#: Tu Pygame es solo para que los niños jueguen a las casitas. Ya he ocupado el mercado de juegos, no quieres venir.

El jefe de Java sonrió y dijo: Spark fue desarrollado por mi hijo Scala. Spark es para aquellos de ustedes que hacen análisis de datos y yo (Java) y mi hijo (Scala) no sabemos cómo hacerlo. Hazlo. Lamento tu presión. Desarrollamos pyspark y proporcionamos API para Python. Además, también proporcionamos Rspark para R. En otras palabras, Laos R cayó del top diez al once.

Viejo R: Eres tú, el tercero, quien sigue atacándome, lo que hace que el personal de análisis de datos ya no aprenda R. Todos piensan que si aprenden de ti, serán invencibles.

Viejo Si C: Es suficiente que todos ocupen un tipo de mercado, y ahora se ha propuesto el lema "La vida es corta, aprendo Python".

Lao San Py: "La vida es corta, aprendo Python".

Jefe Java: Es gracias a usted que el nivel de programación de todos solo ha disminuido. Los desarrolladores de Java pueden aprender Python en minutos.

Segundo hijo C: No lo digas, te puedo garantizar que todos deben estudiar conmigo en la universidad.

Viejo Si C: Si tienes la habilidad, pídele a alguien que aprenda Python que aprenda de mí o del jefe. No creo que pueda aprenderlo. Las personas que aprenden de mí son básicamente torturadas hasta la muerte. Aprender de tu py es solo cuestión de minutos. Si tienes la capacidad, puedes seguir hablando sobre el rendimiento. Creo recordar que Zhihu recomendó reescribir el sistema. en Go. No fue por tu eficiencia.

Old Ten Go: Es raro para mí estar entre los diez primeros hoy. Lo que es "la vida es corta, aprenderé Python", obviamente es "en 2020, aprendamos a ir juntos".

Py, el tercer niño: Jodete, ¿qué titulación tienes para hablar? Además, tengo cpython, ¿Numba no puede aumentar la velocidad de carrera?

Jefe Java: Entonces, ¿qué calificaciones tienes para hablar frente a mí? Ni siquiera puedes manejar bien los subprocesos múltiples y la concurrencia. También podrías proponer mi lema "OnceWrite, RunAnywhere", escribe. una vez y ejecutar en cualquier lugar, mi potente JVM, ¿la tienes?

El tercer hijo de Py: puedo usar Pyinstall para convertirlo en un exe y ejecutarlo en todas partes. No es solo "escribir una vez y ejecutarlo en todas partes".

El jefe de Java. : No sabes lo poderoso que soy. Aún así deberías ejecutar tu exe en mac y liunx. También tengo un hijo, Kotlin, y estoy ocupando el mercado de aplicaciones. ¿Todavía quieres ser un gran jefe?

Lao San Py: Tengo kivy para desarrollar APP.

Segundo hijo C y cuarto hijo C: Tercer hijo, ¿por qué no hablas sobre el uso de flutter para desarrollar aplicaciones?

Lao San Py: Ese es el conjunto de herramientas de interfaz de usuario de código abierto de Google, no es de mi incumbencia.

Lao Er C Lao Si C: La capa inferior de aleteo se basa en nuestro desarrollo.

El tercer hijo, Py: No me importa, dado que ahora todos están aprendiendo Py, mi mercado crecerá gradualmente y yo seré el jefe.

Segundo hijo C: Nací en 1972. Puedes decir que soy tu tercer hijo mayor. Java se ejecuta en 3 mil millones de dispositivos en todo el mundo. No estoy seguro de que yo sea el jefe.

Py, el tercer hijo: yo nací en 1991 y Java nació en 1995, entonces, ¿no soy el mayor del jefe?

Jefe Java: El tercer hijo tiene razón. El tercer hijo quiere ser el jefe. Se ha expandido y quiere superarte a ti, el segundo hijo.

Segundo hijo C: ¿Qué? El tercer hijo ni siquiera tiene un compilador. Un intérprete se basa en mi compilador. ¿Cómo se atreve a decir que me supera y usa mi compilador para encapsular mi código en la parte inferior? un script es un script y un lenguaje dinámico es un lenguaje dinámico. ¿Cuál del jefe, del cuarto hijo y de mí no es un lenguaje estático y cuál no tiene su propio compilador? Lo creas o no, si no te dejo usar mi compilador, desaparecerás del top diez.

Py, el tercer hijo: Joder, papá, me equivoqué, no me dejes desaparecer del top ten.

El viejo y silencioso PHP gritaba: PHP es el mejor lenguaje.

Lo que quiero decir

El lenguaje Python solo es adecuado como elemento adicional, no como soporte técnico. Porque no puede escribir lógica compleja. Solo es adecuado para escribir programas pequeños como rastreadores, calculadoras, bloc de notas y Qt. Python supera a Java y C, eso es imposible. Python ha superado a C desde el cuarto lugar, lo que ya es un acontecimiento impactante.

Algunas personas pueden no estar satisfechas con esto. ¿Por qué Python no puede escribir lógica compleja? ¿No están Douban y Zhihu escritos en Python?

En primer lugar, permítanme decirles que el backend de Douban abandonó la mayor parte del código Python y lo reescribió. YouTube también se está reescribiendo.

Actualmente, el único sitio web basado en Python es Zhihu, y el algoritmo de recomendación de Zhihu se ha reescrito en Go.

¿Por qué? No es porque el rendimiento de Python sea lento, sino porque la sintaxis de Python es demasiado trágica. Quizás la sintaxis simple de Python sea una ventaja a los ojos de los principiantes. Debido a que los principiantes generalmente solo escriben gadgets con menos de 1000 líneas de código cuando practican, la sintaxis de Python es simplemente asombrosa y realmente no hay deficiencias.

Pero si realmente intentas usar Python para encapsular docenas de clases y escribir algo con más de 10,000 líneas, comprenderás naturalmente cuán serios son sus problemas de sintaxis. No sólo es incómodo, sino que además no puedo escribir nada y el coste de mantenimiento es demasiado alto. La razón principal es que no hay verificación de tipos estáticos. ¿Se puede solucionar? Sí, un buen diseño de módulos y revisión de código pueden evitar algunos de estos problemas, pero esto compensará algunas de las ventajas del desarrollo rápido que puede aportar Python.

Como dijo Jianghu, la dinámica fue emocionante y el crematorio fue reconstruido. No es adecuado para proyectos grandes, pero sí para prototipos y proyectos en etapa inicial.

Si quieres tener un buen desempeño en TI, ¿qué pasa si solo sabes una cosa? A menos que no quieras hacerlo bien, todo lo que necesitas es calidad integral. A menos que hayas alcanzado la cima de Python. Puedes comenzar con Python en cinco minutos. La sintaxis de Python es exactamente la misma que la del inglés. A las personas que aprenden Python les resulta realmente difícil aprender Java.

Si la puntuación de dificultad es 0-5, Python tiene un índice de dificultad de 0, PHP tiene un índice de dificultad de 1, Go tiene un índice de dificultad de 2, Java tiene un índice de dificultad de 3 y C /C tiene un índice de dificultad de 4. Los lenguajes estáticos son más difíciles que los scripts dinámicos. Si no tienes conocimientos básicos de programación, se recomienda aprender Python y luego sumergirte en Java. Por un lado, Python y por otro lado Java se encuentran básicamente en un nivel relativamente alto en el mercado.

El mundo de Ali es básicamente Java, la vida anterior de Tencent nació en C/C, el negocio principal de Huawei es el hardware y también necesita una base de programación C/C. Baidu y Byte usan más Python, go y Ruby.

Sin embargo, si desea tener un desarrollo a largo plazo, simplemente aprender Python definitivamente no es suficiente. Personalmente, creo que es mejor dominar tanto Java como Python. Si quieres convertirte en un gran dios, agrega una C y serás invencible.

@Autor: Cuenta pública de Runsen: Runsen Notes

Esto se divide en muchos tipos, como front-end, back-end, desarrollo integrado, pila completa, desarrollo móvil, etc. .

Por ejemplo, los lenguajes de desarrollo front-end incluyen: HTML, CSS, JavaScript, HTML5, CSS3, biblioteca JQuery, marco Vue, subprograma WeChat, etc.; PHP, Java, SpringBoot, Python, C, C, C#, etc. incluyen: Android, IOS, etc.

Hay demasiados. Los más populares son java, C#, C, C, html, javascript,

php... El más popular ahora es python.

>

Para muchos programadores que son nuevos en la programación o que acaban de cambiar al campo de TI, qué lenguaje de programación elegir para aprender siempre ha sido un asunto muy problemático. Después de todo, la mayoría de los principiantes todavía carecen de conocimientos informáticos relevantes y no saben mucho sobre programación.

Entonces, con tantos lenguajes de programación, ¿cuál es mejor aprender?

Java

Java tiene las características de programación multiplataforma, orientada a objetos y genérica. Es muy popular entre las empresas y se utiliza ampliamente en el desarrollo y aplicaciones web a nivel empresarial. desarrollo de aplicaciones móviles.

Java se ha desarrollado hasta la actualidad, y se divide principalmente en tres partes según la aplicación: J2SE, J2ME y J2EE. El ámbito de aplicación de los tres bloques es diferente, pero se complementan entre sí.

Se utiliza ampliamente en PC, centros de datos, consolas de juegos, supercomputadoras científicas, teléfonos móviles e Internet, y cuenta con la comunidad profesional de desarrolladores más grande del mundo.

Python

Python es un lenguaje fácil de leer, fácil de mantener y popular entre una gran cantidad de usuarios. Debido a sus ricas y poderosas bibliotecas, también conocidas como lenguaje adhesivo, Python es extremadamente fácil de comenzar, principalmente porque Python tiene una documentación extremadamente simple.

Los campos de aplicación de Python se dividen en programación de sistemas, interfaz gráfica de usuario, scripts de Internet, integración de componentes, programación de bases de datos, creación rápida de prototipos, programación informática numérica y informática científica, juegos, gráficos, inteligencia artificial, XML? , programación de robots, etc.

Una situación de aplicación común es utilizar Python para generar rápidamente un prototipo del programa (a veces incluso la interfaz final del programa) y luego reescribir las partes con requisitos especiales en un lenguaje más adecuado, como 3D El módulo de representación de gráficos del juego tiene requisitos de rendimiento particularmente altos, por lo que puede reescribirse en C/C y luego encapsularse en una biblioteca de clases extendida a la que Python puede llamar. Python se utiliza para el desarrollo de servidores y el desarrollo de Internet de las cosas.

La seguridad de la información, el procesamiento de big data, el aprendizaje automático de visualización de datos, el desarrollo de Internet de las cosas, las API de los principales software y las aplicaciones de escritorio requieren Python.

PHP

PHP (HypertextProcessor) es un potente y gratuito lenguaje de programación del lado del servidor. Su principal objetivo es permitir a los desarrolladores web escribir rápidamente páginas dinámicas. También se utiliza ampliamente en. Otros campos, como el desarrollo web y que pueden integrarse en HTML, son bienvenidos por los desarrolladores web. Este idioma es utilizado por WordPress, Digg y Facebook.

La sintaxis de PHP utiliza C, Java y Perl, lo que facilita su aprendizaje. En la actualidad PHP tiene una amplia gama de aplicaciones, especialmente en el desarrollo de programas web. En términos generales, PHP se ejecuta principalmente en un servidor web y las páginas web navegadas por los usuarios se generan mediante la ejecución de código PHP. PHP se puede ejecutar en la mayoría de servidores y sistemas operativos, y usar PHP es completamente gratuito.

JavaScript

JavaScript es un lenguaje de programación del lado del cliente que está controlado por objetos y eventos y es relativamente seguro. Parece que tiene algo que ver con Java, pero no lo es. Es sólo un nombre similar.

Al mismo tiempo, JavaScript también es un lenguaje de secuencias de comandos ampliamente utilizado en el desarrollo web del lado del cliente. A menudo se utiliza para agregar funciones dinámicas a las páginas web HTML, como responder a diversas operaciones del usuario. JavaScript también se puede utilizar en el desarrollo de juegos y otros aspectos.

La aplicación de js más utilizada es sin duda en el front-end web. En pocas palabras, lo que el sitio web le pasa es un montón de documentos formateados con varias etiquetas, y js es responsable de manipular estos documentos para lograr algunos efectos dinámicos del lado del cliente. El territorio de js no es solo eso, ahora Node.js también se puede utilizar para el desarrollo del lado del servidor.

Lenguaje GO

El lenguaje Go se utiliza principalmente para el desarrollo del lado del servidor. Está posicionado para desarrollar "software grande" y es adecuado para que muchos programadores desarrollen software grande juntos. El ciclo es largo, servicio de red que admite la computación en la nube. El lenguaje Go permite a los programadores desarrollarse rápidamente y, a medida que el software continúa creciendo, les resulta más fácil mantenerlo y modificarlo. Combina la eficiencia de los lenguajes compilados tradicionales con la facilidad de uso y la expresividad de los lenguajes de scripting.

Como lenguaje de programación de servidor, el lenguaje Go es muy adecuado para procesar registros, empaquetado de datos, procesamiento de máquinas virtuales, sistemas de archivos, sistemas distribuidos, agentes de bases de datos, etc., en términos de programación de red, el lenguaje Go es; ampliamente utilizado en aplicaciones web y aplicaciones API, aplicaciones de descarga, etc., además, el lenguaje Go también se puede utilizar en los campos de bases de datos de memoria y plataformas en la nube. Actualmente, muchas plataformas en la nube extranjeras se desarrollan utilizando Go.

Sin embargo, en términos generales, esto es solo una división general. Existen divisiones más detalladas basadas en los intereses y características de programación de cada persona.

Según las clasificaciones de las principales categorías de lenguajes, los lenguajes de programación más populares actualmente incluyen Java, C, Python, PHP, C, C#, JavaScript, R, Go, OC, Swift, etc. Diferentes clasificaciones de lenguajes Hay una cierta diferencia en el orden, pero la diferencia general no es grande. Juzgar si un lenguaje de programación es popular depende del número total de usuarios, por un lado, y de los escenarios de uso del lenguaje, por otro. Aunque algunos lenguajes tienen un número total pequeño de usuarios, tienen una proporción muy alta. Escenarios de aplicación específicos, como OC.