![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola,
¡No te conformes con un libro! Ni tampoco con un lenguaje. ![]() |
|
#2
|
||||
|
||||
|
En terminos generales, es bueno aprender mas de un language (de hecho diria que es fundamental para volverse buen programador).
Pero es importante saber mezclarlos. No tiene mucha gracia aprender Java y C# (muy parecidos). Es mejor aprender lenguajes opuestos, o que te introduzcan a formas muy diferentes de hacer las cosas. Por ejemplo, luego de usar Delphi, empeze con python: http://www.python.org/. Delphi y python son muy diferentes, pero complementarios. Con Delphi, aprendes mucho sobre estructuras estaticas, la importancia de predefinir todo y de usar lenguajes estaticos y compilados, ademas de RAD. Python es inverso: Es dinamico, es scripting, es definir por codigo y no por IDE. Otros combos interesantes para combinar con Delphi: Haskell: http://learnyouahaskell.com/ Te quita el concepto de la programacion OO y te introduce a su opuesto natural: Programacion funcional C# o Java: Para conseguir un trabajo Ruby: Metaprogramacion y magia. El opuesto en estilo de python, tirando mas a lenguaje funcional. Muy popular entre desarrolladores web Go (http://golang.org/): Programacion multi-hilos, mas simple. ------ Pero es ideal saber manejar bien uno primero antes de aventurarse a aprender los demas. Lo que aprendes en la U tiende a ser una muy escueta introduccion a la programacion, y hasta que no desarrolles software no vas a enfrentarte a los desafios necesarios que construiran la experiencia que necesitas para poder realmente decir que sabes programar. Asi que yo empezaria por saber a donde te quieres enfocar, y un proyecto X en concreto. Luego ejecutarlo y terminarlo.
__________________
El malabarista. |
|
#3
|
||||
|
||||
![]() ¿De plano es su única virtud? // Saludos |
|
#4
|
||||
|
||||
|
Esa ha sido buenísima
![]() ![]() ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
||||
|
||||
|
Cita:
// Saludos |
|
#6
|
||||
|
||||
|
Cita:
Algo que me tomo tiempo entender es que no existe una linea ascendete tipo: Programacion Imperativa < Estructural < Objetos Sino familias de lenguajes. Por lo tanto, no hay retroceso en pasar de una familia a otra (algo que hacemos todo el tiempo, por ejemplo al usar un lenguaje declarativo como SQL o HTML). La programacion funcional es la OPUESTA a la orientada a objetos. En OO se tiende a enfatizar todo en el sustantivo, mientras en la funcional en el paso de datos. La primera vez que entendi la diferencia fue leyendo: http://steve-yegge.blogspot.com/2006...-of-nouns.html P.D: Al igual que todo "estilo", la programacion funcional puede ser incorporada en otros lenguajes que son OO, y la OO se puede introducir en otros lenguajes no OO (como por ejemplo, cuando se simular OO en C). Esto significa que no hay que sacrificar -del todo- la herramienta que conozco ahora, por una totalmente diferente. Un ejemplo simple, en python (python es multi-paradigma: OO, procedural, funcional, imperativo): Tradicional, imperativo (con efectos colaterales): Código PHP:
Código PHP:
http://stackoverflow.com/questions/2...ed-programming La programacion funcional ha sido casi siempre un "nicho" oscuro, ppalmente porque sus proponentes son muy de la academia y meten una terminologia y casos de usos muy cienti/matematico/esoterico que es dificil de resonar con el programador promedio, pero ultimamente sus conceptos mas utiles se han ido pegando en varios lenguajes. Por ejemplo: Soporte a Closure y funciones de primero orden Uso de funciones anonimas / lambdas Tambien han ido surgiendo lenguajes como F#, Scala, Clojure que tiene un punto de vista mas "normal" de la programacion funcional y que como corren sobre un runtime como .NET/Java permiten importar codigo OO.
__________________
El malabarista. |
|
#7
|
||||
|
||||
|
Cita:
Y ¿Cuales son eso efectos colaterales? Y por cierto, el segundo ejemplo parece mucho mas retorcido, en el peor sentido, que el de php. Un saludo!
__________________
"la única iglesia que ilumina es la que arde" Anonimo |
|
#8
|
||||
|
||||
|
Cita:
// Saludos |
|
#9
|
|||
|
|||
|
ajam, todo muy bien, pero sigo sin saber las diferencias claves en los lenguajes ..muy buenos aportes de todas formas
|
|
#10
|
||||
|
||||
|
http://docs.python.org/howto/functional.html
Cita:
Supongamos que el codigo que puse (ambos son python, pongo etiqueta PHP por los colores, ya que no hay para python) fuera una funcion: Código PHP:
En la programacion funcional se busca que con la MISMA entrada ocurra EXACTAMENTE, SIEMPRE, la MISMA salida. Esto ayuda a que el programa sea mas confiable, correcto y sin sorpresas inesperadas. O en otras palabras, se busca la inmutabilidad de los datos, y se prefiere retornar copias nuevas de los datos transformadas por funciones. En forma funcional: Código PHP:
Los efectos colaterales son causas de muchos errores y dificultad en depurar los programas, porque en cualquier momento, una estructura cambia su significado e informacion al ir pasando de un lado al otro, y el manejo del estado se debe chequear manualmente (recordar que si paso un objeto mutable lo que envie me puede devolver algo inesperado). Cita:
En OO se puede llegar a cosas raras como: Código PHP:
__________________
El malabarista. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Programar .Net | kman | Varios | 0 | 01-09-2006 03:49:08 |
| Programar un telefono | mauriciofox | Internet | 3 | 05-12-2004 22:11:16 |
| Programar una PDA | marcial | Varios | 5 | 02-10-2004 19:39:41 |
| Programar con Paquetes PKG | brandolin | Varios | 1 | 10-08-2004 03:37:08 |
| Programar el puerto usb | el toluca | Varios | 0 | 30-06-2004 20:33:17 |
|