Programação orientada a objetos com C / C++ em ambiente multiplataforma



Documentos relacionados
Desenvolvendo Websites com PHP

Software livre: solução ou problema? Autores: Prates, C. F., Souza, C. H. F. B., Castro, C. V., Vilela, D. R. G., Almeida, N. M

O papel do CRM no sucesso comercial

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Importância da normalização para as Micro e Pequenas Empresas 1. Normas só são importantes para as grandes empresas...

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Logística e a Gestão da Cadeia de Suprimentos. "Uma arma verdadeiramente competitiva"

Curso de canvas FazINOVA.

Solitaire Interglobal

FUNDAMENTOS DA ECONOMIA

Analista de Sistemas S. J. Rio Preto

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Dicas para usar melhor o Word 2007

C Por que é preciso fazer rápido o produto web?

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

INTRODUÇÃO: 1 - Conectando na sua conta

Palavras-chave: Loja virtual. Comércio eletrônico. Internet.

ESTUDO DE CASO WINDOWS VISTA

Principais Comandos SQL Usados no MySql

CONFIRA UMA BREVE DESCRIÇÃO DAS VANTAGENS COMPETITIVAS OBTIDAS A PARTIR DE CADA META COMPETITIVA VANTAGEM DA QUALIDADE

4 Estrutura do Sistema Operacional Kernel

1. Uma situação na qual um comprador e um vendedor possuem informações diferentes sobre uma transação é chamada de...

Análise do filme Pirates of Silicon Valley (Piratas do Vale do Silício)

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

COMO PARTICIPAR EM UMA RODADA DE NEGÓCIOS: Sugestões para as comunidades e associações

EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado.

Agenda. Modelagem de Sistemas de Informação II. Por que é importante gastar tempo estudando Requisitos? Aula 1 - Introdução.

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

COMO INVESTIR PARA GANHAR DINHEIRO

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Curso de Instalação e Gestão de Redes Informáticas

Introdução a Banco de Dados

GESTÃO ESTRATÉGICA DA CADEIA LOGÍSTICA

Aula 1 Introdução ao Word 2013

Como Gerar documento em PDF com várias Imagens

08 Capital de giro e fluxo de caixa

1 / 6. Cartilha O ABC do Software Livre. O que é PcLivre?

Programação de Computadores II TCC Turma A-1

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

SIMULADO DE INFORMÁTICA BÁSICA TÉCNICO DO MPU PROF. ALEXANDRE LÊNIN / PROF. JUNIOR MARTINS

Ao introduzir o sistema ERP, o empresário reconhece imediatamente os benefícios e ferramentas que podem

World Wide Web e Aplicações

INTRODUÇÃO A PORTAIS CORPORATIVOS

Introdução aos Sistemas da InformaçãoAula 4 p. 1

Preciso anunciar mais...

Laboratório de Redes. Professora Marcela Santos

Sistemas Operacionais

Artur Petean Bove Júnior Tecnologia SJC

Lógica de Programação

Desenvolvimento Web TCC Turma A-1

CRM. Costumer Relationship Management. Gestão de Relacionamento com o Cliente. Ismar Vicente

Programa de Pós-Graduação em Comunicação e Cultura Contemporâneas. Grupo de Pesquisa em Interação, Tecnologias Digitais e Sociedade - GITS

Manual AGENDA DE BACKUP

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

PLANO DE NEGÓCIOS. Causas de Fracasso:

Módulo 2 Custos de Oportunidade e Curva de Possibilidades de Produção

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Núvem Pública, Privada ou Híbrida, qual adotar?

FTAD Formação Técnica em Administração. Aula 07 - ACI Prof. Arlindo Neto

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

EMULADOR 3270 VIA WEB BROWSER


Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Conceitos e princípios básicos de Matemática Financeira aplicada à vida cotidiana do cidadão

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

Sistemas de Gerenciamento do Relacionamento com o Cliente (Customer Relationship Management CRM)

Módulo 1 Questões Básicas da Economia Conceito de Economia

CARDS - Jogo Educativo na Internet para Ensino a Distância

OMT-G Design. Instalação por pacotes

GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Implementando uma Classe e Criando Objetos a partir dela

CAPÍTULO 2. Este capítulo tratará :

CONVENÇÃO DE CÓDIGO JAVA

Fábrica de Software 29/04/2015

[Ano] Língua Portuguesa. Campus Virtual Cruzeiro do Sul

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

Autor: Marcelo Maia

O Gerenciamento de Documentos Analógico/Digital

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Iniciando. Bolsa de Valores. O que é uma ação?

