• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Guest tsenart

[Resolvido] C++ é uma farsa?

60 mensagens neste tópico

Fonte: http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml

  On the 1st of January, 1998, Bjarne Stroustrup gave

  an interview to the IEEE's 'Computer' magazine.

  Naturally, the editors thought he would be giving

  a retrospective view of seven years of object-oriented

  design, using the language he created. By the end of the

  interview, the interviewer got more than he had

  bargained for and, subsequently, the editor decided to

  suppress its contents, 'for the good of the industry' but,

  as with many of these things, there was a leak. Here is a

  complete transcript of what was said, unedited, and

  unrehearsed, so it isn't as neat as planned interviews.

  You will find it interesting...

  ________________________________________________________________

  Interviewer:

  Well, it's been a few years since you changed theworld of

  software design.  How does it feel, looking back?

  Stroustrup:

  Actually, I was thinking about those days, just before you

  arrived.  Do you remember?  Everyone was writing 'C' and,

  the trouble was, they were pretty damn good at it.

  Universities got pretty good at teaching it, too.  They were

  turning out competent - I stress the word 'competent' -

  graduates at a phenomenal rate.  That's what caused the

  problem.

  Interviewer:

  Problem?

  Stroustrup:

  Yes, problem.  Remember when everyone wrote COBOL?

  Interviewer:

  Of course, I did, too.

  Stroustrup:

  Well, in the beginning, these guys were like

  demi-gods.  Their salaries were high, and they

  were treated like royalty.

  Interviewer:

  Those were the days, eh?

  Stroustrup:

  Right.  So what happened?  IBM got sick of it,

  and invested millions in training programmers, till

  they were a dime a dozen.

  Interviewer:

  That's why I got out.  Salaries dropped within a

  year, to the point where being a journalist actually

  paid better.

  Stroustrup:

  Exactly.  Well, the same happened with 'C' programmers.

  Interviewer:  I see, but what's the point?

  Stroustrup:

  Well, one day, when I was sitting in my office, I

  thought of this little scheme, which would redress

  the balance a little.  I thought 'I wonder what

  would happen, if there were a language so complicated,

  so difficult to learn, that nobody would ever be able

  to swamp the market with programmers?

  Actually, I got some of the ideas from X10, you know,

  X windows.  That was such a bitch of a graphics system,

  that it only just ran on those Sun 3/60 things.  They

  had all the ingredients for what I wanted.  A really

  ridiculously complex syntax, obscure functions, and

  pseudo-OO structure.  Even now, nobody writes raw X-windows

  code.  Motif is the only way to go if you want to retain

  your sanity.

  Interviewer:

  You're kidding...?

  Stroustrup:

  Not a bit of it.  In fact, there was another problem.

  Unix was written in 'C', which meant that any 'C'

  programmer could very easily become a systems programmer.

  Remember what a mainframe systems programmer used to earn?

  Interviewer:

  You bet I do, that's what I used to do.

  Stroustrup:

  OK, so this new language had to divorce itself from Unix,

  by hiding all the system calls that bound the two together

  so nicely.  This would enable guys who only knew about DOS

  to earn a decent living too.

  Interviewer:

  I don't believe you said that...

  Stroustrup:

  Well, it's been long enough, now, and I believe most people

  have figured out for themselves that C++ is a waste of time but,

  I must say, it's taken them a lot longer than I thought it would.

  Interviewer:

  So how exactly did you do it?

  Stroustrup:

  It was only supposed to be a joke, I never thought people would

  take the book seriously. Anyone with half a brain can see that

  object-oriented programming is counter-intuitive, illogical and

  inefficient.

  Interviewer:

  What?

  Stroustrup:

  And as for 're-useable code' --- when did you ever hear of a

  company re-using its code?

  Interviewer:

  Well, never, actually, but...

  Stroustrup:

  There you are then.  Mind you, a few tried, in the early days.

  There was this Oregon company --- Mentor Graphics, I think they

  were called --- really caught a cold trying to rewrite everything

  in C++ in about '90 or '91.  I felt sorry for them really, but

  I thought people would learn from their mistakes.

  Interviewer:

  Obviously, they didn't?

  Stroustrup:

  Not in the slightest.  Trouble is, most companies hush-up all

  their major blunders, and explaining a $30 million loss to the

  shareholders would have been difficult.  Give them their due,

  though, they made it work in the end.

  Interviewer:

  They did?  Well, there you are then, it proves O-O works.

  Stroustrup:

  Well, almost.  The executable was so huge, it took five minutes

  to load, on an HP workstation, with 128MB of RAM.  Then it ran

  like molasses. Actually, I thought this would be a major

  stumbling-block, and I'd get found out within a week, but nobody

  cared.  Sun and HP were only too glad to sell enormously powerful

  boxes, with huge resources just to run trivial programs.  You

  know, when we had our first C++ compiler, at AT&T, I compiled

  'Hello World', and couldn't believe the size of the executable:

  2.1MB

  Interviewer:

  What?  Well, compilers have come a long way, since then.

  Stroustrup:

  They have?  Try it on the latest version of g++ - you won't get

  much change out of half a megabyte. Also, there are several quite

  recent examples for you, from all over the world.  British Tele-

  com had a major disaster on their hands but, luckily, managed to

  scrap the  whole thing and start again. They were luckier than

  Australian Telecom.

  Now I hear that Siemens is building a dinosaur, and getting more

  and more worried as the size of the hardware gets bigger, to

  accommodate the executables.  Isn't multiple inheritance a joy?

  Interviewer:

  Yes, but C++ is basically a sound language.

  Stroustrup:

  You really believe that, don't you?  Have you ever sat down and

  worked on a C++ project?  Here's what happens: First, I've put

  in enough pitfalls to make sure that only the most trivial proj-

  ects will work first time.  Take operator overloading.  At the

  end of the project, almost every module has it, usually, because

  guys feel they really should do it, as it was in their training

  course.  The same operator then means something totally different

  in every module.  Try pulling that lot together, when you have a

  hundred or so modules.  And as for data hiding, God, I sometimes

  can't help laughing when I hear about the problems companies

  have making their modules talk to each other.

  I think the word 'synergistic' was specially invented to twist

  the knife in a project manager's ribs.

  Interviewer:

  I have to say, I'm beginning to be quite appalled at all this.

  You say you did it to raise programmers' salaries?  That's ob-

  scene.

  Stroustrup:

  Not really.  Everyone has a choice.  I didn't expect the thing to

  get so much out of hand. Anyway, I basically succeeded.  C++ is

  dying off now, but programmers still get high salaries, especial-

  ly those poor devils who have to maintain all this crap.  You do

  realise, it's impossible to maintain a large C++ software module

  if you didn't actually write it?

  Interviewer:

  How come?

  Stroustrup:

  You are out of touch, aren't you?  Remember the typedef?

  Interviewer:

  Yes, of course.

  Stroustrup:

  Remember how long it took to grope through the header files only

  to find that 'RoofRaised' was a double precision number?  Well,

  imagine how long it takes to find all the implicit typedefs in

  all the Classes in a major project.

  Interviewer:

  So how do you reckon you've succeeded?

  Stroustrup:

  The universities haven't been teaching 'C' for such a long time,

  there's now a shortage of decent 'C' programmers.  Especially

  those who know anything about Unix systems programming. How many

  guys would know what to do with 'malloc', when they've used 'new'

  all these years and never bothered to check the return code. In

  fact, most C++ programmers throw away their return codes.  What-

  ever happened to good ol' '-1'?  At least you knew you had an

  error, without bogging the thing down in all that 'throw' 'catch'

  'try' stuff.

  Interviewer:

  But, surely, inheritance does save a lot of time?

  Stroustrup:

  Does it?  Have you ever noticed the difference  between a 'C'

  project plan, and a C++ project plan?  The planning stage for

  a C++ project is three times as long.  Precisely to make sure

  that everything which should be inherited is, and what shouldn't

  isn't.  Then, they still get it wrong. Whoever heard of memory

  leaks in a 'C' program? Now finding them is a major industry.

  Most companies give up, and send the product out, knowing it

  leaks like a sieve, simply to avoid the expense of tracking them

  all down.

  Interviewer:

  There are tools....

  Stroustrup:

  ...Most of which were written in C++.

  Interviewer:

  If we publish this, you'll probably get lynched, you do realise

  that?

  Stroustrup:

  I doubt it.  As I said, C++ is way past its peak now, and no

  company in its right mind would start a C++ project without a

  pilot trial. That should convince them that it's the road to

  disaster.  If not, they deserve all they get.  You know, I tried

  to convince Dennis Ritchie to rewrite Unix in C++.

  Interviewer:

  Oh my God.  What did he say?

  Stroustrup:

  Well, luckily, he has a good sense of humor.  I think both he

  and Brian figured out what I was doing, in the early days, but

  never let on.  He said he'd help me write a C++ version of DOS,

  if I was interested.

  Interviewer:

  Were you?

  Stroustrup:

  Actually, I did write DOS in C++, I'll give you a demo when

  we're through.  I have it running on a Sparc 20 in the computer

  room.  Goes like a rocket on 4 CPU's, and only takes up 70 megs

  of disk.

  Interviewer:

  What's it like on a PC?

  Stroustrup:

  Now you're kidding.  Haven't you ever seen Windows '95?  I think

  of that as my biggest success.  Nearly blew the game before I was

  ready, though.

  Interviewer:

  You know, that idea of a Unix++ has really got me thinking.

  Somewhere out there, there's a guy going to try it.

  Stroustrup:

  Not after they read this interview.

  Interviewer:

  I'm sorry, but I don't see us being able to publish any of this.

  Stroustrup:

  But it's the story of the century.  I only want to be remembered

  by my fellow programmers, for what I've done for them.  You know

  how much a C++ guy can get these days?

  Interviewer:

  Last I heard, a really top guy is worth $80 - $90 an hour.

  Stroustrup:

  See?  And I bet he earns it.  Keeping track of all the gotchas I

  put into C++ is no easy job. And, as I said before, every C++

  programmer feels bound by some mystic promise to use every damn

  element of the language on every project. Actually, that really

  annoys me sometimes, even though it serves my original purpose.

  I almost like the language after all this time.

  Interviewer:

  You mean you didn't before?

  Stroustrup:

  Hated it.  It even looks clumsy, don't you agree?  But when the

  book royalties started to come in... well, you get the picture.

  Interviewer:

  Just a minute.  What about references?  You must admit, you

  improved on 'C' pointers.

  Stroustrup:

  Hmm.  I've always wondered about that.  Originally, I thought I

  had.  Then, one day I was discussing this with a guy who'd written

  C++ from the beginning.  He said he could never remember whether

  his variables were referenced or dereferenced, so he always used

  pointers.  He said the little asterisk always reminded him.

  Interviewer:

  Well, at this point, I usually say 'thank you very much' but it

  hardly seems adequate.

  Stroustrup:

  Promise me you'll publish this.  My conscience is getting the

  better of me these days.

  Interviewer:

  I'll let you know, but I think I know what my editor will say.

  Stroustrup:

  Who'd believe it anyway?  Although, can you send me a copy of that

  tape?

  Interviewer:

  I can do that.

  :shocking:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mmmm...

