PDA

Ver la versión completa : C Vs. Fenix



JimmySlam
23/04/2006, 21:02
Haber estoy a punto de empezar un juego en serio y me gustaria saber que usar. C o Fenix.

He estao ventajas e inconvenientes y no se. necesito un emmpujon de vosotros que ya habeis usao los sistemas para crear algo.

Os digo mi opinion y vosotros me corregis y/o aniadis cosas.

Fenix;
+Funciones ya hechas.
+Mas rapido.
+Mas facil.
+Enfocado a juegos (por lo ke todo lo que necesite estara ahi)

-Limitado.
-No es posible adaptar funciones a tu estilo de programacion.
-No es posible optimizar mucho.

C:
+Lo haces todo tu desde cero.
+Aprendes mucho (mejoras tu CV)
+Control de la memoria totalmente.

-Mas lento
-Mas facil cagarla
-Lenguaje antiguo (no por ello menos eficaz)
-Cosas que no me molan como por ejemplo: puedes hacer matrices con elementos ilimitados y cada vez que metes un elemento nuevo tienes que usar una funcion modificando memoria etc.

* Mi profesor de C era culero no tenia ni zorra y me metio como miedo a C. y nunca llegue a tocar el C++.

* Tengo mucha experiencia en ECMASCRIPT (mucho javascript y actionscript) osea ke dificil no va a ser pero es como ir un paso atras usando C nativo.... no?

Por cierto es C o C++?

Gracias a todos los que me ayuden, yo por mi parte voy a empezar a planificar la estructura del juego, que quiero hacer algo que se pueda decir , mira mira que calidad y made in Spain!!

Orgullo gepero y ole!

Puck2099
23/04/2006, 21:09
Veo que no tienes muy claras algunas cosillas...

El Fenix es más lento que C, no al contrario, pues el propio intérprete de Fenix está escrito en C.

El C es más potente en todo, aunque quizá sea más difícil de empezar un juego con él.

El C te deja "tocar" prácticamente todo, por eso has de tener cuidado porque podrías cagarla, como bien dices, pero eso es una ventaja, no una desventaja.

El C y C++ en teoría son distintos, pero para el caso te da igual, porque ambos funcionan perfectamente.

Saludos

JimmySlam
23/04/2006, 22:04
Hombre cuando dije mas rapido, queria decir trabajar con el , te da muchas cosas hechas. YA se que C es mas rapido en cuanto a procesamiento. por eso lo de:
Fenix:
-Limitado.
-No es posible adaptar funciones a tu estilo de programacion.
-No es posible optimizar mucho.
:D

< - >
De todas formas que sistemas usais vosotros?

Puck2099
23/04/2006, 22:07
Yo C/C++

estaño
23/04/2006, 22:07
Fenix a la larga pasa factura, y más cuando veas adelantado tu desarrollo y te falte alguna funcion rara. Quizás es porque no sé empotrar código C a pelo en un programa fenix (¿Se puede hacer eso?) :O Yo estoy deshaciedno y empezando con C y SDL

JimmySlam
23/04/2006, 22:26
Ok, gracias, es el tipo de cosas que me imaginaba que podrian pasar.

< - >
Pues nada, habra ke empezar de cero. A no ser ke alguien me diga mas info.

^MiSaTo^
24/04/2006, 00:00
Yo tb uso C y a ver si me pongo con C++

JimmySlam
24/04/2006, 01:13
una pregunta eske yo cuando usaba c , hace unos anios, no podia meterle colores ni graficos ni nada. como lo hago?con las librerias sdl de la gp2x?

< - >
por cierto la firma esta keda chula , la estroy probando, aun no soy developer :D . PERO LO SERE EN BREVE

l_draven
24/04/2006, 01:26
Entonces para mi proyecto me recomendais muchisimo mas que me pase a C con SDL ???

La firma mola mucho Jimmy. :-)

Gracias

TRaFuGa
24/04/2006, 02:02
Entonces para mi proyecto me recomendais muchisimo mas que me pase a C con SDL ???

La firma mola mucho Jimmy. :-)

Gracias
Pues seguro que ganaria bastante velocidad el juego y quedaría más "profesional" por decirlo de alguna manera, yo uso fenix porque quiero resultados instantaneos, en C+SDL (quizás me ponga un día de estos) debes progarmartelo tu todo, el sistema de colisiones, el manejador gráfico (supongo que con un par de juegos creados ya eso pues ke los aprovecharás de ahí jejeje).
Por decirlo de alguna manera Fenix es un conjunto de funciones creadas para ayudarte a manejar todo eso, de hecho, puedes(quizás quedaría mejor dicho con DEBES) crearte tus propias funciones en C para manejar todo, las colisiones, la carga de recursos (gráficos y sonidos), poner los graficos en pantalla (usando el doble buffer).
Mi conclusión es la siguiente:
Si quieres tener resultados rápidos y quitarte complicaciones de encima, te recomiendo FENIX.
Si no tienes "prisa" (con fenix tampoco deberas de tenerla xD) para crear un juego, y quieres programartelo todo para saber exactamente como funciona, te recomiendo C, no debes de cogerle miedo ya que no te va a morder xD

