Escravos De Linguagens

49 respostas
rasinc

Ok! Talvez o título seja um pouco duro. Mas talvez seja mesmo isso que esteja acontecendo com os demais desenvolvedores que apenas desenvolvem numa única linguagem.

Certo dia conversava com um amigo quando encontramos Bento. Amigo de meu amigo que aprende programação por auto-didatismo mesmo. Ele usa delphi e c++ e pensa que os serve realmente para suas actividades e aplicações. No entanto pensa também que se tiver de aprender uma linguagem para desenvolver para determinada plataforma e que seja mais vantajosa em relação às que ele usa para aquela determinada tarefa; bem como ele próprio disse: - Encaro o desafio e mão na massa…

Mas o meu amigo que apenas sabe java foi logo o contrariando dizendo: - Mas você usa delphi porquê? c++? Usa java que é muito melhor.

Como provável logo rolou uma discussão onde ninguém saiu convecido. Fiquei calado no momento assistindo a discussão e chegando a casa estive pensando sobre o assunto e me ocorreu o seguinte.

Continuar a ler no link abaixo!
http://beez-apps.blogspot.com/2011/09/escravos-de-linguagens.html

49 Respostas

Leonardo_Gaona

Olá,

É um assunto delicado e interessante.

IMO o que acontece é que vocÊ por exemplo passa tanto tempo aprendendo frameworks e conceitos especializados de uma plataforma, que acaba não querendo correr o risco de ter que recomeçar em uma nova plataforma.
É ruim? Sinceramente, não sei. Há espaço pra todas as linguagens no mercado. Se não fosse verdade, não haveriam programadores COBOL ainda :stuck_out_tongue:

Acredito que o principal é o profissional se focar em algorítmos e lógica de programação. Por que, absorvendo uma boa parte dos conceitos de uma linguagem, não demanda TANTO tempo/esforço para atingir um nível profissional em uma nova linguagem.

Eu mesmo tenho estudado Java, mas tenho vontade de aprender Ruby…

Abraço,

ganondorfan

Desculpa a crítica cara, mas que texto mal escrito da porra.

Sobre o assunto(se é que eu entendi):
Eu sou do pensamento que quanto mais agregar melhor, a minha linguagem favorita, ou seja, a que eu me sinto mais à vontade é Java, entretanto não vejo mal nenhum em utilizar outra.

mausexdd

Este tipo de argumento já passou de critica para falta de educação .!
Se quer fazer uma crítica que seja construtiva , mostrar oque ta faltando,errado ou apenas não lhe agrada é fácil , difícil é propor soluções e melhorias , se não for para fazer uma critica construtiva … vai por mim , nem FAÇA !

Fica mais bonito , ficar calado as x.!

FICA A DICA ! :lol:

mausexdd

Agora colocando minha humilde opinião , 1º Parabéns pela observação do fato acontecido , De fato muitas pessoas acham Java “o melhor” “O Cara” sem nem mesmo conhecer outras ferramentas , é logico que tem aquela linguagem que você prefere , é mais produtivo e assim por diante . Apenas acredito que é muito soberbo de um profissional “tentar” julgar as tecnologias , a diferença do Java é que ela abrange vários setores como Android/Web/Desktop/Mobile e por ai vai … Mas existem outras tecnologias que só de olhar fiquei meio bobo , como RoR , Python ,PHP+Zend,C#,GoG e por ai vai … todas estas que eu citei , se eu conseguir gostaria de aprender todas , não ao ponto de ser o NINJA , mas de conhecer e conseguir trabalhar com elas , acredito na estabilidade do Java até mesmo pela Data que esta no mercado , para mim é apenas a tecnologia que dei sorte de aprender a programar primeiro em Java , pois por ser mais “Dificil” creio que aprender as outras é moleza !

Um dia vi um cara falar aqui no fórum , um que tem o simbolo do User Java Group de Minas Gerais , ele citava o seguinte :

Antes que voce me pergunte eu não sou Programador Java , eu sou Programador !

eu creio que este é o caminho … Se a grana hoje é com java Blz!! Se Amanha for Python , bom tbm ! é questão de sobrevivência para se manter no mercado! !

Rafael_Costa_Teixeir

Bem pessoal !!!

No momento estou aprendendo a desenvolver em Java , mas me aventurei em outras linguagens , exemplo:

Arquivo de lot *.Bat

Calma…Calma…eu sei que não é uma linguagem , mas foi a partir daqui que começei a mim interessar pela area de Desenvolvimento , gostava de fazer aqueles menus de inicialização do MS-DOS que a gente configurava nos arquivos Config.sys e Autoexec.bat)

QBasic

Depois de mexer com arquivos *.bat descobrir esse tal de Qbasic que vinha junto com o Ms-DOS 6.22 , cheguei a fazer alguns joguinhos simples utilizando caracteres ASCII.

Turbo Pascal

Mas uma linguagem que brinquei um poucos tambem fiz alguns joguinhos usando caracteres ASCII.

Visual Basic 3.0 (funcionava no Windows 3.11)

Cheguei brincar um pouco com essa linguagem cheguei a fazer alguns joguinhos simples.

C

Depois que começei a aprender a usar o Linux , comecei a fuçar com linguagem C , fiz um joguinho simples e a mais algumas pequenas aplicações em modo texto utilizando a biblioteca ncurses.

Assembler

Apenas uma vaga noção , na epoca em que procurava saber mais sobre como funcionava os sistemas operacionais , consegui fazer um boot loader seguindo os tutoriais do http://www.numaboa.com.br/.

Shell Script

Achei interessante também o desenvolvimento de shell scripts , cheguei a automatizar algumas tarefas no meu trabalho no HP-Unix.

TCL

Facil de aprender , pena que não é quase utilizada (pelo menos no Brasil).
Foi a primeira das anteriores que consegui fazer aplicativos GUI (janelas , botões e afins…)
Cheguei tambem a fazer algumas coisinhas no meu trabalho com ela.

Java

Aqui estou atualmente.

Acredito que a diversidade de conhecimentos é muito bom , pois acredito que para cada tipo de aplicação temos uma linguagem que faz melhor a tarefa.
Exemplo , se vc quer uma aplicação que a portabilidade entre plataformas é fundamental recomendo Java , aplicativos simples e rapidos de serem desenvolvidos mas não irar crescer muito utilizaria TCL , automatizar tarefas do servidor use shell script , deseja alto desempenho e onde a portabilidade não seja importante use C ou C++ , drivers de dispositivos (impresoras , scanner , ou qualquer outra coisa) utilize assembly.

Quanto mais “fluência” vc tiver em diversas linguagens melhor será na implementação em diferentes situações.

Essa foi apenas a minha opinião :thumbup:

rmendes08

Bom, eu sou um pouco suspeito pra falar …

Até concordo que um desenvolvedor não pode ser ater a uma única linguagem coisa e tal … Mas depois da faculdade e de algum tempo programando, posso dizer que meu conceito sobre conhecer uma linguagem/plataforma mudou bastante. O senso comum diz que o importante é conhecer algoritmos, estruturas de dados, etc. e que a linguagem é irrelevante. Não é bem assim.

Conhecer uma linguagem/plataforma vai bem além de conhecer sua sintaxe. Tem muitos aspectos que precisam ser levados em conta: suporta ponteiros ? posso abrir uma diretiva e colocar código assembly ? sim/não, porque ? como a memória é dividida ? tenho que liberar memória na mão ? tem gc ? suporta OO ? suporta closures ?

Enfim, a lista é tão imensa que dizer que não se precisa conhecer a linguagem e preocupar-se somente com a lógica é um simplismo absurdo. Então, eu penso que lógica, estruturas de dados, etc. são importantes sim. São básicos. Mas se você quer construir um bom produto, tem que ser especializado sim. Tem que conhecer a ferramenta a fundo. Migre de Java para C++ convertendo apenas a sintaxe … é memory leak pra todo lado …

Assim, quando eu vejo o pessoal querendo estudar ao mesmo tempo Java, RoR, Python, PHP, Groovy, eu vejo que eles almejam um conhecimento superficial em cada uma delas. Aquele conhecimento restrito a um tipo de aplicação: front-end Web e nada mais. Não dúvido que a onda linguagens dinâmicas em geral sejam mais produtivas que Java. Mas em compensação, não vi nada - por enquanto - que aguente o tranco no back-end tanto quanto Java.

laurocaetano1

Concordo com o rmendes08. O que mais vejo por ai são programadores que tentam saber de tudo ao mesmo tempo e no final não sabem nada. Você conversa com o cara e ele diz “programo em RoR, Java, C#, Python”. Muita gente sai por ai montando CRUD, postando em blogs e colocam no currículo achando que é ninja master ultra mega power.

Acho muito importante conhecer os recursos da linguagem que você é mais confiante, mas isso não te impede de brincar as vezes com qualquer outra linguagem.

D

Eu vejo muitos profissionais com um currículo de 16 folhas ganhando R$ 1.500,00 pois no fundo só sabem escrever código e apertar parafusos, que só sabem fazer críticas a gerência ao invés de apoio, que jogam contra o tempo todo. Linguagem é apenas 1 ponto da área de T.I., qualquer um pode aprender linguagem, todo o diferencial está na regra de negócio.

M

Neste caso é só aprender como finalizar o objeto. Fato: ninguém precisa aprender ponteiros, assembler, como a memória dividida, etc.

mausexdd

A verdade é que todo mundo quer se manter no mercado , Hoje ta bombando JAVA Legal , mas se amanha a linguagem X começar a ser usada em varias empresas acredite você vai programar em X !

Oque citei em relação as tecnologias é o seguinte:

duvido que todos aqui não deram nem uma olhada em como funciona RoR (só de saber oque significa a sigla , já quer dizer que você deu uma olhadinha !)

Quem Manda é o cliente se ele falar vai ser em VB.net o C# sei lá , seu líder de projetos te por para trampar nele , se vira você vai ter que aprender , é mais uma questão de necessidade do que de prazer!

Não discordo em ter uma linguagem em qual se é especialista ou apenas tem mais aptidão … Mas duvido quem não olha a “Linguagem” na vdd ninguem quer ficar para traz , Hoje Java é o momento , mas se amanha não for poucos confirmariam oque esta escrito nestes posts.!

Nada Mais!

luxu

só acho o q kse todos postaram, sou estudante ainda e nesse semestre comecei aprender C#, Dispositivos móveis (for Windows, me fujiu o nome) e PHP e o q mais me chamou a atenção foi o fato de como já conheço a estrutura de dados bem como lógica de programação estou tranquilo aprendendo a sintaxe das mesmas.

rmendes08

Bom, antes de mais nada é preciso ter uma visão mais ampla do mercado. Pela sua fala, você quer dizer clientes que terceirizam projetos de TI. Para os clientes de onde eu trabalho, se o sistema é feito na linguagem X, Y ou Z tanto faz.

