Antes de mais nada, é preciso entender alguns conceitos, para os não-programadores. Na ciência da computação, existem  formas diferentes de se resolver o mesmo problema. As linguagens de programação como C++, Java e C#  são compostas por instruções imperativas, ou seja, o programador diz, passo a passo e em seqüência, como o computador deve realizar alguma tarefa. Por exemplo, somar dois números, deve-se dizer qual o formato de entrada, como realizar a soma e qual deve ser a saída.

Isso tem sido útil para resolver muitos problemas do dia a dia e a maioria dos softwares que usamos hoje está construída em cima desse fundamento. Mas ele não serve para tudo. A web, por exemplo, está construída em cima de linguagens declarativas. Que tal um exemplo para facilitar?

Sabe o HTML bom e velho de guerra? Ele é uma linguagem de marcação que determina o conteúdo de uma página e a forma de exibir. Um texto em negrito ou itálico, eu precisei declarar isso usando tags. Eu não disse para o computador como colocar em negrito ou itálico. Isso ficou sob responsabilidade do navegador do usuário, que pegou o texto, analizou e internamente, de forma imperativa, disse que todo texto entre <strong> e </strong> deve chamar o mapa de fontes negrito do sistema operacional. Percebeu a diferença?

Uma linguagem imperativa descreve-se como deve ser feito, na declarativa, o que precisa ser feito.

O problema hoje em dia é que cada empresa possui uma série de regras de negócio. O software precisa ser criado e organizados de forma imperativa, aumentando os custos, o risco, a complexidade e o tempo de produção. É por isso que empresas como a SAP, Oracle, IBM, Microsoft apresentam soluções empacotadas, mas que nunca satisfazem um cliente. Já reparou que NENHUM relatório é igual o outro, as vezes dentro de um mesmo departamento?

Primeiro, é preciso melhorar a qualidade da informação armazenada. Bases de dados relacionais são apenas repositórios que não descrevem nada além do tipo inteiro, texto, boleano, etc. O XML trouxe melhorias nesse aspecto, mas as regras de negócio, o "o que" e o "como" uma empresa funciona, ainda é escrito de forma imperativa. E a Microsoft quer mudar isso, num projeto que deve durar entre 5 e 8 anos.

Trocando em miúdos eles querem criar algo onde as regras de desconto nas compras de uma rede de varejo sejam simples de ser criadas e compreendidas, com 10% do código usado hoje em dia. Imagine algo simples como o XAML, possivelmente com ferramentas visuais acopladas onde escreve-se pouquíssimo código. Não se preocupe, programadores de sistema sempre serão necessários porque sempre haverá alguma demanda que necessita de customização. Vide o SAP, que NUNCA antende empresa alguma 100% e ela é quem adapta a própria cultura aos módulos adotados.

Fonte: Infoworld

Notícias relacionadas

Rocky's picture

Boa iniciativa, mas vai levar uns 10 anos até ser adota e tornar-se relevante.

___________________

Muita Pimenta para sua vida!

DenisKL's picture

Pelo relato, nota-se que ainda não há, ao menos, uma estratégia e sim uma idéia. Algo do tipo "precisamos acabar com motores a combustão, eles poluem demais"(parabéns, ganhou o Nobel da Paz). Necessidades existem, soluções é que são aguardadas.

Claro que pode ser uma jogada, não revelar a forma como isso vai ser feito pra não aparecer um engraçadinho criar algo "nas coxas" rapidinho e registrar/patentear a idéia.

Mas é assim mesmo que funciona. Lembro de ver em palestras da MS de 6 anos atrás coisas que funcionam hoje e que na época achávamos muito improvável que se torna-se realidade.

Matando o tempo antes que ele me mate http://www.epassos.com

ddd14r's picture

Anos atrás disseram que o XML seria o novo padrão em detrimento ao HTML, mas isso não foi implementado. O XML em âmbito geral não passa de SOAP e alguns arquivos de configuração. Eu concordo com a iniciativa, mas isso não teria de ser analisado também sobre a ótica de paradigmas de linguagem? Significaria, trocando em miúdos, um abandono da OO?