Drumpi
24/04/2006, 02:26
Pues yo soy programador en Fenix, y hasta ahora no he tenido problemas con el (tampoco es que sepa mucho de programacion :D)
Para segun que cosas fenix puede resultar lento, y mas aun en una consola tan "limitada" como la gp32 o la gp2x, pero siempre puedes rodear los problemas, como mi claro y conocido ejemplo de un editor de mapas de tiles: usndo el scroll de Fenix (en tres lineas ya lo tienes hecho) podia hacer mapas de 40x40 tiles (con mayor tamaño, la velocidad caia en picado), usando un motor propio desarrollado con el mismo lenguaje alcance la cifra de 100x40 tiles (siendo cada tile un proceso de ejecucion paralela, con todo lo que ello conlleva) y planeo usar un nuevo sistema que me permita ampliar el tamaño hasta el infinito, usando solo procesos para los tiles visibles (haz un calculo, 40x40 es mas de lo que se ve por pantalla)
Es solo un ejemplo, hay cosas que son "lentas" pero si lo que quieres es desarrollar rapido y facilmente (y quitarte el miedo a la programacion) usa fenix, pero al final puede que te plantees el pasarte a c o c++, como me esta pasando a mi, y que no he terminado de dar el paso aun por el manejo de graficos y musica ¿cuanto facilitaria las sdl eso? ¿es facil usar opengl o directx para un novato?

Bueno, tambien hay un hibrido llamado CDiv, que permite usar todo lo que quieras en c/c++ pero añadiendo funciones de manejo de imagenes, sonidos o procesos de ejecucion "paralela". No lo he probado, pero me lo estoy planteando.
Os dejo el link:
http://cdiv.sourceforge.net/index.html

l_draven
24/04/2006, 03:43
Gracias chicos por las respuestas. De momento me quedare con fenix y ya terminare el juego con el, despues ya veremos jeje.

Un abrazo.

JimmySlam
24/04/2006, 04:52
Pos yo no se, alguien me dice donde me podria bajar un manual de las SDK o algo? Tengo unas SDK con extension .a pero no se donde usarlas. Help?

< - >
Tengola applicacion de devcpp que me imagino q es lo ke necesito no? o cual necesito?

Neodreamer
24/04/2006, 05:11
Creo q tanto Div como Fenix permiten/ian meter funciones nuevas( no se si en C, creo q si) q eran cargadas con include al inicio al estilo C.
Lo voy a revisar en mis revistas de divmania...de todos modos, es cierto q fenix es mucho mas lento q algo en C asiq supongo q si le meto funciones de librerias propias lo hara aun mas lento...
1saludo

JimmySlam
24/04/2006, 05:18
siii pero necesito saber
Pos yo no se, alguien me dice donde me podria bajar un manual de las SDK o algo? Tengo unas SDK con extension .a pero no se donde usarlas. Help?

Tengo la applicacion de devcpp que me imagino q es lo ke necesito no? o cual necesito?

pezezin
24/04/2006, 05:26
Yo personalmente te recomiendo que si vas a aprender C, pases directamente a C++. No es ni mucho menos perfecto, pero es muchísimo mejor que C a pelo.

JaPeL
24/04/2006, 05:51
holas! tengo un compañero de facultad q conoce el fenix desde q se llamaba Div (si el uno xP) y hablando con el, por lo q entendi el div esta bueno para las personas q recien empiezana programar, y conocen las sintaxis de pascal/delphi, pues se parecen bastante, y lo unico malo es q no te deja programar usando unidades ni punteros... asique si estudias alguna carrera de programacion y tenes parte de primer año completa, deberia ser suficiente como para empezar a programar en Fenix. y lo del c buen... es mucho mas dificil pero podes hacer casi lo q quieras...

JimmySlam
24/04/2006, 06:21
pos a C no se hable mas. :D

pero que software necesito?!?!

Puck2099
24/04/2006, 06:40
pos a C no se hable mas. :D

pero que software necesito?!?!

Lo primero cómprate un buen libro de C, léetelo entero y luego ya te miras el software y demás, porque empezar a programar para la consola sin tener ni idea de C te puede resultar muy duro...

Saludos

enkonsierto
24/04/2006, 07:13
Basicamente:

Fenix = poca dificultad y poca potencia
C/C++ = mucha dificultad y mucha potencia

Tu escoges...

Uncanny
24/04/2006, 07:20
Yo personalmente te recomiendo que si vas a aprender C, pases directamente a C++. No es ni mucho menos perfecto, pero es muchísimo mejor que C a pelo.No se, nunca he entendido esta afirmación pezezin, no digo que sea absolutamente erronea o falsa, solo que tal afirmación de forma literal es incorrecta, y me baso el razonamiento de los siguientes parrafos por las que digo que nunca he entendido los motivos por las que algunos dicen que C++ es mejor que C.

Para empezar si, se que C++ es un superconjunto de C, lo cual implica que en teoría debe proporcionar las mismas herramientas que C por contenerlo en si mismo (ya que está basado en C) y además algunas más. Este hecho es innegable, por algo el "++" haciendo referencia al operador de post-incremento de C, pero originalmente Stroustrup lo denominó "C with Classes", por esa razón, porque la "única" novedad es que era un C con clases, es decir, que le había añadido herramientas propias de la orientación a objetos donde las clases son algo fundamental, pues está relacionada con una de las piedras angulares de la OO como es la encapsulación y por supuesto se le añadió otros mecanismos para aprovechar las otras bases del OO como el polimorfismo y la herencia, junto nuevos operadores (como los de reserva y liberación de memoria) y una librería extra especialmente diseñada para usarse con C++, en plan sustituta de la de C (p.e: archivos cabecera de E/S en C stdio <-> por E/S de C++ iostream) para que fuera más acorde con la nueva filosofía y la forma de trabajar de C++. Se que tiene algunas novedades más, pero son secundaria en comparación con el verdadero motivo de la creación de C++.

Esto simplemente lo digo porque aun no hay nadie que, a parte de lo anterior, me diga porque C++ es mejor que C, porque yo no digo que C sea mejor que C++ sino que prefiero C a C++, y esta preferencia viene de la "simplicidad" de C (en comparación a la "complejidad" de C++, porque pocos pueden decir que conocen y saben usar TODOS los mecanismos de C++ al 100% sin saber que mienten descaradamente...) y de evitar en la medida de lo posible el paradigma de la OO a la que el uso de C++ te lleva, porque aunque es verdad que se puede usar C++ sin usar sus mecanismos de la POO, resulta casi absurdo hacerlo, porque entonces, si no deseamos usar las herramientas y mecanismos de la POO propias de C++ ¿que te ofrece C++ que no te ofrezca C que pueda hacerte elegir C++ en lugar de C? efectivamente, prácticamente nada, así que el que use C++ lo hace por que prefiere la POO, por tanto C++ no es mejor que C, solo te ofrece los mecanismos para trabajar con otra filosofía, con el paradigma de la OO (aunque en cuestión de POO hay otros lenguajes mejor diseñados para tal filosofía, como Java), en lugar de la programación estructurada típica de C (y aun así hay formas de trabajar con OO en C puro, pero es algo absurdo teniendo C++ para eso).

Que conste que esto no es una crítica, es mi opinión contrapuesta a esa afirmación de que "C++ es mejor que C", ya que no eres el primero ni el único del que la escucho o leo, y que simplemente me he limitado a rebatirla, en su lugar lo que si se puede decir es simplemente que C y C++ son distintos, otra cosa es que a uno le guste más uno u otro, pero ese es otro tema :)

JimmySlam, respecto a ese "SDK" con archivos de extensión .a, son librerías/bibliotecas precompiladas y estáticas, si no sabes lo que es eso es mejor que sigas el consejo de Puck y te pongas a estudiar C "en general" primero antes de centrarte en su aplicación para la GP2X. Un buen libro para iniciarse en C es "C Guia de Autoenseñanza" (su nombre original en inglés es "Teach Yourself C") de Herbert Schildt, a parte tienes bastantes tutoriales en internet como el del "El Rincon del C" de Gorka Urrutia o este (http://acm.asoc.fi.upm.es/documentacion/c2005/cursoc2004.pdf) de la UPM.

JaPeL
24/04/2006, 07:28
No se, nunca he entendido esta afirmación pezezin, no digo que sea absolutamente erronea o falsa, solo que tal afirmación de forma literal es incorrecta, y me baso el razonamiento de los siguientes parrafos por las que digo que nunca he entendido los motivos por las que algunos dicen que C++ es mejor que C.

Para empezar si, se que C++ es un superconjunto de C, lo cual implica que en teoría debe proporcionar las mismas herramientas que C por contenerlo en si mismo (ya que está basado en C) y además algunas más. Este hecho es innegable, por algo el "++" haciendo referencia al operador de post-incremento de C, pero originalmente Stroustrup lo denominó "C with Classes", por esa razón, porque la "única" novedad es que era un C con clases, es decir, que le había añadido herramientas propias de la orientación a objetos donde las clases son algo fundamental, pues está relacionada con una de las piedras angulares de la OO como es la encapsulación y por supuesto se le añadió otros mecanismos para aprovechar las otras bases del OO como el polimorfismo y la herencia, junto nuevos operadores (como los de reserva y liberación de memoria) y una librería extra especialmente diseñada para usarse con C++, en plan sustituta de la de C (p.e: archivos cabecera de E/S en C stdio <-> por E/S de C++ iostream) para que fuera más acorde con la nueva filosofía y la forma de trabajar de C++. Se que tiene algunas novedades más, pero son secundaria en comparación con el verdadero motivo de la creación de C++.

Esto simplemente lo digo porque aun no hay nadie que, a parte de lo anterior, me diga porque C++ es mejor que C, porque yo no digo que C sea mejor que C++ sino que prefiero C a C++, y esta preferencia viene de la "simplicidad" de C (en comparación a la "complejidad" de C++, porque pocos pueden decir que conocen y saben usar TODOS los mecanismos de C++ al 100% sin saber que mienten descaradamente...) y de evitar en la medida de lo posible el paradigma de la OO a la que el uso de C++ te lleva, porque aunque es verdad que se puede usar C++ sin usar sus mecanismos de la POO, resulta casi absurdo hacerlo, porque entonces, si no deseamos usar las herramientas y mecanismos de la POO propias de C++ ¿que te ofrece C++ que no te ofrezca C que pueda hacerte elegir C++ en lugar de C? efectivamente, prácticamente nada, así que el que use C++ lo hace por que prefiere la POO, por tanto C++ no es mejor que C, solo te ofrece los mecanismos para trabajar con otra filosofía, con el paradigma de la OO (aunque en cuestión de POO hay otros lenguajes mejor diseñados para tal filosofía, como Java), en lugar de la programación estructurada típica de C (y aun así hay formas de trabajar con OO en C puro, pero es algo absurdo teniendo C++ para eso).

Que conste que esto no es una crítica, es mi opinión contrapuesta a esa afirmación de que "C++ es mejor que C", ya que no eres el primero ni el único del que la escucho o leo, y que simplemente me he limitado a rebatirla, en su lugar lo que si se puede decir es simplemente que C y C++ son distintos, otra cosa es que a uno le guste más uno u otro, pero ese es otro tema :)