rmendes08

Neste caso é só aprender como finalizar o objeto. Fato: ninguém precisa aprender ponteiros, assembler, como a memória dividida, etc.

Não é bem assim. Gerência de memória é um assunto delicado. Quando um objeto nasce e morre no mesmo escopo é fácil. Mas se você tiver objetos que devem sobreviver um longo tempo no sistema a história é outra. O fato é que grandes sistemas em C++ precisam de um módulo para gerência de memória, já que a linguagem não fornece um por padrão.

L

Neste caso é só aprender como finalizar o objeto. Fato: ninguém precisa aprender ponteiros, assembler, como a memória dividida, etc.

É muito mais complicado do que isso. Por isso que Garbage Collection é essencial para produtividade.

ViniGodoy

Aliás, não fornecia, são agora um recurso do C++11: http://en.wikipedia.org/wiki/Smart_pointer#C.2B.2B_Smart_Pointers

Concordo com o que você falou anteriormente.

Além disso, não é pq a linguagem não forneça por padrão, que não existam muitas bibliotecas gratuitas que já oferecem isso há bastante tempo, como a boost, ou a POCO.

Uma coisa é fato, se for usar C++, use C++. Não use C with classes. Muita gente compara C++ ao Java, mas programa C++ como fez na faculdade, ou como faziam em 1980. Descarta os últimos 30 anos de evolução das práticas, não usa quaisquer bibliotecas e nunca nem sequer ouviu falar de conceitos como RAII.

É essencial entender as práticas modernas do que você está programando. Aqui mesmo no fórum vemos gente ainda usando Vector ou o StringTokenizer, mesmo com a documentação atual recomendando explicitamente o contrário.

esdras_63

Acho que tudo que tinham que falar falaram.

Eu acho também que CLARO, você não deve ser escravo de uma linguagem, nada impede de você saber mais de uma. Mas se você quer se profissionalizar tem que ter em mente uma específica para você se aprofundar nela. Não tem como você estudar tudo sobre java, php, c++, c#, RoR, etc. Você pode conhecer mas desenvolver em uma principal.

Claro deve ter pessoas com opniões diferentes dessa…

Mas lógico que se você quer se aprofundar em java web por exemplo, vai ter que saber as linguagens que fazem parte, como: html, css, jsp, JavaScript, sql, etc.

adriano_si

Ué… qualquer um pode aprender negócio também… VocÊ falou como se linguagem de programação fosse coisa de criança e Negócio fosse coisa de adulto.

Cada coisa no seu lugar meu amigo, posso te garantir que não é qualquer um que pode aprender linguagem não… quer dizer, até pode aprender linguagem, mas daí a ser um bom Programador tem um abismo bem fundo…

Muito cuidado com esse tipo de afirmação meu amigo, a generalização é burra. Até concordo em uma pequenina parcela com você, pois vejo que hoje, o Programador que trabalha para o comércio e não se dá o trabalho de entender para o que está trabalhando, é incompleto. Mas daí a “todo mundo aprende linguagem” ??? Desculpa, mas você está errado.

Abs []

Marcio_Nogueira

Utilizo Java, VB.Net, PHP e C#(estudando).

M

Vou ser contra a opinião da maioria. Não vejo defeito em se ater a uma só linguagem, existe mercado tanto pra quem busca abrangência quanto profundidade. Se uma empresa precisar de um especialista em JAva pra trabalhar com essa linguagem, provavelmente não interessará se ele sabe linguagem X ou Y. Vejo como perfis distintos pra mercados distintos.

Enquanto tiver um bom mercado em Java pro profissional e ele estiver bem remunerado, não importa pra ele que existam outras linguagens. Afinal, tem vários profissionais nas outras linguagens e o mundo não vai acabar por causa disso. Se um dia ele precisar de outra linguagem, convenhamos: não é tão difícil aprender .NET, Delphi ou PHP pra quem já conhece bem Java, mesmo que nunca tenha experimentado antes.

J

Neste caso é só aprender como finalizar o objeto. Fato: ninguém precisa aprender ponteiros, assembler, como a memória dividida, etc.

É muito mais complicado do que isso. Por isso que Garbage Collection é essencial para produtividade.

E você chegou a essa conclusão como. Por conta própria ou diz isso para todos os desenvolvedores?

J

marcosalex:
Vou ser contra a opinião da maioria. Não vejo defeito em se ater a uma só linguagem, existe mercado tanto pra quem busca abrangência quanto profundidade. Se uma empresa precisar de um especialista em JAva pra trabalhar com essa linguagem, provavelmente não interessará se ele sabe linguagem X ou Y. Vejo como perfis distintos pra mercados distintos.

Enquanto tiver um bom mercado em Java pro profissional e ele estiver bem remunerado, não importa pra ele que existam outras linguagens. Afinal, tem vários profissionais nas outras linguagens e o mundo não vai acabar por causa disso. Se um dia ele precisar de outra linguagem, convenhamos: não é tão difícil aprender .NET, Delphi ou PHP pra quem já conhece bem Java, mesmo que nunca tenha experimentado antes.

Não sei onde o pessoal vê dificuldades em se aprender uma linguagem ou outra. E dizem ainda que são “especialistas”. Conversa fiada sem tamanho para uma ferramenta que só serve transpor o know how de alguém. Se não tiver know how não adianta saber nenhuma.

