Uma linguagem de programação pode te tornar estúpido?

Finalmente consegui externalizar algo que há um bom tempo já havia percebido: uma linguagem de programação (inclua ambiente de desenvolvimento aí) pode tornar uma pessoa estúpida.

Postei no meu blog o argumento: http://www.itexto.net/devkico/?p=172

O que acham?

Legal a exposição de tuas idéias. Uma pergunta:

Você colocou três figuras conhecidas lá do seu post (Wittgenstein, Dijkstra e Hegel)…fiquei curioso, porque críticos de cada um desses caras já os chamaram de estúpidos em algum momento de suas vidas

  • Wittgenstein por achar que seu Tractatus iria resolver os problemas da filosofia;

  • Dijkstra por ter intolerante em demasia com erros e coisas absurdas

  • Hegel, er…por ter sido considerado um ‘assassino de mentes criativas por mais de um século’ por conta da influência dos seus escritos, colocados por muitas vezes como textos incompreensíveis.

Eles estão lá no seu texto de propósito ou tô viajando? :wink:

Abraço

T+

[quote=Proteu Alcebidiano]Legal a exposição de tuas idéias. Uma pergunta:

Você colocou três figuras conhecidas lá do seu post (Wittgenstein, Dijkstra e Hegel)…fiquei curioso, porque críticos de cada um desses caras já os chamaram de estúpidos em algum momento de suas vidas

  • Wittgenstein por achar que seu Tractatus iria resolver os problemas da filosofia;

  • Dijkstra por ter intolerante em demasia com erros e coisas absurdas

  • Hegel, er…por ter sido considerado um ‘assassino de mentes criativas por mais de um século’ por conta da influência dos seus escritos, colocados por muitas vezes como textos incompreensíveis.

Eles estão lá no seu texto de propósito ou tô viajando? :wink:

Abraço

T+[/quote]

Opa, que bom que gostou. Na realidade, estão de propósito mesmo (como eu os colocaria sem querer? :slight_smile: ).

No caso, ainda bem que os três foram criticados. Aliás, isto não tira em nada o valor de cada um deles (na realidade, a crítica só aumenta). Se para ter valor, alguém tivesse de ser 100% aceito e jamais criticado ou chamado de estupido, possívelmente teriamos hoje como base teórica bem… nada!

Bem, mas vamos então por etapas: por que escolhi cada um deles (o próprio texto já diz, mas se for pra deixar mais claro, vamos lá!)

Wittgenstein (na realidade, foi o próprio Wittgenstein que criticou o Tractactus Logico Philosophicus. É por isto que dizemos existir dois Wittgensteins. O autor do Tractactus é o primeiro e o autor das Investigações Filosóficas é o segundo. Inclusive, o segundo vive detonando o primeiro e ESTE é o maior crítico do primeiro Wittgenstein) foi escolhido por ser o principal expoente da idéia por trás do determinismo linguístico ao extremo, ou seja, na linguagem como delimitação do mundo de um indivíduo.

Dijkstra: apenas por causa de sua citação sobre o BASIC. E também porque esta citação tem muito a ver com o conteúdo do texto. No final das contas, é uma crítica ao modo como iniciamos a nossa carreira de desenvolvedores, ou seja, uma crítica à educação, assim como a palestra da qual a citação foi extraída.

Hegel: por causa do método fenomenológico. Tentei reproduzir a mesma descrição fenomenológica que Hegel fez na “Fenomenologia do Espírito”.
Com relação a Hegel ser considerado fonte de atrasos por mais de um século, gostaria de saber sua fonte (fiquei realmente curioso), uma vez que ele é a base teórica por trás do Marxismo, Fenomenologia, Sociologia e boa parte da filosofia alemã após sua morte. Com relação a ser difícil de ler, bem: o próprio dizia que somente uma pessoa havia compreendido seus textos de verdade além de si próprio. Outro crítico forte do Hegel seria o Schopenhauer que, também, irônicamente, também possui sua influência hegeliana

No final das contas, os filósofos nunca estão 100% corretos ou 100% errados. Pessoalmente, os utilizo como pequenos “softwares” que me ajudam a compor meus raciocínios. Este texto é um bom exemplo. Aliás, repare que em momento algum uso o argumento da autoridade, isto é, em momento algum digo “isto é certo porque X disse isto”.

