C e C++

Com a liberação do GCC 4.8.0, os desenvolvedores do GNU Compiler Collection completaram a migração para o C++ como a linguagem de implementação para o seu software. O trabalho de desenvolvimento durou anos, e o GCC 4.8 também traz melhorias de desempenho, novo nível de otimização e adiciona o detector de erro de memória AddressSanitizer, assim como a ferramenta ThreadSanitizer.

A mudança para o C++ significa que os desenvolvedores que querem construir sua própria versão do GCC agora precisam de um compilador C++ que entende C++ 2003. Os desenvolvedores explicam neste wiki as razões para a mudança. A página também lista os patches individuais para o compilador que foram comitados como parte da migração. Usuários que querem habilitar o framework Graphite no GCC 4.8 precisarão de novas versões de CLooG e ISL, que podem Sr baixados a partir do diretório de infraestrutura nos servidores GCC.

O código fonte do GCC 4.8.0 está disponível a partir de vários mirrors e do servidor SVN do projeto. Mais informações estão disponíveis neste link e no change log.

Fonte: Feed Carreira – GCC 4.8 completa migração para C++

O Facebook anunciou que está utilizando HHMV, uma HipHop VM com compilação JIT, em produção, uma solução que unificou seus ambientes de desenvolvimento e deployment, fornecendo ganhos significativos de desempenho para desenvolvedores.

Facebook agora utiliza HHVM/JIT em desenvolvimento e produção

Por razões de desempenho de carregamento de página, o Facebook decidiu implementar uma cadeia de ferramenta PHP-para-C++, cujo código foi aberto em 2010, sob o nome HipHop PHP, sendo que o compilador se chamava HPHPc. A ferramenta converte PHP em uma Abstract Syntax Tree (AST) e, depois, em C++, que é compilado de forma estática para código binário x64. Enquanto isso aumentava a velocidade das páginas web, tinha impacto no desenvolvimento, já que cada desenvolvedor no Facebook possuía uma cópia completa da árvore de código do site e tinha que esperar que toda a base de código fosse compilada. Devido ao fato de o site ter continuado a crescer a uma taxa elevada, a fase de compilação cresceu para cerca de 10 minutos, o que é muito tempo de espera para um desenvolvedor.

Para resolver o problema, uma decisão foi tomada para manter o compilador para código de produção e criar um interpretador (HPHPi) para desenvolvimento, que deveria eliminar o longo tempo de compilação. O resultado foi que esse ambiente de produção se tornou diferente do de desenvolvimento, e um dos problemas foi o uso de diferentes ASTs por razões de desempenho, o que tornou o HPHPi mais lento que o mecanismo Zend usado anteriormente, que trazia HipHop, segundo Drew Paroski, um engenheiro da rede social. (mais…)

Promoção de Aniversário

Calendário Calendário

Ferramentas para Automação de Teste de Software / Duração: 20h

30 de julho a 03 de agosto / Noite: 18:45 às 22:45 / Local: TargetTrust Confirmada
27 de agosto a 31 de agosto / Manhã: 8:00 às 12:00 / Local: TargetTrust
30 de outubro a 06 de novembro / Noite: 18:45 às 22:45 / Local: TargetTrust
08 de dezembro a 22 de dezembro / Sábado Integral: 8:30 às 12:30 e 13:30 às 17:30 / Local: TargetTrust
17 de dezembro a 21 de dezembro / Noite: 18:45 às 22:45 / Local: TargetTrust

Oracle 11g: Administração do Banco de Dados II / Duração: 30h

31 de julho a 09 de agosto / Noite: 18:45 às 22:45 / Local: TargetTrust Confirmada
03 de setembro a 13 de setembro / Manhã: 8:00 às 12:00 / Local: TargetTrust
18 de setembro a 28 de setembro / Noite: 18:45 às 22:45 / Local: TargetTrust
06 de outubro a 10 de novembro / Sábado Integral: 8:30 às 12:30 e 13:30 às 17:30 / Local: TargetTrust Confirmada
30 de outubro a 09 de novembro / Manhã: 8:00 às 12:00 / Local: TargetTrust
13 de novembro a 23 de novembro / Noite: 18:45 às 22:45 / Local: TargetTrust

Orientação a Objetos com UML / Duração: 20h

01 de agosto a 07 de agosto / Manhã: 8:00 às 12:00 / Local: TargetTrust
04 de agosto a 18 de agosto / Sábado Integral: 8:30 às 12:30 e 13:30 às 17:30 / Local: TargetTrust Confirmada
06 de agosto a 10 de agosto / Noite: 18:45 às 22:45 / Local: TargetTrust Confirmada
03 de setembro a 10 de setembro / Noite: 18:45 às 22:45 / Local: TargetTrust
01 de outubro a 05 de outubro / Manhã: 8:00 às 12:00 / Local: TargetTrust
01 de outubro a 05 de outubro / Noite: 18:45 às 22:45 / Local: TargetTrust
05 de novembro a 09 de novembro / Manhã: 8:00 às 12:00 / Local: TargetTrust
05 de novembro a 09 de novembro / Noite: 18:45 às 22:45 / Local: TargetTrust
03 de dezembro a 07 de dezembro / Manhã: 8:00 às 12:00 / Local: TargetTrust
03 de dezembro a 07 de dezembro / Noite: 18:45 às 22:45 / Local: TargetTrust