É importante saber usar uma variedade delas, até porque existem problemas dos mais diversos tipos que são mais práticos de serem resolvidos com alguma específica.

Existem pessoas que vão querer usar java para system programming, e outras que vão querer usar c para application programming. Daí se vê que não sabem nada.

adriano_si

Também não vejo problema em ser Especialista, mas vejo sim problema em ser “escravo de linguagem”…

Perceba que temos uma distinção de papéis aqui.

Primeiro, o cara que é um programador e mais nada. Esse cara tem todos os motivos do mundo pra buscar ser especialista naquilo que está fazendo atualmente. Se você trabalha para uma empresa que tem um nicho de mercado em uma linguagem específica, porque não se especializar naquela linguagem e se tornar um especialista da mesma ??? Qual o real problema disso ???

Segundo, é o cara que pensa na solução, responsável por decidir em que linguagem o projeto será implementado. Esse cara não deve ser meramente especialista, pode até ser, no ramo que atua hoje, mas precisa buscar ser poliglota, para estar atentos a evolução de outras linguagens, pra poder guiar sua equipe e prepará-la para essas mudanças.

Percebam que especialista em uma linguagem, não quer dizer que aquele cara está fechado naquela linguagem. Hoje eu sou especialista em Java e estudo cada vez mais a Plataforma me apronfudando, mas se amanhã precisar usar .NET, ou PHP, ou Python, ou Ror, etc… Estarei preparado, pois sei que Java não é a solução pra tudo e nem que é o último biscoito do pacote… Sou especialista, mas não Escravo e nem Refém de Linguagem…

Essa que eu acho que é a diferença, existem Especialistas e existem Escravos… Papéis distintos. Existem os que precisam ser especialistas e os que precisam ser não somente especialistas… Funções distintas…

Essa é minha opnião.

Abs[]

[EDIT] - só pra completar meu raciocínio de entender por isso que o povo aconselha que se tenha fortemente os conceitos na cabeça… Linguagem de Programação se aprende rápido quando se sabe programar…

J

pode até ser, mas não consigo conceber um profissional que só digita código e não sabe como as coisas funcionam ou deveriam funcionar.

Se eu tenho uma empresa e preciso colocar um sistema fuzzy em um microcontrolador espero que alguém tenha o know how de qual micro usar que suporte o processamento de um sistema desses e a linguagem adequada a se usar. Isso acontece em qualquer área que tenha um departamento “pesquisa e desenvolvimento”.

no final das contas a linguagem acaba sendo uma ferramenta a se escolher.

matheuslmota

juliocbq:
pode até ser, mas não consigo conceber um profissional que só digita código e não sabe como as coisas funcionam ou deveriam funcionar.

Se eu tenho uma empresa e preciso colocar um sistema fuzzy em um microcontrolador espero que alguém tenha o know how de qual micro usar que suporte o processamento de um sistema desses e a linguagem adequada a se usar. Isso acontece em qualquer área que tenha um departamento “pesquisa e desenvolvimento”.

no final das contas a linguagem acaba sendo uma ferramenta a se escolher.

Exatamente. O pessoal gasta muito tempo aprendendo uma linguagem/framework e não sabe coisas básicas. O que deve ter de programadores que não sabem o que é uma tabela de hash ou mesmo um processo no SO.
Um bom programador com base teórica forte consegue aprender uma linguagem de programação em uma semana. Fico indignado quando vejo alguém se gabando porque vê Java na faculdade. O pessoal deveria focar em aprender primeiramente os conceitos de ciência da computação. Sem enteder esses conceitos, o cara não passa de um code monkey.

M

Neste caso é só aprender como finalizar o objeto. Fato: ninguém precisa aprender ponteiros, assembler, como a memória dividida, etc.

Não é bem assim. Gerência de memória é um assunto delicado. Quando um objeto nasce e morre no mesmo escopo é fácil. Mas se você tiver objetos que devem sobreviver um longo tempo no sistema a história é outra. O fato é que grandes sistemas em C++ precisam de um módulo para gerência de memória, já que a linguagem não fornece um por padrão.

Na minha experiência é perfeitamente possível programar em C++ como se fosse Java, com a unica diferença que você precisa implementar os finalizadores. Agora se você “perde” objetos, ou não sabe depois o que finalizar o problema me parece ser outro…

Rafael_Costa_Teixeir

matheuslmota:

Exatamente. O pessoal gasta muito tempo aprendendo uma linguagem/framework e não sabe coisas básicas. O que deve ter de programadores que não sabem o que é uma tabela de hash ou mesmo um processo no SO.
Um bom programador com base teórica forte consegue aprender uma linguagem de programação em uma semana. Fico indignado quando vejo alguém se gabando porque vê Java na faculdade. O pessoal deveria focar em aprender primeiramente os conceitos de ciência da computação. Sem enteder esses conceitos, o cara não passa de um code monkey.

Acredito que para se especializar em java deve fazer um bom curso focado em java , pois nas faculdades o que tenho observado é que realmente só “vê” java.
Tenho um colega de trabalho que só teve 2 aulas de java na faculdade depois ja passaram para php.

matheuslmota

O certo era a faculdade nem mesmo ensinar linguagens. Na Universidade em que eu estudo, o curso de ciência da computação é inteiramente ministrado sem dar uma linguagem sequer. O aluno é que escolhe uma linguagem para desenvolver os algoritmos passados no curso (embora quase todos escolham C), mas ele mesmo tem que ir atras aprender. Em compensação, ao sair de lá, o cara consegue aprender qualquer linguagem com muita facilidade.
Quer aprender Java? Faço um curso em uma escola especializada no ensino de linguagens, comoa a Caelum.

L

matheuslmota:
Rafael Costa Teixeira:

Acredito que para se especializar em java deve fazer um bom curso focado em java , pois nas faculdades o que tenho observado é que realmente só “vê” java.
Tenho um colega de trabalho que só teve 2 aulas de java na faculdade depois ja passaram para php.

O certo era a faculdade nem mesmo ensinar linguagens. Na Universidade em que eu estudo, o curso de ciência da computação é inteiramente ministrado sem dar uma linguagem sequer. O aluno é que escolhe uma linguagem para desenvolver os algoritmos passados no curso (embora quase todos escolham C), mas ele mesmo tem que ir atras aprender. Em compensação, ao sair de lá, o cara consegue aprender qualquer linguagem com muita facilidade.
Quer aprender Java? Faço um curso em uma escola especializada no ensino de linguagens, comoa a Caelum.

Faculdade , não se aprender a programar.

:roll:

douglaskd

Trocaria todo o conhecimento basico/intermediario que tenho em várias linguagens para ser senior++ em apenas uma,

O mercado é “experto” se você especializar um profissional em algo, deve pagar mais por ele, aqui a intenção é deixar o profissional o mais genérico possivel, para ter menor valor e também para que seja possivel fazer a substituição do mesmo sem grandes perdas.

há de dizerem que com o tempo o profissional especialista não será mais especialista pelo baixo uso da linguagem, mais eu prefiro ser ótimo e ganhar bem por um tempo, do que meia boca e ganhar um salario meia boca durante toda a vida.

quem sofre em aprender várias técnologias são os profissionais, o mercado que nos força a isso. “nós não temos escolha”.

essa é uma caracteristica do Toyotismo.

“2.Processo de multifuncionalização de sua mão-de-obra, uma vez que por se basear na mecanização flexível e na produção para mercados muito segmentados, a mão-de-obra não podia ser especializada em funções únicas e restritas como a fordista. Para atingir esse objetivo os japoneses investiram na educação e qualificação de seu povo e o toyotismo, em lugar de avançar na tradicional divisão do trabalho, seguiu também um caminho inverso, incentivando uma atuação voltada para o enriquecimento do trabalho.”

claro em várias profissões isso funciona e que eu me lembre, como todos sabiam fazer tudo, qualquer um era subistituível… mais em programação é diferente, só que não só as empresas quantos nós mesmos tendemos a querer saber sempre tudo, e acabamos não sabendo nada…somos apenas barbaros raspando a técnologia, com ganancia de conhecimento e lucros.

J

matheuslmota:
Rafael Costa Teixeira:

Acredito que para se especializar em java deve fazer um bom curso focado em java , pois nas faculdades o que tenho observado é que realmente só “vê” java.
Tenho um colega de trabalho que só teve 2 aulas de java na faculdade depois ja passaram para php.

O certo era a faculdade nem mesmo ensinar linguagens. Na Universidade em que eu estudo, o curso de ciência da computação é inteiramente ministrado sem dar uma linguagem sequer. O aluno é que escolhe uma linguagem para desenvolver os algoritmos passados no curso (embora quase todos escolham C), mas ele mesmo tem que ir atras aprender. Em compensação, ao sair de lá, o cara consegue aprender qualquer linguagem com muita facilidade.
Quer aprender Java? Faço um curso em uma escola especializada no ensino de linguagens, comoa a Caelum.

Cara, só por curiosidade, qual a faculdade que você estuda?

Achei interessante essa abordagem

matheuslmota

UFC

F

matheuslmota:
javablue:

Cara, só por curiosidade, qual a faculdade que você estuda?

Achei interessante essa abordagem

UFC

Mesma faculdade do Anderson Silva.

tun dun pshh (era pra ser barulho de tambor pra piada sem graça)

J

douglaskd:
Trocaria todo o conhecimento basico/intermediario que tenho em várias linguagens para ser senior++ em apenas uma,

O mercado é “experto” se você especializar um profissional em algo, deve pagar mais por ele, aqui a intenção é deixar o profissional o mais genérico possivel, para ter menor valor e também para que seja possivel fazer a substituição do mesmo sem grandes perdas.

há de dizerem que com o tempo o profissional especialista não será mais especialista pelo baixo uso da linguagem, mais eu prefiro ser ótimo e ganhar bem por um tempo, do que meia boca e ganhar um salario meia boca durante toda a vida.

quem sofre em aprender várias técnologias são os profissionais, o mercado que nos força a isso. “nós não temos escolha”.

Temos sim. Se você tem know how ninguém pode te arrancar isso. E se só você pode resolver determinado problema então você acaba sendo muito valorizado. A idéia é justamente o contrário, algumas empresas querem somente digitadores para que possam pagar um valor não condizente com profissionais da área.

Quando eu falo know how não falo de conhecimento de linguagem de programação e sim da área da computação que é abrangente. Você sabe como criar sistemas complexos e sabe como criar soluções. Esse é o diferencial.

F

Essa idéia citada de deixar o profissional o mais genérico possível para ser de fácil substituição não faz o menor sentido pra mim. É um tiro no pé. Se a empresa não tem especialistas de alto nível em determinadas tecnologias, ela vai ter softwares no máximo medíocres. Isso também é válido pra empresas que não valorizam designers, testers e outros.