JimmySlam, respecto a ese "SDK" con archivos de extensión .a, son librerías/bibliotecas precompiladas y estáticas, si no sabes lo que es eso es mejor que sigas el consejo de Puck y te pongas a estudiar C "en general" primero antes de centrarte en su aplicación para la GP2X. Un buen libro para iniciarse en C es "C Guia de Autoenseñanza" (su nombre original en inglés es "Teach Yourself C") de Herbert Schildt, a parte tienes bastantes tutoriales en internet como el del "El Rincon del C" de Gorka Urrutia o este (http://acm.asoc.fi.upm.es/documentacion/c2005/cursoc2004.pdf) de la UPM. me sacaste las palabras de la boca.. re mentiroso jaja sos groso sabelo [chuck1] volviendo al c versus fenix, buen si no sabes c y queres hacer un jueguito simple, te conviene mas el fenix es mas rapido ahora si queres hacer otra cosa mas compleja buen deberias usar c. vos decidis...

Eskema
24/04/2006, 13:29
No se, nunca he entendido esta afirmación pezezin, no digo que sea absolutamente erronea o falsa, solo que tal afirmación de forma literal es incorrecta, y me baso el razonamiento de los siguientes parrafos por las que digo que nunca he entendido los motivos por las que algunos dicen que C++ es mejor que C.

Para empezar si, se que C++ es un superconjunto de C, lo cual implica que en teoría debe proporcionar las mismas herramientas que C por contenerlo en si mismo (ya que está basado en C) y además algunas más. Este hecho es innegable, por algo el "++" haciendo referencia al operador de post-incremento de C, pero originalmente Stroustrup lo denominó "C with Classes", por esa razón, porque la "única" novedad es que era un C con clases, es decir, que le había añadido herramientas propias de la orientación a objetos donde las clases son algo fundamental, pues está relacionada con una de las piedras angulares de la OO como es la encapsulación y por supuesto se le añadió otros mecanismos para aprovechar las otras bases del OO como el polimorfismo y la herencia, junto nuevos operadores (como los de reserva y liberación de memoria) y una librería extra especialmente diseñada para usarse con C++, en plan sustituta de la de C (p.e: archivos cabecera de E/S en C stdio <-> por E/S de C++ iostream) para que fuera más acorde con la nueva filosofía y la forma de trabajar de C++. Se que tiene algunas novedades más, pero son secundaria en comparación con el verdadero motivo de la creación de C++.

Esto simplemente lo digo porque aun no hay nadie que, a parte de lo anterior, me diga porque C++ es mejor que C, porque yo no digo que C sea mejor que C++ sino que prefiero C a C++, y esta preferencia viene de la "simplicidad" de C (en comparación a la "complejidad" de C++, porque pocos pueden decir que conocen y saben usar TODOS los mecanismos de C++ al 100% sin saber que mienten descaradamente...) y de evitar en la medida de lo posible el paradigma de la OO a la que el uso de C++ te lleva, porque aunque es verdad que se puede usar C++ sin usar sus mecanismos de la POO, resulta casi absurdo hacerlo, porque entonces, si no deseamos usar las herramientas y mecanismos de la POO propias de C++ ¿que te ofrece C++ que no te ofrezca C que pueda hacerte elegir C++ en lugar de C? efectivamente, prácticamente nada, así que el que use C++ lo hace por que prefiere la POO, por tanto C++ no es mejor que C, solo te ofrece los mecanismos para trabajar con otra filosofía, con el paradigma de la OO (aunque en cuestión de POO hay otros lenguajes mejor diseñados para tal filosofía, como Java), en lugar de la programación estructurada típica de C (y aun así hay formas de trabajar con OO en C puro, pero es algo absurdo teniendo C++ para eso).



Killo uncanny eres mi heroe :brindis: , ya parecia yo un pringao usando C+SDL pq sigo sin ver ninguna utilidad al C++ para los juegos q hago, otra cosa seria un juego profesional de rol con mucha ia y demas cosas donde unas clases, herencia y demas pueden ser altamente beneficiosas.

miq01
24/04/2006, 15:53
Yo tiro de C++ más bien porque llevo algunos años con él, y aunque no uso más que, por dar un número, el 20% de su potencial, es al que estoy más habituado. Creo que me costaría escribir un programa bien estructurado en C (ojo, que en C++ se pueden escribir programas muy mal estructurados también... doy fe de ello... :)).

Pero tampoco estoy de acuerdo con lo que comenta Pezezin. Aprender C++ supone aprender C, las peculiaridades de la OO y las peculiaridades de C++, que no son pocas. Creo que el momento de pasarse a C++ es cuando se domina en mayor o menor medida C, no antes.

JimmySlam
24/04/2006, 16:53
Hombre yo C se, pero nunca he trabajado con libtrearias. Todo era creado por mi excepto los cionio.h maths.h y stdio.h. Es decir la base la tengo pero nunca trabaje con ".a".

Lo otro que necesito, son las funciones que contienen los .a? Para poder usarlos no? Usare el DevCPP que tengo en casa.

Lo que yo os queria decir es que cuando programaba en C hace unos anios siempre se compilaba para win32 en una ventana tipo ms-DOS. Todo esto se compila igual no?

Yo kiero unos manuales de C avanzado no de novato. Si no me muero de asco REaprendiendo todo.

Bueno tonces el debate se mueve a C o C++ :O

Lo que yo pensaba era que C era monoproceso y C++ multiproceso( por el tema de poder manejar objetos)

^MiSaTo^
24/04/2006, 17:25
Pero tampoco estoy de acuerdo con lo que comenta Pezezin. Aprender C++ supone aprender C, las peculiaridades de la OO y las peculiaridades de C++, que no son pocas. Creo que el momento de pasarse a C++ es cuando se domina en mayor o menor medida C, no antes.
Yo opino igual. De hecho hasta que no domine bien bien C (que aun me queda por aprender...) no me pondré con C++
Yo recomiendo tb que se empiece por C que es como empecé yo (bueno en realidad empecé con Pascal...) y una vez se domine, pasarse a C++

< - >


Bueno tonces el debate se mueve a C o C++ :O

Pues si no dominas C, entonces te sugiero que te pongas con él y cuando te veas "preparado" te pases a C++
Aunque yo te digo que el juego de Chocobos que estamos haciendo Puck, Neostalker y yo está en C entero. Y todo lo demás que estamos haciendo tb. Lo que quiero decir con esto, es que C tb vale para programar cosillas para la GP ^^

Foxandxss
24/04/2006, 18:04
Hola, yo estoy 100% de acuerdo con uncanny.

C es un lenguaje pequeño, se puede llegar a dominar al 100% en poco tiempo; Sin embargo, C++ es un lenguaje MUY grande, es casi imposible llegar a dominarlo al 100%.

Yo recomiendo empezar con C, y una vez que lo domines, no querrás pasar a ningun otro lenguaje :P.

No se el nivel que tienes de C, pero yo recomiendo saber de ADTs (Abstract Data Type) que digamos que es lo que diferencia a un buen programador de C y a un programador medio de C. Asi que ponte al dia con punteros, asignacion dinámica de memoria, ADTs(pilas, colas, listas, arboles...) y ponte con algo más avanzado si quieres.

Yo soy don libro, tengo mas libros que la propia librería.

Si tengo que recomendar un libro para un MUY novato recomendaria como bien dice uncanny:

Teach Yourself C, (C, guia de la autoenseñanza), yo me lo he leido en ingles y español y son igualmente buenos ya que la traducción es bastante buena (aunque he leido por muchos lados de que schilt da malas costumbres....).

Pero viendo que ya tienes más idea, si lo que te fallan son las ADTs puedes pillarte el libro: Programacion en C, de Joyanes. Es MUY buen libro, explica de todo y tiene muuuuuchos ejercicios, recomendado 100%, eso si, es un libro de nivel universitario, quizás los ejercicios sean algo complejos.

Bueno también tengo el K&R, y a mi forma de ver es demasiado complejo y si no recuerdo mal, no trata de ADTs por ejemplo.


Por otro lado, no se si es buena idea ponerse al dia con las cosas de linux, o sea, señales, procesos, etc... Para la gp2x vamos, aun no he programado nada para ella asi que no se si eso puede resultar util. En caso positivo, siempre ha sido recomendado el: Programacion en linux con ejemplos, de Kurt Wall.

Bueno, realmente no tengo nada más que decir, solo que practiques mucho y no te rindas.

Un saludo.

chemaris
24/04/2006, 18:05
yo vengo a defender fenix :D

para mi fenix es MUY BUENO y da para bastante y con la ultima version que saco puck va perfecto, creo que si se pueden manejar punteros y crear estructuras dinamicas

lo mejor de fenix es que obtienes resultados rapidos y la verdad para hacer un juego te ahorras mucho tiempo

Eso si, si quieres aprender haciendo el juego lo mejor es hacerlo en C

