¿La mayoría de los lenguajes de programación son contraintuitivos y están mal diseñados?

Si y no.

Realmente no se puede diseñar una sierra que también sea un buen martillo.

La mayoría de los lenguajes de programación están bien diseñados para un rango limitado específico de tareas, cuando son programados por el rango específico específico de personas que diseñaron el lenguaje.

Esto nos lleva al problema de la intuición.

Si piensa con claridad, claridad y precisión, y tiene plazos generosos, Ada es completamente intuitiva y está bien diseñada, y Perl no.

Si estás un poco loco y necesitas el código que deberías haber comenzado la semana pasada hace una hora, entonces Ada no es intuitiva y está horriblemente diseñada, pero Perl sí.

Si piensa en funciones puras, LISP y Haskell son intuitivas, D y Fortran no lo son.

Si está construyendo un robot o haciendo trabajos de hardware de bajo nivel, Forth piensa como usted. Si no lo estás, Forth intentará conducir un semi a través de tu cerebro.

Y así.

Ningún lenguaje de programación es intuitivo. Un lenguaje de programación es una especificación estricta y lógica de cómo proporcionar instrucciones a una computadora. Para saber cómo interactuar con una arquitectura de computadora. Como tal, está más allá de la experiencia de los seres humanos fuera del útero. No existe un contexto social dentro del cual se pueda reconocer cómo debería funcionar un lenguaje de programación.

Quizás, estás combinando “intuitivo” con amigable y fácil de aprender. Un lenguaje de programación puede ser diseñado para ser limpio, conciso, consistente y accesible para mentes no técnicas. Es por eso que Python se ha vuelto tan popular en los últimos años, especialmente. en ciencia de datos y aprendizaje automático.

Vea Slant: ¿cuáles son los “mejores” lenguajes de programación (que mejoran la productividad, están bien diseñados y son concisos, en lugar de solo populares o probados)?

Si hay un lenguaje que se acerca más a su ideal de “intuición”, entonces debe ser Smalltalk (Pharo). Ver He aquí Pharo: The Modern Smalltalk.

Algunos lenguajes de programación están diseñados para soportar claramente un paradigma de programación, y si no piensas de esa manera, es increíblemente contradictorio. Prueba lisp. O adelante.

Algunos idiomas están diseñados para ser seguros y no revelan toda la potencia de la máquina. Estoy pensando en Pascal.

Los lenguajes más difundidos y populares están diseñados para ser útiles. No son expresiones puras de un solo paradigma de programación. No son “seguros”. Piensa en C y C ++.

El lenguaje más popular de más rápido crecimiento es Python, en este momento. También está diseñado para ser útil. Es relativamente fácil llamar a una función C desde Python, o invocar un intérprete de Python desde C. Por lo tanto, puede ser rápido y no seguro, pero si te quedas en Python es mucho más seguro que C ++. Si hace algo mal, es probable que lo atrape y le diga, mientras que C ++ podría seguir ejecutándose haciendo cosas que no esperaba y posiblemente escribiendo en ubicaciones de memoria en las que no tenía intención de escribir.

No, creo que en general, están hechos bastante bien para la tarea en cuestión.

Sin embargo, la tarea en cuestión rara vez facilita las cosas para los principiantes.

Los lenguajes de programación generalmente están hechos para programadores que trabajan, por lo que lo que puede parecer contra-intuitivo para un principiante tiene mucho sentido para un programador que trabaja.

C, por ejemplo, salió en los años setenta y compiló programas en minicomputadoras PDP y similares, pero todavía es completamente utilizable en cualquier computadora moderna, eso es un testimonio de lo bien que está diseñado.

Sin embargo, no está hecho para los débiles de corazón, no está hecho para principiantes, no está hecho para hacerte sentir bien contigo mismo.

Es realmente tentador que si te resulta difícil programar, culpar a los idiomas, culpar a las herramientas, culpar a las computadoras, culpar cómo te han enseñado.

Es difícil mirar en el espejo y saber que es usted el culpable.

Los lenguajes de programación son, en general, no están mal diseñados, pero todavía no eres muy bueno programando.

Eso está bien y es normal, no es nada de qué avergonzarse. Sin embargo, probablemente deba dejar de quejarse de Quora y comenzar a aprender a programar.

Todos los traductores de idiomas humanos le dirán que hay momentos en que una frase hablada en un idioma se puede expresar de múltiples maneras en otro idioma, y ​​sin embargo, ninguna de esas traducciones individuales expresará completamente lo que se quiso decir en el idioma de origen. Ahora, si los humanos no pueden expresar exactamente pensamientos e ideas de un humano a otro humano, entonces ¿por qué existe la expectativa de que podamos expresar ideas entre un no humano (computadora) y un humano?

Cada programa escrito en cualquier idioma que se haya escrito es un intento de traducir una idea creada por el ser humano a un idioma comprensible por una computadora. Personalmente, considerando los desafíos involucrados, creo que las personas han hecho un trabajo increíble para encontrar formas de hacer que las computadoras sean más fáciles de usar.

¿Más? ¡Absolutamente!

Es difícil definir qué es ‘intuitivo’ y qué no lo es. Hace un par de años, intenté ayudar a mi hermano a entrar en Python, mi fuerte. No importaba lo que intentara, él se enojaba con el idioma a menudo, pensando que era culpa de Python que no estaba haciendo lo que quería. Sin embargo, siempre fue él quien hizo las cosas mal y no pensó bien las cosas. Recuerdo que una vez dijo que el lenguaje estaba mal diseñado, que en mi opinión no podía estar más lejos de la verdad; la sintaxis es limpia y legible y hay muchas reglas de estilo de código definidas. Es intuitivo.

Pero su pregunta es “la mayoría de los lenguajes de programación son contraintuitivos y están mal diseñados”. Pues definitivamente; Hay cientos de lenguajes de programación, puede que no los conozca todos pero existen. La mayoría de ellos estarán mal diseñados y contra-intuitivos.

Lo que podría haber querido decir era si los lenguajes más populares (es decir, JS, C, Java, etc., etc.) estaban mal diseñados. Bueno, la mayoría de ellos están bien diseñados, excepto JavaScript, por supuesto.

El diseño del lenguaje de programación es siempre el registro de la mejor compensación que el diseñador podría imaginar en ese momento.

Solo Perl estaba mal diseñado, y eso fue a propósito.

No. En realidad, podría argumentar que los lenguajes más intuitivos son los peor diseñados. También he conocido a muchas personas que piensan que una cosa es totalmente intuitiva, que es totalmente contra intuitiva para mí y viceversa. Recuerdo que cuando me presentaron por primera vez las bases de datos relacionales, fui uno de los pocos en la clase que pareció comprenderlo a un nivel intuitivo el primer día. Todavía no entiendo intuitivamente OO.

No. Tienen sentido para los programadores. Pueden parecer contradictorios para las personas que no tienen aptitud para la programación.