Tema destacado: [Overclocking] Récords de overclock del foro
Autor
|
Tema: mejor lenguaje para empezar en poo? (Leído 13,826 veces)
|
Littlehorse
All the world's a stage
Moderador
 
Desconectado
Mensajes: 2.710
Nie Dam Sie
|
Exacto, uno de los objetivos de ambos lenguajes es mantener la simplicidad a toda costa, y la herencia múltiple adiciona demasiada complejidad. Por esa misma razón, Java tampoco permite la sobrecarga de operadores. tienes razon el problema es que trato de buscar los fundamentos de la poo y solo encuentro articulos relacionados con otros lenguajes java, c++, javascript... En las referencias de wikipedia tenes varios: - chach, Stephen (2006). Object-Oriented and Classical Software Engineering, Seventh Edition. McGraw-Hill. ISBN 0-073-19126-4.
- Abadi, Martin; Luca Cardelli (1998). A Theory of Objects. Springer Verlag. ISBN 0-387-94775-2.
- Abelson, Harold; Gerald Jay Sussman, (1997). Structure and Interpretation of Computer Programs. MIT Press. ISBN 0-262-01153-0.
- Armstrong, Deborah J. (February 2006). "The Quarks of Object-Oriented Development". Communications of the ACM 49 (2): 123–128. doi:10.1145/1113034.1113040. ISSN 0001-0782. http://portal.acm.org/citation.cfm?id=1113040. Retrieved 2006-08-08.
- Booch, Grady (1997). Object-Oriented Analysis and Design with Applications. Addison-Wesley. ISBN 0-8053-5340-2.
- Eeles, Peter; Oliver Sims (1998). Building Business Objects. John Wiley & Sons. ISBN 0-471-19176-0.
- Gamma, Erich; Richard Helm, Ralph Johnson, John Vlissides (1995). Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley. ISBN 0-201-63361-2.
- Harmon, Paul; William Morrissey (1996). The Object Technology Casebook - Lessons from Award-Winning Business Applications. John Wiley & Sons. ISBN 0-471-14717-6.
- Jacobson, Ivar (1992). Object-Oriented Software Engineering: A Use Case-Driven Approach. Addison-Wesley. ISBN 0-201-54435-0.
- Kay, Alan. The Early History of Smalltalk. http://gagne.homedns.org/%7etgagne/contrib/EarlyHistoryST.html.
- Meyer, Bertrand (1997). Object-Oriented Software Construction. Prentice Hall. ISBN 0-13-629155-4.
- Rumbaugh, James; Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen (1991). Object-Oriented Modeling and Design. Prentice Hall. ISBN 0-13-629841-9.
- Taylor, David A. (1992). Object-Oriented Information Systems - Planning and Implementation. John Wiley & Sons. ISBN 0-471-54364-0.
- Schreiner, Axel-Tobias (1993). Object oriented programming with ANSI-C. Hanser. ISBN 3-446-17426-5. http://hdl.handle.net/1850/8544.
Saludos
|
|
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
globsharp
Desconectado
Mensajes: 84
No me mires
|
Ah  gracias a los dos por las aclaraciones, da gusto leerles.
|
|
|
|
|
En línea
|
Duérmete
|
|
|
|
MazarD
|
Ya no viene muy a cuento pero me quedé con las ganas de responder. xD
El problema de aprender orientación a objetos en C++ no es que no puedas hacerlo, es que abarcas un rango de posibilidades "no adecuadas" en OO que no serían posibles en c# o java, otro punto es la sintaxis, que en estos dos últimos lenguajes es más explicita. Está claro que se puede aprender en C++ pero seguramente no será el mejor para aprender.
El hecho de que puedas declarar funciones y variables fuera de una clase en C++ y no en java o c#, el que no puedas crear structs en java (o en c# debas especificar el acceso), el tener que especificar abstract para crear clases abstractas tanto en c# como en java y no en c++, etc etc etc hacen que sea mejor para aprender unos que el otro. Aunque ruby, eiffel y demás puedan ser igual o más válidos (personalmente no he tenido la oportunidad de probarlos) de lejos no tendrán la documentación o comunidad de desarrolladores que tiene java, c# o c++.
Saludos!
|
|
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.647
My software never has bugs. Its just features!
|
Buen post MazarD, Sí, yo creo que tomando en cuenta lo que expones si sea un poco más adecuado Java o C# en un principio, pero dada la sintaxis no creo que sea poblema por ejemplo saltar de C# a Java, o Java a C++. Se pueden a prender los 3 sin ningún problema, obviamente cada uno tiene lo suyo, pero creo que es la mejor opción a la hora de elegir uno. Yo mismo primero con Java que con .net, y primero fue Atari Basic y luego VB5, aunque estuve muchos años con la sintaxis de Basic, (incluso VB.net) , yo mismo decía que esos {} no me gustaban, pero la verdad es que es muy diferente a la hora de programar y leer código. Por lo mismo digo de nuevo, pruébalos 
|
|
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
 