Yo de C practicamente no se nada, aunque creo que me costaria poco pomerme, ya que en la uni ahora nos estan machacando con JAVA sobre todo con POO, si por el profesor fuera empezariamos directamente con POO

Foxandxss
24/04/2006, 18:07
no estoy de acuerdo en eso de empezar directamente con POO, por mucho que diga la gente que es fácil, no lo es.

miq01
24/04/2006, 18:23
yo vengo a defender fenix :D

para mi fenix es MUY BUENO y da para bastante y con la ultima version que saco puck va perfecto, creo que si se pueden manejar punteros y crear estructuras dinamicas

lo mejor de fenix es que obtienes resultados rapidos y la verdad para hacer un juego te ahorras mucho tiempo
Sí, si es que por lo que he visto en algunos proyectos programados en Fenix se pueden hacer muchísimas cosas. Yo lo utilicé un tiempo (muy breve, eso sí) y la facilidad y la rapidez con la que se pueden programar algo es tremenda. Aunque igual porque no llegué a conocerlo a fondo me pareció difícil tenerlo todo bien estructurado. Estoy acostumbrado a las clases, y recuerdo que a la especie de equivalente en Fenix que son los procesos le echaba en falta algunas características.


Yo de C practicamente no se nada, aunque creo que me costaria poco pomerme, ya que en la uni ahora nos estan machacando con JAVA sobre todo con POO, si por el profesor fuera empezariamos directamente con POO
La eterna discusión: si empezar con algoritmos a secas, o hacerlo directamente con OO. Yo soy partidario de lo primero y en la carrera no hice nada de OO hasta al cabo de 3 o 4 años, pero tengo entendido que ahora, al menos donde yo estudié, empiezan directamente con Java.

chemaris
24/04/2006, 18:23
no estoy de acuerdo en eso de empezar directamente con POO, por mucho que diga la gente que es fácil, no lo es.

ya,nos han metido todo de golpe en un año, primer parcial estructurada en Component Pascal y Java haciendo los dos simultaneamente y el segundo POO tb en los dos lenguajes, ahora estoy con la herencia, el polimorfisco y la vinculacion dinamica que ya no se ni donde metermela :D

JimmySlam
24/04/2006, 18:25
algunos progfesores no tienen ni **** idea de enseniar, esta claro. Dimelo a mi, el poco C que se es porke enredaba en clase. Si tuviera ke saber como me enseniaba el estaria bien jodido.

Uncanny
24/04/2006, 19:42
Hombre yo C se, pero nunca he trabajado con libtrearias. Todo era creado por mi excepto los cionio.h maths.h y stdio.h. Es decir la base la tengo pero nunca trabaje con ".a".

Lo otro que necesito, son las funciones que contienen los .a? Para poder usarlos no? Usare el DevCPP que tengo en casa.Las librerías precompiladas *.a en sistemas basados en Linux son equivalentes a las *.lib que podías ver en MS-DOS o Windows (de hecho unicamente son una colección de archivos en codigo objeto empaquetados con la herramienta ar), y ya puestos a comparar las "librerías dinámicas" en Linux son .so (Shared Object / Objeto Compartido) y su equivalencia en Windows son las *.dll. En realidad siempre has usado una librería al menos, la estandar de C (bueno, lo de estandar en compiladores como el de Turbo C de Borland, es un decir, con ese archivos de cabeceras "extras" como conio.h y graphics.h...) y en este caso seguirás usandolos, junto a otras librerías extras, como SDL por ejemplo, librería que tendrás que aprender a usar por otro lado, ya sea por libros (no hay muchos dedicados exclusivamente o parcialmente a SDL, pero los hay) o por tutoriales, en el Wiki de GP32Spain hay referenciados unos cuantos y si te da por aprender C++ (que yo prefiera C no signifca que no sepa o que no valore lo que me proporciona C++ si tengo que usarlo...) este (http://lazyfooproductions.com/SDL_tutorials/index.php) tutorial te vendrá muy bien, porque aunque al principio del tutorial solo usa C luego empieza a usar clases y todo lo que ello implica de C++.
Lo que yo os queria decir es que cuando programaba en C hace unos anios siempre se compilaba para win32 en una ventana tipo ms-DOS. Todo esto se compila igual no?El proceso de pasar de código fuente a un binario en C siempre pasa por las mismas fases, en el caso de trabajar con GCC este se encarga de las etapas de compilación, ensamblado y enlazado sin tener que llamar una a una a las herramientas que se encargan de cada etapa, además que con un IDE como DevCPP esto se simplifica aun más.
Yo kiero unos manuales de C avanzado no de novato. Si no me muero de asco REaprendiendo todo.

Bueno tonces el debate se mueve a C o C++ :OEl libro que te he recomendado (y el tutorial de la UPM) no es solo para novatos, sino que tal y como está redactado y pensando no da nada por supuesto y por eso son ideales para aprender, pero se pueden usar igualmente si sabes C como referencia o para refrescarte la memoria en algunos conceptos. Por otro lado está los que te ha recomendado Foxandxss (el de "El lenguaje de programación C" alias "El libro de K&R" por sus autores, Brian W. Kernighan y Dennis M. Ritchie, es el clásico y el ideal para tener una referencia de C, si es que lo encuentras...), añado el de "Curso de programación C/C++ (http://www.agapea.com/C-C-Curso-de-programacion-2-edicion--n11777i.htm)" de Francisco Javier Ceballos (que no te engañe lo de C++ el libro trata de C), editorial Ra-ma, en esta se da también las "estructuras dinámicas" relacionadas con los TDA.

Si luego quieres pasarte a C++ hay otros tantos buenos libros, uno analogo para C++ del que te he recomendado de Schild que incluso es como una continuación del C pues da por hecho que tienes ya claro como se programa en C, y otros que son más avanzados y completos como el de Thinking in C++ (http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html) de Bruce Eckel, dividido en dos volumenes, tanto descargables como impresos (recomendado si no tienes problemas con el inglés y quieres ponerte en serio con C++).
Lo que yo pensaba era que C era monoproceso y C++ multiproceso( por el tema de poder manejar objetos)Lo de monoproceso o multiproceso, supongo que te refieres a hacer varias cosas a la vez, eso depende primero del S.O. (siendo uno basado en el kernel Linux no hay problema) y luego del tipo de programación que hagas, para eso está la programación multihilo ;)