bem... o gajo que a fez a critica-la assim, realmente dá que pensar.

Uma coisa é certa, esta paranoia pelo paradigma da programação orientada a objectos é indiscutivelmente exagerada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

???

o quê? lol

It was only supposed to be a joke, I never thought people would

  take the book seriously. Anyone with half a brain can see that

  object-oriented programming is counter-intuitive, illogical and

  inefficient.

wtf???  :shocking:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imperative programming all the way! Realmente ele tem a sua razão. Quanto mais low level, mais eficiente, pequeno, rápido, elegante é um executavel. Acho que as linguagens de agora abonam demasiado a favor da comodidade do programador. E isso nota-se na performance, na evolução dos computadores e no seu desperdicio de recursos.

Não quero dizer que deviamos todos programar em Assembly, mas a evolução das tendências deveria ter-se dado mais virada para a rentabilidade/eficiência dos sistemas computacionais em vez da facilidade na sua concepção. Isso, num nivel mais baixo, resume-se ao confronto RISC vs. CISC.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol.

Vocês acreditaram mesmo que isso é verdadeiro? Meu Deus.

O próprio Bjarne Stroustrup desmente no seu site, através duma citação de um membro da Computer Magazine:

For the past few months, a hoax interview between Stroustrup and Computer has been making the rounds in cyberspace. While we regret the incident, it offers us a welcome opportunity to have the father of C++ share his insights on Standard C++ and software development in general. We can also attest to his continued sense of proportion and humor-he suggests that the fictitious interview would have been a much funnier parody had he written it himself.

Fonte: http://www.research.att.com/~bs/ieee_interview.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também não me parecia que fosse verdadeira... Mas a minha palavra mantêm-se sobre os paradigmas tomados (e suas consequências...) na evolução da programação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tambem achei estranho e fui inclusive verificar a fonte...nao vi la nomes nenhuns nem nada e achei estranho...mas sei la...as vezes...lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não quero dizer que deviamos todos programar em Assembly, mas a evolução das tendências deveria ter-se dado mais virada para a rentabilidade/eficiência dos sistemas computacionais em vez da facilidade na sua concepção.

Não concordo. Podes desenvolver um pouco mais a tua opinião?

E como nota aparte, quem é que controla a evolução? É que para se ter escolhido por seguir uma determinada via, implica que haja alguém a controlar a dita.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que as linguagens de agora abonam demasiado a favor da comodidade do programador. E isso nota-se na performance, na evolução dos computadores e no seu desperdicio de recursos.

Não quero dizer que deviamos todos programar em Assembly, mas a evolução das tendências deveria ter-se dado mais virada para a rentabilidade/eficiência dos sistemas computacionais em vez da facilidade na sua concepção.

São questões de requisitos.

Se num sistema o desempenho é o mais crítico, é natural que o programadores usem linguagens de baixo nível.

