Pues eso, yo creo que depende del uso que se le vaya a hacer de las horas dedicadas a la programacion. Si uno solo quiere aprender informatica para trabajar y ganar dinerito, pues nada, se ha de aprender lo justo, el lenguaje RAD que se vaya a usar.
Por lo contrario si a alguien lo hace por que le gusta y quiere hacerse un buen profesional yo le recomendaria empezar por el C para que asi tambien aprenda en que consiste un ordenador y que las cosas no se hacen por arte de magia.
Una vez aprendido bien el C, pasar a lenguajes de alto nivel es trivial y en poco tiempo se llegan a manejar y comprender mucho mejor que la gente que lleva lustros programando en estos lenguajes.
Esto es offtopic pero nunca lo he visto comentado en ningun sitio, cuando alguien usa un lenguaje de alto nivel que no tiene punteros, en cuanto lleva un tiempo trabajando empieza a tener necesidades que el lenguaje de alto nivel no le puede dar. Es en esos momentos cuando el programador necesita bucear en layers mas bajos del sistema, y es cuando entran los hacks, ya que en esos layers todo va regido por direcciones de memoria y por lo tanto se necesitan 'punteros'.
De estas necesidades salen articulos como el que escribi en su dia sobre acceder directamente a las variables del visual basic con un hack. [micro-electronica.com]
Por ejemplo, el 99% de los programas importantes hechos en visual basic, tienen un monton de hacks para poder acceder directamente a la API del windoze. Por eso me hace gracia cuando la gente ve el .NET o el JAVA como la solucion a los problemas mundiales, estos sistemas no valen nada mas que para cosas triviales como web y bases de datos por que si haces hacks para acceder al sistema como se hace en los demas lenguajes de alto nivel, el sistema YA NO ES PORTABLE, y por lo tanto estamos como al principio(pongo por ejemplo la libreria que hizo microsoft en su java para acceder al winapi, por lo que si la usabas solo iba en windoze). La unica forma de hacer de todo como dicen algunos con estas maquinas virtuales, seria tener unas librerias para esos sistemas tan grandes como las del propio sistema operativo, o que el mismo sistema operativo estuviese hecho en codigo virtual. (osease .NET o CLI de java o como se llame).
Precisamente me estoy refiriendo a lo que tu comentas, todos los lenguajes de alto nivel te dejan penetrar en el sistema "hasta cierto punto".
Cuando un programador adquiere un cierto nivel este a ese "cierto punto" se convierte en una limitacion, y en los lenguajes de alto nivel tradicionales que no tienen punteros reales se buscan metodos para saltarse esa barrera.
Naturalmente estos metodos no estan soportados y en la siguiente version del lenguaje puede pasar que el metodo usado ya no funcione y te toque arreglarlo, pero estos hacks hacen que los programas sean MUCHO mejores que si no lo tuvieran. Por ejemplo en el mundo visual basic habia que hacer eso si querias conseguir subclassing de ventanas o multithreading o manejar perfectamente la impresora. Ahora con las nuevas versiones supongo que se podra hacer legalmente con la libreria del vb, y entramos en lo que decia al principio, al final las librerias de los propios lenguajes seran tan grandes como las del propio sistema operativo.
Sin ser un experto de java te puedo asegurar por sentido comun que si tiene punteros, estos no son reales, es decir, no creo que puedas escribir en el lugar que tu desees de la memoria de tu proceso, y llamar a una winapi o al libc, o al criptoapi o a los raw sockets, y conseguir las prestaciones que los otros lenguajes si pueden obtener.
La portabilidad binaria para mi no tiene mucho sentido, a no ser para cositas simples como applets y similares, y hacer programitas que sean "más de lo mismo". Al menos en el java sabemos de que pie cojea y cuando utilizarlo, pero el .Net los fabulosos chicos de marketing nos lo estan vendiendo como el sistema a utilizar a partir de ahora para realizar todos los programas.(espero que en el visual studio no sustituyan el C por el C# y al menos coexistan los 2).Lo que me sorprendio bastante es que Icaza adoptara esta tonteria. Bueno, que ya me salgo de madre, el tiempo pondra a cada uno en su sitio....
Depende
(Puntos:2, Interesante)( http://www.micro-electronica.com | Última bitácora: Domingo, 09 Enero de 2005, 23:44h )
Si uno solo quiere aprender informatica para trabajar y ganar dinerito, pues nada, se ha de aprender lo justo, el lenguaje RAD que se vaya a usar.
Por lo contrario si a alguien lo hace por que le gusta y quiere hacerse un buen profesional yo le recomendaria empezar por el C para que asi tambien aprenda en que consiste un ordenador y que las cosas no se hacen por arte de magia.
Una vez aprendido bien el C, pasar a lenguajes de alto nivel es trivial y en poco tiempo se llegan a manejar y comprender mucho mejor que la gente que lleva lustros programando en estos lenguajes.
Esto es offtopic pero nunca lo he visto comentado en ningun sitio, cuando alguien usa un lenguaje de alto nivel que no tiene punteros, en cuanto lleva un tiempo trabajando empieza a tener necesidades que el lenguaje de alto nivel no le puede dar.
Es en esos momentos cuando el programador necesita bucear en layers mas bajos del sistema, y es cuando entran los hacks, ya que en esos layers todo va regido por direcciones de memoria y por lo tanto se necesitan 'punteros'.
De estas necesidades salen articulos como el que escribi en su dia sobre acceder directamente a las variables del visual basic con un hack. [micro-electronica.com]
Por ejemplo, el 99% de los programas importantes hechos en visual basic, tienen un monton de hacks para poder acceder directamente a la API del windoze.
Por eso me hace gracia cuando la gente ve el .NET o el JAVA como la solucion a los problemas mundiales, estos sistemas no valen nada mas que para cosas triviales como web y bases de datos por que si haces hacks para acceder al sistema como se hace en los demas lenguajes de alto nivel, el sistema YA NO ES PORTABLE, y por lo tanto estamos como al principio(pongo por ejemplo la libreria que hizo microsoft en su java para acceder al winapi, por lo que si la usabas solo iba en windoze).
La unica forma de hacer de todo como dicen algunos con estas maquinas virtuales, seria tener unas librerias para esos sistemas tan grandes como las del propio sistema operativo, o que el mismo sistema operativo estuviese hecho en codigo virtual. (osease .NET o CLI de java o como se llame).
Salu2
Eid0
Re:Que dices???
(Puntos:1)( http://www.micro-electronica.com | Última bitácora: Domingo, 09 Enero de 2005, 23:44h )
Cuando un programador adquiere un cierto nivel este a ese "cierto punto" se convierte en una limitacion, y en los lenguajes de alto nivel tradicionales que no tienen punteros reales se buscan metodos para saltarse esa barrera.
Naturalmente estos metodos no estan soportados y en la siguiente version del lenguaje puede pasar que el metodo usado ya no funcione y te toque arreglarlo, pero estos hacks hacen que los programas sean MUCHO mejores que si no lo tuvieran.
Por ejemplo en el mundo visual basic habia que hacer eso si querias conseguir subclassing de ventanas o multithreading o manejar perfectamente la impresora.
Ahora con las nuevas versiones supongo que se podra hacer legalmente con la libreria del vb, y entramos en lo que decia al principio, al final las librerias de los propios lenguajes seran tan grandes como las del propio sistema operativo.
Sin ser un experto de java te puedo asegurar por sentido comun que si tiene punteros, estos no son reales, es decir, no creo que puedas escribir en el lugar que tu desees de la memoria de tu proceso, y llamar a una winapi o al libc, o al criptoapi o a los raw sockets, y conseguir las prestaciones que los otros lenguajes si pueden obtener.
La portabilidad binaria para mi no tiene mucho sentido, a no ser para cositas simples como applets y similares, y hacer programitas que sean "más de lo mismo".
Al menos en el java sabemos de que pie cojea y cuando utilizarlo, pero el .Net los fabulosos chicos de marketing nos lo estan vendiendo como el sistema a utilizar a partir de ahora para realizar todos los programas.(espero que en el visual studio no sustituyan el C por el C# y al menos coexistan los 2).Lo que me sorprendio bastante es que Icaza adoptara esta tonteria.
Bueno, que ya me salgo de madre, el tiempo pondra a cada uno en su sitio....
Eid0