Foxandxss
24/04/2006, 20:44
Uhm, el libro de C++, guia de la autoenseñanza está algo anticuado, no lo recomiendo la verdad.

el libro pone

#include <iostream.h>

cuando ahora es:

#include <iostream>

Un saludo.

Ah, se me olvidaba, el de ceballos no me gusto nada :P

Un saludo.

JimmySlam
24/04/2006, 20:59
UnCanny te lo has currao muchas gracias me has aclarao algunas cosas ke no me kedaron claras en su dia. Asias Asias Asias. Tengo que a apdrender a ver como funcionan las SDK y las grafic y sound library como poco. Y despues empiezo el game. ***** me voy a tirar la vida. Vosotros ke controlais tanto.. nunca os habeis planteao en mandar CVs a empresas como pyro? Si este post fuera hace 15 anios diria: toposoft, opera, madeinspain? (lo digo porke es una pena que no existan tantas companys nacionales como antes.)

Saludos

WinterN
24/04/2006, 21:11
el libro pone

#include <iostream.h>

cuando ahora es:

#include <iostream>


Pues yo toda la vida lo he visto con el .h. De hecho, si buscas en Google por "ansi c" include, verás que la mayoría de las páginas incluyen la extensión del archivo.

Foxandxss
24/04/2006, 21:34
uhm, no se nada de C++, pero tenia entendido que se cambio y ya no se usaba con extension. Es más, tengo un libro de ceballos más moderno y ya no usa la extension.

Pero ya te digo, hablo desde la total ignorancia.

Un saludo.

EDITO: Hablo de C++ no de C.

He hecho una prueba:


$ cat programacion/extension.cpp
#include <iostream.h>

main()
{
return 0;
}


y al intentar compilar me dice:

#warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

Pone que está deprecated :P

Un saludo.

Uncanny
24/04/2006, 21:44
Uhm, el libro de C++, guia de la autoenseñanza está algo anticuado, no lo recomiendo la verdad.

el libro pone

#include <iostream.h>

cuando ahora es:

#include <iostream>

Un saludo.

Ah, se me olvidaba, el de ceballos no me gusto nada :P

Un saludo.Bueno, anticuado no creo que se pueda decir que es, simplemente lo que ocurre es que el ANSI C++ "estandar" actual fue publicado en el 98 y en el 2003 fue revisado de nuevo, de ahí ciertos cambios en no tener que usar .h para los archivos de cabeceras de la librería estandar de C++, aunque a los compiladores actuales les da lo mismo y creo que salvo eso y lo de declarar el espacio de nombres/namespace y el uso de plantillas/templates, hay otros cambios, pero en general casi todo es igual. Lo que si que es cierto en que en del "C++ Guia de Autoenseñanza" Schildt comete algunos errores, no se si en la edición española se corrigieron, pero en una de las ediciones originales había bastantes, creo que incluso hay una pagina web que tiene recopilado esos errores y su corrección :rolleyes:

El libro de Ceballos, bueno es cuestión de gustos, a mi no me parece un mal libro, aunque si tuviera que recomendar un libro de C no sería el primero que diría, lo que no significa tampoco que no sea recomendable :)