Em um momento onde se fala muito em Orientação a Aspectos, muita coisa vem emergindo na onda, novas idéias tentando estabelecer padrão. Mesmo o MVC não conseguiu eliminar a prática do POG, e acho que tão cedo não será possível, justamente pelas necessidades diversificas em cada projeto.

É sempre importante lembrar que a programação dita "modular" nunca encaixou 100% com as necessidades do cliente, conforme você lembrou muito bem. É muito difícil conciliar as diferentes regras, idiomas, regiões, culturas, em uma coisa só. Mesmo as metodologias ágeis de desenvolvimento me parecem não ter emplacado muito bem como "espectálo do crescimento", a exemplo do XP e Scrum. A exemplo do que ocorre lá fora, acho que a indústria do software ruma lentamente para o Cleanroom.

Nos resta agora esperar pelas novidades da M$ e pelo resto todo que há de vir... Parabéns pelo texto!

Ricardo Bicalho's picture

Não lembro ter lido que o XML iria substituir o HTML, mas extender o mesmo. Inclusive, há vários sistemas de publicação que usam XML e XSLT para gerar HTML.

A orientação a objetos não vai ser abandonada, porque tudo será um objeto. Dê uma olhada no XAML, da MS. Quando você usa um botão, ele é um objeto, com herança comum aos botões, atributos, extensibilidade, etc.

Dê uma olhada em BPEL e imagine isso gerando código de verdade, a partir de modelos e uma sintaxe super simples.

ddd14r's picture

No princípio tinham pessoas que diziam que não existiriam mais bancos de dados, tudo seria XML. O XSLT não é uma forma de colocar estilos no XML? Bom, de qualquer forma o HTML segue aí... Eye-wink

Não conhecia esse XAML, ele seria classificado como VHLL? Parece bem interessante pela inovação.

sricanesh's picture

Antigamente se falava isso mesmo..era XML para lá, XML para cá, tanto que os javaeiros entraram de cabeça nisso e usam XML por tudo.

Cassio R Eskelsen

SuperEly's picture

A verdade é que nunca haverá uma tecnologia capaz de subjugar a POG.

gargaroots's picture

Huahuahuahuahuaha, a POG me salvou MUITAS vezes na faculdade. Hj em dia no trabalho nao preciso tanto...

Bons tempos aqueles... =)

"Nem todos que estão vagando estão perdidos"
J.R.R.Tolkien

TheDarkMaster's picture

POG é a quinta (e não documentada, por isso só descrevem quatro) força fundamental do universo hehe

serathiuk's picture

Se não me engano o XHTML é que tem o intuito de substituir o HTML e não o XML. O XML é para gerar linguagens de marcação, enquanto o XHTML é uma linguagem gerada através do XML.

Ricardo Serathiuk

pode ser bom.

mas como sou programador, por mim tanto faz.

se fizerem isso provavelmente qualquer MACACO vai achar que sabe programar..

e sim, eu SEMPRE sou agressivo.

Já tem muitos macacos fazendo programas no mercado, qual vai ser a diferença?

serathiuk's picture

Eu ia dizer isso agora, mas vi que você já tinha dito.

E ainda acho que essa tecnologia pode ajudar os macacos a fazer menos macacadas. Sticking out tongue

Ricardo Serathiuk

OMGWTFBBQ's picture

Existe até uma gíria para os macacos programadores...

serathiuk's picture

Existe uma música até para essa gíria. È só procurar no Youtube por 'Code Monkeys'.

Ricardo Serathiuk

Acho que a solução final mesmo seria a Inteligência Artificial(Redes Neuronais), uma IA poderia ser treinada para para gerir qualquer negócio.

Claro, até elas dominarem o mundo Smiling.

Paulim's picture

A informática ruma no sentido de simplificar mesmo as coisas.

