Con que empezar a programar

Camperito

Venga ya lo digo yo, que nadie se atreve.

NO empieces, no merece la pena

1 1 respuesta
eisenfaust

#30 estamos discutiendo semantica. pero al fin y al cabo, java no es un lenguaje oop puro, y por conclusion logica no puede ser el lenguaje adecuado para aprender, te cito, "como debe programarse en oop"

no he dicho que no se pueda, pero es un workaround. si las decisiones durante el dise;o de java hubiesen permitido que tuviese herencia multiple, pues no tendriamos esas cosas que mencionas porque no harian falta (de hecho se a;adieron en posteriores revisiones del lenguaje lo cual huele a error de dise;o y huida hacia adelante)

en mi opinion o tienes herencia en condiciones sin limitarte a un subset de esta o favoreces la composicion prohibiendo la herencia, una de las dos. he sufrido esos problemas en codebases de java que me han hecho aborrecer el lenguaje. en cambio con go que es en lo que programo el 80% del tiempo actualmente no he tenido ese problema pese a ser un lenguaje mas simple que java, pero que ha tomado decisiones excelentes a nivel de composicion (no existe la herencia por ejemplo, salvo para structuras de datos; las interfaces son tipos y su contratos se satisfacen transparentemente, y hay una separacion clara entre metodos y estructuras de datos)

typescript es genial por cierto. como todo lo que lleva el sello hejlsberg

3 1 respuesta
Zerokkk

#32 Bueno, estoy más de acuerdo con esta explicación, pero bajo mi punto de vista, creo que con buena formación en oop (o la oop de Java/C# si prefieres llamarlo así), no deberían cometerse tantos errores, aunque para mi gusto, lo suyo es una mezcla de este tipo de herencia unida a la composición, justo lo que se puede hacer en JS/TS (que diría, facilita mucho el mantenimiento de software, ya que no hay que estar manteniendo jerarquías estáticas).

De TS algo que me gusta concretamente, es cómo funcionan las interfaces. El poder declarar variables opcionales sin andar heredando interfaces (pero aún pudiéndolo hacer) me parece algo bastante top, y que alguien me corrija si me equivoco, pero creo que no lo había en Java.

B

#31 y por que no merece la pena?

B

Casi cualquier lenguaje es bueno para asentar las bases de la programación.

PD: no tires por Clojure o similares para empezar :D