2010-12-02 15 views
9

Puede pensar que esta pregunta es estúpida o algo así, pero como estudiante de TI nuevo, creo que cuando aprendo un idioma (por ejemplo, java), tiendo a olvidar el que aprendí antes (por ejemplo, c) ... o yo confundir la sintaxis ... Entonces, ¿por qué no fusionar todo en uno para que los estudiantes no necesiten aprender muchos idiomas ... luego matar a los inútiles lenguajes de programación ... ¿Por qué no crear un estándar como el sql ????¿Por qué hay tantos lenguajes de programación?

+1

¿Estás seguro de que esta pregunta debería estar aquí? – mih

+0

Bueno, para empezar, si pusiera todas las capacidades de todos los idiomas disponibles en un idioma, entonces todo el mundo debería comenzar a aprender cosas como Haskell's Arrows http://www.haskell.org/ghc/docs/latest/html/ users_guide/arrow-notation.html. ¿Estás seguro de que es algo que quieres? –

+1

Esta pregunta no es tan profana como todos piensan aquí. – anonymous

Respuesta

6

diferentes idiomas dirección o abrazan:

  • diferentes necesidades (rendimiento en áreas específicas, fiabilidad, facilidad de expresar los programas de nicho, etc)
  • diferentes plataformas
  • modelos de diferencias (funcional, orientado a objetos, etc)
  • Diferentes historias

Hay muchos lenguajes de programación que son " propósito general "y otros que son específicos de una situación particular ... pero incluso dentro de los lenguajes de programación de" propósito general ", ningún idioma se destaca por estar listo para reemplazar a todos los demás.

Tenga en cuenta que incluso con su ejemplo de SQL, la mayoría de los proveedores de bases de datos tienen sus propias extensiones de SQL, que son necesarias para llevar la base de datos más allá de "aquí hay una consulta, proporcióneme una tabla de resultados".

+1

¿por qué no hacer la misma sintaxis? ¿por qué no crear un estándar? – newbie

+0

@joy: Muchos idiomas comparten sintaxis * similar * (por ejemplo, C, C++, Java, C#) pero permitir que diferentes idiomas exploren diferentes modelos de sintaxis es parte de fomentar la innovación. Los diferentes proyectos tienen diferentes requisitos y nichos: no vivimos en un mundo de "talla única". –

+0

ok ... tnx .. entonces supongo que necesito estudiar todo ... – newbie

2

los lenguajes de programación han evolucionado con el tiempo a medida que las computadoras se volvieron más potentes y se abrieron paso en muchos campos de aplicación.

En los comienzos, los recursos eran muy limitados y uno necesitaba lenguajes de programación muy cerca de las máquinas, como Assembler, Cobol, etc.

Hoy en día, hay tanta potencia de procesamiento que podemos utilizar lenguajes de programación altamente sofisticados como Java y C# que hacen que la programación sea muy cómoda, pero no muy eficiente con respecto a los ciclos de la CPU.

Cada lenguaje de programación tiene su propio objetivo. Para el desarrollo integrado, se usan principalmente Assembler, C y C++. Hay muchos otros idiomas para este propósito. Para el desarrollo web hay muchos idiomas disponibles, cada uno con un enfoque en otro aspecto de facilitar el trabajo. Hay idiomas que funcionan en todas las plataformas como Java e idiomas, lo que hace que la programación de Windows sea muy fácil, como VB.NET.

Cuando aprende un lenguaje de programación, su objetivo no debe ser aprender la sintaxis, sino comprender los principios de la programación. Si tiene esto, puede aprender otros idiomas rápidamente en la medida en que sigan los mismos paradigmas (orientado a objetos, procedural, funcional, ...)

2

Si bien la idea de 'un lenguaje para gobernarlos a todos' es una interesante idea teórica, cualquier lenguaje que intente ser todo para todas las situaciones eventualmente se derrumbará bajo su propio peso.

Por ejemplo, mientras estamos viendo cambios interesantes en C# para hacerlo más funcional o más dinámico, un lenguaje que intenta ser todo y poner demasiado en su sintaxis central eventualmente tendrá problemas donde las diferencias muy sutiles en sintaxis puede tener algunos comportamientos inesperados.

Un idioma debería ayudar al usuario a expresar su intención frente a forzarlos a luchar contra el compilador, etc., para lograr esa intención. Por ejemplo, la inmutabilidad es más difícil de hacer en C# que en F #. Algunas cosas son más fáciles y más expresivas para hacer en Ruby frente a un lenguaje con tipos estáticos, etc.- Esto puede llegar al extremo de crear nuestros propios idiomas (DSL) para ayudarnos a expresar mejor nuestro propósito.

En mi carrera, he codificado en Cobol, Fortran, C, Pascal, VB, C#, VB.Net, Javascript y Ruby (por no mencionar cosas como XAML, SQL, HTML, CSS, etc.)

El lenguaje no se trata solo de sintaxis: esa es la parte fácil. Más bien, se trata de aprender las expresiones idiomáticas específicas de ese idioma, y ​​aprovechar sus fortalezas únicas para resolver su problema. Y al conocer una variedad de idiomas, puede determinar mejor qué idioma ofrece las características correctas para resolver el problema de una manera expresiva, sostenible y elegante.

+0

+1. Tiendo a estar de acuerdo con lo que escribiste, pero advertiría sobre otro factor de productividad que parece ser pasado por alto: cambiar, a pedido, de un idioma a otro (y supongo que ya conoces esos idiomas, no hemos tenido en cuenta curva de aprendizaje aún ...) –

Cuestiones relacionadas