teckV Posted May 15, 2006 at 04:59 PM Report #27561 Posted May 15, 2006 at 04:59 PM In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project.I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know. Which makes them exactly the kind of programmers companies should want to hire. Hence whatfor lack of a better nameI'll call the Python paradox: if a company chooses to write its software in a comparatively esoteric languagethey'll be able to hire better programmersbecause they'll attract only those who cared enough to learn it. And for programmers the paradox is even more pronounced: the language to learnif you want to get a good jobis a language that people don't learn merely to get a job. Only a few companies have been smart enough to realize this so far. But there is a kind of selection going on here too: they're exactly the companies programmers would most like to work for. Googlefor example. When they advertise Java programming jobsthey also want Python experience. A friend of mine who knows nearly all the widely used languages uses Python for most of his projects. He says the main reason is that he likes the way source code looks. That may seem a frivolous reason to choose one language over another. But it is not so frivolous as it sounds: when you programyou spend more time reading code than writing it. You push blobs of source code around the way a sculptor does blobs of clay. So a language that makes source code ugly is maddening to an exacting programmeras clay full of lumps would be to a sculptor. At the mention of ugly source codepeople will of course think of Perl. But the superficial ugliness of Perl is not the sort I mean. Real ugliness is not harsh-looking syntaxbut having to build programs out of the wrong concepts. Perl may look like a cartoon character swearingbut there are cases where it surpasses Python conceptually. So faranyway. Both languages are of course moving targets. But they sharealong with Ruby (and Iconand Joyand Jand Lispand Smalltalk) the fact that they're created byand used bypeople who really care about programming. And those tend to be the ones who do it well.
M6 Posted May 15, 2006 at 05:08 PM Report #27564 Posted May 15, 2006 at 05:08 PM É uma opinião... 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Dabubble Posted May 15, 2006 at 05:13 PM Report #27565 Posted May 15, 2006 at 05:13 PM LoL, sim é mesmo uma opinião 🙂
teckV Posted May 15, 2006 at 05:32 PM Author Report #27568 Posted May 15, 2006 at 05:32 PM e digo mais... I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know. pá... este argumento é tão bom... não se esgota... que mais vou dizer ?? :down: agora a questão é.. aceitam dicas ou não? teckV --- nefera neferu nefertiti horus to seth neftis to Chatolic shurch we r o t h... b...m...g or die... theres no other choicezzzzzzzzX
Dabubble Posted May 15, 2006 at 05:37 PM Report #27569 Posted May 15, 2006 at 05:37 PM Acho piada e digo que e uma opiniao, porque estao-se a referir ao python mas poderiam estar a referir-se a qualquer outra linguagem exoterica. Sempre com o mesmo argumento que quem aprende uma linguagem estranha por gosto é bom programador, o que pode acontecer ou nao... Não existem generalizações neste mundo...
M6 Posted May 15, 2006 at 05:50 PM Report #27573 Posted May 15, 2006 at 05:50 PM Por acaso essa opinião não coincide totalmente com a minha. Aprendi Python por saber que seria a ferramenta certa para construir soluções para problemas especificos, não por estar insatisfeito com as linguagens que já sabia na altura... 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
teckV Posted May 16, 2006 at 10:17 AM Author Report #27669 Posted May 16, 2006 at 10:17 AM Sempre com o mesmo argumento que quem aprende uma linguagem estranha por gosto é bom programador essa da linguagem estranha não percebi... será estranha por ser mais simples num mundo complicado?
Dabubble Posted May 16, 2006 at 11:02 AM Report #27670 Posted May 16, 2006 at 11:02 AM Quando eu digo exoterica nao digo que seja estranha ou ma (eu tb programo em python) só digo que é menos comum. Tem o estigma que quem sabe e geek 😛
deathseeker25 Posted May 16, 2006 at 02:31 PM Report #27691 Posted May 16, 2006 at 02:31 PM É um texto interessante sem dúvida. Comecei a programar em Python á relativamente pouco tempo, mas ainda não tive disponibilidade para aprofundar conhecimentos na área. Uma coisa que aconteceu comigo, e que não sei se tambem aconteceu convosco, é que, mesmo não dominando minimamente a linguagem, consegui perceber superficialmente o que lá estava, isto com muito pouca experiência na programação. Contactei pela primeira vez com o Python há quase um ano, mas só há coisita de 2 meses é que lhe peguei a sério para aprofundar e, no futuro, dominar a linguagem.
teckV Posted May 16, 2006 at 02:50 PM Author Report #27693 Posted May 16, 2006 at 02:50 PM e olhem para a pasta de instalação do python... é uma linguagem VERDADEIRAMENTE OPEN-SOURCE e podem olhar para o código fonte que a CONSTROI... muito bom para aprender técnicas avançadas de programação... têm tambel montes de módulos que encapsulam tarefas complexas com API´s muito simples... e em código fonte... olhem para módulos como o urllib (este uso mesmo muito h3h3h33h3h) e vejam como são implementados... há um muito interessante e não é só pelo nome... encontra-se em C:\Python24\Tools\webchecker e é o file websucker.py... faz o dump completo de um site remoto... muito util... seguindo a filosofia do Nessus apenas um exemplo do que estou a falar... do file websucker.py # SAM 11/13/99: in general, URLs are now URL pairs. # Since we've suppressed name anchor checking, # we can ignore the second dimension. def readhtml(self, url_pair): url = url_pair[0] text = None path = self.savefilename(url) try: f = open(path, "rb") except IOError: f = self.openpage(url_pair) if f: info = f.info() nurl = f.geturl() if nurl != url: url = nurl path = self.savefilename(url) text = f.read() f.close() self.savefile(text, path) if not self.checkforhtml(info, url): text = None else: if self.checkforhtml({}, url): text = f.read() f.close() return text, url é mais uma das caracteristicas bombásticas do Python... estar em código fonte.. .quer no que toca ao C, quer nos modulos já em python a linguagem tem os seus layers mais baixos em C mas depois vai-se construindo sobre as funcionalidade ditas python que o layer mais baixo (em C) fomenta... podem ver como se cria um interpretador de uma linguagem de programação em código fonte 1000 pontos para o open-source teckV
falco Posted June 13, 2006 at 09:57 AM Report #32691 Posted June 13, 2006 at 09:57 AM Conheço excelentes programadores em várias linguagens, alguns deles não sabem Python e até têm no Java a sua linguagem preferida. Python não é exotórico. Não tem nada disso, apenas ainda não é tão popular. Estou num projecto em que estou a desenvolver um sistema para integrar um sistema à medida que também estou a desenvolver, com uma séries de soluções já existentes, umas à medida outras proprietárias. A solução é suficientemente modular, que permite mesmo que cada elemento da equipa use a linguagem que prefira para este caso (Javas e .Nets estão fora de questão). Eu escolhi Python (foi a segunda linguagem que aprendi a seguir a C, à já alguns anos), outro escolheu Perl (que apesár de eu a conhecer e já ter usado, prefiro não usar), e o outro ainda não sei o que ele escolheu, mas penso que vai também usar Python. Porque é que eu escolhi Python? * Porque é Software Livre * Porque desenvolver em Python é rápido; * Porque é multi-plataforma; * Porque tem "pilhas incluidas"; * Porque para além das "pilhas incluidas" tem ainda mais bibliotecas; * Porque tem uma sintaxe muito simples (aprendes Python em poucos minutos, e ao fim de poucas horas já tas a fazer coisas complexas, também facilita a legilidade de código); * Porque inclui na sua sintaxe boas práticas de estilo de código (que facilita muito a legibilidade do código); * Porque tem uma excelente orientação ao objecto; * Porque Python permite fazer desde aplicações de linhas de comando, a gráficas, baseadas em web, com webservices, servidores, clientes, etc... É uma verdadeira linguagem de propósito geral, e é boa em todos os aspectos; Ou seja, é flexivél, poderosa, limpa, e fácil. UM SONHO!!!
TheDark Posted June 13, 2006 at 12:53 PM Report #32724 Posted June 13, 2006 at 12:53 PM Erm. O GCC também é open-source. Desaparecido.
Knitter Posted June 13, 2006 at 02:39 PM Report #32757 Posted June 13, 2006 at 02:39 PM Realmente é uma opinião, gosto genuinamente de programar, estou longe de estar satisfeito com as linguagens que sei, mas python está muito abaixo na minha lista....
falco Posted June 13, 2006 at 09:02 PM Report #32854 Posted June 13, 2006 at 09:02 PM rm. O GCC também é open-source. O termo mais correcto para dizer o tipo de licenciamento do GCC é Software Livre. Realmente é uma opinião, gosto genuinamente de programar, estou longe de estar satisfeito com as linguagens que sei, mas python está muito abaixo na minha lista... Mas olha que prefiro Python a Java. Alias arriscaria dizer que o Python tem uma orientação ao objecto pelo menos tão boa quanto a do Java, e é muito facil ser mais produtivo em Python do que em Java por várias razões: * sintaxe mais simples e que fomenta a legibilidade; * tipos dinâmicos; * menos código para a mesma funcionalidade; * frequêntemente menos ficheiros para o mesmo programa se ele for grande; * gestão de excepções mais simples de fazer; Mas não se fica por aqui! O Python tem outras vantagens, como ser muito mais rápido iniciar o seu interpretador, e realizar operações i/o mais rápidamente (no entanto o interpretador do Java é mais rápido e instância objectos mais rápidamente). ) . E não me lembro de nenhuma vantagem apelativa do Java em relação ao Python. Para além disso e muito importante: Python é Software Livre e Java é proprietário.
Knitter Posted June 13, 2006 at 09:10 PM Report #32856 Posted June 13, 2006 at 09:10 PM I may well be a java addicted mas não é por isso que python está abaixo na minha lista, como disse, as linguagens que sei não fazem tudo o que quero, mas python ainda está um pouco longe... pelo menos para já existem outras linguagens com mais prioridades na minha aprendizagem, umas por obrigação do curriculo escolar outras porque por uma ou outra razão me apelam mais, é como disses uma questão de opinião, neste momento não me apetece aprender python, por muito bom que seja. Não conheço o python e não quero entrar em mais uma discusão sobre o porquê do java ser mais lento, e o porquê de até ser mais rápido. Peace!
TheDark Posted June 13, 2006 at 10:30 PM Report #32868 Posted June 13, 2006 at 10:30 PM rm. O GCC também é open-source. O termo mais correcto para dizer o tipo de licenciamento do GCC é Software Livre. Segundo o que está no FAQ, o modelo é mesmo open-source. Qualquer um pode pegar no código, melhorá-lo, e submeter as alterações para aprovação. De qualquer forma, disse aquilo no sentido que o código-fonte está disponível para quem o queira ver. Desaparecido.
falco Posted June 14, 2006 at 06:28 AM Report #32885 Posted June 14, 2006 at 06:28 AM Andas a ler as FAQs erradas e não deves saber o que é Software Livre e o que é Open Source Software. A FAQ oficial do site oficial do gcc não menciona Open Source Software. http://gcc.gnu.org/faq.html O GCC é Software Livre e Open Source Software, mas o termo que o define com mais precisão é Software Livre (Free Software). Software Livre e Open Source Software, são conceitos muito parecidos, mas não são iguais, por diferenças filosóficas entre os seus criadores. Tudo o que é Software Livre é Open Source Software, no entanto o contrário já não acontece, embora a maior parte do Open Source Software seja também Software Livre e utilize a mais popular licença de Software Livre que é a GNU General Public License (aka GPL). Definição de Software Livre: http://ansol.org/filosofia/softwarelivre.pt.html Definição de Open Source Software: http://opensource.org/docs/definition.php Explicação da diferença entre os dois conceitos: http://www.gnu.org/philosophy/free-software-for-freedom.html pelo menos para já existem outras linguagens com mais prioridades na minha aprendizagem, umas por obrigação do curriculo escolar outras porque por uma ou outra razão me apelam mais Cheguei a aprender umas 5 linguagens ao mesmo tempo (se não foram mais) e garanto-te que é importante aprenderes mais do que te ensinam na escola, porque aprender o que ensinam na escola é o que é suposto todos fazerem. Aprender mais coisas é o que diferencia. Então dá lá um exemplo de uma linguagem que te apele mais.
Knitter Posted June 14, 2006 at 02:25 PM Report #32920 Posted June 14, 2006 at 02:25 PM Cheguei a aprender umas 5 linguagens ao mesmo tempo (se não foram mais) e garanto-te que é importante aprenderes mais do que te ensinam na escola, porque aprender o que ensinam na escola é o que é suposto todos fazerem. Aprender mais coisas é o que diferencia. E por isso é que umas são por obrigação curricular e outras não 😄 Apesar de que no curso onde estou não me poder queixar muito, passamos por muitas linguagens diferentes, mas como diz um dos meus profs, "Ensino-vos a progamar não a conhecer a linguagem, isso fazem foces em casa!" Linguagem que me apelam mais, algumas podem não ser consideradas linguagens: . SQL . PL/SQL . Java, já vai na versão 6 e ainda não apanhei tudo da versão 5! . PHP . C# . Rubby . Haskel . CSS, eu sei não é bem uma linguagem 👍 Enfim, a lista não refere uma ordem de preferências, na realidade não refere qualquer ordem, tento aprender as linguagens conforme o tempo que possuo e se preciso ou não delas para um ou outro projecto, de momento estou de volta de C++ e windows api e de CSS, devido a dois projectos onde estou envolvido.
TheDark Posted June 14, 2006 at 02:31 PM Report #32923 Posted June 14, 2006 at 02:31 PM Andas a ler as FAQs erradas e não deves saber o que é Software Livre e o que é Open Source Software. A FAQ oficial do site oficial do gcc não menciona Open Source Software. http://gcc.gnu.org/faq.html O GCC é Software Livre e Open Source Software, mas o termo que o define com mais precisão é Software Livre (Free Software). Eu sei o que é software livre e sei o que é open source. Também sei o que significa "conceito" e onde ler o faq do GCC. Só porque o faq nao diz as palavras "open source", o conceito está lá. Já as tuas declarações são um pouco contraditórias. Numa nota à parte, também sei o que é arrogância. E não gosto. Desaparecido.
falco Posted June 14, 2006 at 04:09 PM Report #32938 Posted June 14, 2006 at 04:09 PM O que poderia estár na FAQ do GCC é o conceito de Software Livre, porque o GCC é do projecto GNU, que é uma iniciativa da Free Software Foundation. E a FSF é muito clara quanto à terminologia que usa.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now