![]() |
En que programar?
Hola, soy estudiante de analista de sistemas, estoy en segundo año, me falta un año para terminar.
Actualmente estoy programando todo en delphi, y muy poco de base de datos, puros DER hacemos en clase. Les queria hacer una consulta, hoy estube en una libreria, y vi un libro de User sobre Java, al lado uno de C++, otro de php, MySql, y alguno mas que no recuerdo, me llamo mucho la atencion el de java porque es de lo que todo el mundo habla sobre programar, pero me gustaria saber las diferencias entre cada uno de estos lenguajes, y para que conviene cada uno, estoy en una etapa de que nose bien lo que quiero programar, pero lo que si sé es que kiero programar. Por mi carrera solo vimos delphi hasta ahora, nose que veremos en tercer año, pero por si acaso algo de esto queda afuera del temario, me gustaria ir conociendolo y aprendiendo. Me gustaria comprarme un libro de estos o similar y empezar a aprender y descubrir de que se trata, pero el tema es que nose bien la diferencia entre ellos. Hablan de VB.net, VB, php, intregrado con MYsql, por otro lado SQL solo. cualquier ayuda es bienvenida, pero estoy seguro que me van a lograr ayudar porque hasta ahora no me han defraudado, un lujo el foro!!!! muchas gracias!! y disculpe mi ignorancia ;) |
JavaScript me quedo sin nombrar, hay muchos nombres raros!
|
Hola,
¡No te conformes con un libro! Ni tampoco con un lenguaje. :) |
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. |
Cita:
¿De plano es su única virtud? // Saludos |
Esa ha sido buenísima :D:D:D
|
Cita:
// Saludos |
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. |
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! |
Cita:
// Saludos |
ajam, todo muy bien, pero sigo sin saber las diferencias claves en los lenguajes ..muy buenos aportes de todas formas
|
Cita:
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:
|
La franja horaria es GMT +2. Ahora son las 06:30:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi