Linguagem de marcação - Uma breve introdução

A linguagem de marcação (markup language) é um conjunto de códigos para editar dados como textos e imagens. Elas foram desenvolvidas para facilitar a estruturação de códigos para internet.

GML e o SGML


        A IBM (International Business Machines) desenvolveu a linguagem GML, que com suas "tags" dividiam o código em capítulos, seções, tabelas, listas, parágrafos e outras subdivisões. Essas "tags" ( < tag exeplo > ) possuem pré-formatações, o que facilita uma programação mais ágil com diversos aspectos visuais. Se procurar "GML Starter Set" encontrará o conjunto de tags GML da IBM (em inglês). 

       O SGML foi, de certa forma, uma melhora do GML. A partir da nova versão os documentos feitos com suas referências poderiam ser lidos em qualquer compilador SGML, o que deixou ainda mais versátil.  Assim, o SGML tornou-se referencia na criação de linguagens de marcação.






                                             XML

       Extensible Markup Language (XML) foi criada pela 3W ( Consórcio World Wide Web) com base no SGML. Seu objetivo focava na leitura do código tanto pela máquina quanto pelo programador, além da simplicidade, generalidade e usabilidade em toda a internet. Programas como .NET Framework e iWork da Microsoft e Apple, respectivamente, utilizam arquivos em XML. As recomendações mais recentes para esta linguagem é o XML Schema.






OWL

       Web Ontology Language (OWL)  é uma linguagem criada para o processamento de dados pela máquina e não só exibir na tela. Baseada também em XML, a OWL é uma recomendação da da W3, portanto um padrão. Sua linguagem é caracterizada pela semantica formal , recomendada para objetos chamados Frameworks de Recursos Descritivos (RDF) desde 2004 (até então usavam XML).





Referencias
Wikipedia
WhatIs
SearchSOA
W3

Uma introdução aos paradigmas de programação

Mais não é melhor (ou pior) que menos, apenas diferente - O paradoxo do paradigma

Uma das habilidades mais importantes e notáveis na ciência da computação é a capacidade não apenas de resolver um problema, mas de resolvê-lo de forma inteligente. Para isso é preciso conhecer as melhores práticas e ter em mãos as melhores ferramentas para que dessa forma uma solução eficaz seja desenvolvida. Os paradigmas de programação estão diretamente relacionados a essa eficácia. Cada paradigma oferece uma metodologia diferente juntamente com uma série de conceitos para melhor resolver um tipo de problema. Assim, saber quando e como usá-los se torna algo essencial.

Clique para aumentar
Organização Linguagem X Paradigma X Conceito

Os paradigmas de programação são compostos por conceitos matemáticos e/ou por uma coleção de princípios coerentes. Eles servem de base para construção da estrutura e dos elementos dos programas de computador, tanto que a capacidade e estilo das várias linguagens são definidas pelos paradigmas que por elas são suportados. Algumas linguagens são desenvolvidas para seguir apenas um paradigma, já outras utilizam-se de vários. São as chamadas linguagens de programação multi-paradigma (Scala, D, Ada, Oz). Os paradigmas de programação mais conhecidos são: Imperativo, Declarativo, Funcional, Orientado a Objetos, Procedural e Lógico.
   
Olá mundo!
Hello World em Haskell (Linguagem Funcional)

As linguagens comerciais atuais geralmente possuem apenas um ou dois paradigmas diferentes, o que é uma pena, já que existem problemas que poderiam ser resolvidos de forma mais clara se conceitos de outros paradigmas fossem implementados. Idealmente, uma linguagem deveria suportar várias formas diferentes de se atacar um problema, para que dessa forma ficasse a cargo do programador escolher a forma mais eficaz, sem ficar preso a limitações conceituais.

Assim concluímos o primeiro contato com os paradigmas e seus conceitos, descobrimos o que significa um paradigma, sua importância, e como eles influenciam na construção das linguagens. Futuramente, os principais paradigmas serão tratados individualmente em posts, então não se esqueça de seguir o blog para receber todo o conteúdo aqui postado, e também compartilhe sua opinião nos comentários.

Referências:

  • Programming Paradigms for Dummies: What Every Programmer Should Know - Peter Von Roy


Evolução da Web

Navegamos na internet e muitas vezes não temos ideia da estrutura e tecnologia por trás dela. Foi-se o tempo das conexões discadas. O acesso à rede foi popularizado, e a quantidade de conteúdo disponível online é imensa. Vivemos no tempo do 4K, 3D e da computação em nuvem.
Nem sempre foi assim. No começo, tanto pela conexão limitada quanto pelo pequeno número de usuários, os sites e seu conteúdo eram bem simples!
O primeiro site da web foi criado por Tim Berners Lee, conhecido como pai da internet. Tinha como objetivo compartilhar textos científicos do CERN. Veja como ele era simples!

Web 1.0 é um termo que se refere a web em seus primeiros estágios. No começo, não havia muita interação entre os usuários e estes produziam pouco conteúdo. Comentários, muitas vezes, não eram visualizados no final de cada página. Devido a limitação de banda, eles eram postos em uma seção chamada guestbook. Com a evolução das conexões, houve um aumento na taxa de download e upload e consequentemente, na produção de conteúdo.
Web 2.0 é um termo controverso. Alguns afirmam que sua definição é muito vaga e ampla. Pensem na Web 2.0 como na intensificação de algumas características já presentes no começo da internet. São elas a colaboração e a interação entre usuários. Mesmo que eles não criem conteúdo, eles adicionam informações. Há uma explosão no uso de redes sociais, e de sites como YouTube e Blogger.

Um pouco de nostalgia:

A Web 3.0 introduz o conceito de semântica, onde não só a estrutura de um site é relevante, mas também o significado de cada elemento.
Por exemplo, se você pesquisar em um buscador "livros de Paulo Coelho", como ele entregará resultados precisos de um livro desse autor? Simples: muitos dos elementos nas páginas são classificados com um tipo de marcador. Ele indica que "Paulo Coelho" se refere a um autor. Isso é semântica!
Exemplo genérico de como os dados ganham significado:
 
Web 4.0 é uma previsão para o futuro. Ela combina os conceitos de Inteligência Artificial e Semântica. A interpretação de dados ganha ainda mais importância. Discute-se também a invasão de privacidade e como será feita a análise de dados pelos sistemas automáticos.

Essa foi uma introdução a evolução da Web. Em posts futuros, aprofundaremos em alguns pontos aqui abordados.

Referências:

Apresentação


Bem-vindos ao primeiro post do “We Can't See Sharp”. Eis os conteúdos que aqui abordaremos:
  • Codificação e Paradigmas de Linguagens de Programação; 
  • Evolução da Web (1.0 a 4.0): Web Social, Semântica [Ontologias, OWL, XML], Mobilidade, Localização e Conectividade;
Esperamos que a criação dos blogs permita um ambiente de aprendizagem e interação entre os graduandos. Colaborem, deem sua opinião, sugestão ou crítica!