[Cascavel-pm] Problemas apenas nas requisições via ajax (caracteres com acentuação )

Nilson Santos Figueiredo Junior acid06 em gmail.com
Terça Setembro 2 10:32:40 PDT 2008


2008/9/2 Luciano Giordani Bassani <lgbassani em terra.com.br>:
> Eu concordo contigo que usar UTF-8 em tudo seria o ideal, mas infelizmente
> nem sempre o ideal é aplicável.

Claro. Infelizmente, às vezes não podemos reescrever um código que já
existe. E outras situações similares.

Contudo, eu acredito que é importante que todo código novo que for
escrito siga as boas práticas agora conhecidas. Aliás, esse é um ponto
de debate. Tem gente que prefere que o código fique consistentemente
ruim, mas eu não concordo com isso. Eu prefiro ganhar em qualidade
mesmo que se perca em consistência.

> Infelizmente um dos meus clientes que usam o Dreamwave em ambiente Windows
> não pensa assim. E o que eu ouvi, quando eu decidi usar esta REGEX de
> conversão da primeira vez foi: "mas naquele outro site que o fulaninho fez
> em php funciona e nós não vamos mudar tudo agora. Se tu não consegue fazer
> isso, vamos pedir para o fulaninho".

Certo. Mas ao invés disso você poderia ter usado o módulo Encode ou o
utf8 para realizar esse tipo de coisa. Eles têm funções para converter
entre a maioria das codificações conhecidas. É mais fácil e mais
limpo.

> Ou era usar a REGEX ou explicar para meu chefe que o Perl não consegue fazer
> algo que o PHP e o fulaninho da outra empresa faz e que a gente perdeu
> dinheiro por causa disso.  :-P

Na verdade, não é Perl que não consegue fazer. O problema era que as
versões antigas de PHP não suportavam utf8. O "fulaninho da outra
empresa" se pegar uma versão mais recente do PHP com os patches utf8
aplicados vai ter o mesmo "problema". Perl foi a primeira linguagem
largamente utilizada na web a suportar utf8 direito. O problema era no
PHP e não no Perl. ;-)

> Em todo caso, eu "ouço" as discussões de qualidade da lista e sei que nem
> sempre adoto a melhor prática, mas a vida é cheia de riscos e se algum dia
> for vítima de algum SQL Injection ou algo parecido eu vou lembrar do
> "correto" e vou ter argumentos para mudar as coisas (isso se eu não for
> demitido por causa da falha, hehehe)

A questão é que quando você aprende as ferramentas corretas você
descobre que é *mais fácil* utilizar ferramentas que te ajudem a
evitar isso do que fazer tudo na mão (e correr riscos). Por exemplo,
programar com um ORM qualquer, mesmo que seja algo rudimentar, "feito
em casa", é centenas de vezes melhor que fazer tudo na mão. Obviamente
o ideal é poder utilizar algo como DBIx::Class ou RDBO (bom, até mesmo
o Class::DBI é melhor que nada). Mas simplesmente uma camada de
abstração qualquer, mesmo que com falhas, facilita sua vida de
maneiras inimagináveis.

> Pq no fim o que conta é o custo e o tempo de desenvolvimento. Se até as
> Lojas Americanas tem falhas graves e básicas como o cross site script e nem
> se importa, quem sou eu para ser "infalível". Pelo menos eu me importo com
> meus clientes.

O site das Lojas Americanas é ridículo. Existem comunidades no orkut
pra divulgação de bugs que permitem compras de diversos produtos pelo
preço de R$0,01. Eu, particularmente, não acho correto. Mas já vi
diversas pessoas conseguirem comprar, por exemplo, relógios de R$200
pagando somente o frete por causa disso (algumas tiveram que ir na
Justiça mas, no final das contas, conseguiram).

Não é só porque eles estão aí e estão ganhando dinheiro que quer dizer
que o que eles fazem seja algo aprovável.

Se eles pularem num buraco você pula atrás? ;-)

> O único preconceito que as pessoas que eu conheço tem contra o Perl é que
> não se acha programadores da mesma forma que Java, php, asp... Se a
> qualidade do programador realmente importasse alguma coisa, Java não teria a
> fama que tem, não concorda? Tem que se pensar no real motivo de Perl não ser
> bem vista...

O motivo para Perl não ser bem vista é um pouco complexo.

 Perl era a linguagem mais popular por volta de 1996-2000 para
desenvolvimento de aplicações web. Isso fez com que um grande número
de programadores aprendessem Perl. Contudo, um programador
incompetente desenvolvendo em Perl é similar a um revólver em uma mão
de criança. O resultado foi que uma quantidade enorme de porcaria foi
escrita em Perl nessa época e Perl ganhou a fama que tem.

Java conseguiu se sobresair principalmente porque é uma linguagem mais
idiot-proof - o dano causado pelos incompetentes é limitado. É uma
escolha segura. Com isso, foi possível contratar "profissionais" de um
nível inferior (portanto mais baratos) pois a linguagem não deixava
eles atirarem em seu próprio pé tão freqüentemente. Isso tudo acabou
favorecendo esforços de marketing também pois, em geral, é útil para
grandes empresas que seus profissionais sejam o mais substituíveis o
possível.

Aliás, PHP segue o legado do Perl antigo. A partir do PHP5, a
linguagem até se tornou decente. Contudo, ninguém leva a sério PHP. Só
serve pra cumprir a mesma função que Perl cumpria 10 anos atrás: ser a
linguagem na qual a maioria dos códigos de baixa qualidade voltados
pra Internet serão escritos. Mas PHP cumpre essa função melhor que
Perl por diversos fatores (desde técnicos até sociais).

Isso fez com que a popularidade de Perl caísse e fez com que o custo
de um profissional especializado na linguagem aumentasse, pois os
"ruins" acabaram largando pra outras mais apropriadas. Isso cria um
processo de realimentação negativa. Principalmente na cabeça de um
gerente tradicional, é difícil entender porque utilizar uma tecnologia
que é vista como pior, não-padrão do mercado, tem profissionais mais
caros e em menor número.

No Brasil, Perl é menos popular ainda por causa do atraso tecnológico.
Quando o desenvolvimento web chegou "pra valer" aqui, Perl já estava
no final do seu ciclo de popularidade. Então a proporção de
desenvolvedores em Perl é menor ainda, aumentando os efeitos que eu
acabei de citar (além do preconceito ser maior, também, já que a
linguagem ficou só foi ser difundida justamente quando já tinham
jogado no ventilador).

Obviamente, isso tudo sou só eu quem estou falando, baseado em minhas
observações pessoais. Outras pessoas podem discordar ou concordar. Mas
eu já amadureci essa idéia bastante e acredito fortemente que as
coisas aconteceram mais ou menos assim mesmo.

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm