Buscar

Apresentação Critérios de avaliação de linguagem

Prévia do material em texto

Paradigmas de Programação
Critérios de Seleção de Linguagens para Aplicativo Multiplataforma de Mensagens Instantâneas
Concorrente do Whatsapp 
 
Alunos:
Ana Juriti
Irismar Neris
Vinícius Marques
Agenda
Motivação
Requisitos
Linguagens 
Critérios Avaliados
Critérios de Seleção
Pesos
Classificação
Avaliação Final
Motivação 
Com grande diversidade de linguagens e ferramentas nos últimos tempos, uma atraente evolução tecnológica, e uma expansão da computação móvel crescente, a exigência de qualidade é algo imprescindível na escolha de uma linguagem de programação, podendo muitas vezes ser uma tarefa árdua.
 
Muitas vezes a importância de uma linguagem adequada ao propósito é ignorada, fazendo com que as escolhas sejam baseadas nas preferências dos desenvolvedores/equipe ou políticas da empresa, sem um critério realmente válido durante a etapa de gestão do projeto.
Motivação 
Visando esses quesitos e motivados para a escolha satisfatória para o desenvolvimento de um concorrente do WhatsApp Messenger, aplicativo multiplataforma de mensagens instantâneas e chamadas de voz para smartphones.
Avaliamos 5 critérios para 5 linguagens escolhidas pela equipe, justificando seus prós e contras. 
Requisitos
O sistema deve ser capaz de lidar com várias tecnologias.
Podendo ser utilizado em diversos idiomas e Sistemas Operacionais.
Aferindo que a segurança está acima da velocidade, mesmo sabendo que isso não significa que rapidez está fora de questão.
O sistema deve ocupar pouca memória no dispositivo.
Linguagens
Linguagens
Java
JavaScript
Python
Ruby
HTML5
Critérios Avaliados
Confiabilidade
Custo
Legibilidade
Portabilidade
Simplicidade
Resumidamente, os critérios servem para determinar qual o impacto que a linguagem escolhida trará no projeto e desenvolvimento de um software.
Critérios de Seleção: Java
Java é a linguagem de programação mais famosa do mundo. Atualmente, encontramos aplicativos Java rodando em computadores, smartphones, tablets, videogames e até mesmo em cartões de crédito e sondas espaciais da NASA.
Confiabilidade: Permite tratar inúmeras exceções sem a preocupação da aplicação ser finalizada inesperadamente, tornando-a confiável, pois a própria linguagem efetua o tratamento, sendo mais simples ainda a manutenção desses códigos. 
Custo: Java só admite programação OO, exigindo que todas as referências a vetores sejam checadas para garantir que os índices estejam dentro dos limites, mas isso aumenta o custo de execução.
Legibilidade: O Java possui recursos que auxiliam na leitura do código, como um sistema de documentação, o JavaDoc e a padronização de nomes de atributos, métodos e classes, facilitando bastante o entendimento dos seus códigos.
Portabilidade: Os programas desenvolvidos nessa linguagem podem ser executados, em posse da respectiva MV Java, tendo o seu executável interpretado, bastando compilar a aplicação uma vez para que possa ser executada em qualquer plataforma. 
Simplicidade: A linguagem java possui recursos que auxiliam na clareza do código. Java contém instruções de controle necessárias para controlar o fluxo do sistema, realizando repetições simples, condicionais e desvio de fluxo.
Critérios de Seleção: JavaScript
JavaScript é uma linguagem de programação usada para fazer efeitos web interativos, construir ricas interfaces de usuário puxando os dados API e interagindo com uma grande variedade de sistemas diferentes. 
Confiabilidade: O código de Javascript é dividido em camadas, o que facilita a construção e manutenção de um sistema feito nessa linguagem. A página se torna bem estruturada, com vários elementos visuais e não visuais como tabelas bem formatadas.
Custo: É bastante fácil começar a aprender Javascript. Um navegador e o console Web é tudo que é necessário para começar a desenvolver nessa linguagem, apesar de que outras ferramentas serão necessárias, para salvar o código.
Legibilidade: Javascript é relativamente fácil de se ler e compreender. A sua semelhança com outras linguagens web, como HTML e CSS, facilita para quem já tem conhecimento em desenvolvimento Web.
Portabilidade: Embora o JavaScript tenha sido uma linguagem focada na World Wide Web, tornando as páginas dinâmicas, ela não se limita ao ambiente, seja ele um script de um navegador ou lado do servidor.
Simplicidade: Bastante comum e popular entre as linguagens de programação necessárias para o desenvolvimento de aplicativos, sendo utilizada extensivamente para navegação web, Javascript é benéfico porque pode ser usado em uma variedade de plataformas sem muita dificuldade. Para desenvolvedores iniciantes, é relativamente simples para dominar.
Critérios de Seleção: Python
Python é uma linguagem de programação conhecida por sua clareza e legibilidade. Usada para programar web e desktop.
Confiabilidade: Possui mecanismo para tratamento de exceções. Não permite aritmética de ponteiros. Apesar de dinamicamente tipada, é fortemente tipada (não permite operações entre tipos incompatíveis) e possui coletor de lixo da memória.
Custo: O custo de treinamento e o custo de escrita do código é muito baixo. É multiparadigma: possui suporte a paradigma funcional, procedural e OO, permitindo várias maneiras diferentes de se fazer uma única programação. Possibilita criação de código com baixa legibilidade (a partir da mistura de paradigmas).
Legibilidade: Python é uma linguagem famosa por ser de simples leitura. Mesmo quem não tem conhecimento na linguagem consegue entender um programa com certa facilidade.
Portabilidade: É possível programar e compilar Python com facilidade em diferentes sistemas e todas as versões são livres. É open source e permite implementações em outras plataformas (Ex.: Jython, interpretador Python em Java. Gera bytecodes compatíveis com a JVM).
Simplicidade: Considerado por ser uma programação de alto nível, interpretada, imperativa e orientada a objetos, por tanto python referir-se a uma linguagem que requer menos código para concluir o projeto ou quando comparado a outros padrões de programação tipo: java ou c++. Assim quanto menos se escreve menores são a chances de erros.
Critérios de Seleção: Ruby
Ruby é uma linguagem cheia de recursos que permite o desenvolvimento web mais robusto, prática. Linguagem que equilibra a programação funcional com a programação imperativa. 
Confiabilidade: Ruby é uma linguagem que realiza a verificação de tipos de variáveis e tem suporte ao tratamento de exceções (uma forma eficiente e "limpa" de tratar erros e outras situações previstas e imprevistas em um programa). 
Custo: Nos últimos tempos, Ruby tem se tornado cada vez mais popular e seus admiradores apostam na facilidade de aprendizado. Estrutura de código aberto, celebrada por sua rápida produção de sistemas e reutilização de módulos.
Legibilidade: Ruby é relativamente fácil de ser lida, mas quem não tem conhecimento em uma linguagem simples, como Python, se torna incomum. Quanto aos tipos, o Ruby mostra-se uma linguagem bastante criteriosa ao ponto de ter, por exemplo, duas classes para representar o que nas outras linguagens seria o tipo Boolean, substituído pela TrueClass e pela FalseClass. 
Portabilidade: Ruby é uma linguagem multiplataforma, interpretada, com suporte para vários sistemas lhe garantindo uma alta portabilidade. Pode ser utilizada nos principais sistemas operacionais. 
Simplicidade: Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade e produtividade. Sua sintaxe é extremamente elegante, o que facilita muito a capacidade de escrita de códigos. Muitas linguagens não tratam números e outros tipos primitivos como objetos, mas no Ruby isso é diferente, nela tudo é objeto, inclusive as classes. Tipos primitivos possuem métodos e podem ter atributos. 
Critérios de Seleção: HTML5
Normalmente utilizado para a criação de websites, a últimaversão do HTML permite a criação de aplicativos web para dispositivos móveis nativamente. 
Confiabilidade: Cada navegador lida com HTML do seu jeito, aumentando a possibilidade de alguns recursos não funcionarem corretamente em todos os dispositivos, uma vez que nem todos os browsers possuem nativamente a possibilidade de lidarem com padrões como os de armazenamento local.
Custo: Desde sua atualização, uma característica forte da versão HTML5 está ligada diretamente às necessidades de suporte, com conteúdos multimídia, as novas funcionalidades de semânticas e acessibilidade.
Legibilidade: Sua sintaxe é bastante simples, é baseada em tags, que representam os diversos elementos de uma página, como imagens e links.
Portabilidade: Sem a necessidade de plugins, é possível criar páginas ricas em conteúdo e funções para qualquer aparelho do mercado, os principais navegadores do mercado já são compatíveis com o formato padrão e não exige a instalação de nenhuma ferramenta. 
Simplicidade: Uma das linguagem que precisamente nos permitem criar apps multiplataforma que são acessíveis a partir de qualquer dispositivo com um desenvolvimento único, páginas que podem receber maior edição, com sombras e diversos outros que aumentam as possibilidade de criação de sites. 
Pesos
Ótimo
★★★★★
Bom
★★★★
Regular
★★★
Ruim
★★
Péssimo
★
Tabela 1 - Pesos dos Critérios 
Classificação 
Tabela 2 - Classificação dos Critérios X Linguagens
Java
JavaScript
Python
Ruby
HTML5
Confiabilidade
★★★★★
★★★★★
★★★★
★★★★
★★
Custo
★★★
★★★★
★★★★★
★★★★★
★★
Legibilidade
★★★★★
★★★
★★★★★
★★★
★★★★
Portabilidade
★★★★★
★★★★★
★★★★
★★★★
★★★★★
Simplicidade
★★★★★
★★★
★★★★
★★★★
★★★★
TOTAL
23
20
22
20
17
Avaliação Final: A escolhida!
A equipe realizou esta avaliação apresentada, associando as análises dos critérios selecionados, para escolha de uma linguagem de programação adequada para o desenvolvimento de software para smartphones.
Chegando a conclusão que a linguagem de programação interpretada, orientada a objetos e desenvolvida na década de 90, JAVA possui mais vantagens para a solução do problema proposto: Desenvolvimento de um sistema concorrente com o Whatsapp, que utiliza serviços como troca de mensagens de texto instantaneamente, além de vídeos, fotos e áudios através de uma conexão a internet. 
Avaliação Final: Java
WINNER!!!

Continue navegando