Anuncio

Colapsar
No hay ningún anuncio todavía.

Qué tiene el C para que sea el que se enseña en las facultades de Física.

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Programación Qué tiene el C para que sea el que se enseña en las facultades de Física.

    Reconozco que estoy bastante desactualizado en temas de programación. Yo en la carrera estudié Fortran, que es el lenguaje clásico que siempre usaron los físicos e ingenieros para sus cosas serias y sobrias (toma unos números, hace cálculos y te da otros números). Luego ví algo de Visual Basic, como cosa más modernilla que te permite hacer programas tipo Windows con interfaces gráficas y tal (todavía no estaba de moda el Java).

    Pero tengo entendido que en muchas facultades de física ya no se enseña Fortran sino C (aunque a lo mejor ya tampoco es así y ahora es otro el que está de moda) y también tengo entendido que usar C en vez de Fortran para cosas de cálculo es como matar una mosca a cañonazos.

    Realmente, ¿en Física e Ingeniería el C tiene alguna ventaja respecto al Fortran o incluso respecto al Basic, o todo esto no son más que modas?. ¿O se ha adoptado para poder entendernos mejor con los informáticos? ¿Es normal que la gente que se dedica a cosas de física use C en su trabajo?.

    Hoy en día, para un un científico o un ingeniero ¿cual es más conveniente o más útil: Fortran, C, Java...? . (Cuando digo C no distingo entre C y C++, de hecho no sé muy bien en qué se diferencian)
    Y otra cosa: ¿En españa alguien usa Perl? y Phyton? (la gente habla de ellos en muchos foros anglosajones, pero jamás me he encontrado con ellos en España)
    Última edición por Chusg; 13/07/2010, 18:16:20.

  • #2
    Re: Qué tiene el C para que sea el que se enseña en las facultades de Física.

    Para calcular siempre ha sido genial usar Fortran, es muy robusto con las matemáticas. Así que no creo que pierda su popularidad. Es cierto que es muy difícil establecer salidas gráficas con Fortran, pero para eso esta Python, que anda excelente y es muy sencillo de programar. Lo mejor, se puede interactuar entre ellos.
    Saludos.
    Jorge López

    Comentario


    • #3
      Re: Los lenguajes de moda en Física

      El Perl se usa mucho en España (como en el resto del mundo). Se usa principalmente para ejecutar aplicaciones seguras desde el lado del servidor en la redes (Internet, sobre todo). Así y todo, para que veas la importancia del C: el Perl está programado en C.

      El Fortran sigue siendo más preciso que el C a la hora de manejar datos numéricos, pero es insufuciente a la hora de manejar otras cosas.

      De todas formas, la apuesta actual más fuerte en lenguaje de programación multipropósito (lenguaje de programación general) es el Java.
      Última edición por polonio; 16/07/2010, 10:38:00.

      Comentario


      • #4
        Re: Qué tiene el C para que sea el que se enseña en las facultades de Física.

        Para hacerse una idea global sobre este tema, lo apropiado es conocer un poco la historia de los lenguajes de programación que intentaré resumir muy someramente de memoria (con alguna consulta a la wiki):

        Inicialmente, los ordenadores se programaban directamente en el lenguaje de la máquina correspondiente, lenguaje que consistía en una serie de códigos numéricos donde cada valor era reconocido por el procesador como una instrucción. A cada uno de estos códigos se le asoció un nombre nemotécnico lo que dio lugar al lenguaje ensamblador. Se inventaron al mismo tiempo programas que convertían el lenguaje ensamblador en código de la máquina.

        Posteriormente, estos lenguajes nemotécnicos se fueron mejorando, haciendo que una sola instrucción en ensamblador correspondieran a muchas intrucciones de la máquina, dando lugar a los llamados macroensambladores y los primeros lenguajes compilados especializados: entre otros, se siguen usando actualmente el COBOL, ideado para aplicaciones comerciales, y el FORTRAN (FORmula TRANslation) ideado para aquellos que querían un lenguaje de alto nivel (es decir, cercano al lenguaje humano) que les permitiera operar con el ordenador aprovechando las mismas capacidades aritméticas que ofrecían los lenguajes ensambladores de bajo nivel (lenguaje cercano a la máquina). Estos lenguajes de alto nivel tenían la ventaja de poder usarse para varios tipos de ordenador, siempre que se dispusiera del compilador adecuado.

        En la segunda mitad del siglo XX, la informática experimentó un avance "milagroso", tanto en lo que se refiere a las máquinas como en la ingenieria afín a ellas. Los sistemas operativos (SO) que las hacían funcionar ya no se conformaban con ejecutar programas secuencialmente, uno detrás de otro, sino que se ideó la forma de ejecutar muchos programas a la vez, en el mismo ordeandor, aprovechando los momentos en los que un programa estaba usando una parte del ordenador para que otro utilizara los recursos libres; es más, se pensó que un mismo ordenador podría tener más de un procesador y que el SO se debía encargar de todos ellos; fue así como nació el UNIX. Para este SO, sus creadores idearon un lenguaje al que llamaron A y que posteriormente evolucionó al B y luego al C, y que tenía como características diferenciadoras un compilador más robusto (dejaba pasar menos errores a la fase de ejecución) y que podía manejar tanto instrucciones de alto como de bajo nivel; prácticamente, podía hacer todo lo que cualquier lenguaje anterior hacía.

        Al mismo tiempo, los lenguajes más usados como el COBOL y el FORTRAN fueron actualizándose, y nacieron otros lenguajes orientados a objetivos específicos: el Pascal para hacer una programación más estructurada, LISP o PROLOG para indagar en la inteligencia artificial, o posteriormente el Basic para acercar la programación a los hogares.

        Hasta aquí, tenemos lenguajes que se preocupaban basicamente de hacer funcionar máquinas que esencialmente (aunque ya había redes de ordenadores) funcionaban aisladas. Pero a finales del siglo XX se produjo otro milagro tecnológico de alcance que fue Internet. Y con internet llegó el HTML y la posibilidad de que datos e incluso programas viajaran de un ordenador a otro de forma descontrolada, o al menos de forma no vigilada desde un ordenador central.

        El HTML es un lenguaje para hacer páginas web cuyos programas se pueden escribir con un sencillo editor de textos y, sin necesidad de compilación, colocar directamente en el servidor para que todo el mundo acceda a ellas. Claro que las páginas así construidas son páginas estáticas, siempre iguales y que no pueden modificarse dinámicamente con, por ejemplo, los datos de una base de datos.

        Por ello, se idearon inicialmente unos programas, principalmente en C, cuyos datos de salida eran páginas HTML construidas a partir de datos dinámicos. Esto se mejoró ideando otros lenguajes, escritos a su vez en C, orientados a facilitar la creación de programas que permitieran crear páginas HTML. Así fue como nacieron el PHP, el Perl, Python, etc.

        Además, a raíz de Internet, se produjo otra revolución que fue el lenguaje Java. La principal caracterñistica de este es que se trata de un lenguaje multiplataforma; es decir, un programa escrito en Java y compilado en cualquier máquina Java, en teoría, debería poder viajar a cualquier otra máquina que tenga instalado Java y funcionar sin problemas. O, por ejemplo, todos los programas de una empresa que estuvieran escritos en Java deberían seguir valiendo sin necesidad siquiera de compilarlos de nuevo, si la empresa cambiara de por ejemplo ordenadores con SO Windows a UNIX.

        *****continúa

        Comentario


        • #5
          Re: Qué tiene el C para que sea el que se enseña en las facultades de Física.

          Así pues, el lenguaje más moderno que existe y el que yo recomendaría implantar en las universidades es el Java. Es un lenguaje que va a servir para trabajar en cualquier tipo de ordenador, tanto de forma independiente como conectado a internet, tanto en procesadores acoplados a, por ejemplo, telescopios, como en servidores de Internet para hacer páginas HTML dinámicas o applets (pequeños programas incrustados en páginas web que funcionan en cualquier ordenador).

          Aunque también tiene sus limitaciones; por ejemplo, es lento para ejecutar algunos tipos de aplicaciones. En estos casos, puede ser sustituitdo por el C o el C++ (es C pero orientado a objetos. Los objetos son estructuras de datos con procesos propios; es decir, en lugar de leer un valor de, por ejemplo, una matriz, pides al proceso encargado que te dé el dato).

          En definitiva, el C es una buena opción para estudiar en una universidad. O, incluso, C y Java. Pero por ejemplo, Fortran aparte de ser ya un poco arcaico, te limita a ciertos centros en los que se debe seguir usando (yo no conozco ninguno). El Pascal es un atraso estudiarlo ya que, aparte de no usarse apenas, usa un orden de parámetros (notación polaca invers) opuesto al de los demás lenguajes.

          Y ya acabo. Puede que algo de lo que he dicho sea ligeramente incorrecto, por lo caul pido perdón y admito correccciones.
          Saludos.

          Comentario


          • #6
            Re: Qué tiene el C para que sea el que se enseña en las facultades de Física.

            Pues yo sigo creyendo que Java sigue siendo muy tocho. Creo que es más útil que enseñen C porque lo veo más ligero o al menos que puedes controlar tú mismo mejor los recursos.

            Comentario


            • #7
              Re: Qué tiene el C para que sea el que se enseña en las facultades de Física.

              Escrito por idontknow Ver mensaje
              Pues yo sigo creyendo que Java sigue siendo muy tocho. Creo que es más útil que enseñen C porque lo veo más ligero o al menos que puedes controlar tú mismo mejor los recursos.
              Pero a lo mejor no es tan facil saber sacarle partido para gestionar bien esos recursos. Supongo que para un informático que sepa mucho y que tenga que hacer aplicaciones distribuibles que funcionen rápido, etc, el C será lo mejor. Pero por algunos sitios he oido que resulta innecesariamente complicado y tedioso para muchas cosas especialmente si no eres programador profesional. No sé si será verdad.

              Y luego está lo de si son compilados o interpretados. Si no me equivoco, con phyton, perl,...no se pueden compilar los programas para hacer ejecutables sino que para correr los programas necesitas tener instalado en tu ordenador un intérprete. ¿Es lo mismo que los programas hechos en java, que aunque genera archivos .exe necesitas tener instalado el java para poder correrlos?. ¿El phyton o el perl tienen alguna ventaja sobre el java?.

              Otra duda: ¿hay alguna opción de software libre que permita hacer los programas con interfaces gráficas de usuario al estilo de visual basic, es decir, que dibujas la interfaz fácilmente con el ratón en vez de picando código, y luego ya escribes el código asociado a cada cosa?

              Gracias por vuestros comentarios
              Última edición por Chusg; 17/07/2010, 13:50:59.

              Comentario


              • #8
                Re: Qué tiene el C para que sea el que se enseña en las facultades de Física.

                Escrito por Chusg Ver mensaje
                Pero a lo mejor no es tan facil saber sacarle partido para gestionar bien esos recursos. Supongo que para un informático que sepa mucho y que tenga que hacer aplicaciones distribuibles que funcionen rápido, etc, el C será lo mejor. Pero por algunos sitios he oido que resulta innecesariamente complicado y tedioso para muchas cosas especialmente si no eres programador profesional. No sé si será verdad.
                Para hacer ejecutables .exe o .com la mejor opción es el C. ES un lenguaje que tiene de todo pero puedes usar sólo aquello que te haga falta.

                Escrito por Chusg Ver mensaje
                Y luego está lo de si son compilados o interpretados. Si no me equivoco, con phyton, perl,...no se pueden compilar los programas para hacer ejecutables sino que para correr los programas necesitas tener instalado en tu ordenador un intérprete. ¿Es lo mismo que los programas hechos en java, que aunque genera archivos .exe necesitas tener instalado el java para poder correrlos?.
                Como ya apunté anteriormente, Python, ÇPerl, PHP, CGIHTML y similares no generan programas ejecutables; no son lenguajes de programación propiamente dichos sino lenguajes para hacer scripts CGI (Common Gateway Interface) cuyo objeto es generar páginas HTML dinámicas.

                Escrito por Chusg Ver mensaje
                ¿El phyton o el perl tienen alguna ventaja sobre el java?.
                Aparte de la sencillez de aprendizaje, ninguna. Pero con Java sí se pueden hacer ejecutables, aunque son un tipo especial de ejecutables que corren en máquinas virtuales de Java.

                Escrito por Chusg Ver mensaje
                Otra duda: ¿hay alguna opción de software libre que permita hacer los programas con interfaces gráficas de usuario al estilo de visual basic, es decir, que dibujas la interfaz fácilmente con el ratón en vez de picando código, y luego ya escribes el código asociado a cada cosa?
                Sí. Yo la estoy probando a ratos y permite hacer ventanas como el Visual Basic pero para C y Java, además de muchas otras cosas. Se llama NetBeans. LA dirección para descargarlo es http://www.netbeans.org

                Saludos.

                Comentario

                Contenido relacionado

                Colapsar

                Trabajando...
                X