Top Banner
Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM
40

Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Dec 02, 2018

Download

Documents

lythien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar)

Diego Padilha RubertFACOM

Page 2: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 2/40

Por quê?

● O aprendizado em Algoritmos e Programação visa lógica de programação e estruturas de dados

● No mercado de TI diversas linguagens são utilizadas

● Conhecendo uma linguagem, é fácil aprender outras

● Algumas você pode aprender na FACOM

Page 3: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 3/40

Antes de começar...

Qual a melhor linguagem de programação?

Page 4: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 4/40

Antes de começar...

Diferentes linguagens para diferentes propósitos

Page 5: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 5/40

Antes de começar...

● Veremos linguagens:

– Compiladas

– Compiladas para uma VM

– Interpretadas

Page 6: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 6/40

C

● Popular em sistemas operacionais e aplicações embarcadas

● Muito utilizada em “programação científica”

● Boa base para programação

● Disciplinas: Algoritmos de Programação I e II *

Page 7: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 7/40

C++

● Comum em muitos aplicativos do Linux (Firefox) e Jogos

● Não inclui bibliotecas como rede e interface gráfica

● Também é utilizada em “programação científica”

● Como C, porém orientada a objetos e mais flexível

● Disciplina: Estruturas de Dados e Programação *

● Referência: cppreference.com

Page 8: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 8/40

Java

● Linguagem OO multiplataforma (JVM)

● Sintaxe semelhante ao C/C++

● Inclui bibliotecas para interface, rede, banco de dados...

● Utilizada em aplicações desktop, web (jsf) e móveis!

Page 9: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 9/40

Java

● Possui frameworks para web (VRaptor), persistência (Hibernate), testes (JUnit), ...

● Disciplinas: Linguagem de Programação OO Estruturas de Dados e Programação OO

Programação para a Web Algoritmos e Programação I e II *

Page 10: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 10/40

C#

● Utilizada em aplicativos para Windows e Web (.NET)

● Sintaxe muito semelhante ao Java

● Framework com ferramentas muito poderosas e grande quantidade de bibliotecas nativas

● Principal ferramenta de desenvolvimento (Visual Studio) pode ser obtida pelos estudantes da FACOM através do convênio com a Microsoft (DreamSpark)

Page 11: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 11/40

C#

● Por onde começar: - MSDN - Rede do desenvolvedor da Microsoft: fóruns, tutoriais, etc. - C# à partir do Java

Page 12: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 12/40

Objective-C

● Linguagem OO de propósito geral para OS X e iOS

● Superconjunto da linguagem C, orientada à objetos

Page 13: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 13/40

Objective-C

● Por onde começar:

– Necessita um Mac com Xcode, ambiente completo para código, interface, testes...

– Centro de desenvolvedores Apple (em inglês) developer.apple.com

Page 14: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 14/40

PHP

● Muito popular entre desenvolvedores web

● Para desenvolvimento de sistemas e geração de páginas dinâmicas (é executada no servidor web)

● Sintaxe semelhanteao C/C++

● Tipagem dinâmica

Page 15: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 15/40

PHP

● Pode ser utilizado com orientação à objetos

● Possui frameworks robustos: Zend, CakePHP, Symfony

● Utilizado pelo Wordpress, Facebook e 200 milhões+ de sites

● Disciplina: Programação para a Web

● Por onde começar:

– Instale um servidor web apache com php

– http://php.net/manual/pt_BR/getting-started.php

Page 16: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 16/40

JavaScript

● Não tem relação com Java, exceto pela sintaxe

● Linguagem de scripts para navegadores *

● Suporta orientação à objetos

● Tipagem dinâmica

● Páginas dinâmicas semrecarregar e AJAX (jQuery)

Page 17: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 17/40

JavaScript

● Disciplina: Programação para a Web

● Por onde começar:

– developer.mozilla.org/pt-BR/learn/javascript(também HTML e CSS)

– w3schools.com (também HTML, CSS, PHP, SQL e Jquery)

– Jquery:codecademy.com/pt-BR/courses/web-beginner-pt-BR-h1pzb(também HTML, Ruby e Python)

Page 18: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 18/40

JavaScript

Page 19: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 19/40

JavaScript

Page 20: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 20/40

Assembly

● Linguagem de baixo nível, determina diretamente as instruções de máquina

● Situações onde é preciso um binário enxuto, mas não estão disponíveis bibliotecas compartilhadas

● Boot de sistemas operacionais

● Firmwares e sensores

● Drivers de dispositivos

Page 21: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 21/40

Assembly

● Análise de binários (engenharia reversa) e vulnerabilidades

● Diversas outrassituações específicas

● Disciplina: Linguagemde Montagem

Page 22: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 22/40

Python

● Linguagem fácil para iniciantes:

– Legibilidade

– Sintaxe compacta● Tipagem dinâmica

● Conjunto extenso de bibliotecas padrão

● Para scripts, aplicações dektop, web, móveis

● Utilizado por: Instagram, Google, Yahoo!, NASA...

Page 23: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 23/40

Python

Page 24: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 24/40

Python

● Framework web Django (Instagram, Mozilla, OpenStack)

● Plone CMS (governo federal,caixa, science.nasa.gov,fbi.gov, ...)

Page 25: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 25/40

Python

● Aplicações:

– Blender 3D

– OpenStack● Scripts

Page 26: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 26/40

Python

● Por onde começar:

– Instale o python com console:python.org/download

– Experimente no console

– codecademy.com/pt-BR/tracks/python

– codecademy.com/pt-BR/courses/lang/python

Page 27: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 27/40

Python

● Por onde começar:

– pythontutor.com

Page 28: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 28/40

Python

● Por onde começar:

– Luiz Eduardo Borges: Python para desenvolvedoresark4n.wordpress.com/python

– PET-Tele/Univ. Fed. Fluminense → Apostila de Pythonwww.telecom.uff.br/pet/petws/?pagina=downloads/apostilas

Page 29: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 29/40

Ruby

● Linguagem amigável para iniciantes

● Bastante utilizada em scriptse sites (Ruby on Rails)

● Tipagem dinâmica

● Orientada a objetos(TUDO é um objeto,como em Python)

Page 30: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 30/40

Ruby

Page 31: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 31/40

Ruby

● Ruby on Rails:

– Framework para aplicações web

– Twitter, Scribd, GitHub, Portal Educação, …● Por onde começar:

– Baixe em rubyinstaller.org (e experimente no irb)

– codecademy.com/pt-BR/tracks/ruby

– codecademy.com/pt-BR/courses/lang/ruby

Page 32: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 32/40

Bash

● Um dos dialetos do shell (sh)

● Muito utilizada em estações/servidores Linux

● Linguagem de scripts (sistemas UNIX):

– Backup

– Simplificar comandos

– Automatização de tarefas em geral

Page 33: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 33/40

Bash

● Possui:

– Estruturas condicionais (if, elif, else, case)

– Estruturas de repetição (for, while, until)

– Funções

– Vetores

– Operações aritméticas

– Substituição em strings

Page 34: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 34/40

Bash

Page 35: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 35/40

Bash

Page 36: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 36/40

Bash

● Dialog, GDialog, Kdialog, Zenity, …

kdialog --title "Meu script" --msgbox "Essa é uma mensagem de teste, ok?"

Page 37: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 37/40

Bash

● Por onde começar:

– Aprender a utilizar comandos desejados

– Introdução ao Shell Script (Aurélio Marinho Jargas)

– aurelio.net/shell

– Livro “Shell Script Profissional”● Referências úteis:

– Canivete Suíço do Shell (Bash)

Page 38: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 38/40

Sites interessantes

● codecademy.com/learn

Page 39: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 39/40

Sites interessantes

● pythontutor.com

Page 40: Diego Padilha Rubert FACOMdiego/arquivos/Linguagens de Programação.pdf · Conhecendo uma linguagem, é fácil aprender outras ... Java Possui frameworks para web (VRaptor), persistência

Diego Rubert Linguagens de Programação 40/40

Fim

Perguntas?