Este é o comando PDL :: Philosophyp que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
PDL :: Filosofia - Por que escrevemos PDL?
DESCRIÇÃO
Alguma história do criador do PDL, levando à filosofia e motivação por trás
esta linguagem de dados. Esta é uma tentativa de resumir um pouco do espírito comum entre PDL
desenvolvedores para responder à pergunta "Por que PDL"?
O Início of PDL
"Por quê is it que. we entreter da crença que. for qualquer e propósito estranho números e guarante que os mesmos estão da a maioria
eficaz?" - Plínio da Elder
O projeto PDL começou em fevereiro de 1996, quando decidi fazer experiências com a escrita do meu próprio
`Linguagem de dados '. Eu sou um astrônomo. Meu trabalho diário envolve muita análise digital
dados acumulados em muitas noites de observação em telescópios ao redor do mundo. Esses dados podem
por exemplo, imagens contendo milhões de pixels e milhares de imagens de distantes
estrelas e galáxias. Ou mais abstrusamente, muitas centenas de espectros digitais revelando o
segredos da composição e propriedades desses objetos distantes.
Obviamente, muitos astrônomos já lidaram com esses problemas antes, e uma grande quantidade de
software foi construído para facilitar sua análise. No entanto, como muitos dos meus
colegas, ficava constantemente frustrado com a falta de generalidade e flexibilidade desses
programas e a dificuldade de fazer algo fora do comum com rapidez e facilidade. O que
Eu queria ter um nome: "Linguagem de Dados", ou seja, uma linguagem que permitisse a manipulação de
grandes quantidades de dados com expressões aritméticas simples. Na verdade, alguns comerciais
software funcionava assim, e fiquei impressionado com os recursos, mas não com o
etiqueta de preço. E pensei que poderia fazer melhor.
Como um astrônomo bastante versado em computadores (leia "nerd" ou "geek" de acordo com a sua
argot) Eu estava muito familiarizado com "Perl", uma linguagem de computador que agora parece preencher o
prateleiras de muitas livrarias em todo o mundo. Fiquei impressionado com seu poder e
flexibilidade e, especialmente, sua facilidade de uso. Eu tinha até explorado as profundezas de sua
internos e escrevi uma interface para permitir gráficos, a facilidade com a qual eu poderia
criar tabelas e gráficos, para meus papéis, foi revigorante.
A versão 5 do Perl tinha acabado de ser lançada e eu estava fascinado com os novos recursos
acessível. Especialmente o suporte de estruturas de dados arbitrárias (ou "objetos" na moderna
linguagem) e a capacidade de "sobrecarregar" os operadores - ou seja, criar símbolos matemáticos como
"+ - * /" faça o que quiser. Pareceu-me que deveria ser possível escrever um
extensão para Perl onde eu poderia brincar com meus dados de uma maneira geral: por exemplo, usando o
operadores matemáticos manipulam imagens inteiras de uma vez.
Bem, numa lenta noite em um observatório, pensei em tentar um pequeno experimento. No
um momento de tédio, abri um editor de texto e comecei a criar um arquivo chamado `PDL.xs '- um
Módulo de extensão Perl para manipular vetores de dados. Algumas horas depois eu realmente tive
algo meio decente funcionando, onde eu poderia adicionar duas imagens na linguagem Perl, velozes!
Isso era algo que eu não podia deixar descansar, e provavelmente me custou um ou dois científicos
papéis dignos de produtividade. Algumas semanas depois, o Perl Data Language versão 1.0 foi
nascido. Era uma criança bastante nua: havia muito pouco além da aritmética básica
operadores. Mas encorajado, coloquei-o à disposição na Internet para ver o que as pessoas pensavam.
Bem, as pessoas foram bastante críticas - entre os mais vocais estavam Tuomas Lukka e Christian
Soeller. Infelizmente para eles, ambos também eram entusiastas do Perl e logo descobriram
melhorando meu código para implementar todos os recursos que achavam que o PDL deveria ter
e eu tinha negligenciado horrivelmente. PDL é um excelente exemplo desse fenômeno moderno de
autoria de grandes pacotes de software livre através da Internet. Grande número de pessoas, a maioria
que nunca se encontraram, fizeram contribuições que vão desde a funcionalidade central a grandes
módulos até o menor dos patches de bug. PDL versão 2.0 agora está aqui (embora devesse
talvez tenha sido chamado de versão 10 para refletir a quantidade de crescimento em tamanho e
funcionalidade) e o fenômeno continua. Acredito firmemente que PDL é uma ótima ferramenta
para lidar com problemas gerais de análise de dados. É poderoso, rápido, fácil de adicionar e
disponível gratuitamente para qualquer pessoa. Eu gostaria de ter tido quando era um estudante de graduação! espero
você também vai achar que é de um valor imenso, espero que te poupe de muito tempo e
frustração na resolução de problemas complexos. Claro que não pode fazer tudo, mas fornece
a estrutura, os martelos e os pregos para soluções de construção sem ter que reinventar
rodas ou alavancas.
--- Karl Glazebook, o criador do PDL
Principal idéias
O primeiro princípio da nossa filosofia é a ideia do "software livre": o software sendo livre tem
várias vantagens (menos bugs porque mais pessoas veem o código, você pode ter o código-fonte
e transportá-lo para seu próprio ambiente de trabalho com você, ... e, claro, que você não
precisa pagar nada).
A segunda ideia é uma implicância de muitos: muitas linguagens como Matlab são bastante adequadas
para suas tarefas específicas, mas para um aplicativo diferente, você precisa mudar para um
ferramenta totalmente diferente e recupere-se mentalmente. Sem falar em fazer um
aplicativo que faz duas coisas ao mesmo tempo ... Porque usamos Perl, temos o poder e
facilidade de sintaxe Perl, expressões regulares, tabelas de hash, etc. ao nosso alcance em tudo
vezes. Ao estender uma linguagem existente, partimos de uma base muito mais saudável do que
linguagens como Matlab, que surgiram a partir de uma funcionalidade muito pequena em
primeiro e foi se expandindo aos poucos, fazendo com que as coisas parecessem mal planejadas. Nós apoiamos o
Provérbios do Perl: "coisas simples devem ser simples, mas coisas complicadas devem ser possíveis"
e "Há mais de uma maneira de fazer isso" (TIMTOWTDI).
A terceira ideia é a interoperabilidade: queremos ser capazes de usar PDL para conduzir o máximo de ferramentas
quanto possível, podemos nos conectar a OpenGL ou Mesa para gráficos ou o que for. Não há
qualquer coisa que seja realmente satisfatória como ferramenta e possa fazer tudo o que quisermos
facilmente. E seja portátil.
A quarta ideia está relacionada a "PDL :: PP" e é a favorita de Tuomas: o código deve
especifique apenas o mínimo possível de informações redundantes. Se você se pega escrevendo muito
código de aparência semelhante na maior parte do tempo, todo esse código provavelmente poderia ser gerado por um
script Perl simples. O pré-processador PDL C leva isso ao extremo.
Menor metas e fins
Queremos velocidade. Idealmente, deve ser possível (por exemplo, com o compilador Perl)
para compilar subs "PDL :: PP" para C e obter as velocidades vetorizadas superiores em supercomputadores.
Além disso, queremos ser capazes de calcular as coisas quase na velocidade máxima de dentro do Perl, usando
fluxo de dados para evitar a alocação e desalocação de memória (a sobrecarga deve ser
apenas um pouco mais de uma chamada de função indireta mais alguns ifs por função no
tubo).
Go um; tentar -lo!
Bem, essa é a filosofia por trás do PDL - velocidade, concisão, livre, expansível e
integrado com a ampla base de módulos e bibliotecas que o Perl oferece. Sinta-se livre para
baixe, instale, execute alguns dos tutoriais e introduções e tenha um
brincar com isso.
Divirta-se!
Use PDL :: Philosophyp online usando serviços onworks.net