1 pontos por GN⁺ 2024-04-20 | 1 comentários | Compartilhar no WhatsApp

Programming -- Principles and Practice Using C++ (3rd Edition)

  • "Programming -- Principles and Practice Using C++ (3rd Edition)", publicado pela Addison-Wesley, está previsto para ser lançado em abril de 2024
    • ISBN: 978-0-13-830868-1
    • Pode ser comprado diretamente no site da editora

Apresentação do livro

  • Este livro ajudará qualquer pessoa disposta a se dedicar a aprender os princípios básicos da programação e a desenvolver habilidades práticas necessárias para a programação real
    • As edições anteriores foram usadas com sucesso por milhares de estudantes
  • Esta edição revisada tem as seguintes características:
    • Parte do princípio de que o objetivo do leitor é escrever programas bons o suficiente para que outras pessoas possam usar e manter
    • Foca em conceitos e técnicas fundamentais, em vez de detalhes técnicos obscuros da linguagem
    • Não é uma introdução a uma linguagem de programação, mas sim à programação em geral, incluindo programação procedural, orientada a objetos e genérica
    • Abrange tanto técnicas de baixo nível necessárias para usar o hardware com eficiência quanto técnicas modernas de alto nível
    • Fornece uma base sólida para escrever código útil, correto e seguro, usando tipos que possam ser mantidos e também eficientes
    • Foi projetado principalmente para pessoas sem experiência em programação, mas programadores experientes também acharam as edições anteriores úteis como introdução a conceitos e técnicas mais eficazes
    • Cobre amplamente conceitos essenciais, técnicas de design e programação, recursos da linguagem e bibliotecas
    • Usa C++ moderno (C++20 e C++23)
    • Aborda o design e o uso de tipos nativos e tipos definidos pelo usuário, juntamente com entrada, saída, computação e gráficos/GUI simples
    • Oferece uma introdução aos contêineres e algoritmos da biblioteca padrão de C++

Sobre o autor

  • Bjarne Stroustrup é o projetista e implementador original de C++, e autor de "The C++ Programming Language", "A Tour of C++" e de muitas publicações populares e acadêmicas
  • Ele é professor de ciência da computação na Columbia University, na cidade de Nova York
  • Dr. Stroustrup é membro da National Academy of Engineering dos Estados Unidos e fellow do IEEE, ACM e CHM
  • Ele recebeu o Charles Stark Draper Prize de 2018, o Computer Pioneer Award de 2018 da IEEE Computer Society e a IET Faraday Medal de 2017

Apresentação do PPP3

  • "Programming: Principles and Practice using C++ (3rd Edition)" (PPP3) é um livro introdutório de programação para pessoas sem experiência em programação
  • Também será útil para quem tem alguma experiência em programação e quer melhorar estilo e técnica ou simplesmente aprender C++ moderno
  • Foi projetado para uso em sala de aula, mas escrito sob a perspectiva de um tutorial
  • As versões anteriores deste livro foram usadas como base do primeiro curso de programação para estudantes de engenharia elétrica, engenharia da computação e ciência da computação na Texas A&M University e em muitos outros lugares
  • Quem viu o PPP2 perceberá que o PPP3 tem cerca de metade do tamanho. Para reduzir o volume, foi feito o seguinte:
    • Foram aproveitadas partes centrais de C++20 e C++23 para reforçar os capítulos básicos normalmente cobertos em um curso de um semestre, e o código dos capítulos de gráficos/GUI foi reescrito com base em Qt para portabilidade (por exemplo: navegador e celular)
    • Os capítulos mais especializados (conhecidos como "widening the view" no PPP2) foram colocados na web para uso conforme necessário
    • Material puramente de referência foi removido. Agora é possível encontrar mais material e material mais atualizado na web (por exemplo: cppreference.com)
  • O material de apoio do PPP2 ainda está disponível (slides de aula, código etc.)

Amostras do PPP3

  • Prefácio: o que este livro promete e o que não promete
  • Sumário
  • Capítulo 0: algumas palavras ao leitor. Algumas observações sobre a abordagem adotada neste livro
  • Capítulo 10: o modelo de exibição. Capítulo de exemplo. Se você é um iniciante completo, não leia este capítulo agora. Ele é publicado para mostrar a professores e leitores experientes até onde este livro chega em cerca de 5 semanas (assumindo dois capítulos por semana). Também serve para exibir um pouco de C++ moderno

