Comparando Java e C#



Documentos relacionados
RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Orientação a Objetos

Artur Petean Bove Júnior Tecnologia SJC

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

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Java. Marcio de Carvalho Victorino

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Lógica de Programação

ProgramaTchê programatche.net Programação OO com PHP

Software automatizado para controle de consultas da clínica de fisioterapia

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Linguagem de Programação Introdução a Linguagem Java

CURSO DE PROGRAMAÇÃO EM JAVA

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

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

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

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

Introdução ao C# . Visão geral do.net Framework

Programação Orientada a Objeto

Orientação a Objetos

2 Orientação a objetos na prática

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Sistemas Operacionais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

SISTEMAS OPERACIONAIS

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

PROGRAMAÇÃO JAVA. Parte 1

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Introdução à Linguagem Java

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Adriano Reine Bueno Rafael Barros Silva

Desenvolvimento Web TCC Turma A-1

Programação Orientada a Objetos

Produtos da Fábrica de Software

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Web Services. Autor: Rômulo Rosa Furtado

CONVENÇÃO DE CÓDIGO JAVA

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

Laboratório I Aula 2

Principais Comandos SQL Usados no MySql

Profº. Enrique Pimentel Leite de Oliveira

4 Estrutura do Sistema Operacional Kernel

Introdução a Java. Hélder Nunes

Programação Orientada a Objetos em Java

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Programação para Internet Orientada a Objetos com PHP & MySQL Instalando e configurando um ambiente de ferramentas PHP e MySQL. Prof. MSc.

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

Principais características

AULA Uma linguagem de programação orientada a objetos

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

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 1 APRESENTANDO O C#

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

DESENVOLVIMENTO DE SOFTWARE AULA 1

Java para Desenvolvimento Web

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB

Linguagens de. Aula 02. Profa Cristiane Koehler

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Procedimentos para Reinstalação do Sisloc

FundamentosemInformática

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Noções de. Microsoft SQL Server. Microsoft SQL Server

Guia de instalação do Sugar CRM versão open source no Microsoft Windows XP

Nome N Série: Ferramentas

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Implementando uma Classe e Criando Objetos a partir dela

BANCO DE DADOS II. AULA MySQL.

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Parte I. Demoiselle Mail

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com

Software Livre e GIS: Quais são as alternativas?

Programação de Computadores - I. Profª Beatriz Profº Israel

UTILIZANDO O GIMP PARA EDIÇÃO DE IMAGENS

2. O AMBIENTE DE PROGRAMAÇÃO EM C

FBV - Linguagem de Programação II. Um pouco sobre Java

ISHIFT: Informação em Movimento

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Instalar corretamente as ferramentas necessárias para a criação dos jogos

GERAÇÃO DE RELATÓRIOS

Introdução a Linguagem

POO Programação Orientada a Objetos. Classes em Java

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Herança. Alberto Costa Neto DComp - UFS

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

JSP - ORIENTADO A OBJETOS

ESTUDO DE CASO WINDOWS VISTA

LINGUAGEM ORIENTADA A OBJETOS

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

Transcrição:

Por: Lincon Alexandre Marques Jonathan T. Dos Santos Ricardo Fumio Tanimoto Abril, 2009 Comparando Java e C# Introdução Escolhemos como tema deste artigo um comparativo entre as linguagens Java e C#, duas excelentes linguagens que seguem os princípios da orientação a objeto. Lembrando que não queremos apontar uma, ou outra linguagem como melhor ou pior, o foco deste artigo é apontar os pontos positivos e negativos de cada linguagem através dos seguintes tópicos: - Breve histórico das linguagens - Plataforma - Princípios de Orientação a Objeto - Ferramentas para Desenvolvimento - Tendências de Mercado Histórico 1 Java Desenvolvida pela SUN Microsystems, por volta de 1990, Java possui uma estrutura bastante semelhante com a linguagem C, totalmente orientada a objeto, a linguagem Java vem se destacando por ser extremamente eficaz na produção de programas sofisticados, em menos tempo e com maior qualidade. Tendo como grande atrativo o fato de um programa escrito em Java ser multiplataforma, ou seja pode ser executado virtualmente em qualquer plataforma principalmente em Windows, Unix e Mac. 2 C# Desenvolvida pela Microsoft juntamente com a arquitetura.net, C# foi construída praticamente do zero visando total compatibilidade com a plataforma.net. Uma moderna linguagem orientada a objeto que disponibiliza uma gama de alternativas aos desenvolvedores de aplicativos para a plataforma.net. Plataforma 1 Java Talvez uma das grandes vantagens da linguagem Java é possuir compatibilidade com multiplataformas, um aplicativo quando desenvolvido na linguagem Java é traduzido pelo seu compilador para os bytecodes, ou seja o código é transformado em código de maquina de um processador virtual chamado de Java Virtual Machine (JVM), possibilitando ser executado em qualquer plataforma desde que esteja instalada uma JVM, sendo assim disponibiliza ao usuário total liberdade para a escolha de uma plataforma que melhor se adéqüe as suas necessidades, garantindo maior portabilidade aos programas Java. 2 C#

A linguagem C#, produzida pela Microsoft, tem como grande desvantagem junto a seus concorrentes o fato de ser suportada apenas pela plataforma.net Framework, porém uma grande vantagem dessa tecnologia é o recurso de ambiente Windows para aplicações desktop, antes necessária a utilização de componentes, na linguagem C# passa a serem componentes nativos, tornando possível total desenvolvimento em ambiente Windows, sem a necessidade de utilização de outros componentes. Entretanto uma novidade para os desenvolvedores em C#, o projeto Mono 1.0, desenvolvida pela Novell, destinada aos adeptos da comunidade Open Source, o projeto Mono é um projeto de implementação livre de uma plataforma de desenvolvimento baseada na plataforma.net framework, além de incluir também uma integração com a maquina virtual IKVM.NET, uma JVM livre implementada em.net Framework facilitando a interação do Mono (.NET) com Java. Princípios de Orientação a Objeto: Tanto Java como C# são linguagens orientada a objetos, mostraremos a seguir exemplos de códigos de ambas. 1 Pacotes: Conjunto de classes. 1.1 Java package com.horstmann.bigjava; Na linguagem Java, cada pacote representa uma pasta. 2.1 C# namespace Poco Diferentemente da linguagem Java, em C#, um pacote não está relacionado com nenhuma pasta sendo possível ter uma pasta com um nome e dentro dela, pacotes com nomes distintos. 2- Importação de Classes (Encapsulamento): Encapsular dados e objetos. 1.2 - Java import Java.text.DecimalFormat; import Java.text.SimpleDateFormat; Em Java a importação de classes é feita através da instrução import. 2.2 C# using System; using System.Collection.Generic; using System.Text;

Na linguagem C#, as classes são importadas através da instrução using localizadas antes da declaração dos pacotes (namespace). 3 Declaração de classes Uma classe representa um tipo de dado. 3.1 - Java public class CalculaSalario{ Em Java, um arquivo pode ter varias classes, mas apenas uma delas pode ser publica, as demais terão acesso livre a todas as classes do mesmo pacote. 3.2 C# public class Cliente { Em C#, uma classe pode ser declarada como partial class ( classe parcial), podendo ser visualizada como uma classe que possui sua implementação distribuída em mais de um arquivo. 4 Atributo e propriedades Um Atributo é a característica de um determinado objeto. Uma propriedade é uma característica de um objeto a qual pode ser acessada externamente por outra classe ou objeto. 4.1 - Java private int matricula; private String nome; private String endereco; private String bairro; private String cep; private Calendar nascimento; private double salario; private Cargo cargo; private Cidade cidade; public String getbairro() { return bairro; public void setbairro(string bairro) { this.bairro = bairro; Na linguagem Java um atributo é declarado quando possui métodos públicos definidos para ele, através da dos métodos get e set.

4.2 C# private long _id; public long id { get { return _id; set { +id = value; Em C#, os valores são obtidos e atribuídos através do operador de igualdade (=). 4 Construtores Quando um objeto de uma classe é criado, seus membros podem ser inicializados através de um método construtor. Tais métodos, quando definidos, devem possuir o mesmo nome da classe. Tanto em C# quanto em Java, a implementação de construtores é feita através da função this. 4.1 Java public cliente (long id, String nome. Calendar nascimento, double renda) { this.id = id; this.nome = nome; this. nascimento = nascimento; this.renda = renda; 4.2 C# public cliente (long id, String nome. DateTime nascimento, double renda) { this.id = id; this.nome = nome; this. nascimento = nascimento; this.renda = renda; Ferramentas de Desenvolvimento 1 - C# Por ser uma linguagem desenvolvida pela Microsoft, C# tem como principal ferramenta para desenvolvimento o Microsoft Visual Studio, portanto este artigo irá falar um pouco sobre mais esse produto da família Bill Gates. Visual Studio Desenvolvido pela Microsoft desde 1.997, o Visual Studio tem como principal objetivo fornecer ambiente de desenvolvimento para diversas linguagens, sendo que, com enfoque maior nas linguagens criadas e utilizadas pela própria Microsoft. Não é segredo para ninguém que a Microsoft sabe utilizar muito bem em seus produtos o conceito de usabilidade e com o Visual Studio não foi diferente. Além disso conta ainda com um diferencial mercadológico, já que, a maioria dos desenvolvedores já tem certa familiaridade com a interface amigável proposta pela Microsoft desde o sistema operacional Windows e o pacote Office. Acompanhando a tendência de mercado a Microsoft contratou alguns dos desenvolvedores que criaram o Delphi (linguagem que cresceu muito por proporcionar

produtividade elevada) para aprimorar o C# bem como seu ambiente de desenvolvimento Visual Studio. O Visual Studio possui versões Professional e Express, sendo esse último Free, porém com limitações de recursos. 2 Java Diferentemente de C#, a linguagem Java possui diversas ferramentas para desenvolvimento, dentre elas a mais famosa entre os desenvolvedores está o NetBeans, ferramenta escolhida como tema para este artigo. NetBeans Projeto iniciado em 1996 por dois estudantes tchecos com o nome Xelfi, em alusão ao Delphi que, se destacava como ferramenta de desenvolvimento por proporcionar facilidades ao desenvolvedor. Em 1999, a SUN Microsystems após desistir de sua IDE Java Workshop, adquiriu o projeto que agora já contava com o nome de NetBeans DeveloperX2, incorporando-o a sua linha de softwares. Em 200 a SUN abriu o código fonte do NetBens tornando-o uma plataforma Open Souce, mas apesar disso a distribuição da ferramenta é realizada sob as condições da SPL (Sun Public License), uma variação da MPL (Mozilla Public License), esta licença tem como objetivo garantir a redistribuição de conhecimento à comunidade de desenvolvedores quando novas funcionalidades forem incorporadas à ferramenta. Como o NetBeans é escrito em Java, é independente de plataforma, funciona em qualquer sistema operacional que suporte a (JVM) e também dá suporte a outras linguagens como o C, C++, Ruby, PHP, Html, XML. Para finalizar esse tópico, vale apena frisar que tanto o Visual Studio como o NetBeans são ferramentas poderosas que abrangem recursos como facilitadores de conexão a Banco de Dados, UML das classes, Framwork de persistencia de dados que realizam Mapeamento de objeto relacional, Auto-Completar, Gerador de documentação através do código fonte. Tendência de Mercado Segundo pesquisa realizada pelo site WWW.TIOBE.COM, atualmente a linguagem Java mantém-se em primeiro lugar como linguagem de desenvolvimento mais utilizada, tendo a linguagem C# em Sétimo lugar. Porém, de acordo com a pesquisa realizada, devemos observar que a linguagem C# segue em constante crescimento, como mostra o gráfico de crescimento abaixo:

Referencias Bibliograficas Horstmann Cay, Conceitos de Computaç!ao Java, 5ª edição http://www.java.com/pt_br/about/ http://www.linhadecodigo.com.br/artigo.aspx?id=1620 http://msdn.microsoft.com/pt-br/library/z1zx9t92.aspx