En C# (y Java) una cadena es poco más que una matriz de caracteres con una longitud almacenada y algunos métodos añadidos. Del mismo modo, los objetos (referencia vs. valor agregado) son poco más que estructuras glorificadas con herencia e interfaces añadidas.Azúcar sintáctico contra función
En un nivel, estas adiciones se sienten como características claras y mejoras en sí mismas. En otro nivel, se sienten como una mejora marginal del estado del "azúcar sintáctico".
Para tomar esta idea, considere (es posible que tenga algunos detalles mal, pero sigue siendo el punto):
transistor
elementary logic gate
compound gate
| |
ALU flip-flop
| | |
| register RAM
| |
CPU
microcode
assembly
C
C++
| |
MSIL JavaScript
C# jQuery
Muchas veces, todo de una sola capa de abstracción se parece mucho azúcar sintáctico sino múltiples capas de separación se sienten muy separados el uno del otro.
¿Cómo sabes cuando algo ha dejado de ser azúcar sintáctico y comenzó a ser una característica bona fide?
¿Se refiere al lenguaje de diseño? ¿Qué quieres decir con 'algo'? – Dario
Fundamentalmente subjetivo, creo. – dmckee