Conceitos básicos de programação

Engenharia de Requisitos

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

S E M A N A D O COACHING

Microeconomia. Demanda

Governança de TI. ITIL v.2&3. parte 1

Superioridade do Linux sobre Windows no quesito segurança

WEBSITE. Como utilizar um site Assistente de Criação para criar seu próprio site


Mercado de Opções Opções de Compra Aquisição

RELATÓRIO DA ENQUETE SOBRE INTERNET MÓVEL

Transcrição:

Programação orientada a objetos com C / C++ em ambiente multiplataforma Porque escolher C /C++ versão 2.1 de 05 de Março de 2001 Por Sergio Barbosa Villas-Boas www.del.ufrj.br/~villas villas@del.ufrj.br Escolha tecnológica: uma decisão estratégica Escolher tecnologia erradamente pode fazer perder tempo e/ou dinheiro. Não se escolhe um software apenas pelos seus méritos e pelo seu preço. Se seus amigos usam o software x, você tende a escolher essa opção também. Um software usado por uma grande comunidade é geralmente a melhor opção de escolha. Ou seja, um software muito usado ele tem adquire mais valor, mesmo que não tem muitos méritos. 1

Características do produto software (1) Produto tangível? software Custo de desenvolvimento alto, custo de reprodução zero. Grande concorrência, obsolescência precoce. Não faz sentido oferecer um produto tangível gratuitamente. Mas faz sentido oferecer um software gratuitamente. Características do produto software (2) O comportamento humano é inercial em relação ao uso de tecnologia. Tende-se a querer preservar o investimento de energia no aprendizado de uma tecnologia, ou seja, tende-se a não mudar a forma de se trabalhar (se essa forma estivar satisfatória). Uma explicação para a febre da Internet no final do milênio é a tentativa de se capturar rapidamente o mercado ainda virgem. Após a fase inicial, a inércia faria manter o espaço conquistado. 2

Características do produto software (3) O consumidor final vê vantagem em padronização Compra-se uma TV de uma marca, mas a próxima TV pode ser de outra marca. O mesmo vale para carro, bicicleta, relógio, etc. No caso de software, compra-se um software, depois não se quer mais mudar, para não perder investimento em cima do que já se aprendeu e já se produziu. Escolha tecnológica = escolha estratégica Os profissionais de tecnologia tendem a se organizar em tribos, ou torcidas em torno das tecnologias que preferem usar. Para ter flexibilidade na vida profissional, é conveniente adotar uma tribo que tenha a maior abrangência possível. 3

Escolha tecnológica estudos de caso Casos: Sistema operacional os/2? win3.1 (win95). cgi (perl, asp, php, cold fusion, jsp, C++, etc.) Bancos usando Mainframe ou Workstation. O Bamerindus precipitou-se no uso de Workstation e teve resultado ruim. Quem acertou foi quem esperou, e não quem adotou a ferramenta da moda. Curva de incorporação de novidades Maioria dos que tem sucesso A B C D Desbravadores Primeira Maioria Maioria Atrasada Retardatários 10% 40% 40% 10% D C B A observação tempo 4

Vida de Programador... class MyCareer { private: mytruepurpose; // be flexible and adapt to any change public: MyCareer() { learn_cpp(); } // constructor ~MyCareer() { // destructor learn_cobol(); learn_fortran(); keep_learning_different_languages_forever(nevergettobeguru); learn_a_different_language_for_each_project(); }; }; if (use_cpp) { uselibraries(); // eventually create a new library solvetheproblem(); // get the work done! learnbettercpp(nextprojectwillbedonefaster); } else { learnaspecificlanguageandsolvetheproblem(); if (changefocusorplatform) { learnanotherlanguage(wasteprecioustime); } } Porque C / C++? (1) O compilador é fácil de se fazer. Isso é uma vantagem indireta. Há compilador C/C++ para virtualmente todas as plataformas que interessam. Alguns exemplos: Windows Unix (todas as variações) Machintosh Mainframe Handhelds (Palm Pilot, Windows CE) Chips sem sistema operacional (Microcontroladores, DSP, etc) Programação para Internet (CGI) 5

Porque C / C++? (2) C++ contém os mais evoluídos conceitos de software orientado a objetos. Desde que há muitos compiladores C/C++ (inclusive gratuitos, como o compilador da gnu.org, que dá de graça até o fonte do compilador), ninguém é dono da linguagem. Trata-se de um padrão aberto. Porque C / C++? (3) Há inúmeros projetos de software de alto nível, cujo fonte é disponível em C/C++ (legacy applications). Há também várias bibliotecas gratuitas. Alguns exemplos: Unix (Linux) e seus muitos componentes Latex Netscape gcc/g++ (compilador c/c++ da gnu.org) qmail Napster 6

C++ ANSI C FAQ Qual a diferença entre C e C++? em programação C, ++ significa incremento. Quando surgiram os conceitos de orientação a objetos e implementou-se esses conceitos em C, a linguagem ficou incrementada. Alguém deu para a nova linguagem o nome de C++ e o nome não mudou mais. Um programa em C compila num compilador C++? C++ é um superset de ANSI C, isto é, possui tudo de ANSI C e mais algumas coisas. Portanto, um programa em ANSI C é compilável com compilador C++. O C Kernighan& Richie (padrão de C anterior ao ANSI C) não compila em C++. Desvantagens de C / C++ Mais difícil de aprender que algumas alternativas As alternativas não estão disponíveis em tantas plataformas quanto C / C++. Essa desvantagem pode ser compensada com um bom esforço didático. Essa é uma desvantagem para quem precisa contratar programadores baratos para terefas simples. Possui comandos poderosos (entenda-se: perigosos). O programador pode travar a máquina com um programa errado. 7

Teoria das transações econômicas (1) Numa transação em que alguém compra algo, há 2 atores: Comprador Vendedor A natureza do que está sendo negociado está em algum ponto da escala abaixo, cujos extremos são mostrados. mercadoria produto em negociação produto diferenciado Teoria das transações econômicas (2) Quando o produto é uma mercadoria, quem está em boa posição é o comprador. Nesse caso, desde que haja oferta, pode-se escolher o produto mais barato. O vendedor não consegue diferenciar o seu produto e é forçado a operar com margem de lucro muito baixa. mercadoria produto em negociação produto diferenciado Quando trata-se de um produto diferenciado, o comprador não tem opção. O vendedor reconhece esse fato e coloca preços altos. É o vendedor que está em boa posição. 8

Mercadoria escassa O mercado diz: mercadoria escassa, preço bom. Mas o mesmo mercado tende a controlar esse preço, pois a boa remuneração atrai novos atores para o setor. No ambiente globalizado, quase tudo acaba tornando-se uma mercadoria, com competição e atuação global. Somente sustentam o preço bom (premium) os produtos diferenciados. A capacidade profissional é negociada no mercado A capacidade profissional é um produto negociado no mercado. O preço é a remuneração. Quem usa uma linguagem (ou ferramenta) fácil torna-se rapidamente uma mercadoria, sendo portanto difícil negociar boas remunerações. Há uma infindável fonte de novidades no ambiente tecnológico. A linguagem C/C++ evolui devagar (para absorver as novidades), mas não requer o abandono dos conceitos anteriores. Com isso, sempre é possível fazer com C/C++ os programas nos ambientes que interessam, enquanto preserva-se os investimentos de tempo feitos em seu estudo. 9

Porque sim java Java é uma linguagem que tem código intermediário (bytecode). Supostamente, um código em bytecode pode ser executado em qualquer ambiente onde haja uma máquina virtual java (todos os computadores que interessam). Trata-se de uma iniciativa apoiada por diversas empresas, incluindo Sun, Oracle, IBM, etc. (mas não todas. A Microsoft não apóia java). Pode-se fazer applets dentro de browser. Porque não java (1) Java é gratuito, mas não gratuito para sempre. Isto é, a Sun (dona do Java) não divulga o código fonte do compilador nem da máquina virtual Java. Em contraste, o código fonte do compilador g++ pode ser baixado em gnu.org. Já houve caso de conflito de interesses sobre royalties a respeito de java (a Sun quiz cobrar royalties da IBM pelo Java 2). Não é impossível que java torne-se um produto pago no futuro. 10

Porque não java (2) Java tem problemas sérios de desempenho (resultantes da necessidade de conversão de bytecode para código nativo). Esses problemas são menos relevantes para servidores, mas são bastante visíveis para clientes. Concretamente: para fazer um bom programa para windows, para ser usado pelo cliente, e que deva ser executado com desempenho aceitável, java pode ser uma má opção. Porque não java (3) Java é bastante complicado. Optar por fazer programas CGI com JSP e Java Beans pode ser uma má opção para empresas que pretendem não investir muito nos programadores. Java não está totalmente maduro ainda. Há problemas de compatibilidade, de versões, etc. Por exemplo: nem as últimas versões dos browsers podem executar applets em java2 sem plug-in. 11