douglaskd

várias empresas atiram no pé

F

várias empresas atiram no pé

Aí cabe ao profissional buscar uma empresa que não está cometendo suicídio.

douglaskd

juliocbq:
douglaskd:
Trocaria todo o conhecimento basico/intermediario que tenho em várias linguagens para ser senior++ em apenas uma,

O mercado é “experto” se você especializar um profissional em algo, deve pagar mais por ele, aqui a intenção é deixar o profissional o mais genérico possivel, para ter menor valor e também para que seja possivel fazer a substituição do mesmo sem grandes perdas.

há de dizerem que com o tempo o profissional especialista não será mais especialista pelo baixo uso da linguagem, mais eu prefiro ser ótimo e ganhar bem por um tempo, do que meia boca e ganhar um salario meia boca durante toda a vida.

quem sofre em aprender várias técnologias são os profissionais, o mercado que nos força a isso. “nós não temos escolha”.

Temos sim. Se você tem know how ninguém pode te arrancar isso. E se só você pode resolver determinado problema então você acaba sendo muito valorizado. A idéia é justamente o contrário, algumas empresas querem somente digitadores para que possam pagar um valor não condizente com profissionais da área.

Quando eu falo know how não falo de conhecimento de linguagem de programação e sim da área da computação que é abrangente. Você sabe como criar sistemas complexos e sabe como criar soluções. Esse é o diferencial.

é ai que quero chegar, algumas empresas chamam de implementador…alguma coisa…

ser especialista em várias linguagens é extremamente dificil, saber tudo sobre elas, performance, usos etc… 1 profissional teria grande dificuldade pra dominar tudo isso, e conseguir se lembrar de tudo.

no final das contas, e uma questão de equilibrio, você tem um tempo de aprendizado durante toda a vida, ou investe em coisas variadas, ou investe em poucas coisas com o maximo de foco possivel em cada uma delas.

a questão do know how é o x da questão. só que existem vários tipos de know how, querer saber todos eles é impossivel. por isso o foco é necessário. e cada um vai encontrar seu valor em determinado problema.

da mesma maneira que existem “Escravos de Linguagens” existem “Escravos do aprendizado de Linguagens” que nao conseguem manter o foco. o lance é ter equilibrio, saber escolher, encontrar um nicho.

J

douglaskd:

é ai que quero chegar, algumas empresas chamam de implementador…alguma coisa…

ser especialista em várias linguagens é extremamente dificil, saber tudo sobre elas, performance, usos etc… 1 profissional teria grande dificuldade pra dominar tudo isso, e conseguir se lembrar de tudo.

no final das contas, e uma questão de equilibrio, você tem um tempo de aprendizado durante toda a vida, ou investe em coisas variadas, ou investe em poucas coisas com o maximo de foco possivel em cada uma delas.

a questão do know how é o x da questão. só que existem vários tipos de know how, querer saber todos eles é impossivel. por isso o foco é necessário. e cada um vai encontrar seu valor em determinado problema.

da mesma maneira que existem “Escravos de Linguagens” existem “Escravos do aprendizado de Linguagens” que nao conseguem manter o foco. o lance é ter equilibrio, saber escolher, encontrar um nicho.

é difícil sim, e no final não compensa ter essa preocupação se você pensar que elas ficam obsoletas em um curto espaço de tempo. Você não precisa ter um conhecimento vasto em cima de nenhuma linguagem. Para resumir, o bom conhecimento é aquele que não se desgasta.

Quando você conhece bem conceitos de engenharia e matemática relacionadas você vai utilizar bem qualquer uma dessas ferramentas.

*Não estou dizendo que não precisa conhecer bem uma dessas ferramentas, ainda mais se você vive de escrever software, mas o conceito de engenharia e matemática na computação é muito mais importante para esse tipo de profissional.

douglaskd

juliocbq:
douglaskd:

é ai que quero chegar, algumas empresas chamam de implementador…alguma coisa…

ser especialista em várias linguagens é extremamente dificil, saber tudo sobre elas, performance, usos etc… 1 profissional teria grande dificuldade pra dominar tudo isso, e conseguir se lembrar de tudo.

no final das contas, e uma questão de equilibrio, você tem um tempo de aprendizado durante toda a vida, ou investe em coisas variadas, ou investe em poucas coisas com o maximo de foco possivel em cada uma delas.

a questão do know how é o x da questão. só que existem vários tipos de know how, querer saber todos eles é impossivel. por isso o foco é necessário. e cada um vai encontrar seu valor em determinado problema.

da mesma maneira que existem “Escravos de Linguagens” existem “Escravos do aprendizado de Linguagens” que nao conseguem manter o foco. o lance é ter equilibrio, saber escolher, encontrar um nicho.

é difícil sim, e no final não compensa ter essa preocupação se você pensar que elas ficam obsoletas em um curto espaço de tempo. Você não precisa ter um conhecimento vasto em cima de nenhuma linguagem. Para resumir, o bom conhecimento é aquele que não se desgasta.

Quando você conhece bem conceitos de engenharia e matemática relacionadas você vai utilizar bem qualquer uma dessas ferramentas.

*Não estou dizendo que não precisa conhecer bem uma dessas ferramentas, ainda mais se você vive de escrever software, mas o conceito de engenharia e matemática na computação é muito mais importante para esse tipo de profissional.

exatamente!..

talves por isso eu considere os pesquisadores, (fisicos, matemáticos, programadores Asm / C / C++ ) desenvolvedores de técnologias em geral. verdadeiros programadores.

vendo ao extremo, somos implementadores de soluções usando técnologias criadas por programadores-pesquisadores.

L

Neste caso é só aprender como finalizar o objeto. Fato: ninguém precisa aprender ponteiros, assembler, como a memória dividida, etc.

É muito mais complicado do que isso. Por isso que Garbage Collection é essencial para produtividade.

E você chegou a essa conclusão como. Por conta própria ou diz isso para todos os desenvolvedores?

Basta estudar a área de gerenciamento dinâmico de memória que isso é óbvio.

Nâo há a opção de não se gerenciar a memória, você precisará fazê-lo de uma forma ou de outra. Se a linguagem não oferece uma solução então você precisará fazê-lo manualmente, o que a torna menos produtiva e com maior possibilidade de bugs.

C++ é inadequado para a maioria das coisas para que é usado. É utilizado somente por inércia e ignorância dos desenvolvedores. Principalmente nos dias de hoje onde multicore é uma realidade.

J

Longino:

Basta estudar a área de gerenciamento dinâmico de memória que isso é óbvio.

Nâo há a opção de não se gerenciar a memória, você precisará fazê-lo de uma forma ou de outra. Se a linguagem não oferece uma solução então você precisará fazê-lo manualmente, o que a torna menos produtiva e com maior possibilidade de bugs.

C++ é inadequado para a maioria das coisas para que é usado. É utilizado somente por inércia e ignorância dos desenvolvedores. Principalmente nos dias de hoje onde multicore é uma realidade.

Se criar um simples smart pointer é uma coisa complicada para você dá para perceber que não entende nada de c++. Além de que a biblioteca padrão inclui vários tipos deles. Com o uso correto você deixa uma boa aplicação escrita em java a anos luz de distância no quesito qualidade de desempenho.

No site do vini godoy existe uma introdução a eles:
http://www.pontov.com.br/site/cpp/43-smart-pointers/52-smart-pointer-introducao

Se c++ fosse inadequado para a maioria das aplicações as grandes empresas já teriam abolido sua prática a mais de 20 anos. Mas mesmo hoje a maioria(90%) das aplicações são escritas nessa linguagem, e as novas que virão continuaram a fazê-lo.

Por que?

  • c++ não gasta recursos desnecessários como linguagens que utilizam runtimes como máquinas virtuais.
  • compiladores de c++ geram código extremamente enxutos;
  • é linguagem de alto nível focada para desenvolvimento de sistemas computacionais (Sistemas Operacionais)

… e por aí vai

Para dizer que c++ é inadequado para aplicações você precisa estar no mínimo muito desinformado.

rmendes08

Bom, vou citar um outro exemplo. Vamos pensar nos conhecimentos que um bom DBA precisa: modelo relacional de dados (incluindo a álgebra relacional), estruturas de dados (afinal, ele precisa entender o que é um índice), sistemas operacionais, redes, etc. Ou seja, todo esse conhecimento é necessário, é premissa para que ele se torne um bom DBA. Agora, o fato de ele ter esse conhecimento, não vai dispensá-lo em algum momento de especializar-se em uma ferramenta específica: Oracle, SQL-Server, Postgree, etc. Isso porque quando alguma merda acontece, mesmo que ele conheça a solução conceitual do problema esse cara não vai ter tempo de ficar pesquisando documentação ou correndo atrás de referência, a resposta tem que estar na ponta da língua.

rmendes08

Uma analogia: pensemos em uma pirâmide. Lógica, estruturas de dados, matemática … isso é a base da pirâmide. As ferramentas são a ponta. A ponta você troca com facilidade, a base é o que te sustenta. Porém, você precisa da pirâmide toda.

rasinc

Desculpa a crítica cara, mas que texto mal escrito da porra.

Sobre o assunto(se é que eu entendi):
Eu sou do pensamento que quanto mais agregar melhor, a minha linguagem favorita, ou seja, a que eu me sinto mais à vontade é Java, entretanto não vejo mal nenhum em utilizar outra.

Olha Eu não sou de me irritar com crítica não, até gosto e aprendo mais. O problema está no seguinte:
“Uma crítica não pode ser conforme alguns estudantes tirando uma dúvida da seguinte forma num Professor:
Professor não entendi!
Lógico o professor vai pensar: Não entendeu o quê? Onde está o problema?”
Você tem que explicar sua dúvida dando o seu ponto de vista e tornando-a numa dúvida mais pontual. Assim dá próxima vez justifique e aponte alguns erros… Claro que você pode pensar o seguinte. “Para quê me dar o trabalho?” javascript:emoticon(’:D’); Agora sobre o post, eu não quiz desenrolar uma discussão sobre que linguagem é melhor, se ser espelista numa ou noutra, ou aprender de tudo e saber tudo na superficialidade. Mas era tentar dar o meu ponto de vista que mesmo um programador Java Senior contratado para trabalhar num projecto para desenvolvimento de aplicações para Iphone e querer arranjar emuladores para isso, que suporte Java em Iphone, enquanto existe uma gama de documentação no próprio site da desenvolvedor sobre padrões, ides e linguagens de desenvolvimento para o Iphone. É disso que realmente tentei retratar… Que as vezes a linguagem que usamos não nos serve para tudo. Eu vejo pessoas entrando em projectos sem saber os requesitos e padrões de desenvolvimento, sem antes fazer planejamentos e análises do sistema a ser desenvolvido, e simplesmente reunir a equipa e colocar mão no código. A primeira versão dessas aplicações até parecem legais ao cliente, mas quando precisar de manutenção, actualização e mais; simplesmente resumindo o tempo de vida dessas aplicações são bastante curtos, se é que realmente cheguem mesmo a resultar. :smiley: Lembrando que fiquei perdido nesta discussão, pois sou apenas um “noob”. Esse foi o meu parecer…

Grato!

L

Não, não é tão simples assim porque uma biblioteca mal comportada pode ferrar com a tua aplicação facilmente.

Gerenciamento de memória é trabalho braçal, e como todo trabalho braçal deve ser evitado a todo custo. Não há inteligência nisso.

Computadores são muitos mais aptos a realizarem tarefas repetitivas, e justamente por isso delegar a um outro software o gerenciamento de memória é a solução mais lógica e mais correta na maioria dos casos.

Na realidade no quesito qualidade de desempenho (e todos os outros) uma aplicação Java tende a ficar melhor, a menos que seja um caso muito específico, pois é muito mais fácil escrever uma aplicação que funcione em Java (assim como Lisp ou outras linguagens que rodem em VM).

Se o Java está afundado na lama até o pescoço, parecendo tecnologia ultrapassada, então o C++ já está a três metros de profundidade. O presente é multicore e C++ não oferece solução viável para isso, além de não ter uma série de outros recursos interessantes de linguagens funcionais.

Desenvolvedores precisam de ferramentas melhores do que essas. Que ofereçam soluções fáceis para uma série de problemas (e C++ não oferece nenhuma, diga-se de passagem).

M

Empresas trabalham com gente de diferentes perfis. Se a empresa já tem uma equipe de funcionários generalistas e precisa de um especialista Java ou .NET, não vejo problemas desse especialista ser fanático pela linguagem e querer usar apenas ela, já que é justamente essa a necessidade da empresa. Pras outras necessidades, tem os outros funcionários com o perfil mais adequado.

Existe mercado pra todos e necessidades pra todos.

J

Longino:
juliocbq:

Se criar um simples smart pointer é uma coisa complicada para você dá para perceber que não entende nada de c++. Além de que a biblioteca padrão inclui vários tipos deles. Com o uso correto você deixa uma boa aplicação escrita em java a anos luz de distância no quesito qualidade de desempenho.

Não, não é tão simples assim porque uma biblioteca mal comportada pode ferrar com a tua aplicação facilmente.

Gerenciamento de memória é trabalho braçal, e como todo trabalho braçal deve ser evitado a todo custo. Não há inteligência nisso.

Computadores são muitos mais aptos a realizarem tarefas repetitivas, e justamente por isso delegar a um outro software o gerenciamento de memória é a solução mais lógica e mais correta na maioria dos casos.

Na realidade no quesito qualidade de desempenho (e todos os outros) uma aplicação Java tende a ficar melhor, a menos que seja um caso muito específico, pois é muito mais fácil escrever uma aplicação que funcione em Java (assim como Lisp ou outras linguagens que rodem em VM).

Se o Java está afundado na lama até o pescoço, parecendo tecnologia ultrapassada, então o C++ já está a três metros de profundidade. O presente é multicore e C++ não oferece solução viável para isso, além de não ter uma série de outros recursos interessantes de linguagens funcionais.

Desenvolvedores precisam de ferramentas melhores do que essas. Que ofereçam soluções fáceis para uma série de problemas (e C++ não oferece nenhuma, diga-se de passagem).

Nossa, quanta besteira, numa boa. Você nunca vai oferecer uma solução de qualidade superior a uma escrita em c++ para aplicações de prateleira. O seu player de vídeo nunca será escrito em java ou c#, seu office será sempre escrito em c++, nem a grande maioria dos jogos que você for jogar pelas razões que eu já citei no outro post e não vou repetir. Gerenciamento de memória não é trabalho braçal. É simples quando você sabe o que fazer. Quando não se sabe é outra história.

Agora sobre java estar afundado na lama foi você quem disse isso.

J

marcosalex:
Empresas trabalham com gente de diferentes perfis. Se a empresa já tem uma equipe de funcionários generalistas e precisa de um especialista Java ou .NET, não vejo problemas desse especialista ser fanático pela linguagem e querer usar apenas ela, já que é justamente essa a necessidade da empresa. Pras outras necessidades, tem os outros funcionários com o perfil mais adequado.

Existe mercado pra todos e necessidades pra todos.

Eu não vejo problema nisso também não. Aliás se você trabalha com determinada tecnologia deve tirar melhor proveito da ferramenta. O problema é quando os profissionais ficam alienados por causa de promessas fictícias tecnológicas como é o caso acima aí, postado.

Aprender ciência da computação em processadores virtuais dá nisso. O contato com uma linguagem para um processador real é essencial para você saber como uma máquina funciona e adquirir conhecimento necessário pelo menos para não sair dizendo bobagens.

L

juliocbq:

Agora sobre java estar afundado na lama foi você quem disse isso.

Basta ver o mercado aí fora para perceber que “software de prateleira” não existe mais. Nem jogos se compram mais em lojas reais. A tendência é eles deixarem de existir totalmente com o tempo e tudo ser comprado através de app stores.

O Java precisa de bastante investimento para tornar a linguagem mais adequada às necessidades modernas e a VM mais adequada a outras linguagens.

Criado 16 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 49
Participantes 22