logo
Contato | Sobre...        
rebarba rebarba

Poder e flexibilidade

Por Rodrigo Strauss
Era uma vez

Programei durante muito tempo em Visual Basic 3/4/5/6. Quase uma década para dizer a verdade. Depois de todo esse tempo, finalmente chegou aquele fatídico dia em que eu achei que o Visual Basic não me era mais suficiente. Eu já tinha lido o clássico livro do Appleman sobre Win32 API e Visual Basic, mas usar API no VB não é nada confortável. Recorrer ao "Api Text Viewer" o tempo todo para gerar os famosos Declares das funções já estava ficando cansativo. Isso tudo na mesma época em que eu peguei emprestado dois livros de programação Win32 (esse e esse, eu estava em boas mãos) voltados para linguagem C. Era tudo que eu precisava para começar a estudar Visual C++.

Programar em C me deu uma visão muito mais ampla das possibilidades de desenvolvimento de software. Usando C na plataforma Windows você tem acesso completo ao sistema, consegue fazer qualquer coisa. Afinal, o próprio Windows é feito em C (assim como o Linux e a grande maioria dos sistemas operacionais). Desse dia em diante tudo mudou. Comecei a me sentir poderoso, afinal, eu programava na mesma linguagem que os caras que fizeram o Windows. Do que me servia aquele desprezível Visual Basic (leia até o final antes de me odiar)? Afinal, além de 99,99% dos aplicativos comerciais serem feitos em C/C++ (Office, CorelDRAW, Photoshop, o próprio VB, o que você pensar é feito em C ou C++), VB não tem pré processador, não tem herança múltipla, inline assembly, STL, ATL, WTL, templates, metaprogramação, não faz drivers etc, etc. Eu não precisava mais do VB, eu tinha uma linguagem flexível e poderosa onde eu conseguia fazer qualquer coisa. Mas o poder e a flexibilidade sempre têm um preço: tempo.

Existe uma linguagem certa para cada tarefa

Nenhuma linguagem de programação é simplesmente melhor ou pior. As linguagens podem ser melhores ou piores para uma determinada tarefa, mas não existe nenhuma linguagem perfeita. Acha realmente que sua linguagem é a melhor do mundo? Então quer dizer que você conhece todas as linguagens e consegue explicar porque a sua é melhor que todas elas?

Em Assembly você consegue fazer qualquer coisa, mas pode demorar muuuuito tempo. Produtividade também é um recurso importante de uma linguagem, principalmente nos dias de hoje. A Microsoft fala insistentemente que uma das grandes vantagens do .NET é o aumento na produtividade do programador. Quanto menos tempo o programador precisar se envolver com detalhes de baixo nível, mais tempo ele terá para focar-se no problema que está resolvendo. Ao invés dele se preocupar se a função coloca o retorno no registrador EAX ou no EBX, ele usará esse tempo para criar mais uma tabela no SQL Server ou fazer mais uma reunião... :-)

De alguns anos para cá, a área de desenvolvimento de software tem passado por uma grande evolução. Desde os anos do GW-BASIC (minha primeira linguagem) até o C# e as managed runtimes, muita coisa mudou. Eu sei que ainda existem pessoas que continuam usando ferramentas de 10 anos atrás, como Clipper, mas isso já é outra história. A realidade é que hoje existem milhares de opções para desenvolver um software. Java, PowerBuilder, C++, PHP, Visual Basic, Delphi, Perl, Ruby, .NET, isso sem falar nas bibliotecas de cada linguagem. A quantidade é imensa.

Considerando a ordem cronológica da evolução das linguagens mais utilizadas, teremos resumidamente: Assembly, C, C++, VB/Delphi, Java/C#. A idéia que nos vem a cabeça vendo essa evolução é de que, a medida que o tempo passa, escrever software comum vem ficando cada vez mais fácil, cada vez mais rápido. Já pensou desenvolver aquele sisteminha de cadastro de clientes que você fez em Visual Basic usando Assembly? Isso levaria o triplo do tempo e tornaria a manutenção do programa bem mais difícil.

Agora vamos vamos mudar o foco: digamos que você é um programador da HP, e seu gerente acha que a BIOS (que está longe de ser um programinha) do seu fornecedor não resolve todos os seus problemas. Assim, você foi o felizardo escolhido para desenvolver a nova BIOS dos micros HP, onde a inicialização do micro será bem mais rápida e será exibido um logotipo da HP de altíssima resolução toda vez que o computador for inicializado. BIOS quer dizer Basic Input and Output System, que é basicamente o software que controla o seu computador ANTES que o sistema operacional seja carregado.

Aí você pensa: “Isso vai ser fácil. Eu gravo o logotipo da HP em um GIF e uso GDI+ para mostrar isso”. Como assim GDI+? Durante a inicialização do computador, não existe Windows, não existe sistema operacional. Nada de GDI, nada de runtime, nada de API. Nessa fase, é só você e o processador, mais ninguém. E quando você chega nesse ponto, só existe um meio: Assembly. Onde está seu .NET agora?

Tem para todos os gostos

Você já ouviu falar da linguagem OCaml? Provavelmente não. Existe um campeonato internacional de programação, o ICFP Programming Contest, que todo ano propõe um problema, que pode ser resolvido usando qualquer linguagem de programação. Todos os anos, entre os vencedores, estão as equipes que usaram C e OCaml . É perfeitamente compreensível que a linguagem C esteja entre os vencedores, já que é a linguagem mais usada. Mas eu nunca conheci uma empresa que desenvolvesse alguma coisa usando OCaml. Sinceramente eu nem sei como pronunciar isso, e nunca tinho ouvido falar nessa linguagem até ver uma página desse concurso que diz que OCaml é uma das melhores linguagens para desenvolvimento e prototipagem rápida.

Linguagens novas nascem a cada ano. Se você montar uma lista com todas as linguagens de programação que existem , acho que você vai receber um e-mail do seu chefe sobre gasto excessivo de folhas de sulfite. Existem centenas delas, algumas mais antigas, algumas mais novas, mas elas nunca param de nascer.

Você acha que a linguagem C deveria ser orientada a objeto? Crie o C++. Acha que o conceito de ponteiro é muito complicado para um programador mundano? Cansado de se preocupar com o gerenciamento de memória? Invente o Java. Sua linguagem tem garbage collector , mas não suporta overload (sobrecarga) de operadores nem ponteiros de função (delegates)? Crie o C#. Acha que o C++ deveria ter garbage collector? Crie a linguagem D. Você também acha que essa história de tirar herança múltipla na linguagem D foi uma péssima idéia? Crie sua própria linguagem.

Gosto não se discute

Uma coisa muito interessante que acontece quando uma pessoa vê uma linguagem pela primeira vez, é o amor ou ódio à primeira vista quanto à sintaxe. Eu sou um programador C++. Então eu acho muito melhor a sintaxe do PHP do que a do Ruby já que o PHP é muito mais parecido com C++. Dizem que Ruby, Tcl e Lua são linguagens de script muito interessantes, mas a sintaxe simplesmente não me agrada. Essas novas linguagens são ótimas, principalmente para manipulação de listas e outras coisas do dia a dia. Ao invés de serem genéricas, como o C, elas foram criadas para resolver um problema específico e têm um escopo mais reduzido. Se uma linguagem for criada especialmente para manipular XML, muito provavelmente ela será melhor nessa tarefa do que as outras.

Acho a proposta dessas linguagens muito boa, mas uma coisa me deixa incomodado: a falta do colchete e outras características que eu estou acostumado. Isso tem explicação? Vamos ver alguns exemplos de códigos retirados de uma página com exemplos em diversas linguagens:

Ruby (cálculo do PI)
k, a, b, a1, b1 = 2, 4, 1, 12, 4
while TRUE
# Next approximation
p, q, k = k*k, 2*k+1, k+1
a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
# Print common digits
d = a / b
d1 = a1 / b1
 while d == d1