Desconectado
Mensajes: 2.710
Nie Dam Sie
|
@Mazard Yo aclare el tema de las posibilidades en C++ porque en los posts anteriores se podía entender entre lineas que en C++ no se podía utilizar POO perfectamente. Mas allá de que sabia que no era eso lo que quisiste decir, es como que flotaba esa idea. De Eiffel yo solo conozco la torre  , lo mencione porque la conclusión era que para aprender POO lo mejor es un lenguaje OO puro, sin embargo ningún lenguaje OO puro había sido mencionado. De hecho, no recomiendo aprender ni Eiffel, ni Smalltalk, ya que no considero que aporten nada para aprender ni C++, ni Java, ni C#. Lo importante para aprender POO es que el lenguaje soporte el paradigma completamente y nada mas. En cuanto al resto, estoy de acuerdo a medias por el hecho que el usuario viene de C, por lo tanto esta claro que tiene que saber reconocer los elementos de estructurada a la hora de meterse con C++. Otra historia es cuando C++ es el primer lenguaje, se tarda un tiempo en dejar la estructurada y se tarda otro tiempo mas en programar orientado a objetos en lugar de basado en objetos. En ese caso si estaría de acuerdo con lo ultimo que dijiste. Saludos!
|
|
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
|
MazarD
|
De Eiffel yo solo conozco la torre  , lo mencione porque la conclusión era que para aprender POO lo mejor es un lenguaje OO puro, sin embargo ningún lenguaje OO puro había sido mencionado. De hecho, no recomiendo aprender ni Eiffel, ni Smalltalk, ya que no considero que aporten nada para aprender ni C++, ni Java, ni C#. Tienes razón, siendo rigurosos c# y java no serán lenguajes oo puros, de todos modos fueron diseñados con la intención de serlo, al contrario de c++ que lo soporta perfectamente pero no pretende darle mas importancia que a cualquier otro paradigma. Lo importante para aprender POO es que el lenguaje soporte el paradigma completamente y nada mas. También cierto, pero si la pregunta es "cual es el mejor lenguaje para aprenderlo", aunque no puede dejar de ser subjetivo, java o c# por estar diseñados para serlo muy probablemente serán una mejor opción. En cuanto al resto, estoy de acuerdo a medias por el hecho que el usuario viene de C, por lo tanto esta claro que tiene que saber reconocer los elementos de estructurada a la hora de meterse con C++. Bueno, esto es mas o menos lo que intentaba reflejar en mi otro post. El punto es que sepa reconocerlos (más que de la estructurada de la procedimental) y deje de utilizarlos para empezar a utilizar la metodología típica de la OO, con C++ nunca tendras problemas para hacer lo que no debes, con java y c# si. Aunque este no sea el punto principal para aprender, puede en buena medida simplificar el proceso, y puestos a elegir un lenguaje para aprender, mejor que simplifique el camino por poco que sea. Saludos!
|
|
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.647
My software never has bugs. Its just features!
|
Correcto, C# no es 100% puro OO, ya que es imperativo, declarativo, funcional, orientado a objetos y orientado a componentes.
|
|
|
|
|
En línea
|
|
|
|
|
Meta
|
Hoy en día es Java o .NET con C#.
|
|
|
|
|
En línea
|
|
|
|
reJu
Desconectado
Mensajes: 4
|
En mi caso puntual, programe en C, luego en C++ y ahora migre a C# No hay grandes cambios, y el c# es bastante mas robusto que el C++ Espero haberte ayudado
|
|
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.647
My software never has bugs. Its just features!
|
"No hay grandes cambios, y el c# es bastante mas robusto que el C++"
Estás seguro de eso?, puedes confundir a cualquier persona con eso. Comenzando con que no hay forma ni manera de comparar C# (managed) con C++ (unmanaged), es como comparar peras con manzanas, puede que a ti te guste la pera y a mi la manzana pero nunca podrás decir que una es mejor que la otra.
Un saludo!
|
|
|
|
|
En línea
|
|
|
|
|
|