Foros del Web » Programación para mayores de 30 ;) » C/C++ »

C++ vs. C#

Estas en el tema de C++ vs. C# en el foro de C/C++ en Foros del Web. Cita: Iniciado por X.Cyclop Yo no se porqué, pero C es de medio. Yo también peleé y dije que era de alto, pero los sabios ...

  #31 (permalink)  
Antiguo 28/03/2006, 06:52
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por X.Cyclop
Yo no se porqué, pero C es de medio. Yo también peleé y dije que era de alto, pero los sabios dicen que no.
La teoría es que el ensamblador es de bajo nivel, y los lenguajes, de alto nivel.

Lo que ocurre es que C es un lenguaje tan "pelado", que se podría considerar de medio nivel, porque no tiene más que operaciones básicas que se traducen en ensamblador directo, sin muchas virguerías, además de que los tipos no son estrictos, se permite cualquier cosa con la memoria y se puede incluir ensamblador en medio.
  #32 (permalink)  
Antiguo 28/03/2006, 10:58
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Entonces, ¿C++ sin OOP es también de medio nivel?
  #33 (permalink)  
Antiguo 28/03/2006, 15:21
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por X.Cyclop
Entonces, ¿C++ sin OOP es también de medio nivel?
Sin POO y sin muchas cosas más como programación genérica (templates), ¿referencias?, RTTI...

No sé, depende del concepto que tenga cada uno.

En cualquier caso, C++, aunque puede hacer todo lo que hace C, su librería no es tan "directa" a ensamblador, las operaciones que hace no son tan básicas y los tipos son algo más estrictos.
  #34 (permalink)  
Antiguo 28/03/2006, 15:31
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Entonces a C++ le falta algo de C porque si no los drivers y cosas con la memoria también se harían en C++ y no en C.
  #35 (permalink)  
Antiguo 28/03/2006, 15:41
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por X.Cyclop
Entonces a C++ le falta algo de C porque si no los drivers y cosas con la memoria también se harían en C++ y no en C.
Se pueden hacer en C++ perfectamente, si se deshabilitan las características que te he mencionado antes (sobre todo, la RTTI) y se usa la ANSI C importada en vez de la std.
  #36 (permalink)  
Antiguo 28/03/2006, 15:48
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Ah ok.

RTTI
Cita:
Iniciado por Wikipedia
Runtime Type Information (RunTime Type Identification) is information about an object's datatype that is set into memory at runtime.
Run Time Type Information is a computer programming term used to identify that a given language has the ability to determine the type of a program's object/variable at runtime.

Although available in most computer languages, RTTI, as a term, is typically used in relation to C++. In order for the dynamic_cast<> operation to work in C++, RTTI must be enabled.

  #37 (permalink)  
Antiguo 29/03/2006, 11:25
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Cita:
Iniciado por MaxExtreme
¿? No (supongo xD) ¿Por?

Yo me refería a que no es cuestión del lenguaje (C# o C++.Net), sino de que se haga o no. El lenguaje no varía. Es decir, el lenguaje es el que es, otra cosa es que se haga en web o no. No sé si me explico.
Te lo preguntaba porque no conozco gente que programe en asp.net con C++. Con visual basic uno que otro desadaptado y con C# el resto de gente decente
  #38 (permalink)  
Antiguo 29/03/2006, 11:33
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por Developer9
Te lo preguntaba porque no conozco gente que programe en asp.net con C++. Con visual basic uno que otro desadaptado y con C# el resto de gente decente
No hay porque no existe (según creo).

Pero a lo que iba mi post es que se podría inventar, como se ha hecho con C#. Que no tiene nada que ver el lenguaje C# con que pueda hacer páginas webs. El lenguaje sigue sin variar.
  #39 (permalink)  
Antiguo 03/04/2006, 07:21
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 23 años
Puntos: 0
Creo que en esto de lenguajes, no podemos empezar la guerra Microsoft, Linux, ni que uno es mejor que el otro. Que Apache sea mejor Windows 2000, etc, etc. Yo he programado en C# sin pagar un peso a Microsoft y sin ser ilegal.

C++ está basado en C, y se le dio la posibilidad de ser orientado a objetos. Lamentablemente C++ viola muchos reglas de lo que es la POO, ejemplo permitir funciones amigas (friends), no puede declarar clases abstractas tan facilmente y muchas otras cosas más.

Tanto .Net con C# a la cabeza como Java, son realmente orientadas a objetos y respetan las directivas de este, es decir el encapsulamiento en un objeto.

C y C++ (con sus diferencias= te permiten trabajar a más bajo nivel, te dan más libertad, te dejan trabajar más a nivel de memoria que un lenguaje puramente orientado a objetos. Además (c++) te permite trabajar orientado a objetos, pero también a programación estructurada. Es por eso que es elegido y creo que va a seguir siéndolo para muchas aplicaciones como SO, etc.
__________________
Alvaro García
  #40 (permalink)  
Antiguo 03/04/2006, 10:43
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Cita:
Iniciado por alvgarci
Creo que en esto de lenguajes, no podemos empezar la guerra Microsoft, Linux, ni que uno es mejor que el otro. Que Apache sea mejor Windows 2000, etc, etc. Yo he programado en C# sin pagar un peso a Microsoft y sin ser ilegal.

Eje!!! yo tambien... tengo un visual studio 2005 pro obtenido en un evento de Microsoft.

Cita:
Iniciado por alvgarci
C++ está basado en C, y se le dio la posibilidad de ser orientado a objetos. Lamentablemente C++ viola muchos reglas de lo que es la POO, ejemplo permitir funciones amigas (friends), no puede declarar clases abstractas tan facilmente y muchas otras cosas más.
snif snif... nostalgia al recordar aquellas lindas funciones amigas del cin y cout
  #41 (permalink)  
Antiguo 03/04/2006, 12:49
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 4 meses
Puntos: 24
todavia existen y recuerden que en unos años, se va a lanzar el nuevo estandart de C++.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #42 (permalink)  
Antiguo 03/04/2006, 13:30
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 8 meses
Puntos: 1
Larga vida al C#!!!

(un ex VC++)
__________________
saludos
seba
http://sgomez.blogspot.com
  #43 (permalink)  
Antiguo 03/04/2006, 13:50
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Cita:
Iniciado por .seb
Larga vida al C#!!!

(un ex VC++)
  #44 (permalink)  
Antiguo 03/04/2006, 14:17
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Cita:
Iniciado por TolaWare
todavia existen y recuerden que en unos años, se va a lanzar el nuevo estandart de C++.
¿Qué será? ¿C++06?
  #45 (permalink)  
Antiguo 03/04/2006, 14:34
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 4 meses
Puntos: 24
seguira siendo C++ creo. Aunque me dejas con la duda.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #46 (permalink)  
Antiguo 03/04/2006, 14:40
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 4 meses
Puntos: 24
Investigando un poco por la web, encontre un par de articulos. El nuevo nombre sera C++0x.

este es el link.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #47 (permalink)  
Antiguo 03/04/2006, 14:49
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
C++0x suena como a "lenguaje hexadecimal", mejor C++06.


Cita:
Make C++ easier to teach and learn

* Through increased uniformity, stronger guarantees, and facilities supportive of novices
Espero...
  #48 (permalink)  
Antiguo 03/04/2006, 15:05
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 4 meses
Puntos: 24
mm, igual el estandard no sale hasta el 2009, por que les queda tiempo para pensar otro nombre.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #49 (permalink)  
Antiguo 03/04/2006, 15:07
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Que les parece: C#+
  #50 (permalink)  
Antiguo 03/04/2006, 15:13
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Cita:
Iniciado por TolaWare
mm, igual el estandard no sale hasta el 2009, por que les queda tiempo para pensar otro nombre.
Sí, por eso espero que lo piensen bien y cambien de nombre.

Cita:
Iniciado por Developer9
Que les parece: C#+
"C sharp plus", suena bien.
  #51 (permalink)  
Antiguo 03/04/2006, 15:17
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Cita:
Iniciado por TolaWare
Investigando un poco por la web, encontre un par de articulos. El nuevo nombre sera C++0x.

este es el link.
Veo que para ese entonces (2009) se van a poder implementar como lo que hace C# del framwork 2.0 llama generics...

Lo digo porque C++0x tendrá algo como ésto:

Cita:
template<class T> using Vec = vector<T,My_alloc<T>>;
Cosa que con C# se implementa de forma similar con generics, algo como ésto:

Cita:
public class Stack<T>
{
T[] items;
int count;
public void Push(T item) {...}
public T Pop()
{...}
}
Tambien pienso que el nombre de C++0x quien sabe para ese entonces como se vaya a llamar...

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #52 (permalink)  
Antiguo 03/04/2006, 15:50
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por RootK
Veo que para ese entonces (2009) se van a poder implementar como lo que hace C# del framwork 2.0 llama generics...

Lo digo porque C++0x tendrá algo como ésto:

Cosa que con C# se implementa de forma similar con generics, algo como ésto:

Tambien pienso que el nombre de C++0x quien sabe para ese entonces como se vaya a llamar...
Bueno RootK me has hecho saltar aquí, es una mentira muy grande lo que has dicho.

C++ tiene "templates" desde siempre, y es a lo que hago mención cuando he hablado de "programación genérica" (genérica->generics). Es el primer lenguaje que lo implementa de forma tan potente, y son su punto fuerte.

Por otra parte, los generics de C# son bastante menos potentes que los de C++, se simplificaron para hacer la vida más sencilla.

Y como guinda, la librería estándar de C++, la STL, está construida toda ella sobre templates, ejemplo clásico:

std::vector<int> unvector();

Pero no se restringe a esto, busca sobre librerías como Boost, metaprogramming, y mil cosas más que hay exageradamente complicadas sobre la programación con templates de C++.

C# no ha hecho más que heredarlo de C++ y simplificarlo, como con la mayoría de las cosas, para ayudar a su uso.

En cambio, C++0x va a complicarlo aún más.

El ejemplo que has puesto antes de C#, en C++ se ha escrito desde que nació así:

Código:
template<typename T>
class {
T * items;
int count;

public:
void push(T item) { ... }
void pop() { ... }
}
  #53 (permalink)  
Antiguo 03/04/2006, 15:51
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Lo de generics es el exito. Yo trabajo con clases generadas por una herramienta llamada OPF que crea clases de persistencia de tablas de mi SQL Server, que traen metodos que tienen esta funcionalidad. Al llamar a un metodo entre los <> le pongo el nombre de mi tabla (convertida en clase) permitiendome trabajar con un solo metodo pero que sirve para todas las clases
  #54 (permalink)  
Antiguo 03/04/2006, 15:53
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Ay, estos hablan de todo (aunque no hablen para todos) y se creen que los demás sabemos lo mismo.

Generics
Cita:
Generic programming

In computer science, generics is a technique that allows one value to take different datatypes (so-called polymorphism) as long as certain contracts such as subtypes and signature are kept. The programming style emphasizing use of this technique is called generic programming.
For example, if one wanted to create a list using generics, a possible declaration would be to say List<T>, where T represented the type. When instantiated, one could create List<Integer> or List<Animal>. The list is then treated as a list of whichever type is specified.

Among object-oriented languages, C++, D, BETA, Eiffel, Ada, and versions of Java (1.5 and higher) provide generic facilities. VB.NET and C# began providing them with .NET 2.0. Much earlier than in all mentioned languages, generic programming was implemented in CLU.
Para los que no lo sabían, como yo..
  #55 (permalink)  
Antiguo 03/04/2006, 15:56
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Nunca es tarde para aprender
  #56 (permalink)  
Antiguo 03/04/2006, 16:02
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por Developer9
Lo de generics es el exito. Yo trabajo con clases generadas por una herramienta llamada OPF que crea clases de persistencia de tablas de mi SQL Server, que traen metodos que tienen esta funcionalidad. Al llamar a un metodo entre los <> le pongo el nombre de mi tabla (convertida en clase) permitiendome trabajar con un solo metodo pero que sirve para todas las clases
Pues si es el éxito, es gracias a C++.

Pero...

¡Claro, a nadie le gusta ni a nadie se lo han enseñado en la universidad!

Si te hago un listado Developer9 de las aplicaciones que tiene, te desmayas, así que no vengas a poner ejemplos como que "sabes mucho" ;)
  #57 (permalink)  
Antiguo 03/04/2006, 16:04
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por Developer9
Nunca es tarde para aprender
No, cómprate este libro:

http://boost-consulting.com/mplbook/

Hay decenas de libros como ese repletos de templates y metaprogramming, y sólo es uno.

Es una ciencia viva que está surgiendo ahora.
  #58 (permalink)  
Antiguo 03/04/2006, 16:12
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Cita:
Iniciado por MaxExtreme
Pues si es el éxito, es gracias a C++.

Pero...

¡Claro, a nadie le gusta ni a nadie se lo han enseñado en la universidad!

Si te hago un listado Developer9 de las aplicaciones que tiene, te desmayas, así que no vengas a poner ejemplos como que "sabes mucho" ;)
Yo no digo que se mucho, es mas recien desde hace poco conozco el concepto implementado en .net 2005. En lo unico que lo he utilizado es en Persistencia.

Acaso dije yo soy el rey de generics o eso es viejo y hasta lo se usar con un ojo abierto y otro cerrado.
  #59 (permalink)  
Antiguo 03/04/2006, 16:21
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 11 meses
Puntos: 0
Cita:
Iniciado por MaxExtreme
¡Claro, a nadie le gusta ni a nadie se lo han enseñado en la universidad!

Si te hago un listado Developer9 de las aplicaciones que tiene, te desmayas, así que no vengas a poner ejemplos como que "sabes mucho" ;)
Enseñan Java, Pascal y Vb.:-p
C++ y Asm no, que asco son.
  #60 (permalink)  
Antiguo 03/04/2006, 16:37
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
La mayoria de la orientacion de las universidades es la administracion. Aunque C/C++ si enseñan pero no se especializan en ello y asm lo enseñan en Organizacion Computacional
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:17.