print d
$stdout.flush
a, a1 = 10*(a%b), 10*(a1%b1)
d, d1 = a/b, a1/b1
end
end
Python (algoritmo de quicksort)
def quicksort(arr):
if len(arr) <= 1: return arr
m = arr[0]
return quicksort(filter(lambda i,j=m: i<j, arr)) + \
        filter(lambda i,j=m: i==j, arr) + \
        quicksort(filter(lambda i,j=m: i>j, arr))

print quicksort([5,99,2,45,12,234,29,0])
Lisp (Fatorial)
(defun fact (n)
(loop for i from 2 to n
    for fact = 1 then (* fact i)
    finally (return fact)))

(format t "Factorial of 6 is: ~A~%" (fact 6))
Cobol (Hello World)
IDENTIFICATION DIVISION.
PROGRAM-ID. HelloWorld.
AUTHOR. Joselito, o sem noção.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.

DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.

PROCEDURE DIVISION.
DISPLAY "Hello World".
STOP RUN

Eu consigo entender os algoritmos, e vejo características bem interessantes nas linguagens. A atribuição de variáveis do Ruby é bem interessante. A forma de definir uma lista inline na chamada da função quicksort no Python também é muito boa. Bom, acho que se eu programasse em Lisp a tecla de parênteses do meu teclado iria ficar apagada em uma semana, e o programa em Cobol eu prefiro não comentar. Mas alguma coisa está errada, alguma coisa me dá agonia: onde estão os colchetes??? Por que a palavra "def" ou "defun" para definir uma função??? Socorro!!! São coisas simples que, aparentemente não seriam um problema para estudar a linguagem. Mas são. Você já deixou de ir a um lugar simplesmente por que não foi com a cara dele? É exatamente a mesma coisa, só que no caso de linguagens é um pouco pior.

Mas existe uma coisa que ajuda a tirar a má impressão sobre a sintaxe de uma linguagem: a necessidade. Eu não gosto de programar em T-SQL, mas eu tenho que fazer isso de vez em quando. A sintaxe do T-SQL está bem longe do que eu acho ideal, mas eu não tenho outra opção. Hoje em dia eu ainda não gosto muito de fazer isso, mas não tenho mais o mesmo estranhamento quanto a sintaxe. E mesmo se eu ainda tivesse, acho que isso não é uma desculpa suficiente boa para dispensar um projeto...

Futebol, política, religião e... linguagem de programação

Linguagem de programação é um assunto tão delicado quanto o seu time do coração ou sua religião. Cada pessoa tem um argumento que segundo ela, é infalível para defender os recursos e as limitações da sua linguagem. Não importa, a linguagem que você gosta e está acostumado é sempre a melhor para resolver seus problemas, mas não necessariamente os problemas dos outros. Lembre-se: por mais que você tenha trabalhado em 100 empresas nos últimos 10 anos, você nunca conhece o suficiente e nunca conhece o mercado inteiro.

Existem empresas que fazem software para resolver os mais diversos problemas, e para cada um deles existe uma linguagem ou uma ferramenta que é mais adequada. E se o problema dessa empresa não é resolvido por nenhuma linguagem ou ferramente existente, com certeza essa empresa tem recursos para criar alguma coisa que resolva esse problema (VBScript rodando em Z80?).

Redenção

A medida que o tempo passava, percebi que algumas coisas que existem no VB não são encontradas em C/C++. É muito mais simples manipular strings no VB, já que no C não existe string no sentido literal da palavra. É mais fácil desenvolver em VB. É muito mais fácil fazer com que uma pessoa se interesse por programação mostrando como ela faz aparecer um MessageBox ao clicar em um botão. Muito mais fácil do que tentar explicar o que é um ponteiro e para que ele serve.

O VB6 tem um recurso maravilhoso que não existe em nenhuma outra linguagem ou ferramenta que eu conheça: seu programa é interpretado durante o debug e compilado para distribuição. Isso facilita muito as coisas. Você pode mudar o ponteiro de função (arrastando a famosa seta amarela) para o início da função e reescrever seu código sem reiniciar o programa. Quando você quer fazer um programinha para resolver um problema pequeno (Como formatar um arquivo texto), é muito mais fácil ir modificando o programa enquanto você faz o debug até que o resultado seja o que você quer. Nada de compilações demoradas, nada de salvar o script e rodar de novo, nada de reiniciar o seu programa. Isso é o que eu chamo de Live Programming, programe enquanto o seu código está rodando.

Sim, é claro que você consegue fazer Live Programming em C/C++ usando um debugger de gente grande (WinDbg, SoftIce): Aloque uma quantidade razoável de memória no seu programa, escreva código assembly nessa memória alocada e mova o ponteiro de instrução do processador (registrador IP) para essa memória. Facinho, né? Já fiz algo assim programando drivers, mas isso está longe de ser uma coisa comum.

End Sub

E não esqueça: nada é definitivo. Meu desprezo pelo VB não foi e suas escolhas também não serão. A sua linguagem preferida hoje, pode estar ultrapassada daqui uns anos e você será obrigado a mudar, ou escolher continuar vivendo no passado até o fim da sua vida. Além do fator "tecnologia expirada", sua linguagem será a preferida até que você tenha um problema que ela não resolva. Desse dia em diante, você corre o sério risco de, procurando uma linguagem que resolva o seu problema, encontrar uma linguagem que será sua nova preferida e definitiva.


  
 
 
Comentários
Bruno Vilar | e-mail | em 10/09/2004 | #
poder e flexibilidade
pra um bom entendedor basta.
isso foi uma aula de paradigma
de linguagem de programação,foi show parabens vc ganhou um admirador e colega da área
Fabio Galuppo | website | em 18/10/2004 | #
Excelente!

Hoje temos alguns grandes "males"... Dynamic Programming Language e Managed Environments

Dynamic Programming Language são Ruby, Python e todas estas novas linguagens com construções muito simples. Normalmente em 1 linha de programa vc faz vérias instruções. Dynamic Programming Language em essencia são interpretadas. Mas são excelentes consumidoras de libraries, no mundo MS temos JScript e VBScript que não deixam de ser dinâmicas, no futuro, o shell Monad vai permitir scripting com linguagens .NET como C#.... Ok, isto o BASIC "já fazia" (nas devidas proporções), correto? O que existe hoje para estes ambientes são máquinas muito velozes!

Managed Enviroments - CLR, JVM, ... - Produtividade e simplicidade... Gostaria de lembrar q a produtividade destes ambientes são atribuidos as suas bibliotecas e não a linguagem em si... Se C++ tivesse um set de bibliotecas nativas como o .NET FCL a produtividade alta tbm! Em termos de algoritmos, existe algo mais produtivo que STL ? Acho q não!

De qq modo acredito q haja espaço para tudo, mas principalmente C++. Acho C++ a highlander das linguagens. Hj os principais softwares (incluindo Dyn Prog e Man Env) são escritos nela. Sintetizando, C++ tem o PODER necessário para se fazer tudo! E é FLEXIVEL o suficiente para estar presente em qq lugar (Pocket, C++/CLI, ...).

A grande vantagem disto é CONTROLE! Vc tem o dominio e é responsável pelos atos... É muito fácil programar em C++, o díficil é fazê-lo corretamente!

Por outro lado o que conhecemos como aplicativos (E-Commerce, Software Gerenciador de Padaria - como alguns ERPs que tem por ai, ...), serão escritos em ambiente gerenciado (pois esta é a proposta!). O mundo nativo, perde força, para o mundo gerenciado neste quesito... Mas quem dominar ambos, estará muito bem - e sempre os internals fazem a diferença!

