¿Por qué tenemos tantos tipos de datos elementales en lenguajes de programación?

El propósito principal de los tipos no es la representación en memoria. (A menos que estés trabajando en C, pobre alma). En cambio, el propósito principal es la abstracción ¹.

Tenemos muchos tipos porque hay muchas cosas diferentes en el mundo .

Escribir un programa de computadora es, a un alto nivel, diseñar un modelo formal. Lo que está modelando depende de para qué sirve su programa, por supuesto: a veces modela cosas directamente del mundo real, y a veces (con bastante frecuencia, en realidad) modela conceptos “meta” diseñados para ayudar a armar el software.

En cualquier caso, los tipos son la columna vertebral de su modelo . Son las entidades que componen el espacio que define; el resto de su código solo define cómo se comportan e interactúan los tipos. En un sentido muy real, son el alma de su programa.

Esto significa que el propósito principal de los tipos es ayudarlo a pensar en su código . Claro, también ayudan a la computadora a optimizar y ejecutar su código, pero esto es solo una consecuencia de ayudarlo. Los tipos lo ayudan a expresar sus intenciones con mayor precisión, lo que permite que la computadora trabaje más por usted.

Entonces: tenemos muchos tipos porque eso es lo que usamos para construir un modelo del mundo o cualquier otra cosa relevante para nuestro programa.

¹ La abstracción es la esencia misma de la informática. Incluso iría tan lejos como definir CS como el estudio de abstracciones, excepto que tendría que enfrentarse con las matemáticas por el título. Creo que es mucho más apropiado que pensar en CS como el estudio de programación o algoritmos o computadoras …

Ya hay una buena respuesta.

Solo te sugiero que leas un libro sobre Estructura de datos y Algoritmo (Corman) de principio a fin. Esto le dará una comprensión profunda de por qué?

No se trata del lenguaje, se trata del pequeño y gran problema informático que puede resolver con un tipo de datos (estructura de datos) simple y avanzado.

Buena suerte

More Interesting

¿Cuál es alguna jerga utilizada por los ingenieros de software?

¿Cómo puedo hacer un proyecto paralelo mientras estoy ocupado (durante los semestres)?

¿Cuál es la diferencia entre QA y un probador?

¿Cuál es el dominio BPM en el desarrollo de software?

¿Es seguro seguir una carrera en desarrollo de software o ciencia de datos en Australia? (Seguro en términos de obtención de relaciones públicas, demanda / crecimiento del empleo, salario, etc.)

¿Es difícil escribir software que se actualice sin reiniciar? ¿Por qué la mayoría de los software con recursos suficientes (por ejemplo, Firefox, Spotify) no hacen esto?

¿Estoy demasiado tarde en la carrera de pasantías de verano de ingeniería de software para 2017? (A partir del 5 de enero de 2017)

¿Qué software se usa para administrar universidades?

¿Las estimaciones del esfuerzo de prueba también incluyen la reevaluación?

Me ofrecen dos trabajos, uno con compañeros de trabajo de mi edad y el otro es un área en la que estoy realmente interesado, ¿qué oferta debo aceptar?

¿Cuál es el futuro de un desarrollador de software una vez que ingresa a finales de los años 30?

¿Cuál es la limitación del cambio de nombre de registro estilo Tomasulo?

¿Cómo manejan los ingenieros de software el cambio de la programación a la ejecución de una startup?

¿Cuáles son las otras oportunidades en el campo de TI aparte de la codificación / desarrollo con conocimientos básicos de programación Java?

¿Cuál es la forma de aprender las pruebas de software?