Autor Tópico: Linguagens de programação  (Lida 1248 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline Lorentz

  • Nível Máximo
  • *
  • Mensagens: 10.726
  • Sexo: Masculino
Re:Linguagens de programação
« Resposta #50 Online: 25 de Março de 2018, 16:48:04 »
Quanto mais estudo outras linguagens mais vejo o quanto Java é limitada e verbosa
Vejam (Python):

first, *_, last = "blah" # ==> first= 'b', last = 'h'
e isto funciona com listas, mapas, conjuntos, tuplas

data = [(1,'um',3),(4,'quatro',12),(8,'oito',24),(8,'oito',32)]
for elem1, elem2, elem3 in data:
    #...

{elem1**2 for elem1, *_ in data if elem1 % 2 == 0} #=> {16, 64}
#vejam o que é feito em uma só linha ai em cima
# pega o primeiro elemento de cada tupla no array e ignora os demais
# testa se o elemento é  par
# se par, joga o quadrado deste elemento em um conjunto, desta forma automaticamente eliminando duplicatas

data = [[1,2],[3,4],[5,6]]
[i for inner in data for i in inner] #=> [1,2,3,4,5,6]

agora façam o mesmo em Java...
e olha que Python nem é assim tão capaz. Por exemplo, Ocaml, Haskell e Lisp são linguagens bem mais poderosas

Existe uma diferença em ser poderosa e ser uma zona.

Algumas linguagens são propositalmente limitadas em certas funcionalidades para que os programadores não façam um código complicado demais.
"Amy, technology isn't intrinsically good or bad. It's all in how you use it, like the death ray." - Professor Hubert J. Farnsworth

Offline Fenrir

  • Nível 29
  • *
  • Mensagens: 1.569
  • Sexo: Masculino
  • Cave Canem
Re:Linguagens de programação
« Resposta #51 Online: 07 de Setembro de 2018, 17:11:41 »
Python continua subindo.
Pelo ranking do Tiobe já esta em 3o, atrás só de Java e C
Pelos rankings da IEEE e PyPl já está em 1o faz tempo

Acho que parte disso se deve a data science e machine learning.
Tenho lido muito sobre o crescimento do DS e ML, fiz uns cursos e pretendo fazer mais.
Um dia destes consigo abandonar o Java.

Li recentemente que há carencia de 100K (trabalhadores) para cientistas de dados só no Vale do Silício
e umas 30K em Nova York... outro texto em que dizia que não da mais para fazer pesquisa em
astronomia atualmente sem data science e ainda outro dizendo o mesmo só que para a area
médica. Este vi no Hacker News, se não me engano.

Este cenário está parecendo ja no final da decada de 90/inicio dos 2000s com o Java:
Naquela época só falar que sabia um pouco de java já te garantia emprego, não precisava provar nada,
fazer nenhuma provinha, nem ter nenhum curso ou certificação.
Sei disso porque aconteceu comigo: se limitaram a me perguntar "sabe Java"? "X"? "Y"? "Z"?
Respodi sim a todas as perguntas e comecei a trabalhar dois dias, depois ganhando em SP
4x o que ganhava em BH...

R, Julia e Matlab tambem são usadas nesse meio.
"Heaven and Earth are not benevolent; They treat the myriad of creatures as straw dogs"
― Laozi

"No testimony is sufficient to establish a miracle, unless the testimony be of such a kind, that its falsehood would be more miraculous, than the fact, which it endeavors to establish"
― David Hume

“Never argue with an idiot. They will drag you down to their level and beat you with experience.”
― Mark Twain

Offline Pedro Reis

  • Nível 35
  • *
  • Mensagens: 2.874
Re:Linguagens de programação
« Resposta #52 Online: 08 de Setembro de 2018, 11:04:10 »

Vejam (Python):


data = [(1,'um',3),(4,'quatro',12),(8,'oito',24),(8,'oito',32)]
for elem1, elem2, elem3 in data:
    #...

{elem1**2 for elem1, *_ in data if elem1 % 2 == 0} #=> {16, 64}
#vejam o que é feito em uma só linha ai em cima
# pega o primeiro elemento de cada tupla no array e ignora os demais
# testa se o elemento é  par
# se par, joga o quadrado deste elemento em um conjunto, desta forma automaticamente eliminando duplicatas



agora façam o mesmo em Java...


static Object[][] data =  {{1,"um",3},{4,"quatro",12},{8,"oito",24},{8,"oito",32}};

...

 for (Object[] d : data) if ((int)d[0] % 2 == 0) C.add((int)d[0]*(int)d[0]);

Offline Pedro Reis

  • Nível 35
  • *
  • Mensagens: 2.874
Re:Linguagens de programação
« Resposta #53 Online: 08 de Setembro de 2018, 11:13:42 »
import java.util.HashSet;

public class BuildingTheSetInOneLine
{
    static Object[][] data = {{1,"um",3},{4,"quatro",12},{8,"oito",24},{8,"oito",32}};
     
    public static void main(String[] args)
    {
      //cria o conjunto
       HashSet C = new HashSet();
       
      //depois de incluir os elmentos C = {16,64}
      for (Object[] d : data) if ((int)d[0] % 2 == 0) C.add((int)d[0]*(int)d[0]);
       
       //lista os elementos do conjunto ( a setinha esquisita foi o forum que colocou )
       C.stream().forEach( (o) -> { System.out.println((int)o); } );
    }
}

Offline Sdelareza

  • Nível 15
  • *
  • Mensagens: 355
Re:Linguagens de programação
« Resposta #54 Online: 08 de Setembro de 2018, 14:18:05 »
Vou ter que que estudar e usar Python ( e Django) para meu atual emprego. Yahoo!

Offline Fenrir

  • Nível 29
  • *
  • Mensagens: 1.569
  • Sexo: Masculino
  • Cave Canem
Re:Linguagens de programação
« Resposta #55 Online: 08 de Setembro de 2018, 14:49:01 »
import java.util.HashSet;

public class BuildingTheSetInOneLine
{
    static Object[][] data = {{1,"um",3},{4,"quatro",12},{8,"oito",24},{8,"oito",32}};
     
    public static void main(String[] args)
    {
      //cria o conjunto
       HashSet C = new HashSet();
       
      //depois de incluir os elmentos C = {16,64}
      for (Object[] d : data) if ((int)d[0] % 2 == 0) C.add((int)d[0]*(int)d[0]);
       
       //lista os elementos do conjunto ( a setinha esquisita foi o forum que colocou )
       C.stream().forEach( (o) -> { System.out.println((int)o); } );
    }
}

Este código e o outro do post anterior são Java >= 8, certo?
Melhorou bastante pelo visto.

Estacionei no 6/7, acomodei e parei de estudar Java.
Por volta da epoca que saiu a 8, com programação funcional, lambdas e etc
eu estava mais interessado em Scala e Clojure e nem dei atenção.
Acho que associei a linguagem ao stress do meu trabalho (leia-se prazos
irreais) e comecei a procurar outras alternativas que fossem mais produtivas.

Tenho a certificacao de programmer para a 1.4, que esta caindo de velha.
Naquela epoca Java nem tinha templates!
Trabalho com sistemas legados onde é usado Java 7, e de forma tosca, sem lançar mão
de recursos introduzidos nesta versão, como o NIO.

Porem ja faz meses que não escrevo uma linha de codigo Java no meu trabalho...
Não porque eu tenha pedido isso, mas um colega meu saiu e eu herdei o trabalho do cara
que eram tarefas meio de DevOps: o que mais faço é escrever scripts em bash, Powershell
Jython e mesmo MS-DOS batch! (tive que aprender as 3 primeiras), fora um SQL ou PL-SQL ocasional.
Bash, por sinal, tem uma sintaxe bem esquisita, meio arcaica.

O ruim é que lá não tem nada de Python (fora estes scripts administrativos) e nem de
linguagens funcionais. É Java 7, VB 6, C#, COBOL e PL/SQL.

O Jython, que é um Python 2.7 para a JVM foi meio que a deixa para aprender Python
« Última modificação: 08 de Setembro de 2018, 15:15:13 por Fenrir »
"Heaven and Earth are not benevolent; They treat the myriad of creatures as straw dogs"
― Laozi

"No testimony is sufficient to establish a miracle, unless the testimony be of such a kind, that its falsehood would be more miraculous, than the fact, which it endeavors to establish"
― David Hume

“Never argue with an idiot. They will drag you down to their level and beat you with experience.”
― Mark Twain

Offline Fenrir

  • Nível 29
  • *
  • Mensagens: 1.569
  • Sexo: Masculino
  • Cave Canem
Re:Linguagens de programação
« Resposta #56 Online: 08 de Setembro de 2018, 14:57:37 »
Vou ter que que estudar e usar Python ( e Django) para meu atual emprego. Yahoo!

Não conheço nada de Django. Só sei que é um framework para web.
Ta na minha lista de coisas a estudar.
Minha entrada no mundo Python foi via numpy, pandas e outras libs
(cursos pelo coursera), fora o Jyhon que mencionei no post ai em cima.
"Heaven and Earth are not benevolent; They treat the myriad of creatures as straw dogs"
― Laozi

"No testimony is sufficient to establish a miracle, unless the testimony be of such a kind, that its falsehood would be more miraculous, than the fact, which it endeavors to establish"
― David Hume

“Never argue with an idiot. They will drag you down to their level and beat you with experience.”
― Mark Twain

Offline Sdelareza

  • Nível 15
  • *
  • Mensagens: 355
Re:Linguagens de programação
« Resposta #57 Online: 08 de Setembro de 2018, 17:10:52 »
Django é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão model-template-view.
(Wikipedia)

Offline Pedro Reis

  • Nível 35
  • *
  • Mensagens: 2.874
Re:Linguagens de programação
« Resposta #58 Online: 08 de Setembro de 2018, 22:50:49 »

Este código e o outro do post anterior são Java >= 8, certo?
Melhorou bastante pelo visto.


Eu acho que a última linha só compilaria em versões posteriores ao 5.0

Os recursos da estrutura for aprimorada são da versão 5, mas não sei se já funcionava para as classes da estrutura Collections, como a HashSet. O auto boxing e auto unboxing ( converter variáveis primitivas em objetos correspondentes e vice-versa automaticamente ) surgem a partir da versão 5. Eu acho.

O cara tem que ter uma enciclopédia na cabeça para lidar com tantas linguagens ao mesmo tempo. Conheço pouco Python, apesar de ser muito falada. Sei que é uma linguagem interessante, mas Python tem ferramentas de desenvolvimento disponíveis com tantos recursos como a plataforma .NET e o Java?

O netbeans pode ser usado como IDE para Python, mas será que tem recursos equivalentes? Porque como IDE Java eu acho muito bom.


Offline Gorducho

  • Nível 26
  • *
  • Mensagens: 1.262
  • Sexo: Masculino
Re:Linguagens de programação
« Resposta #59 Online: 09 de Setembro de 2018, 09:04:30 »
O netbeans pode ser usado como IDE para Python, mas será que tem recursos equivalentes? Porque como IDE Java eu acho muito bom.
A Oracle repassou o NB pra Apache e por enquanto só tem Java.
Baixei por curiosidade o 9.0 [JDK 10] e pra mim em Novo > Projeto só apareciam as opções
Standard
                  Java Modular
                  Java Free-Form
(códigos já pré existentes)

Tem que ir em Ferramentas > Plugins e estavam por default desativados tudo: Java, Persistence, SceneBuilder...
tem que ativar manualmente  ::)


