segunda-feira, 6 de outubro de 2014

Linguagem C , C++ e C#




Os programas em C são pequenos e extremamente rápidos. Mais rápido que C, só em Assembly, programando direto no metal. A compilação em C faz com que o programa ocorra em níveis bem próximos do hardware, otimizando bastante a execução dos programas.
Programadores em C tem o total controle e acesso aos recursos do computador e do sistema operacional, podendo acessar e lidar com áreas do sistema que simplesmente são inacessíveis com outras linguagens de programação, como Java ou C#. Você tem acesso inclusive aos endereços de memória de seu computador.
 Porem a possibilidade de fazer besteira e bagunçar seu sistema programando em C é grande, pois como eu disse, você tem total domínio sobre sua máquina, nos mínimos detalhes. É bem fácil fazer um looping que trave seu sistema ou um arquivo que cresça indefinidamente e lote seu HD em poucos instantes, ou ainda apagar ou alterar qualquer arquivo de sistema.
Não é por coincidência que os grandes e melhores hackers criam aplicações em C.
Mas para ter todo esse poder em suas mãos não vai ser fácil: C é considerada uma das linguagens mais difíceis de se aprender. Talvez só não seja mais difícil que Assembly.
Mas não é pra menos, com tantas possibilidades e flexibilidade oferecida pelo C, você tem mesmo que estudar muito para ter total controle de como funciona seu computador e seu sistema.

Para você ter uma noção do poder da linguagem C, ela foi criada justamente para criar o sistema operacional Unix, o pai de todos os sistemas operacionais.
Hoje em dia, praticamente todos os sistemas operacionais e linguagens de programação usam a linguagem C totalmente ou na maior parte de seus códigos.

Ela foi criada por Dennis Ritchie, no final da década de 60 e começo da década de 70. Foi e é a linguagem utilizada por Linus Torvalds para desenvolver o Linux e seu Kernel, e também por Richard Stallman para criar os softwares livres do projeto GNU.
É de propósito geral, estruturada (não é orientada a objetos), imperativa e simples, o que permite que seja possível sua compilação em praticamente qualquer plataforma.
Ai vão alguns programas conhecidos que usam C : Mozilla usa C, Chrome, MySQL, ThundeBird, Winamp, a Apple, boa parte do Windows...o mundo roda sob C.







A Linguagem C++ é totalmente derivada da linguagem C, tem tudo que C tem e mais algumas características, cuja principal é orientação à objetos (tanto que antigamente C++ era chamado de 'C com classes').
Ela é de uso geral, usada tanto em alto como baixo nível, muito usada em meio acadêmico e comercial/empresarial, principalmente no setor de jogos, pelo seu alto desempenho, além de dar a liberdade ao programador de usar os paradigmas de programação funcional (como em C) ou de orientação a objetos (como em Java).
O que torna C++ atraente para o desenvolvimento de games são as bibliotecas gráficas, como a Allegro, OpenGL, SDL e DirectX.
Com estas bibliotecas você já pode começar a programar seus jogos, usando o que há de melhor da tecnologia, tanto de vídeo, como de áudio e 3D, sem se estressar muito com o baixo nível (hardware, drivers etc), estas bibliotecas já facilitam tudo pra você.
Porém, você tem que saber C++.

Por lidar diretamente com o equipamento, com memória e detalhes mais precisos do sistema, C++ é muito usado comercialmente e empresarialmente, devido ao seu alto teor de segurança e confiabilidade, além de ser uma linguagem bastante estável, principalmente por estar apoiada na linguagem 'mãe', a C.
Mas a grande sacada do C++ é usar o poder da linguagem C com as facilidades da orientação a objetos. Isso facilita muito a vida dos programadores, e dá um poder sobre o equipamento que é impossível ter em Java ou C#.
Fonte : http://www.programacaoprogressiva.net






C# é uma linguagem elegante e de tipos protegidos, orientada a objeto e que permite aos desenvolvedores construírem uma variedade de aplicações seguras e robustas.
É possível usar C# para criar muito aplicativos de cliente do Windows, serviços Web XML, componentes distribuídos, aplicativos de cliente-servidor, aplicativos de banco de dados, e muito mais. O Visual C# fornece um editor de códigos avançado, designers de interface de usuário convenientes, depurador integrado, e muitas outras ferramentas para facilitar o desenvolvimento de aplicativos baseados na linguagem C# e no .NET Framework.
A sintaxe do C# é altamente expressiva, mas ela também é simples e fácil de aprender. A sintaxe do C# será instantaneamente reconhecida por qualquer pessoa familiarizada com C, C++ ou Java. Os desenvolvedores que sabem qualquer uma dessas linguagens são geralmente capazes de começar a trabalhar de forma produtiva com C# dentro de um tempo muito curto. A sintaxe do C# simplifica muitas das complexidades do C++ e fornece recursos poderosos, como tipos de valor nulo, enumerações, delegações, expressões lambda e acesso direto a memória, que não são encontrados no Java. O C# suporta métodos e tipos genéricos, que fornecem uma melhor segurança de tipo e desempenho, e iteradores, que permitem implementadores de coleções de classes para definir comportamentos de iteração personalizados  que são simples de usar pelo código cliente. Expressões LINQ (consulta integrada à linguagem) fazem a consulta fortemente tipada uma linguagem de construção de primeira classe.
Como uma linguagem orientada à objetos, o C# suporta os conceitos de encapsulamento, herança e polimorfismo. Todas as variáveis e métodos, incluindo o método principal (Main), o ponto de execução de uma aplicação, são encapsuladas em definições de classes. Uma classe derivada pode herdar diretamente somente de uma classe pai, mas pode herdar de qualquer quantidade de interfaces. Métodos da classe derivada que substituem métodos virtuais de uma classe pai exigem a utilização da palavra-chave override como forma de evitar a redefinição acidental. Em C#, uma struct é como uma classe simplificada; é um tipo alocado em pilha que pode implementar interfaces mas não suporta herança.
Se você tiver que interagir com outros softwares Windows como objetos COM ou DLLs Win32 nativas, você pode fazer isso em C# através de um processo chamado "Interop". O Interop permite aos programas C# fazer quase tudo que uma aplicação nativa C++ pode fazer. O C# suporta ponteiros e o conceito de código inseguro para esses casos em que acesso direto à memória é absolutamente crítico.
O processo de compilação do C# é simples comparado com C++ e mais flexível que em Java. Não há arquivos de cabeçalho separados, e não há a necessidade de que métodos e tipos sejam declarados em uma ordem específica. Um arquivo de código em C# pode definir qualquer número de classes, estruturas, interfaces e eventos.
Fonte : http://msdn.microsoft.com
 


Nenhum comentário:

Postar um comentário