Welcome to the World of XML Programming

http://drools.org/Hello+World+Example

<rule name="Goodbye Cruel World">
  <parameter identifier="goodbye">
    <class>String</class>
  </parameter>

  <java:condition>goodbye.equals("Goodbye")</java:condition>

  <java:consequence>
    goodbyeWorld( goodbye );
  </java:consequence>
</rule>

O que pensar diante disso ??? Bom, há gostos para tudo.

[quote=saoj]O que pensar diante disso ??? Bom, há gostos para tudo.
[/quote]

Acho frescura!
Afinal, se sei fazer isso em java normalmente, pra q usar XML? :?
Gosto de XML, mas quando é bem usado com um bom propósito, e não quando é usado pra fazer firula :wink:

Ué, você não acha isso simples e intuitivo? :mrgreen:

Pensar que se você souber exatamente pra que cada coisa serve e utilizá-la corretamente você não precisa criar extremos como NUNCA usarei XML ou coisa assim.

Drools é um motor de regras, não um produto final, ele trabalhar com XML facilita muito a vida de quem for usá-lo na sua aplicação pois gerar a ferramenta para edição das regras fica muito mais fácil.

Acho que o principal problema/desafio/aplicação está descrito no documento Design for Workflow and Rule Management System.

As principais ferramentas dessa baita empresa são construídas em cima desse conceito (workflow, rules & cia) , o desenvolvedor não vê nada demais, só um monte de dropdown e selects … e acredite, o produto final é muuuito mais feio do que um XML. (dezenas de códigos, caracteres de controle, etc.)

Inutitivo? SIM
Simple? NAO

olha isso:

<java:import>java.lang.Object</java:import> <java:import>java.lang.String</java:import>

[code]java:functions
public void helloWorld(String hello)
{
System.err.println(hello + " World");
}

public void goodbyeWorld(String goodbye)
{
System.out.println(goodbye + " Cruel World");
}
</java:functions>[/code]

Fala sério neh… pra q colocar codigo java no XML se uma classe existe pra isso?

Pra mim, isso não é nem simples nem intuitivo. E se a utilidade dessa ferramenta é pra outra que não programar Java em XML, tá na hora deles refazarem o exemplo…

sinceramente, isso eh ridiculo

olha essa chamada de equals dentro do corpo de uma tag!

soh faltava um pouco de sql ai junto

Concordo com vc smota! Deve haver algum caso em particular onde esse approach é vantajoso.

É que eu fico meio assustado diante disso. Não consigo imaginar como alguém pode fazer uma coisa dessas com prazer.

Mas há gostos pra tudo… E devem ser respeitados…

Estou tentando imaginar mas sinceramente eu nao consigo!

Quantos aqui sabem o que o DROOLS faz? Quantos aqui já usaram?

Pois então, uma rule engine é uma ferramenta muito poderosa e programar as regras em java seria um INFERNO. Caso não saibam, o código gerado pode ser gigantesco já que ele espande o código pra usar Rete na resolução das regras.

Se eu não tivesse visto o link do site eu não acreditaria…

:shock:

Eu Eu Eu !!! (dedinhos levantados)

Estava me sentindo tão solitário por achar que foi uma boa idéia e XML é ideal neste caso … :mrgreen:

[quote=smota]
Estava me sentindo tão solitário por achar que foi uma boa idéia e XML é ideal neste caso … :mrgreen: [/quote]

Pra falar a verdade eu sou mais uma DSL nesse caso ao XML, porém dada a dificuldade que seria fazer uma, xml funciona bem legal.

Foi mal Smota e Louds !!! A idéia não era menosprezar o Drools já que eu não conheço nada sobre ele.

A minha intensão foi mostrar que não há limite no uso do XML.

Você diz uma DSL para fazer a descrição das regras (parametros, condicoes, consequencias, etc.) no Drools OU para escrever o codigo das regras (que hoje é em Java, Python ou Groovy) ?!?

Para a primeira opcao nao vejo muita vantagem … porque caso eu queria continuar suportando Java/Python/Groovy/whatever a DSL seria muito simples e funcionaria apenas para marcar os blocos … se quiser usar minha linguagem propria pra tudo (marcacao e codigo) seria bem mais chato de trabalhar.

Caso seja a segunda opcao você pode muito bem escrever sua DSL e acopla-la ao Drools (http://drools.org/Domain+Specific+Languages) simplificando pro desenvolvedor final (ele nao precisa saber Jaa, apenas aquela sua linguagem que tende ser mais simples por estar ligado ao dominio da aplicacao)

[quote=saoj]Foi mal Smota e Louds !!! A idéia não era menosprezar o Drools já que eu não conheço nada sobre ele.
A minha intensão foi mostrar que não há limite no uso do XML.[/quote]

ehehehe entendi isso. O problema é que vc pegou um exemplo onde o XML é muito mais prático e foi uma boa escolha para a aplicação :slight_smile:

EDITADO: Acho que ninguém ia discordar se você citasse o Jelly como XML demais.
(eu pelo menos nao discordaria, tudo que é feito com o Jelly poderia ser feito com um CDATA e outra linguagem de script :wink: )

Bom, vamos absolver o Drools e jogar na fogueira esse carinha aqui:

[color=red]Welcome to the World of XML Programming with Xava !!![/color] :shock:

http://www.gestion400.com/openxava/

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE component SYSTEM "dtds/component.dtd">

<component name="Teacher">

    <entity>
        <property name="id" type="String" key="true"
            size="5" required="true"/>
        <property name="name" type="String" 
            size="40" required="true"/>              
        <collection name="pupils">
            <reference model="Pupil"/>
        </collection>
    </entity>
                        
    <entity-mapping table="MYSCHOOL@separator@TEACHER">
        <property-mapping property="id" column="ID"/>
        <property-mapping property="name" column="NAME"/>
    </entity-mapping> 
                
</component>

[size=18]Soocooooooooooooorro !!![/size]

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

XAVA já é demais!!!

Para para ambos os casos; para implementar as regras não acho que seja tão importante (de fato prefiro java ai); já a descrição das regras pode ser algo bem tedioso e uma linguagem mais enxuta e clara ajuda bastante.

Mas isso também depende de qual seu público alvo, pessoas que vão criar regras novas ou pessoas que vão motificar um conjunto de regras existente.

Sérgio, quer realmente apedrejar xml? Chuta o saco dos criadores do Jelly, por favor.