Pues yo toda la vida lo he visto con el .h. De hecho, si buscas en Google por "ansi c" include, verás que la mayoría de las páginas incluyen la extensión del archivo.Cuando dice lo de iostream he supuesto de que hablamos de ANSI C++, no de ANSI C (publicado por ANSI en el 90, revisado y publicado por ISO en el 99 y aceptado por ANSI en 2000, es lo que se conoce como C99 (http://en.wikipedia.org/wiki/C_programming_language#C99), y GCC es compatible con este último estandar), y en eso tienes razón, lo normal es hacer referencia a la extensión.

Foxandxss
24/04/2006, 22:51
Uncanny, en la version española siguen cometiendo muchisimos errores, para mi en vez de ejemplos eran problemas del tipo: "corrige el fallo"

Un saludo.

Uncanny
24/04/2006, 23:17
Uncanny, en la version española siguen cometiendo muchisimos errores, para mi en vez de ejemplos eran problemas del tipo: "corrige el fallo"

Un saludo.Ya les vale... sobre todo a Schildt [Ahhh]

JaPeL
25/04/2006, 05:37
Sí, si es que por lo que he visto en algunos proyectos programados en Fenix se pueden hacer muchísimas cosas. Yo lo utilicé un tiempo (muy breve, eso sí) y la facilidad y la rapidez con la que se pueden programar algo es tremenda. Aunque igual porque no llegué a conocerlo a fondo me pareció difícil tenerlo todo bien estructurado. Estoy acostumbrado a las clases, y recuerdo que a la especie de equivalente en Fenix que son los procesos le echaba en falta algunas características.


La eterna discusión: si empezar con algoritmos a secas, o hacerlo directamente con OO. Yo soy partidario de lo primero y en la carrera no hice nada de OO hasta al cabo de 3 o 4 años, pero tengo entendido que ahora, al menos donde yo estudié, empiezan directamente con Java. donde estudio yo empezamos con los algoritmos secos , y despues pasamos a Delphi (buen seria pascal basicamente) y cuando nos dan recursividad nos matan, es imposible aprobarlo nos matan con los planteos recursivos, la verdad le tengo ya le tengo asco a todo lo q sea planteos y pseudo codigo...[Ahhh] (vemos POO en segundo año casi al final..)

< - >
uh buen supongo q si redacto como programo nunca voy a aprobar una sola materia xD

WinterN
25/04/2006, 07:16
Cuando dice lo de iostream he supuesto de que hablamos de ANSI C++, no de ANSI C (publicado por ANSI en el 90, revisado y publicado por ISO en el 99 y aceptado por ANSI en 2000, es lo que se conoce como C99 (http://en.wikipedia.org/wiki/C_programming_language#C99), y GCC es compatible con este último estandar), y en eso tienes razón, lo normal es hacer referencia a la extensión.

Ok ok, no me comais ;) Desde luego, una de las cosas que no me gustan del C++ es que lo fácil lo hace dificil, y lo difícil, tortuoso. Ya ves tú que razón tendrían para de repente decicir omitir la extensión...

Uncanny
25/04/2006, 07:44
Ok ok, no me comais ;) Desde luego, una de las cosas que no me gustan del C++ es que lo fácil lo hace dificil, y lo difícil, tortuoso. Ya ves tú que razón tendrían para de repente decicir omitir la extensión...Yo cuando empezé a estudiar la OO y C++ para aplicar los nuevos conceptos de este paradigma, mientras aun estaba asimilando los conceptos más avanzados de C, llegué casi a la misma conclusión que dices sobre C++ "lo facil lo hace dificil, y lo dificil, tortuoso", cierto es que al principio hasta me gustó, eso de las clases y la encapsulación tenía buena pinta, de hecho el paradigma de la OO me parecía interesante (al menos en teoría), pero cuando llegó la hora de asimilar y aplicar la gran cantidad del resto de conceptos de C++ (en solo unos meses, fue algo demasiado intensivo...) y de hacer las cosas al "estilo de C++" llegaba a parecerme casi una tortura, tanto que ya no sabía si esto era un lenguaje de alto nivel o más bajo (por dificil) que el ensamblador, tal era la aversión que le cogí por entonces que esta (http://www.redcientifica.com/gaia/reir/cpp_c.htm) supuesta entrevista a Bjarne Stroustrup me la llegué a creer por entonces (y aun hoy dudo de si no es coña xD) :rolleyes:

Theck
25/04/2006, 18:42
En el ciclo de grado superior de DAI (Desarrollo de Aplicaciones Informáticas) hay varias asignaturas de programación y lo que me gustó del planteamiento es que primero tienes "Fundamentos de programación" donde empiezas con "que es una variable" y acabas con estructuras dinámicas en C. Luego, en 2º en mi caso, tiene "Programación Avanzada" donde se da el paradigma de la POO, en mi caso, con Java.

Personalmente, la POO me es mucho más cómoda de plantear, me parece muy natural. Mi problema fue aplicarla en C++.
Mi proyecto de final de curso constó de un juego tipo worms pero online (como el gunbound para los que lo conozcan) programado en OpenGL (si, OpenGL para gráficos 2D) y aunque al principio tuvimos muchisimos problemas por no haber usado c++ en nuestra vida, luego agradeces las clases y su encapsulación.

Eso si, muy posiblemente cuando me ponga con la GP empezaré de nuevo con C y solo si llego a querer hacer algo más grande (dividiendo en motores el juego y toda la pesca) quizá me plantee el salto.

PD: 100% de acuerdo con la afirmación "C y C++ simplemente son diferentes".

PD2: Fenix es lo que era Div Games Studio? Si es así, que recuerdos, yo empecé con el 1 y luego el 2 hace cacho de tiempo ^^