Usei o “software” Wittgenstein para ilustrar o conceito de determinismo linguistico (no caso, tanto o primeiro quanto o segundo Wittgenstein tratam do assunto).

O “software” Dijkstra (seria Dijkstra um filosofo?) para expor o problema da educação

E, finalmente, o “software” Hegel para expor um fato fenomenológico.

Olá :slight_smile:

A crítica ao pensamento Hegeliano é atribuída ao Schopenhauer mesmo.

:wink:

T+

No caso do Schopenhauer tem de dar um desconto. Ele morria de inveja do Hegel, e passou a maior parte da sua vida difamando o coitado.
E o mais engraçado é que, com a morte de Hegel (morreu na merda coitado, de colera :slight_smile: ), Schopenhauer simplesmente ficou sem assunto e sua produção caiu demais.

Ou seja, neste caso ai rolava uma paixão reprimida coitado, he he he.

Programar em uma linguagem que tenha limitações (me diga uma que não tem) não torna ninguém estúpido, desde que a pessoa que usa esta linguagem seja consciente dessas limitações e conheça outras linguagens e paradigmas. O importante é que se conheça formas diferentes de lidar com os problemas, aprender com a diversidade.

Geralmente que se fecha em uma linguagem já é estúpido por natureza, não é culpa da linguagem. :slight_smile:

[quote=dlt]Programar em uma linguagem que tenha limitações (me diga uma que não tem) não torna ninguém estúpido, desde que a pessoa que usa esta linguagem seja consciente dessas limitações e conheça outras linguagens e paradigmas. O importante é que se conheça formas diferentes de lidar com os problemas, aprender com a diversidade.

Geralmente que se fecha em uma linguagem já é estúpido por natureza, não é culpa da linguagem. :)[/quote]

Pois é, a culpa não é DA linguagem, mas da formação que eu expus no artigo, que, infelizmente, é extremamente comum.

Eu comecei no GWBasic, com 9 anos de idade, tentando criar aqueles joguinhos toscos DOS em modo texto 80 colunas por 25 linhas.

Um belo dia, fui ver como funcionava no Windows, e descobri o Visual Basic 1.0 (acho que eu tinha 10 ou 11 anos). Foi um choque. Todo o conhecimento de programação que tinha desabou com uma mudança radical.

Mas me adaptei rápido ao VB 1. Depois consegui o VB 3, 4, 5 e 6.

Depois de algum tempo no VB 6 eu estava insatisfeito. Conheci o Pascal na faculdade mas não gostei. Peguei o C e gostei. Vi Java pela primeira vez em 2003 e achei muito fresco, no C era tudo mais simples.
Mas com o tempo aprendi a gostar do Java e render com ele.

Hoje estou insatisfeito com o Java da mesma forma que estava com o VB 6. Hora de achar uma linguagem melhor…

Cara, excelente seu artigo. Muito legal seu ponto de vista. Acho que por isso c++ deve continuar a ser ensinado nas faculdades e não começar ensinando de cara Java ou .Net. Como vc falou no artigo é importante criar no desenvolvedor iniciante a “visão de baixo para cima”.

As pessoas focam tanto em “linguagens” que se esquecem que o fundamental é entender os conceitos por trás de como o computador e algums softwares (como SOs, compiladores, etc) funcionam.

Ensinar C++ na faculdade não fará nada além de criar um xiita de C++ (que odeia tudo o que não é C++, porque programadores de verdade programam seus próprios ponteiros) ao invés de um xiita de Java.

[quote=Thiagosc]As pessoas focam tanto em “linguagens” que se esquecem que o fundamental é entender os conceitos por trás de como o computador e algums softwares (como SOs, compiladores, etc) funcionam.

Ensinar C++ na faculdade não fará nada além de criar um xiita de C++ (que odeia tudo o que não é C++, porque programadores de verdade programam seus próprios ponteiros) ao invés de um xiita de Java.[/quote]

Bem, faculdades mais sérias têm disciplinas de sistemas operacionais, compiladores, inteligência artificial, e outras coisas que simples programadores de CRUDs nem sonham em como é que funciona.

Acredito que o fato de alguém se focar tremendamente em uma tecnologia limitará seu horizonte, pois se ocorrer alguma mudança no decorrer do projeto e aquela tecnologia for posta de lado, este profissional não saberá o que fazer. :wink:

[quote=Thiagosc]As pessoas focam tanto em “linguagens” que se esquecem que o fundamental é entender os conceitos por trás de como o computador e algums softwares (como SOs, compiladores, etc) funcionam.

Ensinar C++ na faculdade não fará nada além de criar um xiita de C++ (que odeia tudo o que não é C++, porque programadores de verdade programam seus próprios ponteiros) ao invés de um xiita de Java.[/quote]

Sim, exatamente por isso sou a favor de COMEÇAR ensinando C++, pois as caras entenderão muitos conceitos que em outras linguagens de mais alto nível, como java, são abstraídos. Se o cara começar a aprender programação a partir do Java, ponteiro para ele, será apenas uma peça do relógio.

Acho que não entendeu minha opinião. Sou a favor de começar a ensinar com C++, o que não impede que outras lingugens sejam introduzidas e EXIGIDAS, abrindo os horizontes do futuro profissional.

O usuário maquiavelbona deve ter tido uma formação parecida com a minha, já que tanto eu como ele nos formamos técnicos em “técnico de informática com habilitação em programação e desenvolvimento de sistemas” pelo CEFET-SP.
Lá, no mesmo semestre acabei tendo de uma vez COBOL, C e VB, mas um semestre antes tive os primórdios de lógica de programação aprendendo “português estruturado” com um professor deficiente visual.
Eu achava VB fácil de mexer, mas preferia o C que para mim sempre me deu BEM MAIS PODER que o VB, diferente da visão do post no blog do kicolobo, ainda que fosse bem mais “osso” desenvolver em C.
COBOL eu rejeitava e achava que a sintaxe era excessivamente carregada e a linguagem em si me parecia muito regrada e limitada, mas hoje eu respeito.
Acabei tendo contato com programação orientada a objetos pelo Java e ir de programação estruturada para orientada a objetos pelo menos no meu caso foi um parto e tanto.
Hoje vejo que começar com um “português estruturado” pode ser melhor que sair enfiando ASM/COBOL/C/VB/Pascal/Java goela abaixo no pessoal que está começando do zero.

Inté.

Sobre o aprendizado em linguagens de programação, normalmente o que ocorre com boa parte dos alunos é querer pular etapas que são importantes para que o entendimento em linguagens se firme do modo mais acertado. Normalmente pulam etapas porque ou as desconhecem (falta de educação formal) ou as ignoram porque querem atingir outros objetivos, como o de arrumar um estágio ou emprego o mais rápido possível.

Tem gente que sai aprendendo a programar e mal conhece sobre a lógica aristotélica do verdadeiro ou falso.

T+

Gostei da parte de conhecer vários paradigmas, mas achei o relato do programador visual basic fraco, este programador já era estúpido, não foi a linguagem ou ferramenta que o tornou assim.

O pessoal mais experiente sabe que não importa se vc veio do cobol, clipper, vb ou do C, o caminho é sempre dificil de se percorrer.

A nao ser que a linguagem em questao seja Lisp, que permite novas lingugaens serem introduzidas pelo programador.

[quote=Proteu Alcebidiano]Tem gente que sai aprendendo a programar e mal conhece sobre a lógica aristotélica do verdadeiro ou falso.
[/quote]

:shock:

Vestir camisa de linguagem de programação é realmente estupidez. O que importa é domínio de algoritmos.

Quem falou de faculdade? A linguagem é o de menos. É perfeitamente possível aprender conceitos de SO por exemplo em linguagems de alto nível, simulando algoritmos e tal.

[quote=Bruno_Leonardo]Sim, exatamente por isso sou a favor de COMEÇAR ensinando C++, pois as caras entenderão muitos conceitos que em outras linguagens de mais alto nível, como java, são abstraídos. Se o cara começar a aprender programação a partir do Java, ponteiro para ele, será apenas uma peça do relógio.

Acho que não entendeu minha opinião. Sou a favor de começar a ensinar com C++, o que não impede que outras lingugens sejam introduzidas e EXIGIDAS, abrindo os horizontes do futuro profissional.[/quote]

Acho que o melhor seria começar com C. C++ é cheio de coisas desnecessárias para se aprender o básico.