VC++ y AutoCad

Como ya he comentado aqui, acabo de iniciarme en el software privativo como freelancer. El trabajo es con Visual Studio 2005, más específicamente con VC++ y AutoCad, utilizando la biblioteca ObjectARX, pues bien, terrible.

Llevo programado en java y usando linux por 1 año y medio, y la verdad que ya me habia olvidado un poco de los diabólicos punteros y el incomprensible Windows, pero eso no es el problema, pues en definitiva los punteros los recordé y a Windows lo aguanto con paciencia; la cosa es la manera de hacer las cosas de esta biblioteca, o se trabaja así normalmente en C++?

En java estoy acostumbrado a que si una operación puede salir mal, pues la envuelves en un try-catch y evitas que la cosa se trabe, sé que en C++ tambien existen excepciones, pero estos de autocad parece que no, cuando un método puede salir mal pues hacen que el valor de retorno sea un tipo Acad::ErrorStatus, que puede ser Acad::eOk, Acad::eDuplicatekey, o lo que sea, y si tu objetivo con dicho método es obtener la referencia a otro objeto, pues nada, vivan los punteros! le pasas un puntero como parametro y cuando termina el metodo ya tienes tu referencia, siempre verificando que el método dio un Acad::eOk, por supuesto.

Claro que esta manera de trabajar tiene sus ventajas, puedes hacer una función que segun sus operaciones devuelva un Acad::ErrorStatus, que no necesariamente tiene que ser un error. Pero estoy seguro que esto se puede lograr con un mejor diseño.

La verdad creo que en general podría aprovechar mi experiencia de java con estas bibliotecas, pero por el momento, que solo estoy aprendiendo, el codigo me sale un poco espeguetizado, y es que esta manera de trabajar casi te invita a llenar de condiciones tu codigo, mis ejercicios parecen serpientes.

Ya se que en java están los thrown, pero vamos.

Me acabo de dar cuenta que estoy poniendo a java por los cielos y a ObjectARX(VC++?, C++?) por el piso. Es dificil no hacerlo claro, tras un tiempo usando java me resulta relativamente facil pensar mejor el diseño de un programa, por sencillo que sea, mientras que con estas bibliotecas aun comienzo, ya les contaré si el futuro es tan incómodo como promete el presente o si hablé mucha basura.

1 comentario:

Anónimo dijo...

Nunca había visto comparar el Java con el C++, y decir que con Java salen las cosas mejor o se entiende más. Cuando uno se acomoda a algo no se da cuenta de lo maravilloso que es ser libre.