E não só a parte operacional: vide as próprias linguagens de programação, que antes eram extremamente complexas, e agora temos linguagens mais simples e de fácil aprendizado (como python e ruby.

A tendência é essa mesmo. Até estranho que não tenhamos ferramentas menos técnicas para programação. Pelo jeito a Microsoft vai implementar a forma NNF de programar.

Pra quem não conhece, o modelo NNF é o mesmo dos assistentes de instalação, o famoso "next, next, finish".

------
Vaca amarela, pulou a janela.

serathiuk's picture

O Visual Studio pelo o pouco que conheço dele, para aplicações mais simples ele faz quase isso já. heeheh

Ricardo Serathiuk

SuperEly's picture

Este método há muito é deslumbrado pelo Delphi.

Nele, após entrevistar o cliente e obter as necessidades do Controle de Estoque solicitado, você deve abrir o Delphi e localizar naquelas abas um botão que tem uma figurinha que pareça com o que você quer. Após encontrar, clique nesse botão e... Pronto! O controle de estoque está cadastrando fazendo relatório, imprimindo, etc.

Mais informações aqui.

Sticking out tongue

ddd14r's picture

HAHAHAHAHA

Muito boa! Isso de drag'n'drop das IDEs vai minando o conhecimento do mundo. O Delphi é campeão, mas acho que o maior câncer chama-se Eclipse!

serathiuk's picture

huahuahuahu. boa.

Mas não entendi porque o carinha alí chamou o Eclipse de câncer.

Ricardo Serathiuk

ddd14r's picture

As IDEs limam muito o conhecimento sobre a linguagem, são uma faca de dois gumes: o melhor mesmo é dominar a linguagem para não ficar "viciado" numa IDE.

Chamar o Eclipse de câncer foi só sacanagem de programador que não gosta de Java... hehehe

serathiuk's picture

Entendi já. heheeh. Laughing out loud Realmente para quem está aprendendo IDE's são ruins, mas para quem trabalha com Programação é de grande ajuda.

Mas é que Eclipse é minha única IDE. Tanto para Java quanto para PHP.

Ricardo Serathiuk

shimatai's picture

E desde quando o Eclipse é drag 'n drop?

A única coisa que o Eclipse ajuda na programação é o autocomplete e a geração automática de trechos de código, tal como "Generate Getters and Setters" e gerar classes/JSP a partir de um template (ou não).

De drag 'n drop mesmo ele não tem nada. Quem tem (mais ou menos ainda) é o MyEclipse, que é um plug-in para o Eclipse.

--
"Uma pessoa inteligente resolve um problema, um sábio o previne." Albert Einstein

cafuin's picture

Ao contrário, o Eclipse só não faz a parte gráfica, não faz mesmo, o plugin que existe está abandonado, e sempre foi precário.

Mas o Eclipse faz autocomplete, syntax highlight. Pode Clicar e seguir para a declaração do código, fazer preview do comentário do código, debugar...

Nem dá pra listar tudo, porque pra tudo tem plugin. O Eclipse é um caminhão de pesado, tem muitos defeitos(instalação e controle de plugins, por exemplo. Mas é muito bom!

O Eclipse é tão bom que disfarça e ameniza muito a burocracia do Java.

Fabião's picture

A microsoft lançando o único e inédito Framework pra POG do mercado em breve.

Deve lançar tal idéia junto da suíte Office. Algo como "Microsoft Office DonkeyCode", ou algo assim.

Eu só quero ver, um ano depois do lançamento, a implementação genérica open source do recurso.

Petição para que a Microsoft deixe de fabricar o Windows

Fabio's BSOD Generator

serathiuk's picture

O nome do Open-Source pode ser 'Mono MuleCode'.

Ricardo Serathiuk

ddd14r's picture

Possivelmente ele funcione melhor no Wine.

cafuin's picture

Sempre esse ódio pelo Open source... tsc...

Essa história toda da MS está com muita cara de ser uma Domain Specific Language, que tanto tem se falado.

A MS parece estar fazendo uma um pouco mais genérica. O que é meio contraditório.

Enfim, MS requentando uma coisa que já existe e depois dizendo que ela inventou.

Daí vem os Fábios da vida dizendo que imitaram a pobre MS.

Fabião's picture

Eu disse isso?

Pode não ter inventado. Mas, ninguém vai ligar pra isso até que a microsoft faça. Feito isso, as alternativas livres pipocarão feito sarampo na cara de criança.

Vocês falam como se fosse um pecado a Microsoft usar conceitos existentes... não entendo.

Não é ódio pelo open source. Eu só não o amo apaixonadamente como alguns amam. Ai, enxergo os defeitos e tudo que acompanha um relacionamento sadio não baseado apenas nos aspectos carnais da coisa.

Petição para que a Microsoft deixe de fabricar o Windows

Fabio's BSOD Generator

cafuin's picture

"Pode não ter inventado. Mas, ninguém vai ligar pra isso até que a microsoft faça."

Tipo os produtos da Apache ? A MS criou o IIS depois, não vai crucificá-la igual ?

"Vocês falam como se fosse um pecado a Microsoft usar conceitos existentes... não entendo."

Ué, quem é que VIVE com essa ladainha que o software livre só imita. Aliás como.... esse seu comentário de agora. Smiling

"Eu só não o amo apaixonadamente como alguns amam."

Esse monte de insinuação é só "não amar apaixonadamente" ?

Não é mais fácil dizer que não gosta ? Pode não ser ódio, mas "só não o amo apaixonadamente", lamentável, hehe. Qual problema de dizer que não gosta ?

" Ai, enxergo os defeitos e tudo que acompanha um relacionamento sadio ..."

A Fabi tem razão, você sabe fazer as pessoas rirem mesmo. Smiling

Porque essa campanha toda ? Sö porque tem audiência, gosta de atenção, ou algum "freetard" te fez mal algum dia ? hahah

Fabião's picture

Cara, e se eu te dissesse que minha sacanagem foi com os NOMES das soluções livres, e não com as soluções livres em sí?

Sério. Nem pensei, no comentário inicial, em citar cópia de soluções livres. Pensei em "jeguePanel" para "exchange".

Mas, achei engraçado o fato de, o primeiro fato que lembrastes, foi meu 'ódio' pelo 'software livre', e uma insinuação de que eu estava criticando a cópia do SL dos produtos da microsoft. Ai resolví abraçar.

A microsoft 'copia' muita coisa, o open source 'copia' muita coisa, porque o mundo não pode ser feito de uma solução só para determinado produto. Inclusive teve um tópico aqui que discutia-se sobre tal possibilidade, e foi exatamente esta minha opinião sobre.

A insinuação 'só não amo apaixonadamente SL', foi pra você, por sinal. E foi brincadeira. E você sabe disso. Porque, se opõe ferrenhamente a qualquer insinuação de qualquer problema que eu critique no SL.

Problema de dizer que não gosto do SL? Seria mentira. Não gosto dos usuários que o defendem com unhas e dentes. Sinceramente.

E sim, isso é trauma. Vários 'freetards' em vários fóruns de informática, isso quando bem mais novo, tratavam os usuários iniciantes como lixo, tripudiando e maltratando. Eu, inclusive.

Assumo que 'fui abusado na infância' por freetards.

Logo, estes 'conceitos de comunidade' pra mim, são piada de mal gosto.

E a campanha é uma grande brincadeira. Se eu quisesse audiência, faria um blog e tiraria algum proveito destas coisas.

E escreva o que estou dizendo: Assim que a MS lançar tal recurso, conte dois meses, uma solução open source muito semelhante aparecerá.

Petição para que a Microsoft deixe de fabricar o Windows

Fabio's BSOD Generator

carloshp's picture

Existe uma razão de ordem prática que vai eventualmente nos empurrar todos para as linguagens declarativas: elas são melhores para desenvolver usando processamento paralelo, que é para onde a indústria de hardware está nos levando atualmente. Com as atuais linguagens, programas com multiplas threads ainda são um bicho de sete cabeças, já que temos que gerenciar tudo na unha. Numa linguagem declarativa, o runtime/framework/application server cuida de, sempre que possível, quebrar as tarefas em menores para nós. O Java 7 já deve vir com uma API suportando alguns mecanismos declarativos. Vamos ver como fica...

---
Tecnologia deve ser o meio, não o fim.

SuperEly's picture

Eu acho que o futuro da programação está no Assembly.

Não seria no Assembler?! hehe

Porque os mestres são raros, come Il miele dentro ia lionessa.

SuperEly's picture

Bom, "assembly" significa construir, juntar partes, sendo o nome da uma linguagem de programação. Já "assembler" significa construtor e é o nome que se dá a programas que juntam partes, que constroem programas.

Mas, de toda forma, linguagens se alto nível são para os fracos!

Sticking out tongue

As linguagens declarativas, atualmente, são muito pobres, e por isso são complementadas com linguagens funcionais. Vide html e javascript, ou MCML e c# da própria microsoft
talvez as linguagens funcionais (com haskell) pudessem resolver melhor o problema que carloshp falou, se conseguirem avançar muuuuuuuuuuuito em desempenho

acdesouza's picture

Bicalho,

Se estiver interessado em dar uma olhada nisso, hoje, existe o JBoss Drools, que é um framework feito pelo pessoal do JBoss para programação declarativa.

Não sei se chega ao que a Microsoft está propondo, mas já "dá um gás" em aplicações que possuem regras de negócio muito dinâmicas.

[],
AC

mmoscz's picture

Sempre q aparecem essas tecnologias maravilhosas e que vão acabar com a necessidade de entender de programação eu rio.
Quem trabalha com TI já viu algum usuário (Diretor, Gerente, office-boy) criar seus próprios relatórios no Crystal Reports??? Não tem nada mais fácil q pegar uma base de dados e puxar alguns campos.

acdesouza's picture

mmoscz disse:Sempre q aparecem essas tecnologias maravilhosas e que vão acabar com a necessidade de entender de programação eu rio

Neste caso, o objetivo não é acabar com programação, mas dar uma ferramenta mais apropriada para o programador e mais fácil de apresentar para um dos usuários citados.

mmoscz disse:[...]já viu algum usuário (Diretor, Gerente, office-boy) criar seus próprios relatórios no Crystal Reports???[...]

A ferramenta não é feita para os usuários citados. Mas para programadores terem maior facilidade em gerar os relatórios para as aplicações que atendem os usuários citados. Mas entendo que isso não seja comum.

[], AC

P.S.: Respondendo sua pergunta, meu cliente, que é gerente de um setor, faz select no banco para retirar informações para ele, que estejam fora do escopo da aplicação.

Shomer's picture

Que venham as declarativas mais poderosas. Vai faltar programador "de verdade" pois é complicado imaginar um dia uma linguagem declarativa sendo contruida por outra. Assim como o C, Pascal e outras linguagens compiláveis de fato geram codigos finais em Assembly (binario) executáveis, as declarativas poderão um dia gerar binarios executáveis também, mas imagem o "tamanho" da carga de código extra que ela vai carregar? Ops, o que eu to falando? Olha o Java, .Net e outros frameworks ai gente!

Em fim, a estratégia da MS é criar programadores de linguagens declarativas e apenas uma elite seria capaz de continuar a programar software real. Pensem, no futuro um programador C vai continuar podendo fazer um bloco de notas com código descente, ao passo que um "programador" destas linguagens vai até poder fazer, mas... nada profissional. É como usar "software" de planinha Excel. Sticking out tongue

SuperEly's picture

"as declarativas poderão um dia gerar binarios executáveis também, mas imagem o "tamanho" da carga de código extra que ela vai carregar?"

-----

Pois é. Para se ter uma idéia, basta olhar o código html que programas como FrontPage geram. Por isso escrevo tudo nos Notepads da vida mesmo.

Agora, imagino a zona que não ficam esse executáveis...

acdesouza's picture

Shomer disse:
as declarativas poderão um dia gerar binarios executáveis também, mas imagem o "tamanho" da carga de código extra que ela vai carregar?

Veja bem....
Ele não irá gerar "binarios executáveis". A idéia é a criação de uma motor de execução, um interpretador, que irá aplicar essas regras ao seus objetos antes/depois da execução de métodos específicos.

É como se sua aplicação de locadora tenha uma tela onde o gerente coloque o seguinte texto:

regra Emprestimo
quando a : Cliente(status == "VIP")
então a.setDesconto(0.10)
fim

Daí todos os clientes vips da locadora receberão um desconto de 10%.

Serve para dar mais flexibilidade para as regras de negócio, não para gerar sistemas inteiros.

[],
AC

rafahell's picture

Mas e a performance como fica nessa história? Possivelmente ao inserir as informações nos bancos, de dados essa linguagem vai demandar muito mais processamento devido quantidade de informações.

___________________________

pedeprasair.blogspot.com

Ricardo Bicalho's picture

A linguagem não servirá para fazer tudo, mas resolver problemas específicos para escrever regras de negócio.

Tango's picture

Interessante você citar o SAP, Bicalho.

Estou já a algum tempo trabalhando em um projeto de integração do nosso sistema com o mesmo, que está sendo implantado em uma grande concessionária.

A coisa é gigantesca, mas ainda assim parece arcaica. Existem interfaces de integração em que nosso sistema espera receber XML's e enviar TXT's. Essa parte, que nunca existiu no SAP está sendo feita agora, com vários desenvolvedores implementando a coisa "on the go". Quase como montar o avião em pleno vôo.

Sempre que precisamos modificar alguma coisa as equipes deles têm que entrar na parada para modificar e implementar os códigos, algo que eu, particularmente, considero impensável.

--
Viagens e trabalho: http://flybywire.librian.net/
Dicas, histórias e reflexões na sala de embarque

Shomer's picture

eu entendi acdesouza, é isso mesmo! ... mas lembra da época que flash era somente animação e som e html se limitava a chamar forms, rodar uns scripts java simples? pois é, comecou simples, hoje temos web 2.0, jogos em flash e mais um monte coisas.

No inicio eles permitirão apenas regras de negocios e outras coisas, mas a tendência é incrementar o poder de processamento, afinal é preciso vender software e hardware. Nada mais bem casado do que um software pesado que precise de uma máquina muito poderosa para rodar com conforto. Um dia a IA vai resolver tudo. Neste dia somente os programadores de IA estarão no ramo. Tenebroso isso, sei lá... Smiling

acdesouza's picture

Shomer disse:
"[...]lembra da época que flash era somente animação[...], pois é, comecou simples, hoje temos web 2.0, jogos em flash e mais um monte coisas.[...]"

Mas a tecnologia que suporta as animações de flash é a mesma que permite fazer os jogos. A diferença está na competência de quem usa a ferramenta. O mesmo para HTML e JavaScript.

Shomer disse:
No inicio eles permitirão apenas regras de negocios e outras coisas, mas a tendência é incrementar o poder de processamento, afinal é preciso vender software e hardware. Nada mais bem casado do que um software pesado que precise de uma máquina muito poderosa para rodar com conforto.

O fato dos fontes serem interpretados não implica em dizer que a aplicação será mais ou menos "pesada", isto é, que precise de uma máquina melhor. O objetivo é aumentar a flexibilidade, no caso a capacidade de implementar mudanças,
em regras de negócio que precisem ser aplicadas em partes do código.

[],
AC

P.S.: Na sua mensagem anterior esqueci de comentar que Assembly:

  • - Não é executável, precisa ser compilado em um binário;
  • - Não é binario, mas um conjunto de instruções implementados na CPU.

Opções de exibição de comentários

Selecione seu modo de exibição dos comentários favorito e clique "Salvar opções" para ativar suas mudanças.



Design Wenetus