Mas se o requisito já a garantia de que o código funciona, não vais usar C para isto pois não?

A menos que estejas a pensar em fazer provas formais sobre programas em C, que não sendo impossível, para sistemas de alguma dimensão, quando as acabasses, o software já não era necessário.

Se na maior parte dos sistemas hoje em dia, os requisitos são a facilidade de manutenção do código, e o custo acessível, é natural que se coloque isso acima da eficiência.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, olhando par a entrevista realmente é chapado que é mentira... confesso que nem pus essa hipotese quando a li pois assumi que era verdade e que o autor não desmentia. Tratando-se de um rumor, sim, é descaradamente falso, até se nota que não é uma entrevista.

Quanto não vale estar informado... até acreditei nisto...

tsenart, sem querer desvalorizar a tua opiniao, mas a suposta entrevista diz precisamente o contrario disso. O defeito que ele supostamente aponta ao C++ é precisamente não oferecer nenhum conforto adicional ao programador e em vez disso complicar ainda mais.

Mas olhemos para as linguagens de programação e o que estas tentam ser... em resposta à critica de estarem demasiado focadas na comodidade do programador...

O que eu tenho a dizer é: se uma linguagem não está focada nisso então não serve para nada, pois é essa a única razão de existir das linguagens de programação. Se não andavamos todos a escrever zeros e uns num teclado com duas teclas.

O desafio é mesmo: que comodidade se consegue proporcionar ao programador respeitando determinados requisitos de performance? Ou reciprocamente:

Que performance é possivel com a simplicidade desejada?

Na última decada e meia (mais ou menos) os computadores tornaram-se demasiado potentes para uma enorme quantidade de tarefas, o que quer dizer que a performance, em muitos casos quase não interessa nem ao menino jesus. Então nesse caso: quanto mais simples melhor.

Se olharmos por exemplo para os webservices... se se falasse nisso há 20 anos iam ser considerados um fiasco de todo o tamanho. Hoje as empresas que tiveram visão para perceber que o seu potencial era enorme cilindraram completamente todos os que quiseram ficar agarrados ao passado.

Exemplos disso são o delicios e o digg, entre muitos outros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Na última decada e meia (mais ou menos) os computadores tornaram-se demasiado potentes para uma enorme quantidade de tarefas, o que quer dizer que a performance, em muitos casos quase não interessa nem ao menino jesus. Então nesse caso: quanto mais simples melhor.

Eu penso nisto como um ciclo vicioso... Os fabricantes começaram a fazer computadores mais potentes de modo a suportarem os desleixos dos compiladores de linguagens mais modernas. As linguagens são cada vez mais ineficientes. Os fabricantes continuam a conceber computadores mais potentes... etc etc etc.

Em suma, o ponto que eu quero deixar é que deveria haver um racio mais equilibrado facilidade/eficiencia das linguagens de programação, já que estas tendem cada vez mais para a facilidade.

Não precisavamos de todo este computing horse-power dos actuais PC's se a eficiencia das linguagens fosse minimamente mais elevada.

tsenart, sem querer desvalorizar a tua opiniao, mas a suposta entrevista diz precisamente o contrario disso. O defeito que ele supostamente aponta ao C++ é precisamente não oferecer nenhum conforto adicional ao programador e em vez disso complicar ainda mais.

Segundo esta "entrevista", a facilidade do C++ é NULL, mas a eficiência também é uma porcaria. Claro que os compiladores evoluiram desde então ,e o hello world em C++, como eu testei não tem 2.1MB. Mas atenção... Os seguintes exemplos foram compilados sem optimizações em Linux. Tudo default.

[glow=red,2,300]

Hello World C++[/glow]

(Tamanho: 6,7KB)

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World" << endl;
    return 0;
}

[glow=red,2,300]Hello World C[/glow]

(Tamanho: 4,3KB)

#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;
}

Basicamente as linguagens de programação forçaram a evolução dos PC's a niveis que não eram necessários se a eficiencia se tivesse mantido. E o preço também podia ser melhor....

E como nota aparte, quem é que controla a evolução? É que para se ter escolhido por seguir uma determinada via, implica que haja alguém a controlar a dita.

Quem controla, a meu ver, a evolução do mercado das linguagens de programação, são os seus "consumidores". Ou seja, todas as empresas e seus iluminados consultores ditam que linguagem vão usar para fabricar determinado software. O equilibrio foi está de novo desfeito.... No principio, eram os cartões perfurados e os zeros e uns. (O racio tendia para a eficiencia em demasia), Depois veio o assembly criar menemonicas para sequencias de zeros e uns que significavam instruções diferentes em diferentes sistemas. Na altura era maravilhoso, mas nos dias de hoje parece algo arcaico.

OFFTOPIC: Parece-me desporpositado não haver uma secção de assembly aqui no forum, já que toda a programação de computadores passa obrigatoriamente pelo assembly...

Veio então, finalmente, a 3ª geração de linguagens de programação. Nas quais está o C. Para mim, em termos de eficiencia, deviamos ter parado por aqui. E quem criou este fake article, até tem a sua razão na parte dos salários dos programadores. Se querem tanta facilidade, a programação vai passar a ser mal paga, pois qualquer "half-brained" o consegue fazer. A exclusividade, dentro de certos limites, é essencial para a sustentação do nosso (futuro) $alário. Resume-se à lei da procura/oferta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu penso nisto como um ciclo vicioso... Os fabricantes começaram a fazer computadores mais potentes de modo a suportarem os desleixos dos compiladores de linguagens mais modernas. As linguagens são cada vez mais ineficientes.

Não percebo porque chamas de desleixo. As linguagens de programação foram criadas para os programadores não para o computador.
Os fabricantes continuam a conceber computadores mais potentes... etc etc etc.
Mas isso irá ser sempre mesmo se as linguagens parassem de evoluir. Os fabricantes querem ter o maior número possível de clientes, e só conseguem oferecendo melhor produtos. A evolução dos computadores não é devido às linguagens, aliás até é o contrário na minha opinião, a evolução das linguagens é devido à evolução dos computadores.

Basicamente as linguagens de programação forçaram a evolução dos PC's a niveis que não eram necessários se a eficiencia se tivesse mantido. E o preço também podia ser melhor....

Que queres dizer com eficiência? A meu ver as linguagens de hoje são mais eficientes, e cada vez são mais, não tem lógica o contrário.

Não estás a contar apenas a eficiência com o tempo de execução e estás a esquecer o tempo de desenvolvimento?

É que é muito mais caro o tempo de um programador que o tempo extra necessário para executar o software ou a memória extra. A eficiência de uma linguagem são estes 3 factores, não é apenas o tempo de execução da mesma.

O software hoje em dia já é caro, imagina agora quanto seria o custo se o tempo de desenvolvimento fosse 3 ou 4 vezes mais.

Parece-me desporpositado não haver uma secção de assembly aqui no forum, já que toda a programação de computadores passa obrigatoriamente pelo assembly...
Tens a secção Outras Linguagens

Se querem tanta facilidade, a programação vai passar a ser mal paga, pois qualquer "half-brained" o consegue fazer. A exclusividade, dentro de certos limites, é essencial para a sustentação do nosso (futuro) $alário. Resume-se à lei da procura/oferta.

Não vejo dessa maneira. As facilidades que as linguagens dão, não eliminam o problema que tem de ser resolvido, permitem é ao programador abstrair da "camada física", focalizando-se antes no problema que realmente tem de ser resolvido.

Isto tudo confere ao programador uma maior produtividade, em vez de demorar 1 mês a desenvolver uma determinada aplicação, demora antes 1 semana. Ganhado 3 semanas para desenvolver mais outras aplicações, ou melhorar então a existente. Conferindo um produto de melhor qualidade, que por sua vez irá ser mais rentabilizado.

PS: Um Hello World em Haskell ocupa 524 KB.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu entendo as tuas opiniões. Melhor... até concordo com elas. Porque como já disse, isto é a história da galinha e do ovo. Não se sabe quem começou o problema. As linguagens a exigirem mais do computador ou computador a permitir isso.

Mas a razão produtividade/eficiencia é muito importante. Eu não pretendia menosprezar a produtividade. Cada linguagem e paradigma de programação tem os seus métodos de incremento de produtividade...

Quanto à exclusividade... O problema pode manter-se, mas a facilidade com que se resolve é muito diferente de linguagem para linguagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PS: Um Hello World em Haskell ocupa 524 KB.

Em C# ocupa 4608 bytes, fora a Framework ::)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tsenart, C++ é bastante rápido, mais rápido que C na maioria das situações.

C# e Java neste momento também são bastante rápidos (apesar de ocuparem bastante memória). Técnicas modernas utilizando compiladores JIT (Just-in-time) fazem muito bem o seu trabalho, e teoricamente permitem uma execução mais rápida do que linguagens compiladas.

Também já pensei assim como tu, mas cheguei à conclusão que no mundo profissional o que interessa realmente é eficiência e produtividade.

Quanto à questão da elegância, é subjectivo, mas programas em C ou Assembly certamente não são elegantes comparando com linguagens funcionais. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a dar Scheme no IST não estás? Estás a gostar? Já andei a dar uma olhadela a essa linguagem. É realmente um mundo completamente diferente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não me entendo muito bem com linguagens funcionais (muitos anos a dar-lhe nas imperativas) mas para a maioria dos problemas consegues soluções mais elegantes. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso depende do objectivo da tua programacao.

Programacao funcional é tida comom mais elegante porque os problemas abordados sao por si mais elegantes.

Implementa um sistema de crud com todas as funcionalidades do costume numa linguagem funcional. Vais vez que a elegancia vai com o galheiro, isto se o conseguires fazer, que vais chegar a uma altura em que estas a navegar num pantano de codigo-esparguete.

