Autor Tópico: Assinatura do Andre (Era: Apelidos)  (Lida 3027 vezes)

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

Offline uiliníli

  • Nível Máximo
  • *
  • Mensagens: 18.107
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #25 Online: 15 de Julho de 2008, 13:53:51 »
Um fractal, que legal :lol:


E que história é essa de que nenhuma linguagem cresce mais que Java? Olha aquele link que eu passei para o Elton e veja com seus próprios olhos que Python cresce mais que qualquer linguagem!

Offline Andre

  • Nível 39
  • *
  • Mensagens: 4.072
  • Sexo: Masculino
    • Aletéia
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #26 Online: 15 de Julho de 2008, 14:30:03 »
Mas todo mundo sabe que o universo foi feito em lisp + perl
Se Jesus era judeu, então por que ele tinha um nome porto-riquenho?

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #27 Online: 15 de Julho de 2008, 14:50:57 »
Daqui a pouco as aulas de Fortran vão sera dadas junto com latim e grego antigo :P

Mas olha aqui um indicador de popularidade de linguagens de programação de Julho de 2008: Python é o 7o. colocado: http://www.tiobe.com//content/paperinfo/tpci/index.html
Off-topic: Meu orientador da graduação fez o índice taioba, de linguagens mais odiadas, com os mesmos critérios que o tiobe... Se eu achar, eu posto aqui.

Offline uiliníli

  • Nível Máximo
  • *
  • Mensagens: 18.107
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #28 Online: 15 de Julho de 2008, 14:54:17 »
Off-topic:

O tópico inteiro já é um off-topic :lol:

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #29 Online: 15 de Julho de 2008, 14:58:14 »

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #30 Online: 15 de Julho de 2008, 23:17:15 »
void main (int argi, int* argv) {
sendo o último estilo (o mesmo que int[]) o mais usado
Suspeito que o compilador não tenha reclamado dos tipos porque ele sabe que main deveria retornar int e sabe os tipos dos parâmetros passados ao main... Testei com o gcc. :)

Muito estranho isso. Sério, na minha época não tinha esse boi não.

O main do c, como foi feito para rodar basicamente em qualquer S.O, não se prende uma limitação de tipos que pode passar ao S.O, como aquelas saídas ERRORLEVEL do DOS/Windows (não sei se o Windows tem apenas essas, mas pelo que me lembro sim)

Então eu posso ter void main(..., int main(..., ou char* (main --- Não me lembro se tipos mais complexos mas é irrelevante porque com um char * main( eu consigo fazer cast para basicamente qualquer coisa  porque é uma sequência de bytes.
Isto pode fazer a passagem de informações estruturadas entre o S.O e um programa muito mais elegantes do que persistir um arquivo, usar uma área de memória específica, etc..

Modificado: Humm, não to certo do char* main, se isso é cpp ou não. Vou dar um look.

Os tipos dos parâmetros seguem a mesma linha de raciocínio. São obrigatórios em C ANSY. eu posso fazer "chamada.exe hello world"  e receber como main (int int), e ele ia pegar os dois primeiros bytes do que passei para cada parâmetro e socar como um int.
Não me lembro bem, mas acho que se vc declara um void main(char* par), ele coloca um '\0' no final
 
Portanto, não deveria compilar sem isso
« Última modificação: 15 de Julho de 2008, 23:38:26 por Agnostico »
“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #31 Online: 15 de Julho de 2008, 23:45:31 »
O main do c, como foi feito para rodar basicamente em qualquer S.O, não se prende uma limitação de tipos que pode passar ao S.O, como aquelas saídas ERRORLEVEL do DOS/Windows (não sei se o Windows tem apenas essas, mas pelo que me lembro sim)
Bem, o GCC não obriga ANSI/C. E tanto Unix quanto Windows, retornam um inteiro ao final da execução.

Isto pode fazer a passagem de informações estruturadas entre o S.O e um programa muito mais elegantes do que persistir um arquivo, usar uma área de memória específica, etc..
Cara, acho que não. Geralmente SOs tem proteção contra invasão de memória... Talvez no DOS isso funcione, mas no Linux deve gerar um segfault. :P

Os tipos dos parâmetros seguem a mesma linha de raciocínio. São obrigatórios em C ANSY. eu posso fazer "chamada.exe hello world"  e receber como main (int int), e ele ia pegar os dois primeiros bytes do que passei para cada parâmetro e socar como um int.
Não me lembro bem, mas acho que se vc declara um void main(char* par), ele coloca um '\0' no final
Você programa para embarcados ou dizer que int tem 16 bits é dádiva do passado mesmo? :P

Bem, o primeiro tipo é um char ** de 4 bytes (eu sou do presente.. :P) como um int, por isso dá certo. Tente:

Código: [Selecionar]

int main(int argc, int argv)
{
printf("%d: %s\n", argc, *(char **)argv);
}

Offline gogorongon

  • Nível 30
  • *
  • Mensagens: 1.834
  • Sexo: Masculino
  • Não.
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #32 Online: 16 de Julho de 2008, 00:17:26 »
Python, C, Java, whatever. A melhor linguagem depende do problema, do hardware e dos conhecimentos dos programadores envolvidos.

Fui de C direto pra Java e posso dizer que as duas linguagens são muito boas, cada uma com seus pontos fortes. Na maior parte do tempo Java é mais tranquilo, mas C é mais divertido.

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #33 Online: 16 de Julho de 2008, 00:34:19 »
Citar
Bem, o GCC não obriga ANSI/C.
E tanto Unix quanto Windows, retornam um inteiro ao final da execução.

Então, o c++ pode passar char* main.  O c pode char main (o que não quer dizer muito porque o char é um byte). - deve aceitar char* main também.
E o unix aceita char* para passar informações entre as chamadas. Basta ver os pipes do comand line. Sem isso, unix não é unix. E o dos não faz pode ser por essa limitação

modificado: Alias o nome pipe é porque uma técnica de passagem de informações entre processos. Tem em alguns bancos de dados também (eg dbms_pipe no oracle)

Citar
Cara, acho que não. Geralmente SOs tem proteção contra invasão de memória... Talvez no DOS isso funcione, mas no Linux deve gerar um segfault.

Na verdade é previsto. Um mecanismo por exemplo é IPC. Hoje em dia tem uns mecanismos bem mais sofisticados.

Citar
Você programa para embarcados ou dizer que int tem 16 bits é dádiva do passado mesmo? Razz

Das antigas mesmo... Não sei se tem ainda int e short int, que dependia de como vc configurava o compilador. int ia de 2 a 4 bytes, sempre utilizava com 2.  :-)

Citar
Bem, o primeiro tipo é um char ** de 4 bytes (eu sou do presente.. Razz) como um int, por isso dá certo. Tente:

um char** é uma array de strings. o char agora tem quatro bytes? Mas o que disse é diferente disso.


« Última modificação: 16 de Julho de 2008, 00:44:46 por Agnostico »
“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #34 Online: 16 de Julho de 2008, 00:44:14 »
Então, char ** é ponteiro para ponteiro de char. Em máquinas x86, todo ponteiro tem tamanho igual à um int. Não é que char tenha quatro bytes, ele tem um, mas um ponteiro que aponta pra ele (como qualquer outro) tem o 4 (em máquinas x86, claro; e depende do compilador).

Quanto a short int: existe uma redundância, acho que é o long... long int gera o mesmo que int no GCC para processadores x86.

Os pipes pegam a saída do stdout do programa a esquerda e colocam no stdin do programa a direita dele... Acho que você está confundindo... O retorno do main pode ser utilizado também, aliás, normalmente ele é, para quem faz shell script: normalmente o main deve retornar o código da operação (acho que o padrão é 0 para "tudo certo" e o código de erro para qualquer outra coisa).

E eu também acho que não entendi o que você quis dizer por último... Respondi o que acho que entendi.. :p

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #35 Online: 16 de Julho de 2008, 00:58:33 »
Citar
Então, char ** é ponteiro para ponteiro de char.
Sim, que como disse é o mesmo que uma array de strings. Vc pode trocar char** por string[]


Citar
Em máquinas x86, todo ponteiro tem tamanho igual à um int.
O ponteiro pode ter o tamanho que o HW possibilitar, mas o tamanho do int não é limitado pelo tamanho do ponteiro, claro. O tamanho do ponteiro limita o endereçamento de memória, mas não o tamanho da estrutura malloc que foi dada a ele.


Citar
Os pipes pegam a saída do stdout do programa a esquerda e colocam no stdin do programa a direita dele... Acho que você está confundindo... O retorno do main pode ser utilizado também, aliás, normalmente ele é, para quem faz shell script: normalmente o main deve retornar o código da operação (acho que o padrão é 0 para "tudo certo" e o código de erro para qualquer outra coisa).

pergunta: Vc sabe como stdin passa as informações para stdout?
outro: vc viu a questão do char* main em c?


“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #36 Online: 16 de Julho de 2008, 01:15:37 »
Sim, que como disse é o mesmo que uma array de strings. Vc pode trocar char** por string[]
Pode não, mesmo porque C não tem tipo string. :P. Char * "é string" por uma questão de "padrões". Todo vetor em C é na verdade um ponteiro para aquele tipo, por exemplo:

int a[5];
int *b;

Se você atrbuir:

b = a;

Dá certo. Em tempo que se você acessar "a" dessa forma:

printf("%d\n", *a).;

Também dá certo (você acessaria o primeiro elemento do vetor), pois são variáveis do mesmo tipo: "a" aponta para o primeiro valor do vetor. Depois disso, a cada sizeof(int) bytes, vai ter um outro int na memória.

Chegando onde quero chegar: char * só é string porque é um monte de char seguidos.

Citar
Em máquinas x86, todo ponteiro tem tamanho igual à um int.
O ponteiro pode ter o tamanho que o HW possibilitar, mas o tamanho do int não é limitado pelo tamanho do ponteiro, claro. O tamanho do ponteiro limita o endereçamento de memória, mas não o tamanho da estrutura malloc que foi dada a ele.
Então, a estrutura do malloc não é colocada na variável "tipo *". O que é feito na verdade pelo SO, é uma alocação na heap do sistema operacional e na variável é colocada um apontador para a posição de memória onde a memória foi alocada. Por isso é um ponteiro, porque aponta pra lá.. :p

Quanto a minha alegação de 4 bytes: bem, não sei se há exceções, mas normalmente máquinas x86 tem registradores de 32 bits e o mapeamento de memória tem o mesmo tamanho... Concordo contigo quanto à isso ser variável pelo HW, tanto que fiz referência explícita pra essa arquitetura...

pergunta: Vc sabe como stdin passa as informações para stdout?
Coisa do SO... Ele deve direcionar o stdout do primeiro programa para o stdin do segundo...

outro: vc viu a questão do char* main em c?
Que questão?
« Última modificação: 16 de Julho de 2008, 01:18:01 por Oceanos »

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #37 Online: 16 de Julho de 2008, 01:46:19 »
Realmente, ví que nos meus programas fazia um typedef para criar uma string. Aí ficava igual.
Sim, o conceito é claro, confundi com meu typedef que sempre usava.

Mas sendo string um char* (o que é, se vc olha em string.h todos os parâmetros string são claro um char*), então char** é um vetor unidimensional de strings, ou ponteiro para ponteiro de char, como queira.

Modificado- Para fins de clareza, em modelagem não costumamos falar ponteiro para ponteiro. Não conheço por exemplo uma notação UML para isso (relação entre dois tipos estruturados -typedef struct para c -, não dentro de um mesmo tipo), então modelar com esse linguajar que é mais natural para a programação não fica tão atraente.

Citar
Então, a estrutura do malloc não é colocada na variável "tipo *". O que é feito na verdade pelo SO, é uma alocação na heap do sistema operacional e na variável é colocada um apontador para a posição de memória onde a memória foi alocada. Por isso é um ponteiro, porque aponta pra lá.. :p
Sim , claro. Malloc é apenas Malloc. O que disse é que eu posso ter um ponteiro de 1 byte apontando para uma estrutura de 20.

Citar
Quanto a minha alegação de 4 bytes: bem, não sei se há exceções, mas normalmente máquinas x86 tem registradores de 32 bits e o mapeamento de memória tem o mesmo tamanho... Concordo contigo quanto à isso ser variável pelo HW, tanto que fiz referência explícita pra essa arquitetura...

Sim, há exceções, que são melhores tratadas em cada sistema operacional.
Primeiro existe um mecanismo da intel chamado PAE (page address extension) que te permite isso. Tem outro recurso VLM no Red Hat AS. E tem também as características do S.O

-> In order to get above 4GB virtual memory on IA-32 architecture a technique known as PAE (Page Address Extensions) is used. It is a method that translates 32-bit (2**32 = 4GB) linear addresses to 36-bit (2**36 = 64GB)

Voltando ao S.O. Por exemplo, o Windows previlegia a thread. Portanto um programa servidor, que tem vários programas background, cada programa desse será uma thread no windows e a somatória dessas threads podem acessar o total de endereçamento da memória (para 32b 4GB), descontando o PAE.

O unix privilegia o processo. E cada processo que compoe o servidor vai poder utilizar o máximo endereçavel - dentro do imposto 32/64 -. Então, eu posso ter facilmente (sem PAE) uma máquina intel 32 bits com 64GB de ram e o conjunto de processos que compoe o servidor (eg um banco de dados) acessar praticamente tudo.

Com PAE, eu posso aumentar a memória que eu posso endereçar dentro do próprio processo.

Citar
Coisa do SO... Ele deve direcionar o stdout do primeiro programa para o stdin do segundo...
Aqui dei um look e parece que vc tem razão. É um exemplo, mas mostra bem o mecanismo, e não a comunicação não se dá entre as chamadas.


Citar
http://www.ee.ic.ac.uk/docs/software/unix/programming/sys/transfer/pipe.html


The following program pipes the output of the ps command in the parent to the grep command in the child to find details pertinent for the current terminal (c.f. ttyname()).

 
setup % cat > pipe.c
/* parent mutates into ps which pipes it output to the child which has mutated
   into grep */
#include <stdio.h>
#define ENUF(msg, value) {perror(msg); exit(value); }
main(argc, argv)
int argc;
char *argv[];
{ int i, pid, fd[2];
  char *gets(), *ttyname();
  char tty[4], *ptr;
 
 if ( pipe(fd) != 0) ENUF("pipe creation error", 1);
 i = 0;
 while ( (pid=fork()) == -1)  /* try a few times before giving up */
   if (++i > 5 ) ENUF("failed to form after 5 attempts", 2) else sleep(5);
 
 if (pid == 0) {      /* CHILD process */
   ptr = ttyname(fileno(stdin)); tty[0] = ' '; tty[1] = ptr[strlen(ptr)-2];
   tty[2] = ptr[strlen(ptr)-1];  tty[3] = ' '; tty[4] = '\0';

   fprintf(stdout,
   " Child pipe fds before dup: fd[0] %d, fd[1] %d\n",fd[0],fd[1]);
   close(fd[1]);      /* not using pipe write fd=4 */
   close(0);      /* redirecting stdin fd=0 */
   i = dup(fd[0]);      /* duplicate pipe read with stdin i.e. 0=3 */
 
   fprintf(stderr,
   " Child pipe fds after dup:  fd[0] %d, fd[1] %d \n", i, fd[1]);
   close(fd[0]);           /* close pipe read after use fd=3 */
   /* list processes running on current terminal */
   if (execl("/bin/grep", "grep", tty, NULL) == -1) ENUF("Unable to run grep", 3);
   }
   
else {            /* PARENT process */
   fprintf(stderr,
   "Parent pipe fds before dup: fd[0] %d, fd[1] %d \n", fd[0], fd[1]);
   close(fd[0]);      /* not using pipe read fd=3 */
   close(1);      /* redirecting stdout fd=1 */
   i = dup(fd[1]);      /* duplicate pipe write with stdout i.e. 1=4 */
 
   fprintf(stderr,
   "Parent pipe fds after dup:  fd[0] %d, fd[1] %d \n", fd[0], i);
   close(fd[1]);      /* close pipe write after use fd=4 */
   /* list processes running on terminal in long format */
   if (execlp("ps", "-lx", NULL) == -1) ENUF("Unable to run ps", 4);
   }
} /* main */

% acc -w -o DEMO pipe.o
 
% ps -xl | grep p5
2048820110287  1666  1665  0  15  0  80  184 kernelma S    p5  0:00 -h -i (csh)
2000820110287  1749  1666  2  15  0  76  404 kernelma S    p5  0:00 /bin/csh -f
2000000110287  1771  1749 22  30  0 216  464          R    p5  0:00 ps -xl
2000000110287  1772  1749  6   1  0  32  212 socket   S    p5  0:00 grep p5
 


E ainda tem os pipes baseados em IPC e semáforos, que não são o mesmo que o pipe do Unix, como vimos acima


modificado: cáspita, não tenho uma conversa assim há anos... Vou mudar de área de novo dentro da empresa   :)
[ ]
« Última modificação: 16 de Julho de 2008, 09:31:24 por Agnostico »
“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline gogorongon

  • Nível 30
  • *
  • Mensagens: 1.834
  • Sexo: Masculino
  • Não.
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #38 Online: 16 de Julho de 2008, 08:42:43 »
Só um detalhe, no Windows tem dois tipos de funções de entrada da aplicação, o main para aplicações de console e o WinMain para aplicações de janela.

Offline Gaúcho

  • Moderadores Globais
  • Nível Máximo
  • *
  • Mensagens: 15.288
  • Sexo: Masculino
  • República Rio-Grandense
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #39 Online: 16 de Julho de 2008, 11:18:46 »
.Net rlz.
"— A democracia em uma sociedade livre exige que os governados saibam o que fazem os governantes, mesmo quando estes buscam agir protegidos pelas sombras." Sérgio Moro

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #40 Online: 16 de Julho de 2008, 12:56:56 »
Modificado- Para fins de clareza, em modelagem não costumamos falar ponteiro para ponteiro. Não conheço por exemplo uma notação UML para isso (relação entre dois tipos estruturados -typedef struct para c -, não dentro de um mesmo tipo), então modelar com esse linguajar que é mais natural para a programação não fica tão atraente.
Como vocês chamam?

Sim , claro. Malloc é apenas Malloc. O que disse é que eu posso ter um ponteiro de 1 byte apontando para uma estrutura de 20.
É que eu disse aquilo pela sua resposta anterior, que me deu a entender que você achava que um tipo poderia "mudar de tamanho". Desculpa se eu chovi no molhado. :)

Sim, há exceções, que são melhores tratadas em cada sistema operacional.
Primeiro existe um mecanismo da intel chamado PAE (page address extension) que te permite isso. Tem outro recurso VLM no Red Hat AS. E tem também as características do S.O

-&gt; In order to get above 4GB virtual memory on IA-32 architecture a technique known as PAE (Page Address Extensions) is used. It is a method that translates 32-bit (2**32 = 4GB) linear addresses to 36-bit (2**36 = 64GB)

Voltando ao S.O. Por exemplo, o Windows previlegia a thread. Portanto um programa servidor, que tem vários programas background, cada programa desse será uma thread no windows e a somatória dessas threads podem acessar o total de endereçamento da memória (para 32b 4GB), descontando o PAE.

O unix privilegia o processo. E cada processo que compoe o servidor vai poder utilizar o máximo endereçavel - dentro do imposto 32/64 -. Então, eu posso ter facilmente (sem PAE) uma máquina intel 32 bits com 64GB de ram e o conjunto de processos que compoe o servidor (eg um banco de dados) acessar praticamente tudo.

Com PAE, eu posso aumentar a memória que eu posso endereçar dentro do próprio processo.
Então, tipo, o endereçamento virtual da arquitetura continua sendo o mesmo (você continua endereçando 32 bits; só que o SO/Processador (no caso do PAE) traduz os endereços certinho). No caso do PAE, o que acontece é que ele coloca mais páginas na RAM. Isso de endereçar mais memória que o barramento consegue acontece de qualquer jeito, e é por causa da memória virtual.

Ó só: http://en.wikipedia.org/wiki/Physical_Address_Extension


modificado: cáspita, não tenho uma conversa assim há anos... Vou mudar de área de novo dentro da empresa   :)
Você trabalha em que área? É analista? :hihi:

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #41 Online: 16 de Julho de 2008, 12:57:27 »
.Net rlz.
Se sua intenção for fazer programas video-locadora likes com acesso a banco de dados, eu concordo. :P

Offline Jeanioz

  • Nível 33
  • *
  • Mensagens: 2.501
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #42 Online: 16 de Julho de 2008, 13:16:24 »
Um fractal, que legal :lol:


E que história é essa de que nenhuma linguagem cresce mais que Java? Olha aquele link que eu passei para o Elton e veja com seus próprios olhos que Python cresce mais que qualquer linguagem!

Está crescendo por que não tem muita coisa para crescer. :twisted:

+0.33% do Glorioso Java vale muito mais que os porcos +1.95% do Python!!! :twisted:

Para que defender uma linguagem velha como Python?! Converta-se para o lado vencedor que é o Java!!!

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #43 Online: 16 de Julho de 2008, 13:53:46 »
Citar
Como vocês chamam?

Lembra quando temos composição, agregação, etc..  Quando a relação é 1..* não falamos um ponteiro para ponteiro, etc... Não é uma boa abstração para modelagem. E as ferramentas implementam como um vetor.

Citar
Então, tipo, o endereçamento virtual da arquitetura continua sendo o mesmo (você continua endereçando 32 bits; só que o SO/Processador (no caso do PAE) traduz os endereços certinho). No caso do PAE, o que acontece é que ele coloca mais páginas na RAM. Isso de endereçar mais memória que o barramento consegue acontece de qualquer jeito, e é por causa da memória virtual.

Ó só: http://en.wikipedia.org/wiki/Physical_Address_Extension

Sim, exatamente isso.... vc falou o mapeamento de memória frente a arquitetura do processador, ao que falei do PAE e da extrura VLM do redhat por exemplo.

Citar
Você trabalha em que área? É analista? Hihi!

Não. Tem a ver mais com melhora da performance da empresa com a utilização de tecnologia (ERP, infra, etc..)
Infelizmente essa nossa conversa não tenho há anos... nem programa nada. To esquecendo já :-(
« Última modificação: 13 de Maio de 2011, 11:17:10 por Unknown »
“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #44 Online: 16 de Julho de 2008, 14:37:15 »
Lembra quando temos composição, agregação, etc..  Quando a relação é 1..* não falamos um ponteiro para ponteiro, etc... Não é uma boa abstração para modelagem. E as ferramentas implementam como um vetor.
Ah, sim. Eu uso esse termo porque ponteiro pra ponteiro pode ser outra coisa além de vetores bidimensionais...

Não. Tem a ver mais com melhora da performance da empresa com a utilização de tecnologia (ERP, infra, etc..)
Infelizmente essa nossa conversa não tenho há anos... nem programa nada. To esquecendo já :-(
Ah, eu fujo da indústria por causa disso. Com a formação que tenho (faculdade particular), dificilmente eu consigo um trabalho bom (por mais que eu esteja no nível de qualquer aluno de uma faculdade pública). Para crescer, vou ter que acabar virando analista de sistemas ou ter cargos mais administrativos ainda...

Um saco, porque não sei ser chefe e porque tenho ódio mortal de trabalhos administrativos...

Mas enfim, para não esquecer, por que não começa a trabalhar em alguns projetos Open Source? Talvez consiga se divertir um pouco...
« Última modificação: 13 de Maio de 2011, 11:18:35 por Unknown »

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #45 Online: 16 de Julho de 2008, 14:44:15 »
Para que defender uma linguagem velha como Python?! Converta-se para o lado vencedor que é o Java!!!
Velha, como assim? Python é uma linguagem atual; tem muito mais recursos atuais e tenta suportar paradigmas mais atuais do que Java... Java é uma linguagem extremamente prolixa que te força a programar em um paradigma específico. O excesso de bibliotecas mais atrapalha que ajuda: no desenvolvimento, você passa mais tempo procurando algo que faça o que você quer para Java do que efetivamente fazendo alguma coisa... Para ler um arquivo com Java você precisa de umas três classes diferentes (que você tem que apropriadamente escolher entre várias); existe um "excesso de OO". Em python você faz isso com 2 comandos...

Java está acabando. Está perdendo mercado corporativo para o .Net, em Desktop sempre marcou presença nula, em servidores web idem... No máximo na área de embarcados (celulares e afins, coisa de alto nível; deeply embedded JAMAIS). Aliás, ela só resiste por causa disso...
« Última modificação: 16 de Julho de 2008, 14:50:16 por Oceanos »

Offline uiliníli

  • Nível Máximo
  • *
  • Mensagens: 18.107
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #46 Online: 16 de Julho de 2008, 15:08:29 »
...

Sem contar que Python é mais divertido! :hihi:

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #47 Online: 16 de Julho de 2008, 21:30:53 »
Eu gosto do que faço hoje também. Fico fazendo especificação de projetos para empresas, calculando retorno financeiro, riscos e exposição regulatórios, benefícios,  etc.
Mas como disse lá atrás, programação é uma coisa que sempre fiz relaxando, é você contra o problema, e você consegue fazer o código cada vez melhor e menor...

O crescimento no ramo puramente técnico no Brasil é limitado. Nos EUA, onde estão a sede da maioria das "MISO" (Microsoft, IBM, SAP, Oracle) há programadores que trabalham com o core de produtos que ganham centanas de milhares de dollares por ano.  Ou DBA com nível de VP (sério).

Agora quanto ao Java: Não vejo isso, maior a empresa, mais java têm. Agora com a questão do SOA, os ESB são praticamente todos java, bem como as ferramentas de BPM.

Em application server, IBM, Oracle e Bea (agora Oracle também) dominam o mercado mundial.
« Última modificação: 16 de Julho de 2008, 21:39:24 por Agnostico »
“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline FZapp

  • Administradores
  • Nível Máximo
  • *
  • Mensagens: 6.943
  • Sexo: Masculino
  • El Inodoro Pereyra
    • JVMC
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #48 Online: 16 de Julho de 2008, 22:58:39 »
Java está acabando. Está perdendo mercado corporativo para o .Net,

Só se for no universo paralelo onde os applications servers em ambiente de produção rodam em Windows ! Cara, a escalabilidade/performance de applications servers em Windows é muito ruim. E, na boa, o .Net só começou a funcionar em 2007, 5 anos depois do J2EE, então estão atrasados até agora...

(...) em Desktop sempre marcou presença nula,

Isso é verdade (aliás, o Swing é muuuuito chato de desenvolver), mas soluções em Desktops também recuaram; hoje é melhor usar browser mesmo numa arquitetura cliente-servidor simples.

em servidores web idem... No máximo na área de embarcados (celulares e afins, coisa de alto nível; deeply embedded JAMAIS). Aliás, ela só resiste por causa disso...

E soluções corporativas ? Porte de funcionalidades que eram cliente-servidor ou stand-alone (leia-se 'clipão') ? Por que ERPs já desenvolvidos foram portados para Java ? Porque MySAP usa Java ? Porque a base do Oracle (não o OCI, mas de aplicações, drivers, e até o client) estão em java ? Por quê a Oracle comprou a BEA ?

Detalhe: não existe panacéia, nem linguagem de programação que serve para tudo.
--
Si hemos de salvar o no,
de esto naides nos responde;
derecho ande el sol se esconde
tierra adentro hay que tirar;
algun día hemos de llegar...
despues sabremos a dónde.

"Why do you necessarily have to be wrong just because a few million people think you are?" Frank Zappa

Offline FZapp

  • Administradores
  • Nível Máximo
  • *
  • Mensagens: 6.943
  • Sexo: Masculino
  • El Inodoro Pereyra
    • JVMC
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #49 Online: 16 de Julho de 2008, 23:00:21 »
Aliás, um parêntese: na minha opinião a popularidade do Java se deu por ter acompanhado as mudanças tecnológicas pós-TCP/IP (não vou dizer 'internet' porque vai confundir) e por uniformizar a cadeia programador-analista-arquiteto-cliente.
--
Si hemos de salvar o no,
de esto naides nos responde;
derecho ande el sol se esconde
tierra adentro hay que tirar;
algun día hemos de llegar...
despues sabremos a dónde.

"Why do you necessarily have to be wrong just because a few million people think you are?" Frank Zappa

 

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