Informações de suporte

  • Links para implementações de C++ e ambientes de desenvolvimento de software (além de alguns conselhos para começar)
  • Como usar módulos (incluindo explicação de como compilar o módulo PPP usando PPP_support.h)
  • Módulo PPP para quando for possível usar módulos
  • Cabeçalho PPP.h para usar std e PPP da forma mais fácil
  • Cabeçalho PPPheaders.h para quando for necessário voltar a usar arquivos de cabeçalho
  • Suporte a GUI, incluindo a biblioteca de interface gráfica/GUI do PPP3 (nos capítulos 10-14). Para executar esse código, é necessário instalar o Qt. Consulte o manual do usuário
  • Código de exemplo de vários capítulos (TBD)
  • Errata
  • Slides de aula atualizados para PPP3 com base em PPP
  • Guia de estilo de código do PPP
  • Material de exercícios (TBD)

Capítulos do PPP2

  • Estes capítulos foram escritos usando C++14, não C++23, mas continuam corretos e apresentam os temas de forma razoável
    • Capítulo 1: computadores, pessoas e programação
    • Capítulo 11: personalização de entrada e saída
    • Capítulo 22: ideais e história
    • Capítulo 23: processamento de texto
    • Capítulo 24: computação numérica
    • Capítulo 25: programação de sistemas embarcados
    • Capítulo 26: testes
    • Capítulo 27: a linguagem de programação C
  • Glossário

Traduções

  • Ainda não há nenhuma. Para traduções da edição anterior, consulte a página de capas dos livros do autor

Opinião do GN⁺

  • PPP era um livro famoso para iniciantes em programação, e agora está saindo a 3ª edição, que aproveita C++20/23 e reorganiza/reduz bastante o conteúdo. É uma ótima notícia.
  • Em especial, a reformulação completa da parte de GUI com base em Qt pode ser vista como um exemplo de que o Qt se consolidou como o framework de GUI de fato no ecossistema C++.
  • Parece que ele incorpora ativamente tecnologias modernas de C++, como modularização, e também fortalece a integração com a web. Em especial, ter uma versão que pode ser executada diretamente no navegador parece perfeito para uso educacional.
  • Por outro lado, por usar C++ moderno, talvez iniciantes possam ficar confusos. Ainda pode ser melhor, para iniciantes, começar com um C++ em estilo C.
  • Como o autor, Bjarne, é o criador de C++ e liderou sua padronização, este provavelmente será um dos livros mais autoritativos. Não só iniciantes, mas também especialistas poderão aprender as best practices e dicas de uso selecionadas por Bjarne.

1 comentários

 
GN⁺ 2024-04-20
Opiniões do Hacker News
  • Foi levantada uma preocupação de que o recurso de módulos do C++20 ainda não é totalmente suportado pela maioria dos compiladores, então import std; não funciona. Isso pode confundir iniciantes.

  • A troca do FLTK por Qt no capítulo de GUI é uma grande mudança, e como o Qt é amplamente usado na indústria, espera-se que seja bem recebida. Ainda assim, não está claro qual será o impacto na curva de aprendizado.

  • No código do Stroustrup, usa-se using namespace std; para omitir o prefixo std::, o que melhora a legibilidade do código.

  • Foi levantada uma dúvida sobre o fato de o código do Stroustrup não usar espaços de forma consistente depois de #include.

  • No passado, quase tudo era feito com C++, incluindo UI e parsing de API, mas hoje a posição do C++ na stack de desenvolvimento ficou mais abaixo.

  • Houve experiência de estudar profundamente versões anteriores deste livro, e isso ajudou bastante a aumentar a compreensão de C++. Mas também havia muitas pessoas escrevendo código em C++ sem ler livros como este.

  • É apresentado o livro "C++ Annotations", que traz informações atualizadas sobre C++.

  • O número de páginas e o peso da 3ª edição caíram para cerca da metade em comparação com a 2ª edição.

  • O volume diminuiu porque a seção 'Part IV: Broadening the View' da 2ª edição foi removida, e esse conteúdo pode ser visto online. Os tópicos que usam C++11/14 continuam válidos.

  • A pessoa está pedindo conselhos sobre o problema de import std; não funcionar, já que é difícil encontrar uma IDE ou compilador com suporte a C++20.