Cual es el uso ideal para cada lenguaje de programación?

-Orion-

Entiendo que cada lenguaje de programación está diseñado con un uso en particular o quizás varios. No soy programador ni ingeniero informático, así que puedo deducir para qué sirven 4 o 5 pero el resto se me escapan. Intentaré poner para qué creo que sirven algunos de los más famosos.


Ensamblador: Lo más cercano que tenemos al código máquina, es decir, instrucciones para la CPU. Diría que se usa para hacer firmware y partes del kernel, cosas que necesitan esa cercanía con el kernel. Quizás también se use para programar microchips y en hardware muy muy limitado.

C: Programas que necesitan ser muy muy rápidos y controlar bien el hardware pero que a lo mejor son demasiado grandes para escribir y mantener en ensamblador. Kernels, herramientas del núcleo de los sistemas operativos y programas que necesitan ser lo más rápidos posibles.

C++: Como C pero orientado a objetos. Sacrificando un poco de rendimiento haces el código de programas que se benefician de este tipo de programación mucho más sencillo. Sé que se usa sobre todo para hacer videojuegos.

Python: Scripts y programas que no requieren un gran rendimiento, sino más bien facilidad para ser entendido y editado por cualquiera.

sh, bash, zsh...: Scripts muy sencillos para entornos Unix, generalmente que usen otras herramientas de Unix como Sed o AWK.


Lo que estaba pensando es que con la cantidad de lenguajes de programación que existen no puede ser que todos sirvan para algo, tiene que haber muchos que se hayan quedado obsoletos ante otro más sencillo y/o potente. Lenguajes como Java, Rust o Javascript igual sí que pueden ofrecer algo que otros no, pero Ruby, Perl, Lisp, C#, Go, PHP, .NET, etc.?

Y repito, hablo desde la total ignorancia, no estoy diciendo que estos lenguajes sean malos o inútiles porque no los he usado ni sé de qué van. Sólo pregunto si todos cumplen una tarea que ninguno más puede hacer.

B

Cuando te leas los libros de Hexan podrás responder

1 1 respuesta
-Orion-

#2 Dónde está eso?
@HeXaN yo te invoco. Me he visto por encima 2 páginas de tus hilos creados para ver si encuentro lo que dice el caballero pero solo encuentro posts del PoE y del Apex.

r2d2rigo

para qué creo que sirven algunos de los más famosos

Si esos son los mas famosos para ti, lo siento pero vives en 2001.

1 respuesta
hda

Hay muchas librerías de Python que corren en lenguajes de más bajo nivel, por lo que en tiempo de ejecución se refiere sirven para cálculo perfectamente.

-Orion-

#4 Perdón, no me he enterado de cuándo han pasado el kernel de Linux a Swift y los motores de videojuegos a CoffeeScript.

1 1 respuesta
RaymaN
#1-Orion-:

sh, bash, zsh...: Scripts muy sencillos

Los scripts que me he encontrado en producción suelen ser cajas negras que hacen magia.

1 respuesta
-Orion-

#7 Yo también me he encontrado auténticas burradas como gestores de paquetes escritos enteramente en sh, pero es que para eso mejor escribirlo en cualquier otro lenguaje.
No tiene sentido usar un lenguaje tan limitado y lento para un proyecto grande. Aunque si alguien lo hace, sus razones tendrá.

r2d2rigo

#6 pues para no enterarte que Unity, el motor mas popular, se programa en C#, tienes que estar viviendo debajo de una piedra.

1 respuesta
-Orion-

#9 Y está hecho en C++, igual que Unreal Engine en el que además también se usa C++ para programar los videojuegos.

No te estoy diciendo que C# no sea popular, pero ya te digo yo que C, C++ y python se siguen usando bastante, después de 2001. Y por la cantidad de software hecho con ellos, sí, son algunos de los más famosos.

1 1 respuesta
Kaledros

Echo en falta Java y Javascript, la verdad.

r2d2rigo

#10 pues claro que se usan, porque son multiplataforma con mas o menos facilidad y porque hay mucho codigo existente en esos lenguajes.

Pero en 2020 no tienes por que estar gestionando la memoria manualmenteo mil cosas mas a bajo nivel, ahi es donde otro lenguajes les ganan por goleada.

1 respuesta
-Orion-

#12 Pues eso es lo que pregunto. Cual es la fortaleza de cada lenguaje. Por qué si tanto Rust como C# gestionan la memoria automáticamente unos usan uno y otros el otro.

W0rd

Here is one thing nobody will tell you and something you will discover only after decades of coding:

There is no rival to C. Period.

You may find yourself coding in Rust comfortable your script or your servlets, but when you will be asked for real performance Rust is going to be short to deliver. HPC, high frequency trading, image processing, games, etc...

The pros only code C, and they don't have bugs. If you have bugs in C, then you didn't learn it well enough. Switch to C and forget about Rust. Use Rust only for code that is not frequently used, and C for all code that is critical to business, that said assuming your business needs to compete in performance. (But if your business doesn't need to compete in performance, then use PHP or Python, it is easier than Rust, but if you use Rust, then it must be for performance reasons, given than Rust is a complicated language and your development costs in Rust will always be higher than those in PHP or Python or Javascript)

And if you decide to go for C, start with some blog that talks about "what every programmer needs to know about memory", and they you will enter another World. The World that will give you power and money that Rust won't give you.

3 respuestas
BrKnChaiN

Se te olvida el gran Cobol y Fortran!

eisenfaust

#14 “The pros only code C, and they don't have bugs.”

Pues debe de haber pocos pros programando porque C es el responsable de la gran mayoría de errores críticos y fallos en seguridad de la industria.

1 respuesta
-Orion-

#16 Información patrocinada por el instituto nacional de estadística inventada (INEI)

1 respuesta
Kaledros

En noticias relacionadas, vivir demasiados años provoca la muerte, por lo que se considera que vivir mucho es la principal causa de muerte en todo el mundo.

Ranthas
#14W0rd:

If you have bugs in C, then you didn't learn it well enough.

Diría que esto es aplicable a cualquier lenguaje de programación, llámame loco.

eisenfaust

#17 https://cve.mitre.org/cve/

https://www.zdnet.com/article/microsoft-70-percent-of-all-security-bugs-are-memory-safety-issues/

1 respuesta
r2d2rigo

#14 menudo copypasta sacado de hackernews minimo.

-Orion-

#20 En el segundo enlace hace referencia al 70% de los productos de microsoft

Con la cantidad de lenguajes de programación que hay, dudo mucho que C sea el responsable de más del 50% de los bugs

1 respuesta
eisenfaust

#22 por supuesto, el lenguaje sin bounds checking mas empleado del mundo no puede ser causante de la mayoria de fallos de seguridad

hay que volver a escribir software aviones, radares y misiles en c, que esos eran tiempos mas divertidos

1 respuesta
-Orion-

#23 Si no están ya en C están en lenguajes más viejos. No creo que haya misiles funcionando en javascript

1 respuesta
WBIndieGame

Todo lo que no sea https://www.haskell.org ni me molesto en mirarlo. Saludos

Ranthas

#24 Deberías saber que los sistemas críticos en tiempo real (aeronáutica, militares) no están escritos en un único lenguaje de programación, sino en varios, y alguno de ellos son lenguajes "modernos".

1 respuesta
Unrack

#26 Cuáles serían estos? De esas características y que no se haya comentado aquí solo recuerdo ADA.

1 respuesta
Ranthas

#27 Cuando era un estudiante (hace ya años, te hablo de 2007-2008) teníamos un profesor de ingeniería del software que había trabajado en Airbus, y por lo que nos contó, trabajan con ADA-95, Java con RTSJ, C/C++ y muchísimo Fortran.

Soltrac

Yo hoy en día solo programo en C en ring0. Y sólo uso c++ cuando tengo q jugar con la memoria, api de Windows y necesito velocidad.

Nadie hoy en día se mete a hacer un software medianamente grande en C por dios. Es una locura de mantener. Y cuando necesitas hacer algo grande y la memoria te da exactamente igual usas un lenguaje moderno por dios.

-Orion-

Yo llegué a leer sobre la NASA contratando a programadores jubilados para mantener su código escrito en Fortran.

Usuarios habituales

  • -Orion-
  • Soltrac
  • Ranthas
  • eisenfaust
  • r2d2rigo
  • Kaledros
  • W0rd