Poder sem Controle não é nada :) C++ (juntamente com o mundo nativo) te oferece isto. O mundo gerenciado é maravilhoso. Saber usar os 2 é a chave para flexibilidade. Então, seja um cidadão dos 2 mundos :)
Emílio Wuerges | e-mail | em 20/10/2004 | #
Discordo totalmente do comentário acima.

Linguagens como Python são produtivas devido a facilidade que oferecem aos próprios desenvolvedores delas.
É muito mais fácil compilar Python do que C++, e desta maneira fica mais fácil de se fazer uma linguagem melhor.
Sobre o OCaml: é uma linguagem funcional, type safe, orientada a objetos, e tem desempenho similar ao C (não C++ (muito mas lento que o C)).
Por enquanto o futuro se encaminha a ambientes como o .NET e o Java. Isso se deve à facilidade de manter esses sistemas e a flexibilidade que eles oferecem. Ambos oferecem uma centena de linguagens diferentes (para .net: C#, ASP...; para Java: Java, Python...) e ambos permitem interoperação entre elas.
Rodrigo Strauss | website | em 20/10/2004 | #
Emílio,

C++ não é mais lento do que o C. Existem alguns recursos de C++ que, quando usados indiscrimidamente podem deixar o programa mais lento, mas dizer que o C++ é mais lento é incorreto. Um programador ruim consegue fazer um programa em Assembly ficar mais lento do que um feito em VBScript.

É só fazer o disassembly de um aplicativo em C++ e ver que o assembly gerado é muito parecido com C, como algumas indireções a mais no caso de funções virtuais.
Fabio Galuppo | website | em 20/10/2004 | #
C++ "lento" está relacionado com funcionalidades de orientação a objetos que exigem vtables e virtualização. Toda e qualquer feature que C++ herda do C possui a mesma performance do seu antecessor.

"Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java." http://www.python.org/doc/Summary.html

Não preciso nem comparar C++ compilado estaticamente e otimizado com o Python.... O Python é bom para script e programas onde performance não tem importância. (Assim como toda e qq linguagem de script).. Ela pode ser usada até mesmo em conjunto com C++ através Boost.Python ( http://www.boost.org/libs/python/doc/index.html), fora uma ou outra construção própria, ela não tem nada de especial ( a não ser o fato do Eric Raymond achar o máximo )...
Rodrigo Strauss | website | em 21/10/2004 | #
Não acho que duas indireções a mais (lembra do "ponteiro para um ponteiro para uma tabela de ponteiros"?) ou um push a mais deixe o C++ mais lento. Chego a considerar isso desprezível, ainda mais com o otimizador do Visual C++.
Gilson de Paula | e-mail | em 12/11/2004 | #
Hoje em dia fala-se muito em aumento de produtividade e redução de custos, o marketing promete muito, mas em termos gerais a realidade é outra, há um aumento de trabalho e aumento de custos em função de HH, às vezes criticar o que é imposto pela mídia ou produtoras de tecnologia em geral soa como heresia, mais ou menos como alguém criticar os métodos e ensinamento da igreja na idade média, por fim sinto falta de um senso mais pragmático entre os profissionais de informática.

Particularmente gosto de usar o MS-VFP por que ele aumenta a minha produtividade reduz o meu esforço e os meus custos, assim a minha qualidade de vida melhora e não corro o risco de pegar uma tendinite nem de desenvolver problemas neurológicos.

Em fim sua flexibilidade e riqueza de recursos realmente seduzem aquele que gostam de usar o tempo que sobra para viver.

Grande abraço e para bens pele excelente matéria.
Jadir | website | em 12/11/2004 | #
Vc´sconhnecem Visal FoxPro ????
Angelo | e-mail | em 12/11/2004 | #
Com certeza eles nao conhecem o visual fox pro
Rodrigo Strauss | website | em 13/11/2004 | #
Gilson: concordo, as pessoas estão escolhendo as ferramentas mais pelo marketing do que pela qualidade. Todo mundo está cegamente adotando o .NET, ignorando alguns problemas que ele tem. Admiro a "coragem" de vocês em continuar usando até hoje uma ferramenta que todos vêem como ultrapassada. Mas ela resolve os seus problemas, é isso que importa. Para as empresas que vendem sistemas, ultrapassado é aquilo que funciona. Como a idiotice que eu já vi várias empresas fazerem, portar sistemas VB6 para VB.NET. Ganharam um sistema mais lento e perderam todas as correções de bugs que fizeram no sistema antigo.

FoxPro folks:

- Sim, FoxPro é muito produtivo. Assim como o Access também é. Nada de mais nisso, afinal, elas são ferramentas que foram inventadas "especificamente para um problema específico". Além disso, FoxPro é uma ferramenta, e não uma linguagem.

- Meu foco é diferente do de vocês. Vocês fazem o que 98% do mercado brasileiro faz: programas de cadastro disso, cadastro daquilo, consulta no banco, formulário de entrada de dados, etc. Meu foco é programas fechados, de prateleira, e que não envolvem banco de dados na maioria das vezes. FoxPro pode ser maravilhoso, mas não é a ferramenta certa para o meu problema. A ferramenta certa para isso chama-se Visual C++.

- Ao contrário do que os programadores de linguagens "produtividade em primeiro lugar" pensam, você consegue ter produtividade e vida social usando Visual C++. É só usar as bibliotecas certas. FoxPro, Access e VB são ferramentas com linguagens simples, bons editores de forms e uma boa biblioteca. Visual C++ é um linguagem poderosa, com um editor de forms mediano (que não é o caso do Borland C++ Builder) e várias bibiliotecas para várias coisas (algumas ótimas, outras nem tanto). Use a bibilioteca certa e, voilá, você tem sua produtividade. Vocês conseguem fazer um programa de banco de dados mais rápido do que eu. Mas vocês não conseguem fazer http://www.1bit.com.br/content.1bit/weblog/1099881681">um programa com 84kb e sem dependência de DLLs. Nem editor de textos comercial. Muito menos um Device Driver. http://www.1bit.com.br/content.1bit/weblog/1092958476">E isso é MUITO necessário. Ah, não podemos esquecer que o FoxPro é feito em C++ :-)

- É tudo questão de colocar na balança poder, flexibilidade e produtividade. Meu foco é poder e flexibilidade, o de vocês é produtividade. Por essa razão que todos nós estamos contentes com as ferramentas que usamos. :-)
Diego CB | em 10/03/2005 | #

Não sei da onde a idéia que Python é linguagem para aplicações que "não exigem performance".

Então não sei pq instituições como Google e NASA utilizam amplamente sistemas escritos nessa linguagem( http://www.python.org/Quotes.html).

Python tmb já pode rodar em celulares Nokia Series 60
( http://www.forum.nokia.com/main/1,6566,034-821,00.html).

Arquivos do Python podem inclusive ser convertidos em executáveis, utilizando o py2exe ( http://sourceforge.net/projects/py2exe/).

Comparem, por exemplo, a performance do cliente de BitTorrent Azureus(escrito em Java) e ABC(escrito em Python).

Concordo com o q o colega citou acima: "Todo mundo está cegamente adotando o .NET"

Mas é assim mesmo: apesar de PHP ser uma linguagem com bem menos vulnerabilidades, as pessoas utilizam ASP e ficam levando SQL Injection por todos os lados... mesmo assim ASP é melhor, pq a Micro$oft dá "suporte"...

A Micro$oft ainda teve a cara-de-pau de criar um "conversor mágico" que faz um upgrade nos códigos antigos para .Net!

E acho patético o rumo da iniciativa privada no Brasil em TI, desde onde o capital é investido, indo até os resultados finais desse investimento.

Abraço a todos.
Rodrigo | em 01/04/2005 | #
Gallupo não tem como concordar com sua opnião sobre o Python, e inevitavelmente vou seguir a idéia do Diego CB; imaginar que empresas como NASA, Google ... indo além Philips, NOKIA, Red Hat e etc ... usam Python acho que já é o suficiente para que sua idéia vá por água abaixo; grandes soluções podem ser escritas em Python ... o Anaconda (instalador em modo gráfico desenvolvido pela RedHat) por exemplo, ou o Zope (www.zope.org) e por aí fora ... e o próprio fato do Hammond gostar de Python é pq ela tem alguma coisa de boa, não fale besteira sem ter informações concretas.

Essa sua posição prova claramante o que foi citado e acontec cada dia mais no mercado ... a MS, SUN e cia vem com seus milhões em investimento ... e todos mesmmo sem ter idéia de como usar, sem avaliar os prós e contras optam pelas ferramentas amparadas pelo apoio de gigantes ... mas que nem sempre são o que prometem ser ...

minha opnião é a seguinte ... experimente ... faça o testes ... avalie os prós e contras ... como desempenho, estabilidade e etc ... e mais uma coisa que eu não lembro ... para só então emitir uma opnião elogiando/criticando ... agora ... programar em ambiente MS a vida inteira e achar que o mundo se limita a isso é dificil de aceitar!

Alex Brim | e-mail | em 03/05/2005 | #
Podem me enviar algum programa,pequenino mesmo,que seja em Pyhton e possua lista?

Muito obrigado,

Alex.
Rodrigo | website | e-mail | em 11/06/2005 | #
Alex

www.pythonbrasil.com.br ... nesse site tem tudo ... TUDO
Fernando | e-mail | em 12/07/2005 | #
Ola,

Gostaria de saber como faço para usar uma API do windows(VB e C++), e se possivel alguns exemplos basicos de algumas API( se possivel sobre o FORM)
Na resposta passa seu MSN para mais perguntas e outras coisas tb, afinal estamos no mesmo barco

hehe!!!!!

Atenciosamente,
Fernando Morgado
Rodrigo Strauss | website | em 12/07/2005 | #
Fernando, veja http://www.1bit.com.br/content.1bit/weblog/faq_win32 , lá tem tudo que você precisa saber para aprender API do Windows.

Para tirar dúvidas eu recomendo o newsgroup da MSDN brasileira ( http://www.msdn.com.br).
Antonio | e-mail | em 11/08/2005 | #
Desde que eu comecei a trabalhar com informática, eu ouvia dizer C/C++ faz tudo, mas só via o povo usar CLIPPER e DATAFLEX e quase nada de C/c++, eu vejo muito C/C++ nos bastidores como infra-estrutura.

Eu sempre quis desenvolver aplicações comerciais, coisa de cadastro mesmo, banco de dados, em C/C++, mas o que falam é que não compensa, porque demora, não vale a pena, o quero é desenvolver uma vez e rodar em qualquer lugar, com alta perfomance, sei que existe o Java pra isso, mas será que não há aplicações comerciais em C/C++ tanto caracteres como Visual, tanto Windows como Linux?

C/C++ fica apenas ligado a fazer coisas de baixa nível, como device drivers e outros? não é encojado escrever aplicações comerciais em C++?

Obrigado,

Antonio.

Rodrigo Strauss | website | em 11/08/2005 | #
O C++ é muito poderoso, mas é realmente mais complicado que Clipper, VB ou .NET. Não demora muito para aprender C++, mas demora para ser bom em C++. Como ele é muito poderoso, ele permite que iniciantes cometam erros, enquanto as outras linguagens limitam o programador para que ele não cometa esses erros.

Você pode desenvolver aplicações comerciais (banco de dados) em C++ usando uma boa biblioteca. O Visual C++ possui a MFC, que eu acho melhor do que VB6 para desenvolver aplicações desse tipo (contanto que não tenha que usar muitos OCX). Tem tb o C++ Builder, que é muito parecido com o Delphi.

Depende muito do que você chama de aplicação comercial. Dê uma olhada em http://www.1bit.com.br/content.1bit/weblog/planeta_cpp , http://www.1bit.com.br/content.1bit/weblog/faq_cpp_start e http://www.1bit.com.br/content.1bit/weblog/faq_win32
Henrique | e-mail | em 17/09/2005 | #
C++ como linguagem é multiplataforma, mas a programação em C++ pode ficar muito atrelada ao sistema operacional, não é?

Eu gostaria de saber: vale à pena desenvolver em C ou C++ em Windows sabendo que talvez seja necessário migrar para Linux? Em linguagens como Java e Python o trabalho não será perdido. E em C/C++ ? Há casos de reaproveitamento de código? (pelo que sei no caso de jogos usando DirectX, no way!).

Obrigado

Henrique
Rodrigo Strauss | website | em 17/09/2005 | #
Depende muito do tipo de software. Não vou arriscar falar de Java porque não é minha área, melhor você se informar em outro lugar.

C++ é portável no nível de código fonte. Para ser multiplataforma é necessário usar ou desenvolver uma biblioteca que faça uma abstração das características do sistema operacional. Só pra você ter uma idéia, o Firefox é multiplataforma (roda em Windows, Mac, Linux, OS/2, Solaris, HP-UX e outros) e é todo feito em C++. O Photoshop é feito em C++ e roda em Mac e em Windows.

A grande maioria dos jogos são feitos em C++, e eles geralmente rodam em Windows (DirectX) e nos consoles (XBOX usa DirectX tb, os outros rodam as libs dos seus respectivos fabricantes). O jogos geralmente são feitos em cima de engines (veja http://en.wikipedia.org/wiki/Game_engine) que já fazem uma boa parte dessa abstração.
H_DANILO | em 05/10/2005 | #
Sou muito novo, mas sou bastante dedicado a programação, em fim, gosto de usar a linguagem de programação VB pois ela facilita mto o trabalho para muitos... mas isso n quer dizer q n existam outras mais poderosas, ja usei também o C/C++, naquela epoca eu era muito imaturo cheguei ate a não compreender algumas coisas pois estudo só em casa e desenrolo tudo sem ter um professor ajudante ou ate algum suporte... mas quando se fala de poder, concerteza o C/C++ tem a força, mas se voce fala de rapidez ou facilidade o VB tah com tudo... um client seu ou meu n iria esperar 1 mes pra fazer um programa simples so pq voce vai faze-lo em C/C++, ele quer algo rapido... as vezes o q ele procura nem eh algo q tenha tantas flexibilidades, muitas vezes ele procura por algo que apenas mate sua necessidade. para isso, ele n ia esperar 1 mes pra fazer um programa em C/C++ enquanto q um programador de VB poderia faze-lo em 1 ou 2 dias...

Bem... cada linguagem tem sua vantagem, eu nunca que iria fazer um programa pra um satelite no VB ;P.

mudando de assunto, parabens, voce abriu os olhos de muita gente que tenta manter os olhos fechados a esse assunto. pessoas q acham q sua programação pode mais do q as outras e conseguentimente n há outro programador, apenas si mesmo, eu posso dizer q sou novo tenho 15 anos, mas eu entendo todas as letras do q voce entou passar para o publico alvo
Aline | em 10/12/2005 | #
Todo mundo fala em produtividade, produtividade facilidade, ninguém nunca viu o C++ Builder? Nele você tem a mesma produtividade do Delphi só que com uma linguagem mais poderosa, sim o C++, mas você não gosta da VCL? Use outra lib, a idéia é usar uma lib que resolva seu problema assim você consegue a mesma produtividade que em VB/Delphi, tem várias outras como GTK QT etc...tem libs pra todo tipo de problema. Então por que dizer que C/C++ não é produtivo, se você quer fazer um programa Cliente/Servidor é possível fazer algo como:
Socket *mysocket = new Socket(...);
mysocket->Send("ola");
STL é muito boa pra algoritmos em geral, tem libs pra tudo, no mundo Linux é muito comum encontrar as libs nesse formato:
libseuproblema. Enfim, acho que C++ não é tão improdutivo quanto pensam, só parar pra pensar que a ferramenta que faz a sua linguagem e/ou programa/ide etc... ser produtivo é feito em C++ hehe. Fica claro então que é possível ter produtividade e facilidade em C/C++, mas é possível ter flexibilidade e performance em X (nem vou dizer as linguagens hehe).
Aline | em 10/12/2005 | #
A última frase foi uma pergunta.
Rodrigo Strauss | website | em 10/12/2005 | #
Você disse duas coisas que eu já cansei de repetir. A primeira é que quem diz que não é possível ter produtividade não conhece C++ e está falando besteira. A segunda: C++ Builder é o RAD em C++, igual ao Delphi.
Juninho | e-mail | em 24/12/2005 | #
Para aprender C++ é necessário primeiro saber C ?

Rodrigo Strauss | website | em 24/12/2005 | #
Veja http://www.1bit.com.br/content.1bit/weblog/faq_cpp_start
eliardo | e-mail | em 04/03/2006 | #
e ai galera.. tudo bão?
Comedor de vcs todos | website | e-mail | em 22/03/2006 | #
eu sou um idiota!
Setthy | em 22/04/2006 | #
Alguem pode me indicar uns bons tuturiais para C,C++,...
Desde de ja obrigado,...
Eduardo | em 02/05/2006 | #
Bem, se fossemos continuar essa discussão ela nunca ia acabar pois como nosso colega Rodrigo disse cada um quer defender a sua linguagen...
ChriX | em 10/05/2006 | #
Oi, gostaria se saber como criar janelas, forms e botões usando c++, sem utilizar ferramentas como o Builder, por exemplo, nem a biblioteca MFC.

Se alguém puder me ajudar, agradeço.

ChriX.
Rodrigo Strauss | website | em 10/05/2006 | #
Você precisa aprender Win32:

http://www.1bit.com.br/content.1bit/weblog/sopa_de_letrinhas...
Nélio Mesquita | e-mail | em 05/06/2006 | #
:o
Meu deus! Demais!
Uendel Rocha | e-mail | em 18/06/2006 | #
Parabéns pelo material. Demonstra muita maturidade.
Willians Monteiro (ZeroBit) | website | em 28/06/2006 | #
Concordo...
Pelo que vejo, posso arriscar dizer que concordo com o que a maioria afirma,

Não existe linguagem melhor ou pior, tudo vai depender:

Qual a circustância, você pode escolher?
A empresa pode investir em ferramentas de desenvolvimento?
O software vai ser distribuido?
Rede?
Internet?
Que tipo de aplicação vai construir?
Como precisa ser sua aplicação?
Mais memoria?
Mais velocidade?
A aplicação deve ser pequena?
Independente de algum sistema operacional especifico?
Isto é indiferente para o seus caso? Se quiserem comprem mais hardware?

E mais aquela porrada de pergunta que um arquiteto se faz sempre que ao longe vê o "terreno" onde precisará construir... esta lista poderia não parar mais, ok?!

Exemplo, sempre tive uma razão para trabalhar com determinada linguagem...

1989 - Também comecei com o basic residente do MSX, peeks e pokes eram suficiente para o tico e teco, rs.., as revistas de informática da época (INPUT, CPU, só tinham isto)
Usei Turbo Pascal, quando a matemática se fez mais necessária em um sistema de gráficos financeiros para DOS.
Assembly, quando minhas rotinas gráficas, ficaram lentas...
MUMPS (Cada instrução era uma única letra...), quando precisava ser promovido de office-boy para auxiliar de CPD. (Também a única linguagem a empresa na época)
C para construir um emulador de terminais em disquete que se comunicava com servidor MUMPS RS232 no DOS.
Cobol, quando entrei em um curso técnico em S.B.Campo e só tinha isto instalado nas maquinas e nos cursos.
Access para fazer pequenos sistemas sozinho e em tempo hábil e comprar meu primeiro carro.
VBA, quando era preciso criar macros um pouco mais sofistificadas.
Visual Basic, quando este pagou meu salário por 4 anos e permitia que eu cumprisse os prazos estipulados com sistemas de automação.
Java, JSP e J2ME para meu TCC na faculdade, quando não havia $$$ para investir em ferramentas pagas.
C/C++ para criar ferramentas gráficas em Win32 o mais indepentendes possível.
E por fim C#, descobrir esta linguagem e ainda encontrei um emprego melhor com ela. (caramba! a linguagem ficou boa rapaz..)
2006 - Como não podia ser diferente "meu ultimo foco" me levou a se especializar em .NET.
Mas não abandono mais C/C++, sempre crio alguma coisa com esta linguagem, pensei "unmanagement", pensei C/C++.

Resumindo:

Como poderia falar mal de qualquer linguagem?
Não faz qualquer sentido, ainda assim ouço sempre alguém dizendo que esta ou aquela é um "lixo", pergunto-me se este cabra teria capacidade de fazer um lixo melhor... ou se ele só pensa que é capaz...

Assembly é trabalhoso? Sim, mas você poderia não ter outra escolha para optimizar a perfomance de uma ferramente certo?!
O Access é lento?, tem tipagem fraca?, não é O.O?., etc.. etc.?? mas pode ser sua unica escolha ok?! Você pode se dar o luxo de virar as costas? vire.. faça sua escolha, na minha época não pude, rs..

"Ahhh mais o MySql é mais rápido que SQL Server..", ok, ok... coloque tudo que o SqlServer tem, cada recuso no MySql, será que ele continuará tão mais rápido assim??? (ei.. nada contra o MySql, ele também é "my",rs)

"Ahhh mais tal editor ou IDE é melhor que outra", sim.. sim... concordo, tem até um que me lembro que é muito rápido e dependendo da situação dá p´ra usar, o nome é.... deixe-me ver.... ahhh lembrei. Notepad!!! (argh, mas é leve..), agora coloca nele todos os recursos, intellisense na memória analisadores léxicos sintáticos, blablabla, coisa e tal, vixxiii! será que ele continurá leve?!

Bom é claro que não critico ninguem, todos somos livres para escolher, mas como diria o "Guerreiro da Luz":

"- Não preciso destruir a fé alheia para provar a minha."

Esta guerra de criticas e ofensas entre profissionais não vai acabar enquanto não ouver bom senso, só isto que dá pra saber, rs...

Rodrigo Strauss, parabéns pelo site!

Um abraço pessoal.
Rodrigo Strauss | website | em 29/06/2006 | #
"- Não preciso destruir a fé alheia para provar a minha."

Esse é o mais importante :-)
Márcio Prog | website | em 07/07/2006 | #
Olha, parabéns mesmo, dá pra saber que você sabe o que fala e está na pele de um verdadeiro programador, haha material muito importante pra quem quer começar, bom, é isso '=D

Abração aeww krinha ^^
Fernando Moraes | em 07/08/2006 | #
Opa Rodrigo parabens pelo site, ele está me ajudando muito, vim aqui te pedir uma opinião, como eu poderia usar a linguagem "C" em (baixo Nível) de tal forma que eu conseguisse manipular o hardware? me dê uma idéia por favor... desde já grato.

Fernando.
Rodrigo Strauss | website | em 07/08/2006 | #
Fernando, isso é algo complicado para explicar em duas linhas. Sugiro que você aprenda C primeiro (compre um livro para isso, depois tire suas dúvidas em algumas lista de discussão ou forum). Não entendo o que você diz por manipular hardware, depende da porta, do sistema operacional, etc. Estude C que tudo ficará mais claro.
Ronaldo Jr. | website | e-mail | em 15/08/2006 | #
eu estava a procura de um bom emprego...
optei pelo meu gostar...ou seja...keru ser um programador ou melhor um bom programador pois naum keru aprender apenas o necessario para ser um programador mediano e sim aprender td akilo q me servirah como programador...
e keria aki lhe pedir uma dica ou uma recomendaçao...

EU KERU ALGO PRA EU COMEÇAR NESSE RAMO, SEJA UM PROGRAMINHA OU UM LIVRO, SEI LAH EU KERU UMA RECOMENDAÇAO SUA PRA EU COMEÇAR A MEXER OU FUÇAR...E DAKI POR DIANTE NAUM PARAR DE EXPLORAR ESSE RAMO DE PROGRAMAÇAO...

assim como vc mexia no "GW-BASIC" eu keru algo ki me distraisse e colokasse minha mente totalmente voltada para programaçao, naum tenhu nenhum tipo de programa pra começar e nem livros para ler...preciso de uma ajuda sua pois keru ser um bom programador...

to igual agulha no palheiro, totalmente perdido...talvez vc possa me orientar como começar...

seria mto grato se vc me adicionasse no msn(eh meu email) ou mantesse contato cmg pelo orkut(colokei como site)...

sua influencia no começo dessa minha trajetoria eh mto importante...

agradeço desde já por td e pricipalmente por esse site...

abçs...
Rodrigo Strauss | website | em 22/08/2006 | #
Leia http://www.1bit.com.br/content.1bit/programador e http://www.1bit.com.br/content.1bit/bom_programador
Fabricio | em 06/10/2006 | #
Não sei se minha pergunta vai ser idiota mais vamos la:

Da pra fazer em C/C++ uma soh aplicação que sirva tanto para desktop windows/linux qdo para web ?
Rodrigo Strauss | website | em 15/10/2006 | #
Que eu saiba, não. O funcionamento de uma aplicação desktop é diferente de uma aplicação web. O que você pode fazer é separar a parte de negócios em componentes e usar os mesmos componentes na parte web e na desktop. Mas a interface gráfica terá que ser refeita.
Douglas | e-mail | em 06/11/2006 | #
Olá

Estou começando a programas agora..
realmente existem diversas linguagem.. tantas que eu nem sei o nome de todas..
Meu interesse por programação cresce cada vez mais, e ao mesmo tempo diminui, é dificil achar inspiração nessa area tão complicada.. tem que gostar mesmo.

Programo bem em vb, alias, o vb é uma forma facil de se programar eu acho, porém vc fala mto sobre o vb e até parece q despreza, ficou 10 anos programando em vb como vc disse, parece q vc sente uma especie de amor retraido pela linguagem.. rsrsrs
mas uma coisa é certa, a tecnologia esta sempre avançando e não podemos parar de aprender..
o dia q eu for um hacker mesmo e estiver manjado dos codigos, talvez eu crie uma nova linguagem abranjendo todas as outras..
pense bem, vc cria algumas funções para aceitar certos modo de programação dentro de uma outra linguagem.. isso para segurança de sistema seria otimo né?

rsrs
até
Fester | em 15/01/2007 | #
Opa, Opa, Opa

Já li coisas do tempo dos dinossauros, e eu sou um deles. Clipper, GW-Basic, Data-Flex, Cobol, etc.

Mas e aí ?

Pega um sistema de uma grande empresa, grande empresa mesmo, tipo um banco, com processamento monstro. Sabe que linguagem é utilizada ? COBOL, não é nem pela produtividade nem pelo marketing, é pelo desenpenho, estabilidade e provavelmente apenas meia dúzia de outras linguagens funcionem nesse ambiente (Natural por exemplo).

Essa discussão é redundante, como já disse um colega, há vários aspectos a serem analisados para escolha da linguagem. OUTRA coisa é a linguagem que eu gosto.

Pra quem trabalha no ramo de programação/desenvolvimento, a melhor linguagem é a linguagem que sua empresa usa, o resto é lixo, ou você estaria procurando outro emprego.

Pra quem desenvolve de casa, é a linguagem mais barata, e fácil de programar, aí sim começamos a poder escolher e gostar de uma ou outra.

No meu trabalho, uso VB (aplicações desktop) e Java para aplicações web/intranet. Em casa uso PHP e clipper, sim, o bom e velho clipper, porque volta e meia tem alguém que me liga pedindo pra implementar uma ou outra alteração em algum sistema que ainda está rodando depois de 6 anos.

Mas numa coisa quase todas as linguagens se parecem:

If HoraDeLazer then
DesligaTudo
EsqueceTudo
FIM
Else
ContinueTrabalhandoComOqueTem;

Relax pessoal
Fábio Cerqueira | em 13/03/2007 | #
Seus artigos são muito bons, e me fazem querer ainda mais continuar na área. Parabéns, ótima página!
Jadiel Santos | website | e-mail | em 06/04/2007 | #
Gostei do que foi relatado, mais senti uma certa falta de didática em seus artigos pelo seguinte como você e um programador experiente fica fácil fazer comparações de tipos de tipos de linguagem, mais com todo respeito já que estou no seu espaço acho que seria mais gratificante ( já que percebo em vc um prazer pelo que faz) usar seu espaço aqui para ajudar programadores novos ensinando pela net mesmo bom e uma opinião.

“Lastimável discípulo que não ultrapassa seu mestre ”

Um discípulo pode ultrapassa seu mestre seu ensinar alguém, ensine não comente apenas vc vai ver e renovador boa noite.
Ana Paula | e-mail | em 27/04/2007 | #
Olá, quero conhecer esta area de programação para fazer uma nova carreira profissional e estou vendo uns cursos pra aprender a programar.
Quero que de suas sugestões de cursos e o que devo fazer de inicio pra entrar nesse mercado de trabalho?
Rodrigo Strauss | website | em 30/04/2007 | #
Dê uma olhada em http://www.1bit.com.br/content.1bit/programador e http://www.1bit.com.br/content.1bit/bom_programador
Raphael Menezes | e-mail | em 08/06/2007 | #
Cara, perfeito o seu blog. Continue sempre escrevendo seus artigos sobre programação.

É um dos melhores blogs da área, em português. Leio e releio!

E concordo plenamente com vc. Cada linguagem tem seu ponto positivo para cada problema.

Ainda aprenderei WIN32 API, ah vou sim! Puta lib safada, mas aprendo!
Henrique Prates | e-mail | em 29/07/2007 | #
Rodrigo Strauss,

Cara muito bom seu blog, ele esta me ajudando muito pois
começei a um tempinho a estudar java e puramente em livros
a faculdade estava sendo a mesma coisa que nada so prejuizo
pois os professores não esinavam nada, por isso logo no 1 periodo,
a minha primeira dificuldade foi saber em qual linguagem começar pois
sozinho e bastante complicado ai com algumas indicação e buscas na
internet achei 2 livros e estou estudando o java e seu blog está me
esclarencendo não as duvidas, mais sim como procurar um meio de resolvelas.

você est[a de parabêns e espero que seu blog possa ajudar outras pessoas como está me ajudando...

vlw,

Henrique Prates...
Marcos Roberto | e-mail | em 01/08/2007 | #
Seus artigos são ótimos, meus parabéns.

Eu sempre tive a curiosidade de saber como tudo funciona;
quando conheci computadores fiquei mais do que nunca tentando entender como tudo aquilo funcionava, depois que descobri que havia a "tal da programação", li algumas coisas, mas não entendi, simplesmente nada, isso com 12 anos de idade.
Aprendi o básiquíssimo mesmo de programação em um forum, que foi só o comando printf em C, naquele momento me apaixonei por essa linguagem, hoje com 16 anos, estou interessado em seguir um carreira que eu goste, informática.

Não sei, mas eu gosto tanto da linguagem C que não consigo fazer uma trânsição para C++, eu acho maravilhoso aquela simplicidade de C, acha que devo insistir em C mesmo?
Mas claro, tem umas coisas em C++ que eu acho, digamos "fantástico" que simplifica muito as coisas, como o comando new.

Estou pensando em comprar um livro sobre C++, você me indicaria algum?

Obrigado, e mais uma vez parabéns pelos seus artigos.


Rodrigo Strauss | website | em 01/08/2007 | #
http://www.1bit.com.br/content.1bit/weblog/faq_cpp_start
SAP/R3 | em 23/08/2007 | #
daew Rodrigo, tu é um retardado e akeles típicos programadores bitolados em C++ !!! Até admirava vc, mas vc falow com tanto desdém de 98% dos programadores brasileiros... Kara! O que é isso, vc é brasileiro nao é? Seu idiota, aprenda a lidar com as diferenças!!!! e vê se aprende outra coisa ki nao seja C++!!! affe

Deus abençoe esse ramo...

Fui! =/
SAP/R3 | e-mail | em 23/08/2007 | #
programa de prateleira? hahhahaah otra vez fui no EXTRA e vi um monte de programas nas prateleiras lah! tinha cadastro disso cadastro dakilo e nada mais ah! e o counter strike... que tipo de programa é esse ki tu faz? Prateleira de q hein?

wtf :(
Rodrigo Strauss | website | em 23/08/2007 | #
Você leu a parte do "eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado"?

Mas nesse caso acho melhor deixar sua ignorância e estupidez aqui eternizada para a posteridade. Sorte sua que você não colocou seu nome real (eu também não colocaria).
Pirata John | em 01/09/2007 | #
Muito bom. Parabéns pela bela cuca
Art | website | em 03/10/2007 | #
Existe alguma relação entre C++, Java e .NET e onde essas linguagens são aplicadas?

Abraço!
Rodrigo Strauss | website | em 04/10/2007 | #
Sim, existe:

http://en.wikipedia.org/wiki/Cplusplus
http://en.wikipedia.org/wiki/Java
http://en.wikipedia.org/wiki/CSharp
Marcelo | em 31/10/2007 | #
Ola Rodrigo,
parabens pelo site! Tenho alguma experiencia com programacao cientifica, mas nenhuma com comercial. Gostaria de te perguntar
sobre a melhor forma de aprender a usar bibliotecas e api's usadas comercialmente ou no contexto da criacao de software livre.

Eu sei que eu deveria falar sobre que problema eu quero resolver,
para falarmos em lib's e api's especificas ... mas minha motivacao
no momento nao e nenhum projeto especifico. So pra te dar uma ideia,
eu venho programando com compilador gcc, editor vi e plataforma
linux. Construo os programas do zero sem api's e ide's bonitinhas.
Decidi pegar o Eclipse e NetBeans (pra dar uma olhada), C++, e
continuo no linux. Voce sabe como eu aprendo uma api legal pra fazer
janelas, gerenciando coisas graficas? Gostaria de tentar fazer um
programa qualquer com interfaces graficas (nunca fiz =-( ). O
principal objetivo e aprender a usar api's!

Reparei que ninguem cometou sobre Objective-C, que e um super
conjunto de C com orientacao objetos e troca de mensagens a la
Smalltalk! Essa linguagem nao e usada comercialmente?

E aida sobre o citado D. Alguem tem noticias de uso comercial? Ou
mesmo nao comercial? Vale a pena investir em D como sucessor de
C/C++?

Abraco a todos!
Rodrigo Strauss | website | em 06/11/2007 | #
Para Windows, tente a MFC ou a própria Win32 API. Para Linux, veja o GTK e o Qt. Veja também o wxWidgets para multiplataforma.

Até onde eu sei, o Objective-C é usado no Mac e em nenhum outro lugar. Nunca vi uso comercial do D, e as linguagens C e C++ não precisam de sucessores, elas não devem morrer nos próximos 50 ou 10 anos, tenha certeza. :-)
Alex Tiago | website | e-mail | em 08/04/2008 | #
Olá rodrigo...parabéns pelo site, além de tudo vc escreve muito bem...hehe coloca alguns textos engraçados que por sua vez atraí o leitor. Bom, atualmente estou aprendendo a a linguagem delphi, optei ela por primeira linguagem após um amigo ter me indicado, ví algumas video aulas e gostei...já estou pensando em programar em outra linguagem (quem ve assim pensa que to programando tudo...), é que penso em seguir como programador, me identifico com a área...aí eu lhe pergunto...além de ler.., estudar e mais estudar...vc indica alguma escola específica para fazer cursos? pra quem ta querendo ser programador, quais os cursos vc sujere...(claro que isso depende de qual área de peogramação que o cara quer atuar) mais se lá..vc é o mandachuva...da uma de mulher grávida e da a luz aí...vlw!!!! sucesso e fica com DEUS.
Adriana | e-mail | em 30/04/2008 | #
Muito bom o seu site, e as matérias que tem nele, está de parabéns!
Eu faço faculdade de Análise e Desenvolvimento de Sistemas, mas esses dias ocorreram algumas dúvidas em relação da profissão que eu realmente quero seguir, lendo alguns de seus textos pode me fazer refletir sobre isso.
Obrigada. até mais

*não comentei na parte de: Como ser um bom programador, pois não encontrei lugar para comentários.
vinicius silva da cruz | em 11/05/2008 | #
Estou pesquisando a dois dias,a cada site que passo me complica mais a cabeça,sempre aparece programas novos,opiniões diferentes,mas uma só ideologia.
Mas como eu adoro desafios estou cada vez mais me interessando e estou pensando em fazer um curso de programador...valeria a pena?
voces teriam algum lugar para me indicar onde fazer o curso?
vi em um site q para começar a aprender é bom começar com o unix ou linux é verdade?

valeu...!!!!




Rodrigo Strauss | website | em 12/05/2008 | #
Veja http://www.1bit.com.br/content.1bit/programador e http://www.1bit.com.br/content.1bit/bom_programador, deve te ajudar.
Matheus | em 27/05/2008 | #
É possivel usar GTK e QT no Visual C++?

Pra quem ta começando, depois do cansativo esudo em ambiente texto. Que API gráfica vc recomenda que se aprenda primeiro?
Digamos que eu adote o visual C++ onde encontro material, de preferência em português?

E refoçando uma pergunta que ja foi feita porém mal respondida. Meu foco principal é o desenvolvimento de aplicações de automação comercial (controle de estoque, controle de caixa, etc..) vale apena fazer esse tipo de trabalho em C++? Ou vc acha que existem liguagens mais apropriadas para isso?
Só para completar estou migrando do clipper.

Grato!
Rodrigo Strauss | website | em 31/05/2008 | #
É possível, mas eu tenho pouca experiência com isso.

Se você tem Visual C++, veja a MFC.

Sobre automação comercial, é mais fácil você perguntar para alguém que trabalha que isso para ver qual a linguagem mais usada, eu não veja nada nessa área faz mais de 8 anos.
Werner | website | em 24/08/2009 | #
Acho que por si só, o artigo do Rodrigo já sintetizou de forma bastante abrangente como funciona o universo das linguagens de programação comerciais.

Sem querer me estender mais do que o necessário (e nem "chover no molhado") gostaria somente de acrescentar meu testemunho como programador comercial há quase 5 anos (nada, comparado com alguns testemunhos de colegas aqui):

O fato é que existem nichos no meio de TI (como em qualquer mercado), em que cada profissional escolhe trabalhar com o produto (linguagem, ambiente RAD, biblioteca, escritório/piscina/banheiro/cubículo/chuveiro) que lhe proporcione maior conforto e domínio das tarefas que precisa realizar.

É claro que, dentro desse contexto, existem dois caminhos (que o Rodrigo já explicou <a href=" http://www.1bit.com.br/content.1bit/programador">aqui<...; e <a href=" http://www.1bit.com.br/content.1bit/bom_programador">aqui...;): o do sujeito que programa para viver, e quando (se) se atualiza é para manter-se em dia com o ganha-pão, e o do sujeito que vive para programar, se interessa em saber mais, procura melhorar suas práticas e corrigir seus enganos (e não necessariamente, desistindo de ter uma vida social normal por causa disso). São escolhas que levam a carreiras completamente diferentes...

Agora existem certos indivíduos que por se sentirem incomodados, dentro do limitado escopo daquilo que "sabem fazer" (como é o caso do "coleguinha" que postou sob o pseudônimo "SAP/R3"), simplesmente escolhem extravasar a sua frustração em cima de indivíduos que por sua natureza, conseguem exceder às expectativas e o fazem por prazer.

Para este tipo de gente (que, hilariamente enxergam-se como "programadores") gostaria de dizer que dentre todas as linguagens que já estudei - ASP, VB, .NET, C/C++, Z-80 Assembler e (earghhh!!) ABAP - não vi até hoje, linguagem mais desorganizada, lenta e ineficiente para se desenvolver qualquer coisa nela. É fato que os ditos "programadores ABAP" (Deus me perdoe) são tudo MENOS gente que pensa logicamente, usa algoritmos, ou qualquer coisa remotamente relacionada a programação estruturada. Ao "coleguinha" "SAP/R3" (tá "atrasado" hein filho? Já passaram do R4 e os problemas só aumentaram) só posso estender meu desprezo (nem pena eu consigo sentir dessa gente, que só sabe copiar receita de código, nem mesmo se preocupando em entender sua própria linguagem de trabalho).

To errado? Será? Então alguém me diga se conhece algum programador ABAP do Brasil que entende básico de alemão?
Almeida | website | e-mail | em 12/06/2010 | #
Escrevi um artigo sobre por que escolher a ling c!


http://www.engenharias.eng.br/index.php/linguagem-c/50-por-q...


[]s
Luciano | em 22/06/2010 | #
Parabéns pelo trabalho, cara.
Tudo de bom. o/
RicardoFreitas | e-mail | em 27/09/2010 | #
Poxa, muito bom tópico!


Se enquadra perfeitamente na minha atual situação! (haha)

Comecei a estudar JAVA porém onde trabalho é utilizado VB6 e somente agora estão montando sistemas em VB.NET.

Irei redirecionar meus estudos para VB6 / VB.NET / JAVA em suas respectivas prioridades pois, ainda nao sou programador e posso unir o "útil ao agradável" :D (sorte nao?)

Só espero não apaixonar-me o suficiente por VB a ponto de esquecer de JAVA hahahahaha


Abraços rapaziada !

Neto | em 02/12/2010 | #
RicardoFreitas, não está perdemdo mada....
Paiva | em 20/08/2011 | #
Oi Rodrigo, tudo bem? Realmente concordo com o que foi dito por você, também já trabalhei com algumas linguagens que são totalmente incompatíveis (não sei se esse seria o termo correto) e, isso inclui, sintaxe, semântiva, filosofia, etc... Então resolvi aprender C para trabalhar com C++, pois, C++ é um superconjunto de C, queria conhecer as bases dessa linguagem.

Hoje, trabalho com C/C++ e Java. Faço uso dessas linguagens porque gosto, pois, não as utilizo para viver, é simplismente uma questão de paixão pelo que se faz, ganho a vida com redes e sistemas GNU/Linux.

Parabéns.


E como disse Bjarne Stroustrup: "C faz com que dar um tiro no pé seja fácil; C++ torna isso mais difícil, mas quando nós o fazemos arrebentamos com a perna toda".


Radar developerWorks C++ e Java: www.videolog.tv/video.php?id=669189

Entrevista com Bjarne Stroustrup: www.videolog.tv/video.php?id=669189

C++ 11: http://www.linuxnewmedia.com.br/lm/noticia/c11_aprovado_como...

Abraços,
Paiva.
[david] | e-mail | em 01/09/2011 | #
oi gente, eu tenho 17 anos e pretendo fazer faculdade de engenharia de computação... sera q alguem poderia me dizer o q fazer para começar? vale a pena fazer a faculdade? uma pergunta que muitos dizem nao ser importante mas pode vir a ser...: da lucro? sobre os posts gostei muito, sao super esclarecedores (eu acho...) apesar de nao ter a minima ideia de que vcs querem dizer quando falam em c++, etc, etc... mas vou ter... um dia... num futuro nao muito distante... mas vlw!!
obs: pro rodrigo nao ficar muito triste coloquei 2 colchetes no meu nome, so pra matar a saudades... kkkkkk
Venancio Guedes | e-mail | em 18/10/2011 | #
private sub cmd_eu_gostei_do_post?_click()
if me.gostei_do_post = true then
msgbox "Sim é muito bom"
else
call function estudar_outra_linguagem()
end if
end sub
private function estudar_outra_linguagem()
msgbox "Erro no Sistema Não copreendo outra linguagem de Programação só Visual basic6.0!",vbcritical ,"Erro não sei como os ponteiros funcionam!"
end function
Gislaine Gabilo Batista | em 28/01/2012 | #
cara gostei muito dos esclarecimentos e o português simples.
Parabéns
Paioniu | em 20/02/2012 | #
/*
-Licença?!
-Pois não, à vontade.

-GNU?! BSD.
-Não, banheiro...
*/
#include <stdio.h>
#incldue "defs.h"

extern int* busca_status;
extern int nao_achei();
extern void continua_procura();

int main(void)
{
while(nao_achei())
{
continua_procura();
}

switch(*busca_status)
{
case ENCONTREI:
puts("Era isso que eu procurava!");
break;
case ENCONTREI_GERAL:
puts("Ajudou bastante, mas a busca continua.");
break;
case ALTA_PRESENCA_DE_WINDOWS:
puts("Não posso obter o windows 7 legalmente!\n\
Paguei R$400 num XP que já está ultrapassado\n\
Decidi ser um monge FreeBSD\n\
Conclusçao: C/Lua/Pascal/Perl/Ruby/GTK é o meu path da salvação.");
break;
default:
puts("Variável global de merda, porque tu aceitaste ser setada deste jeito.\n\
Pedaço de memória inútil\n\Há um garbage colector degenerado pra eu te detonar...\n\
Tu vai ver maldita...");
free(busca_status); /*Pro inferno em ANSI*/
//E não ansi
/*Ops... Vai dar erro de compilação... merda*/
}
puts("De qualquer forma, gostei de NÃO ter visto uma flamewar :-)\n\
Ideologia prática que transcende barreiras de linguagem e SO. Parabens pelo SITE!");
return PODER_E_FLEXIBILIDADE;
}
Ricardo Bittencourt | website | em 15/02/2013 | #
Eu vi o comentário sobre os parênteses do LISP, e aí notei que os exemplos eram curiosos. O programa em LISP no post tem 7 pares de parentêses, mas o programa em Python tem 8 :)
Roger | em 20/03/2013 | #
Estou começando a programar e sou bastante novo na área, e estou bastante interessado em começar com o VB e posteriosmente passar para a linguagem C,C++, gostaria de saber se seria bom aprender uma linguagem voltada para internet como a .NET e outras ou somente ficar com linguagens de Desktop?

Obrigado!
Rodrigo Strauss | website | e-mail | em 20/03/2013 | #
C#
Ruand | em 31/05/2013 | #
Abriu muita minha mente, estava naquela parte e quando a sua linguagem "sua linguagem será a preferida até que você tenha um problema que ela não resolva."
Me divirto e muito com Ruby tanto em scripts ou mesmo com aplicações em GUI.
Para falar verdade andei fugindo do C..C++.
Sempre acordo fazendo algo ou estudando algo novo sobre Ruby é surpreendente o poder da linguagem e sua flexibilidade, mas não é tudo.
E isso que me deixa feliz, por deixar mais motivado e não desistir de aprender C ou C++.
Obrigado pelo ótimo texto !
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::