Não sei se tem boas IDEs pra Python particularmente pra compor interface
:?:
« Última modificação: 09 de Setembro de 2018, 09:38:06 por Gorducho »

Offline Pedro Reis

  • Nível 35
  • *
  • Mensagens: 2.874
Re:Linguagens de programação
« Resposta #60 Online: 09 de Setembro de 2018, 09:47:40 »
O netbeans pode ser usado como IDE para Python, mas será que tem recursos equivalentes? Porque como IDE Java eu acho muito bom.
A Oracle repassou o NB pra Apache e por enquanto só tem Java.
Baixei por curiosidade o 9.0 [JDK 10] e pra mim em Novo > Projeto só apareciam as opções
Standard
                  Java Modular
                  Java Free-Form
(códigos já pré existentes)

Tem que ir em Ferramentas > Plugins e estavam por default desativados tudo: Java, Persistence, SceneBuilder...
tem que ativar manualmente  ::)


Não sei se tem boas IDEs pra Python particularmente pra compor interface
:?:


Pois é, quando vi seu post, antes do seu acréscimo, eu entrei em ferramentas > plugins, e vi que lá estava sim o plug-in para Python.

Para criar interfaces visualmente no NB, apenas clique com o botão direito do mouse sobre o ícone do seu projeto ( ou de algum pacote dentro do seu projeto ) e escolha Novo > Form JFrame.
« Última modificação: 09 de Setembro de 2018, 09:55:14 por Pedro Reis »

Offline Gorducho

  • Nível 26
  • *
  • Mensagens: 1.262
  • Sexo: Masculino
Re:Linguagens de programação
« Resposta #61 Online: 09 de Setembro de 2018, 11:10:50 »
eu entrei em ferramentas > plugins, e vi que lá estava sim o plug-in para Python.
:?:
Não achei nem nos 44 instalados nem nos 8 disponíveis...
Citar
apenas clique com o botão direito do mouse sobre o ícone do seu projeto ( ou de algum pacote dentro do seu projeto ) e escolha Novo > Form JFrame.
Sim, eu sei. É que baixou c/isso tudo desabilitado defaultmente.
Agora fiz pequeno teste e funciona perfeitamente como sempre.

Note bem que tou me referindo ao Apache NB 9.0
« Última modificação: 09 de Setembro de 2018, 11:47:51 por Gorducho »

 

Do NOT follow this link or you will be banned from the site!