Os matematicos e companhia gostam de coisas tipo Lisp porque realmente lhes é conveninente ter o paradigma da programacao funcional presente.

Pessoalmente considero a sintaxe do Lisp má. Nao é para culpar a linguagem até porque esta ja tem 50 anitos, mas aqueles parentesis assim à bruta, dificultam em muito a leitura.

Um sistema de delimitacao de blocos por indentacao, por exemplo como usa o python, faz muito mais sentido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso depende do objectivo da tua programacao.

Programacao funcional é tida comom mais elegante porque os problemas abordados sao por si mais elegantes.

Implementa um sistema de crud com todas as funcionalidades do costume numa linguagem funcional. Vais vez que a elegancia vai com o galheiro, isto se o conseguires fazer, que vais chegar a uma altura em que estas a navegar num pantano de codigo-esparguete.

Discordo.

Já implementei coisa do tipo de um CRUD em Haskell e posso-te dizer que não obtive código-esparguete.

Tenho implementações (funcionais) em VDM de coisas semelhantes ao CRUD (acho que só falta o update, que se faz em 2 ou 3 linhas) ou um modelo de uma cache, cujo o código cabe numa página A4.

As linguagens funcionais, normalmente, disponibilizam tipos de dados de alto nível, que podem ser utilizados de forma muito mais fácil.

Além disso, linguagens como o Haskell (que é a única que conheço bem), permitem coisas como programação point-free, (cata|ana|hilo)morfismos, notação lambda, polimorfismo bastante poderoso e elegante, etc., que te permitem fazer coisas de uma forma simples.

Os matematicos e companhia gostam de coisas tipo Lisp porque realmente lhes é conveninente ter o paradigma da programacao funcional presente.

Pessoalmente considero a sintaxe do Lisp má. Nao é para culpar a linguagem até porque esta ja tem 50 anitos, mas aqueles parentesis assim à bruta, dificultam em muito a leitura.

Um sistema de delimitacao de blocos por indentacao, por exemplo como usa o python, faz muito mais sentido.

O Haskell felizmente não tem esses problemas, usa uma notação muito próxima da notação matemática, e tem uma indentação semelhante ao Python (com um pouco de sorte, a indentação foi uma das coisas que o Python copiou do Haskell).

Mesmo o VDM, tem alguns problemas com a notação (sobretudo quando falamos de polimorfismo), mas mesmo assim ainda consegue ser bastante elegante.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho q este forum só ficava a ganhar eliminando-se threads destes, falando em relação ao primeiro post

C++ é bastante rápido, mais rápido que C na maioria das situações.

Consegues provar essa afirmação? ou dar um exemplo de tal?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Segundo o site:

"For each of one our benchmarks, a white bar shows which language implementation had the faster program"

"Implementação da Linguagem" e "Linguagem" não são a mesma coisa!  :nono:

O q este site apenas tenta demostrar, é qual o compilador q produz o melhor executavel, ou mais performante/menor dimensao, para o mesmo programa.

Se comparares o compilador do VC++, o GNU e, por exemplo, o Watcom, vão gerar outputs (programas) diferentes para o mesmo input (codigo fonte) e logicamente performances diferentes.

Não julgues uma linguagem pelo compilador ou qq coisa assim ;)

ps: este link vai-me dar jeito.. danka

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Óbvio, mas pediste um exemplo.

E aí está a usar o GCC e o GPP que são irmãos, comparação mais próxima entre 2 linguagens é complicado. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Segundo o site:

"For each of one our benchmarks, a white bar shows which language implementation had the faster program"

"Implementação da Linguagem" e "Linguagem" não são a mesma coisa!  :nono:

Como é que podes comparar a performance de duas linguagens sem ser a comparar implementações das linguagens? :)

Além disso como o Betovsky disse, o GCC e o GPP são bastante semelhantes no que toca à geração de código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que podes comparar a performance de duas linguagens sem ser a comparar implementações das linguagens? :D

não sei. tu é q disseste que "C++ é bastante rápido, mais rápido que C na maioria das situações." lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora