Pular para o conteúdo principal

Objetos versus Arquivos (Squeak vs Eclipse)

Objetos ou Arquivos


No Unix, os arquivos são utilizados como a metáfora comum para uma ampla variedade de propósitos. Nesse mundo, dispositivos, processos, recursos do sistema são mostrados como arquivos. Apesar das limitações, esse é um conveniente meio de realizar diversas tarefas administrativas. Operações com direcionamento são utilizados de forma sistemática para arquivos ou dispositivos (ex: ls > ls.txt ou ls > /dev/lpt1 ). No windows, todos recursos são objetos, inclusive os arquivos. Isso também proporciona uma forma conveniente para manipular tais conceitos. Mas, não vemos no Windows a mesma facilidade de manipulação para fins administrativos que temos no Unix.

Um cenário semelhante acontece com as plataformas de desenvolvimento. De um lado, temos o Java/Eclipse, onde cada classe é representado por arquivos do SO e do outro lado, Smalltalk/Squeak as classes são objetos armazenados em memória e de alguma maneira persistido no computador (a tal imagem da área de trabalho). No caso dessas duas plataformas, fico com o Java, porque ela não me bloqueia a alteração das classes. Basta um bloco de notas para fazer alterações. Assim, é possível delegar para outros programas funções como backup, transmissão de informação, versionamento.... O que é mais fácil, compartilhar uma classe em Java ou em Smalltalk!? E, dentro do ambiente Eclipse, temos quase a sensação que a classe não é um mero arquivo, mas de fato um modelo de objeto, com propriedades e funções, com várias formas de se apresentar.

Não quero aqui desprezar a idéia da representação de objetos, mas reforçar a idéia de que a interoperabilidade é peça fundamental na arquitetura de um sistema. Vale mais um monte de arquivos, que se possa manipular da forma do que objetos que sejam de difícieis de mexer.

Comentários

Postagens mais visitadas deste blog

Expressões, preconceito e racismo

Expressões preconceituosas e racistas Antes de alguma outra frase, primeiro peço licença para falar de mais um assunto do qual não domino. Falo por acreditar que um leigo presta serviço maior ao debater assunto com base em fontes (ainda que seja uma Wikipedia) e no pensamento lógico do que simplesmente se manter mudo a questões do cotidiano. Em voga agora está em falar quais são ou eram as expressões preconceituosas e racistas que até a pouco eram toleradas em muitos meios.
Como é covarde dizer que em boca fechada não entra racismo. O racismo não é perpetrado apenas por quem profere mas por quem se cala à agressão perpetrada a outrem. Mas veremos que a questão é muito mais complexa que os cães raivosos do politicamente correto querem dizer.
Tomo aqui a palavra racista, como sendo algo usado para impor a dominação de uma “raça” sobre outra. Portanto, a acusação de racismo vai muito além da mera acusação de preconceito. Não tenho o menor apreso por vitimismo barato, onde expressões que…

Um texto pós-moderno - better man

Espere olhando para as horas... são 4 horas. Tem que parar. Nesse tom melancólico, começa a modesta música "better man", uma balada pop composta por Eddie Vedder ainda na adolescência. A música é a ilustração perfeita da ironia. O próprio título é irônico, uma vez que em momento algum na música aparece um better man.

She lies and says she's in love with him, can't find a better man...

Irônico, não!? Para começar, com a personagem central da história, a mulher que aguarda tarde da noite seu esposo... Ela chega a treinar com o espelho o fim do relacionamento. E o que faz? Diz a negação do que queria dizer.

Vedder escreve músicas sobre sentimentos fortes. Sua relação com a mãe foi bastante complicada pelo o que descreve em suas canções. Na trilogia Mommy, Vedder descreve um homem perturbado com o relacionamento materno; a mãe mente para o filho sobre a identidade do pai, revela a verdade para o garoto na puberdade dizendo a ele como se parece com o verdadeiro pai e o leva …

Curry with JS

Partial application and currying with Javascript In the strict way, currying is the technique of transforming a function that takes multiple arguments (a tuple of arguments) to one function that receive only one. In such way, currying techniques allow transform one multi-parameter function in a chain of functions, each one with a single argument. Looks complicated? Blah.. it is not true.
In this little article, we are actually more interesting in partial applications. Let’s take the Mozilla Example for replace function in String. As we know, we can use a “replacer” function as paramenter for replace method in String object.
Let’s say that we want to split a String defined by a non-numerical part, a numerical part and finally a non-alphanumeric part. Here is how:
function replacer(match, p1, p2, p3, offset, string){ // p1 is nondigits, p2 digits, and p3 non-alphanumerics return [p1, p2, p3].join(' - '); }; We can try it as usual…
var newString = "abc12345#$*%".r…