(mais…)

O que é code refactoring?

Refatorar é mudar o código que está feito sem mudar o comportamento. Idealmente, devemos melhorá-lo; porém se fizermos algo errado, ainda sim podemos dizer que fizemos uma refatoração. Obviamente, estamos simplificando ao máximo.

Refactoring

Dicas

  • DICA 1: Adicione FIXME e TODOS no seu código;
  • DICA 2: Sempre que possível reserve um tempo para melhorar o seu código;
  • DICA 3: Extraia métodos para que eles fiquem simples e independentes. Evite a complexidade e DRY (Don’t Repeat Yourself);
  • DICA 4: Nomeie corretamente as variáveis. EVITE coisas como $nCli, $imgW, etc.. Hoje você sabe o significado mas e daqui a dois meses? Prefira variáveis como $nome_cliente, $image_width, nomes mais legíveis;
  • DICA 5: Procure sempre otimizar o código para que ele tenha uma performance melhor;
  • DICA 6: A cada mudança no código, rode os testes para garantir que tudo esteja funcionando. ALWAYS GREEN; (mais…)

Algumas novas implementações e dialetos do Ruby têm aparecido, juntando-se ao grande conjunto de dialetos existentes. As novidades são MRuby, MobiRuby e RubyMotion. Aqui apresentamos o que trazem de novo.

Ruby On Rails Happy Coding

MRuby

Começamos pelo MRuby, desenvolvido pelo criador do Ruby, Yukihiro “Matz” Matsumoto. Na RubyConf 2010Matz anunciou seu trabalho no desenvolvimento do Rite, uma implementação leve do Ruby. O resultado daquele trabalho é o MRubydisponibilizado no GitHub, que contempla parcialmente a especificação da linguagem do ISO. O foco, porém, é completamente diferente do MRI e do Ruby 1.9; logo o MRuby não é o Ruby 2.0.

O MRuby pode ser usado simplesmente para executar programas Ruby, mas foi projetado especialmente para ser integrado em outros programas (por exemplo, em jogos, como uma alternativa à linguagem Lua). Pode também ser utilizado em pequenos dispositivos com pouca memória. (mais…)

abr
25
Posted by carolina at 8:00 am

Ambientes de desenvolvimento

Abaixo é mostrada uma lista dos principais ambientes de desenvolvimento C++, sejam eles compiladores ou ambientes de desenvolvimento integrado (IDE). (mais…)

abr
21
Posted by carolina at 8:00 am

Filosofia

No livro In The Design and Evolution of C++ (1994), Bjarne Stroustrup descreve algumas regras que ele utiliza para desenvolver a linguagem, como exemplificado abaixo:

  • C++ é desenvolvido para ser uma linguagem tipada estaticamente e de propósito geral que é tão eficiente e portátil quanto o C. (mais…)
abr
19
Posted by carolina at 8:00 am

O C++ (em português lê-se “cê mais mais”) é uma linguagem de programação multi-paradigma e de uso geral. A linguagem é considerada de médio nível, pois combina características de linguagens de alto e baixo níveis. Desde os anos 1990 é uma das linguagens comerciais mais populares, sendo bastante usada também na academia por seu grande desempenho e base de utilizadores. (mais…)

abr
14
Posted by carolina at 8:00 am
P. O que é o Visual C# .NET?
R. O Visual C# .NET fornece aos desenvolvedores uma linguagem moderna e orientada a componentes, com a qual podem construir rapidamente interessantes soluções controladas por dados. Com suporte ao design, ao desenvolvimento e à implantação rápidos de Web services XML, soluções controladas por dados de alto desempenho e designers visuais do lado do servidor, o Visual C# .NET proporciona funcionalidade superior para simplificar os processos de negócios.

O Visual C# .NET permite aos desenvolvedores criar soluções para uma ampla gama de clientes, o que inclui aplicativos Web, aplicativos baseados no Microsoft Windows Forms e dispositivos dos tipos cliente fino e smart client. E, com uma linguagem de programação elegante e moderna, os desenvolvedores em C# podem aproveitar as habilidades e o conhecimento que já possuem nas linguagens C++ e Java para alcançar o sucesso no ambiente de desenvolvimento Microsoft .NET.

P. Quais as novidades no Visual C# .NET 2003? (mais…)