Telefónica fabricará a sus propios programadores web y multiplataforma en su Instituto Tecnológico (FP DAW y DAM)

reconvertido

Será en Octubre
Desde
29 Ago 2010
Mensajes
40.737
Reputación
56.205
Ok campeón, el 99% de los informáticos consideran C un lenguaje de bajo nivel pero da igual, copypastea dos chorradas y quédate ancho.
Adios inútil.
Aquí se habla de C++, no de C.

Y algo me dice que los informáticos actuales no han programado en ensamblador en su fruta vida.
 

reconvertido

Será en Octubre
Desde
29 Ago 2010
Mensajes
40.737
Reputación
56.205
Vaya pro delante de nuevo que estoy (casi) de acuerdo contigo.
Pero quería hacer unas puntualizaciones.

Es que practicamente nadie programa en ensamblador en 2020.
Yo te diría que "nadie" a efectos prácticos.

Las CPUs CISC modernas son demasiado complejas y muy poco intuitivas para un programador humano y son territorio casi exclusivo de los compiladores.
Mmmmm discrepo al respecto.
Pero es cierto que me planté en el i386.

El ensamblador a mano se utiliza para programar CPUs sencillitas y muy poco potentes tipo sistemas embebidos
Ni para eso.
El ensamblador se usa directamente para inicializaciones del micro y del runtime, segmentos de carga y poco más.
El ensamblador, cuanto menos y más lejos, mejor.

(que cada vez tienen un nicho menor, es mas barato pagar un SOC mas potente que horas de ingeniero)
Sí, pero no exactamente.
Eso es así para sistemas únicos o de pocas unidades.
Para producción en masa (te hablo de decenas o cientos de miles e unidades) sigue saliendo a cuenta, tanto por el ahorro directo en el chip, como por posibles costes asociados indirectos (PCB más sencillo y barato, menor patillaje y menor cantidad de piezas defectuosas, etc).
Y eso sin contar con que la empresa te pueda hacer descuentos por volumen de chips antiguos.
Digamos que el "mercado" se ha partido en dos, siendo un nicho ese que tú dices, el de series cortas.

y para optimizar cuellos de botella donde el rendimiento es critico,
Ni eso.
No merece la pena.
Porque la solución no es lo bastante portable.

Si el rendimiento es crítico, suele ser un ordenador de verdad con un sistema de tiempo real (QNX, VxWorks, etc).

cosas de especialistas con conocimiento profundo del hardware,
Si yo te contara...
Pero de nuevo te tengo que dar la razón.

pero para el 99% de los informaticos el ensamblador es una cosa que solo han visto en la carrera
Como afortunadamente casi todos.
Es un dolor programar en eso.

Que tampoco esta tan desencaminado porque el ensamblador no deja de ser un proxy del codigo maquina.
Si no recuerdo mal, el ensamblador y el código máquina tienen una relación uno a uno, son isomórficos, así que son el mismo lenguaje, expresado en dos alfabetos.
Es mi peculiar manera de verlo.

y "lenguaje de bajo nivel" es C/C++.
He cambiado el orden de esta frase para qeu quede la útlima, porque es de lo que va este subhilo.

Creo que confunden conceptos.

Un lenguaje de bajo nivel es aquel que no aísla de la arquitectura subyacente de un computador.
El lenguaje C aísla completamente de la arquitectura subyacente (por algo se le llama "ensamblador universal"), que es la condición suficiente para que un lenguaje se considere de alto nivel,
Otra cosa es que permite el acceso a la RAM y enlazar con trozos de ensamblador.
Una cosa es que permita el acceso a bajo nivel (con acceso a direcciones de la memoria y de la IO) y otra cosa es que sea de bajo nivel.

También creo que les confunde que tenga una sintaxis sin objetos EXPLÍCITOS y sin sobrecarga de operadores con ser de bajo nivel.

Y decir que C++ es de bajo nivel, y equipararlo a C, es algo que no parece muy adecuado.

El lenguaje C++, hasta donde yo sé puede hacer cualquier cosa que hagan Java y Python.
Ojo, el lenguaje, no "el entorno" (lenguaje y librerías).
Otra cosa quizás, sean sus librerías.
Pero un engendro que permite programar cosas como la STL, llamarlo de bajo nivel, sinceramente, no me cabe en la cabeza.

A ver si C# va a ser de alto nivel y C++ no.