C vs C++ [Civil War]

Iniciado por AlbertoBSD, 3 Mayo 2016, 23:23 PM

0 Miembros y 1 Visitante están viendo este tema.

AlbertoBSD

Este post es totalmente offtopic del foro de Programacion C/C++

Las discuciones entre programadores que giran en torno al lenguaje C y sus derivados siempre son por temas un tanto tontos como si:

void funcion() {
}


void funcion()
{
}


Que si espacio o tabulador, que si funciones o metodos que si unsigned o signed, que si new o malloc, que si malloc o calloc en fin..

Cuando aprendi programación iniciamos con orientado a objetos y despues ejemplos en C estandar y me agradaban mas los ejemplos sencillos en C, me gustaba tener mas control de la memoria y programar a mas bajo nivel.

A muchos no les gusta o no entienden los punteros o que se yo tal vez vienen de algun lenguaje de mas alto nivel cómo VB o de algun lenguaje script donde no se preocupan tanto por la memoria o los tipos de datos.

He aprendido muchos lenguajes tanto VB como C sharp, Java, Ensamblador, PHP, y varios lenguajes script puedo decir que todos tienen sus pro y sos contra, aun asi NO me canso de programar en C, hay veces que he tenido fricciones con compañeros por la forma en la que programo me dicen usa esto o has esto y la verdad yo nunca les he dicho com programar en fin...

Yo prefiero usar Tabuladores para separar.

¿Tienen ustedes fricciones por como programan o alguna vez le han dicho a alguien mas que mejor use una función u otra?
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

MAFUS

Yo soy de C. Allá por el 2005 - 2008 estuve tocando C# y me gustaba como lenguaje POO. Lo he intentado con otros lenguajes pero me siento incómodo por la falta de expresividad y control que obtengo con C. Y considero C++ un lenguaje muy sucio, hecho de parche, sobre parche, sobre parche.

En cuánto al estilo de código, siempre que éste sea coherente, claro y agradable a la vista, no tengo objeción.

Eternal Idol

#2
Cita de: AlbertoBSD en  3 Mayo 2016, 23:23 PMCuando aprendi programación iniciamos con orientado a objetos y despues ejemplos en C estandar y me agradaban mas los ejemplos sencillos en C, me gustaba tener mas control de la memoria y programar a mas bajo nivel.

Sabiendo que todo lo que hagas en C lo podes hacer en C++ no hay mucho como para discutir, con solo usar namespaces ya se obtiene una mejor organizacion del codigo, si a eso se le suman los paradigmas nuevos (como POO y programacion generica) y demas (la sobrecarga es muy util tambien) entonces se le empieza a sacar jugo al lenguaje. Y no hay ninguna razon para que C tenga mas control que C++ por ejemplo en un modulo de modo Kernel para Windows (normalmente llamado driver) tenes por fuerza que sobrecargar el operador new (llamando a la rutina principal del Kernel que reserva memoria) y ademas podes hacerlo de manera que un parametro adicional indique si la memoria sera paginable o no.

Esta simplicidad me encanta:
Código (cpp) [Seleccionar]
...
{
 mutex_holder lock(mt); //contructor adquiere mutex
 ++recurso;
} //destructor libera mutex
...
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

MAFUS

Sí, la POO y los genéricos quitan mucha carga al programador y tal, pero la sintaxys de C++ me sigue preciendo muy engorrosa. Hace años microsoft tenía un proyecto de un C# que compilaba directamente a código nativo. Desconozco si ha tenido continuidad, pero es una lástima que no se haya hechi de dominio público. Me gustaba mucho C# y podría haberse convertido en el lenguaje de mi preferencia. No hubo suerte.

crack81

Con respecto a esto "A muchos no les gusta o no entienden los punteros " creo que el origen es la forma en que se ensena, personalmente me gusta mas la  forma que implementa los punteros pascal principalmente para los que se estan iniciando en programacion, pero ya que se entienden son "faciles" de implementar.
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

HardForo

Pascal pasa los punteros por referencia mientras que C por copia, cierto ?
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

crack81

Hola @boctulus en C no existen las referencias solo punteros encambio en pascal o c++ existe el concepto puntero y referencia, inclusive c++ incluye algunos otros conceptos como referencia a puntero el equivalente en C podria ser un puntero doble a diferencia de estos dos ultimos en pascal no se usan los punteros de manera indiscriminada solo cuando es necesario.

Ejemplos

paso por referencia en C
void foo(int *value){
   *value=10;
}

int main()
{
    int value=5;
    //simula el paso por referencia
    foo(&value);
    printf("%d",value);

    return 0;
}


En C++

Código (cpp) [Seleccionar]
void foo(int &value){
   value=10;
}

int main(){

    int value=5;
    foo(value);
    cout<<value<<endl;
    return 0;
}


En  Pascal

Código (delphi) [Seleccionar]
procedure foo(var value:Integer);
begin
  value:=10;
end;

var
  value:Integer;
begin
  value:=5;
  foo(value);
  WriteLn(value);
end.

Si C/C++ es el padre de los lenguajes entonces ASM es dios.

AlbertoBSD

Interesante lo que comentas  crack81, yo nunca use pascal.

;-) ;-) ;-) MAFUS es de los que piensan como yo.

Lo unico que le envidio a C++ es la facilidad de concatenar cadenas, tengo mi propia implementacion con funcion de argumentos variables...
char *funcion(char *format,...){
..
}


En el trabajo actualmente programo en C# bajo windows y llegando a mi caso en C bajo FreeBSD XD.

Saludos.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

class_OpenGL

Para concatenar cadenas, ¿no puedes usar sscanf?

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL

AlbertoBSD

#9
sscanf es para separar la cadena de acuardo a un formato dado y almacenar dichos datos en variables individuales.

La funcion que comento usa snprintf  o vsprintf que es lo opuesto toma variables indivuduales y las junta en una sola cadena de acuerdo a u  formato dado. Yo lo uso en una funcion aparte para que la funcion se encarge de reservar memoria acorde a los parametros dados...
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW