Procedural X OOP e outros assuntos

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Procedural X OOP e outros assuntos

Mensagem por Maligno »

Nota de Moderação:
por Maligno: As mensagens iniciais dessa thread foram desmembradas a partir de outra thread, uma vez que o tópico original se perdeu em assuntos paralelos.
com o Clipper e através dele já consegui enterrar meu pai, pagar uma UTI e to pagando a pensão da mulher.
Esse é o mais comum engano de todos. Ao invés de dizer "com o Clipper...", deveria estar dizendo "com o meu esforço...". Afinal, tudo é feito com seu esforço. Esforço e dedicação que, acredito eu, seriam muito mais valorizados se concentrados em uma ferramenta de maiores possibilidades. O Clipper serve aos seus propósitos? Se sim, ótimo. Então porque não mudar? Não é porque serve que não pode ser substituída. Serviu aos meus propósitos, apesar de há 10 ou 15 anos já achar que era limitada, assim como hoje acho limitado o [x]Harbour, que é bem mais novo (procedural demais). Mas essa é uma outra história. :)

Só aceite um conselho de amigo: não espere muito tempo para migrar para Windows. Se puder, nem use [x]Harbour (alguns não vão gostar disso). Explico: primeiro que a programação Windows abre um leque de recursos imenso. Isso demanda muito estudo. Só o MSDN (o help das APIs do Windows), quando instalei, me consumiu uns 2 a 3GB de HD. Acrescente a isso o help da própria linguagem. Eu uso C++ e com todos os recursos que disponho (bibliotecas, classes, etc) já são mais uns 500MB de informações. Não dá pra continuar com DBF, claro. Então, acrescente também a linguagem SQL. Só de PDF que tenho, deve ser uns 100MB. O cerco está apertando para quem ainda se mantém no DOS. O Windows 7 já nem abre mais a janela de console em fullScreen. Não dá pra viver fazendo gambiarra só pro DOS continuar funcionando. É melhor pensar bem nisso.
Por última a questão do [x]Harbour. Não uso e jamais usaria. Vai também de uma questão de gosto pessoal. Não gosto de XBase, que tem cheiro de década de 80. E no [x]Harbour, até por uma questão de compatibilidade, se manteve. Mas é muito mais por causa de um recurso fantástico chamado OOP (programação orientada a objetos). Quando comecei a programa classes vi o poder que tinha em mãos. É um recurso tão fantasticamente flexível que não sei como vivi sem por tanto tempo. E o [x]Harbour, um amigo que conhece me contou, ainda nos dias de hoje, nem tem uma OOP totalmente implementada. Aliás, se vasculhar todo esse fórum, de ponta a ponta, não deve encontrar uma única questão acerca da OOP do [x]Harbour. Ninguém usa? Provavelmente não. Acho que ninguém usa porque nem tem uma verdadeira OOP para usar. As pessoas se prendem demais a bibliotecas e à forma procedural de encarar os problemas. Só mesmo se dispondo a enfrentar o impacto dessa transição de procedural para objetos é que a pessoa vai ver como perdeu tempo em uma ferramenta limitada. Pense nisso também. :)

Mas voltando ao programa do tópico, ainda acredito que o Google possa oferecer alguns links interessantes acerca dessa matéria. Vou ver se encontro alguma coisa nos meus "Favoritos" e volto a postar, caso encontre. Se algum colega tiver material a respeito, por favor, participe do tópico.

Mas ficaria mais fácil se você dissesse quais funções não documentadas são de seu interesse. Há algumas que são apenas para uso em C/ASM. Eu próprio usei algumas. Existem, também nesse segmento, entryPoints não documentados, como o que usei na função FreeTSlice(). Enfim, há bastante coisa em várias áreas diferentes. Seu interesse é vídeo, disco, banco de dados, etc ou tudo?

Aliás, notei na sua postagem algo bem interessante, que gostaria de frizar. Muitas pessoas que até dizem que gostam de programação, têm um defeito terrível: não buscam conhecer a ferramenta. Não buscam conhecer os recursos (funções, bibliotecas, comandos, etc) que a ferramenta oferece. O primeiro passo para a execução de um projeto é o planejamento. Sem pensar na questão da exeqüibilidade, deve-se primeiro arquitetar o software para depois utilizar os recursos que a ferramenta oferece para tornar tangível o projeto idealizado. Já vi muitos programadores (até bem experientes) só fazendo o que pode ser feito com os recursos que conheciam. Uma lástima. Se fizessem como você, que busca conhecer o desconhecido poderiam arquitetar novos softwares (funções, que sejam) com maior facilidade.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Funções Não-Documentadas: uma listagem

Mensagem por alaminojunior »

Maligno escreveu:Se puder, nem use [x]Harbour (alguns não vão gostar disso)
Realmente, se puder (tiver tempo extra e poder traçar um plano de médio prazo nos projetos para estudar algo mais novo ou mais aclamado) não use mesmo.
Há colegas aqui no fórum, que conseguem graças aos seus conhecimentos e habilidades, extrair coisas do [x]Harbour e suas bibliotecas que até Deus duvida.
Mas sem dúvida usar uma ferramenta como o Delphi por exemplo (é só um exemplo mesmo, haja vista o restante existente por aí) lhe permitirá produzir mais com menos esforço, e com melhor qualidade.
Atualmente eu uso o xHarbour e alguma biblioteca gráfica (que me atendem muito bem), por padecer ainda de alguma estabilidade financeira e por não contar com muito tempo (trabalho sozinho e por minha conta) para estudar uma ferramenta mais produtiva. Mas a coisa já começa a melhorar e já estou fazendo planos de cursar uma faculdade e aprender Delphi com SQL. Essa é a minha meta se não acertar a megasena até lá, pois se acertar, talvez nem neste Brasil comandado por um bando de gente sem vergonha eu não fique mais.
Mas desabafos a parte .... pessoalmente falando, ninguém me tira a imagem que o [x]Harbour tem de "improviso" (no meu caso um improviso que está atendendo muito bem, diga-se de passagem), seja ele vestido do que for, GTWVT, GTWVW, WVWTools, HWGUI, MINIGUI, Xailer, etc... A impressão que eu tenho é a de precisar juntar um monte de retalhos para poder costurar a colcha.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: Funções Não-Documentadas: uma listagem

Mensagem por clrod »

DispOutAt é documentada sim. As poucas funções não documentadas não servem para muita coisa. De qualquer forma a melhor ajuda que possa dar é dizer para esquecer o Clipper. Eu até compreendo que um programador com um monte de código escrito em Clipper tenha dificuldade de migrar para o Harbour, apesar de que a mudança é menos traumática do que mudar do Clipper Summer 87 para o Clipper 5.0 (bom, eu conhecia gente que teve diculdade para ir da Autumn 86 para a Summer 87 :) ). Mas eu juro que não consigo compreender porque alguém comece em 2009 usar Clipper.

Concordo com as opiniões de que o Harbour começou como uma gambiarra para dar sobrevida ao Clipper. Pelo jeito um projeto errado porque as pessoas não queriam sair do Clipper apesar de toda sua limitação. Eu compreendo que o cara queira ficar no Clipper, mas acho isso inaceitável quando o cara se julgue um profissional. Respeito a opinião de todo mundo sei que não tenho o direito de interferir nas escolhas de cada um, mas acho que posso dar minha opinião pessoal que uma pessoa quem tem medo de ir para uma tecnologia mais avançada e prefere ficar com os inúmeros problemas que inerentemente uma tecnologia antiga, e mais ainda em tecnologia literalmente acabada, não pode ser considerado profissional de desenvolvimento de software, mesmo que faça fortunas com isso.

Continuando o que já introduzi, minha opinião é que o xBase modernizado é uma ótima opção. Pode parecer exagero, mas trabalhei com praticamente todas as linguagens de programação que são bem conhecidas de assembly à javascript e posso afirmar que nunca fui mais produtivo do que com Clipper e agora com Harbour. Sou produtivo na criação e manutenção de sistemas como alto nível de confiabilidade. Já tive a oportunidade de trocar xBase por outras opções e hoje volto para o xBase por escolha própria. É bom deixar claro que volto após ter um xBase moderno, estável e que me permite fazer tudo o que eu desejo fazer e que poderia fazer com outras linguagens. Volto para o Harbour 1.x.Dev em diante. O projeto original do Harbour era uma gambiarra e o xHarbour não só herdou essa gambiarra como a ampliou. O Harbour se transformou em uma ferramenta que permite fazer o que quiser. Apesar de ter trabalhado com Delphi tenho orgulho de dizer que o abandonei há quase 10 anos por não oferecer nada que outras opções não oferecem e de forma mais complicada. Só me arrependo de ter feito essa escolha. Claro que teria sido mais fácil se eu tivesse feito o caminho que muitos fizeram que era chupar o que já tinha pronto.

Aprendi programar em baixo nível primeiro, conheço muito bem arquitetura de software e posso afirmar que o xHarbour cometeu erros gravíssimos que o coloca como apenas uma sobrevida ao Clipper. Já o Harbour atual é capaz de competir no mercado de linguagens sem nenhum problema, oferecendo vantagens que nenhuma outra linguagem oferece, pelo menos na minha experiência.

Eu passei quase 20 anos da minha vida defendendo e programando OOP, fazia isso quando todo mundo achava muito complicado. Hoje posso afirmar também que trocar o procedural bem programado pelo OOP bem programado é só trocar de problemas. Cada um pode escolher com que tipo de problema deseja lidar. Uns conseguem lidar melhor com os problemas da programação procedural, outras conseguem lidar melhor com os problemas da orientação a objeto. Eu particularmente lido melhor com o procedural e com um viés de funcional. É incrível como eu consegui produzir mais em procedural mesmo fazendo isso por menos tempo do que com OOP.

Por tudo isso eu nem ligo para a implementação OOP de todos xBase serem gambiarras (apesar de até funcionarem bem), só as uso quando faz sentido e mesmo assim de uma forma diferente. Detalhe importante é que desde 1991 eu nunca mais usei DBEdit e passei ter meu próprio browser com TBrowse. Sei quando utilizar orientação a objeto e mais ainda sei quando uma tecnologia não deve ser usada.

Não gosto muito desse tipo de argumento mas por não ter tempo para explicar melhor, se OOP fosse tão boa os maiores e mais populares softwares existentes a usariam. Mais ainda, porque será que todas as linguagens de sucesso ainda utilizam a forma imperativa e pelo menos aceitam a forma procedural em conjunção com orientação a objeto?

Não quero ficar indicando linguagem, mas se é para sair do xBase, então é melhor fazer escolhas de linguagens que continuam sendo apreciadas por SEUS usuários como Java, C#, Python, Ruby, C++ ou quem sabe Lua (que anda me surpreendendo), apesar de quem questiono a qualidade de algumas delas. Delphi nem é mais apoiada pelos usuários, praticamente todo mundo continua usando a versão 7. Fora quem apesar de eu não ser "Zé software livre", acho que linguagens como VB e Delphi não deveriam existir mais. Linguagem não pode ser proprietária.

De resto, concordo com tudo o que foi dito, principalmente com o fato de não se conhecer BEM (bem mesmo) o que se está utilizando, mais um motivo para evitar linguagens proprietárias.

Acho até que seria bom a documentação existente do Clipper evaporar :))
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Funções Não-Documentadas: uma listagem

Mensagem por Maligno »

Considerando que o assunto está OFF-TOPIC, esta é minha última postagem acerca dessa
matéria. E só posto porque muitos podem aproveitar o que escrevo.


As poucas funções não documentadas não servem para muita coisa.
Poucas? São poucas mesmo? Como você pode ter tanta certeza disso? Se não são documentadas, pouco aparecem. São ocultas para os programadores. Logo, para ter 100% de certeza do que disse, só se você consultou uma fonte fidedigna dentro da CA, com acesso aos fontes do Clipper.
Ademais, não faria mal ter uma lista dessas funções. Se os colegas tiverem alguma idéia a respeito, mesmo que pouco se aproveite dela, participem da thread.

[snip]
Concordo e discordo em partes do que você discorreu. Mas veja: não dá pra dizer com tanta certeza que os maiores e mais populares softwares não usam OOP. Uma afirmação dessas me soa muito precipitada. Ou você conhece os desenvolvedores desses softwares? Creio que não. Tudo bem que em alguns casos dá pra "sacar". O kernel do Linux é totalmente procedural, haja vista que é um kernel. Ninguém seria louco de usar OOP num kernel de sistema operacional. Mas fora esses casos óbvios, arrisco a dizer que você está errado; acho que os maiores softwares do mundo devem usar OOP sim. Essa minha percepção vem do fato de que OOP, se bem utilizada, simplifica demais vários problemas que com o modo procedural não é possível. Também não acho sensato afirmar que trocar o modo procedural por OOP é apenas trocar problemas. Isso só acontece quando o programador não tem a intimidade necessária com OOP. Se ele não "pensa" em objetos, seu mundo fica limitado à forma procedural. Daí sim, OPP fica até pior. Mas fora isso, já contando com alguma experiência, OOP se torna fantástico; uma ótima ferramenta de trabalho que só simplifica.

As linguagens OOP, hoje em dia, e como sempre foi, continuam aceitando a forma procedural de trabalho porque nunca foi intenção remover isso. Nem seria possível, já que os métodos OOP são procedurais. São funções como outras quaisquer. Têm de ser assim. Se não fosse, de que jeito você programaria? Difícil, não? A própria API do Windows é totalmente procedural.

Acho também que é um engano seu quando diz que a maior parte dos programadores Delphi usa a versão 7. Não acredito nisso. A versão 7 realmente foi muito popular. A Codegear fez muitas burradas. Por isso muita gente ainda usa essa versão. Mas depois que a Embarcadero assumiu, muita coisa mudou. O RAD 2010 está aí, e está muito bem cotado. Pelo menos é essa a impressão que colhi de um newsgroup Delphi do qual participo. Se fizerem direitinho o dever de casa, o pessoal da Embarcadero vai conseguir manter seu público fiel, que não é tão pequeno quanto se imagina.

Agora, se o Delphi acabar, problema nenhum. Tem o VS2010 estourando aí. A MS inclusive contratou gente da antiga Borland; o mesmo povo que fez a IDE do Delphi. Pelo que vi na propaganda, parece ter ficado realmente muito bom. Vou baixar uma versão trial futuramente, quando tiver tempo pra testá-lo. Se eu gostar, abandono meu Turbo C++ 2006, que tanto gosto.

Uma outra discordância: se a linguagem de programação for livre, é bom e também não é. Acho que há espaço para todas as iniciativas. E quanto mais melhor. No entanto, pode-se usar o [x]harbour como exemplo de software livre que descarrilou totalmente. Acho que por vários motivos. Um deles é a falta de uma liderança forte e agregadora. Coisa que normalmente se vê numa empresa comercial. Aliás, o fato de ser livre indica gratuidade. Mas porque não pagar por algo realmente bom? O preço é tão alto? Nem tanto. Dá pra pagar. Até porque, ganha-se dinheiro com a linguagem. Como tudo na vida, isso também tem custo. Fora o detalhe do valor, não vejo grande vantagem no fato do software ser livre ou não. Quantos usuários aqui ousaram modificar o kernel do [x]Harbour? Resposta que me parece mais certa: ninguém. Então, ser livre pra que?

Adicionando a isso tudo que comentei, uma última observação: a capacidade do programador, esteja ele trabalhando com OOP ou não, sempre conta. Mas isso sempre vai depender de uma palavra importantíssima: conveniência. Se o sujeito for autônomo, problema nenhum. Ele escolhe a ferramenta a qual ele melhor se adaptou e ninguém tem nada com isso. Vai da sua própria conveniência. OOP ou procedural, não importa. Só a opinião dele conta.

Por outro lado, se o programador aspira a uma vaga no mercado de trabalho, conselho de amigo: esqueça a linguagem XBase. Largue isso tudo e busque aprender uma linguagem que esteja mais cotada no mercado. Os grandes formadores de opinião estão estacionados nas universidades. Eles não estão nem aí para linguagens que eles consideram "esdrúxulas" (XBase no meio). Hoje em dia, note, só escolhe XBase quem está desinformado e começando sozinho ou está há muito tempo no mercado usando isso. Os novatos universitários, entregues ao mercado aos milhares, não aprendem linguagens "esquisitas". Eles conhecem C, Java, C#, etc. E são eles que vão ditar os rumos do mercado. E mesmo o autônomo XBase de hoje, se amanhã progredir e precisar contratar, certamente terá sérias dificuldades para encontrar mão de obra, dependendo da sua localização geográfica. Se encontrar, vai ter que pagar um salário bem alto. Ou vai ter que abrir um cursinho ele mesmo para formar programadores XBase. Vai sair caro.

Portanto, aconselho a quem está começando que pondere muito bem sobre que rumo tomar. Não ligue tanto para o fato de uma linguagem moderna ser extremamente mais difícil de aprender que XBase, seja Clipper ou [x]Harbour (que, procedural é praticamente um Clipper mais rápido). Melhor pensar no futuro e encarar o desafio de frente. Aos poucos, com determinação, pode-se adquirir a experiência almejada. Teoricamente, é só querer. :)

---
EOT
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: Funções Não-Documentadas: uma listagem

Mensagem por clrod »

É possível desmembrar postagens para outro tópico neste fórum?
Poucas? São poucas mesmo? Como você pode ter tanta certeza disso? Se não são documentadas, pouco aparecem. São ocultas para os programadores. Logo, para ter 100% de certeza do que disse, só se você consultou uma fonte fidedigna dentro da CA, com acesso aos fontes do Clipper
Me desculpe mas você não tem conhecimento como funciona o código presente em softwares. Está muito longe de ser a única forma de obter a listagem de todas as funções do Clipper. Uma simples depuração em baixo nível te mostra todas as funções disponíveis no Clipper. Uma depuração mais complexa indica quais são para uso interno das próprias funções do Clipper e quais podem ser usadas por qualquer programador sem correr muitos riscos principalmente sabendo que não haverá uma nova versão onde essa função não existirá mais ou tem seu comportamento comprometido. E isso já responde a sua outra afirmação que precisa conhecer os desenvolvedores de um software para saber se ele foi desenvolvido com OOP ou não. Todo código deixa rastros de como eles foram desenvolvidos. Mas como esses softwares são populares, nem precisa verificar isso, são informações de conhecimento público.

Só para seu conhecimento existem *vários* kernels feitos com OOP. OOP também está longe de ser uma desgraça que não permite fazer um kernel. OOP é mais uma das boas ferramentas que temos. Em nenhum momento tentei indicar que acho algo que não serve para nada.

Kernels, databases e outros servidores populares são exemplos de softwares bem grandes que não usam OOP. Certamente existem outros software grandes que se beneficiam de OOP, nunca disse o contrário. Só não acho OOP a coisa mais maravilhosa do mundo.
Essa minha percepção vem do fato de que OOP, se bem utilizada, simplifica demais vários problemas que com o modo procedural não é possível.
Isso que você disse não é um fato e sim uma percepção. Não há nada em lugar algum que comprove o que você está dizendo. E mais, qualquer coisa que dá para fazer em procedural, dá para fazer orientado a objeto e viceversa. É uma questão de facilitar mais ou menos a solução de certos entraves quando se está desenvolvendo.

O contrário também pode ser verdadeiro. Em tese, bem em tese, assim como para OOP em tese, se o programador tem intimidade necessária com o procedural, ele também não tem problemas. O procedural funciona melhor para quem entende melhor o funcionamento do computador, o problema é que muitos programadores não entendem. Nenhum problema nisso. Por isso OOP foi criada. O próprio Alan Kay, criador da OOP admite que não domina o paradigma como deveria e o criador da linguagem mais popular a usar OOP, o Bjarne Stroustrup também admite que não consegue fazer uso do C++ usando o estilo OOP de forma apropriada. Esse argumento de que precisa dominar o paradigma para usá-lo direito eu já usei centenas ou milhares de vezes. Hoje posso afirmar que ele está errado. Enquanto eu fiquei aprendendo novas técnicas para resolver os problemas que o OOP tem, e olha que aparece uma técnica nova quase mensalmente, eu perdi a chance de fazer muito mais código procedural em que eu não preciso aprender praticamente mais nada novo para usá-lo da melhor forma possível. Note que estou falando sobre o paradigma. Aprender tecnologias novas é o padrão de todo desenvolvedor. O problema maior do OOP, apenas na minha opinião, é que ainda nem inventaram tudo o que você precisa saber para usá-lo corretamente.

Recentemente fui consultor em um projeto em que o código do software foi portado de OOP (um primor de código bem escrito usando todas boas técnicas existes na maior parte dele) para procedural. O tamanho caiu 86% e a equipe de 30 programadores que dava manutenção foi reduzida para 2 programadores novos. É claro que o salário desses 2 programadores equivalia a +/- 5 vezes o que um programador anterior ganhava. Isso não prova nada, mas como eu acompanhei o processo de perto e vi que a causa de tanto desperdício foi a monstruosidade que o código ganhou forma ao longo do tempo para que ele fosse "bem programado em OOP". Esse é um problema bem conhecido de quem já leu The Mythical Man Mouth, um livro *obrigatório* (mesmo) para qualquer profissional desenvolvedor mas que infelizmente a maioria nunca ouviu falar.

De qualquer forma, é bom eu ressaltar que eu acho OOP uma forma válida de programar e acho que ela é a melhor opção em vários casos, principalmente onde se tem uma hierarquia de componentes.

O que eu mais vejo em debates conceituais é uma bova solução para resolver o problema "x" do OOP, depois o problema "y", e depois o "w", o "z", e aí começa o alfabeto de novo. Mas o OOP foi criado para resolver bem menos que o alfabeto de problemas que o procedural tinha. Pode pesquisar, tem muito mais , mas muito mais técnicas novas para programar OOP do jeito certo e resolver um problema que perceberam que OOP tem do que os problemas que o procedural tem.

Mas não acho que ninguém é melhor ou pior por programar em OOP. Não estou tentando convencer ninguém mudar de paradigma. Só estou dizendo que depois de ter muita experiência com OOP (quase 20 anos, comecei a me interessar por causa do Clipper e era o maior defensor do VO antes de ele ser lançado : - ) porque ele levava a OOP do Clipper onde deveria ir), defendendo as melhores formas de se fazer isso, me atualizando com cada novidade que surge sobre o assunto, eu vi que PRA MIM, a programação procedural estruturada de forma imperativa com alguns aspectos funcionais e com o uso de OOP apenas nos pontos onde se encaixa melhor, tem funcionado de forma absurdamente melhor.

Dê uma pesquisada em Smalltalk para saber como programar OOP s/ funções. Uma das coisas que mais gostAVA no Clipper era que ele tentava ao mesmo tempo se aproximar do que era o C e do que era o Smalltalk, mas só onde isso era pertinente. Uma pena ter sido abandonado.

Não tenho acompanhado muito o Delphi, meus amigos que usam dizem que está melhorando mas a coisa já ficou comprometida e o maior problema não é na IDE que estava bem bugada, era na linguagem mesmo. O problema não era semelhante ao VO que não foi pra frente porque era um produto bugado, apesar de ser muito bom conceitualmente. Tem que saber a hora de parar de colocar coisa na linguagem e parece que para o perfil de usuário do Delphi a hora era a versão 7, assim como o Java foi a versão 6, por isso estão sendo duramente criticados pela versão 7 que nem teve tanta mudança, parace que é a versão 5 para o Perl e o PHP e pode ser a versão 2.x para o Pyhton. Pelo que me falam e o pouco que vi em forúms, o grosso dos usuários Delphi não pretendem ir além da versão 7 não importa muito o que aconteça, mas isso eu posso estar errado. Sei que o Delphi não vai morrer, apenas acho que trocar xBase por Delphi é trocar 6 por meia dúzia, uma méia dúzia diferente, claro, com vantagens e desvantagens.

Quem a MS contratou (o pessoal chave pelo menos) não fez a IDE do Delphi, era quem trabalhou no core da linguagem e de fato especificamente o Anders Hejlsberg "é o cara". E ele não trabalha na Embarcadero. Por isso que eu acho que se for para sair do xBase, o melhor caminho é usar uma linguagem baseada em .NET (apesar de não gostar muito dele, ou do Mono, mas gosto um pouco tb, nada é preto no branco). Quero deixar claro que estou falando de linguagens e não de IDE. Programador programa em linguagens. IDE tem para todos os gostos e para todas as linguagens. É só mais uma ferramenta. mas posso dizer que em termos de IDE você está bem servido com o Delphi/Builder ou o VS2010.

xHarbour descarrilou porque tentou ter uma faceta não livre. Mentira minha, na verdade descarrilou porque os programadores eram apenas isso, programadores, não conseguiram ver o todo do que seria o software e descarrilou principalmente quando o único participante que sabia o que estava fazendo saiu do projeto para se dedicar ao Harbour que estava no caminho correto. O Harbour está a todo vapor disponibilizando tudo o que um programador moderno deseja. E se começar a ir devagar outras pessoas continuam o trabalho, numa linguagem proprietária isso é mais complicado.

Eu acho que a linguagem deva ser livre, não acho que a implementação seja gratuita, são coisa diferentes.

Acho que você não acompanha o desenvolvimento do Harbour, lá tem liderança forte. na Borland também tinha, até que ela saiu e aí eles ficaram que nem barata tonta, trocando de nome, vendendo produtos, comprando coisa que não servia para eles, mudando o foco quase semanalmente. Eu tenho que confessar que eu era simplesmente apaixonado pela Borland. Foi triste ver tudo o que aconteceu, ver ela se transformar uma holding de projetos desconexos com era CA e por isso o Clipper/VO foram pro vinagre, e como é a Embarcadero também. Mas eu realmente torço para que eles consigam sucesso. Só não vou arriscar me atrelar a eles.

Se for necessário eu vou mexer em qualquer parte do Harbour que eu precise, posso não ser muito produtivo para evitar cometer os mesmo erros que o pessoal do xHB cometeram e que eu sei que eu poderia cometer facilmente, mas até seria divertido.

Concordo plenamente que o mercado não está para peixe se alguém quiser emprego com xBase, longe de ser zero também. Se o objetivo é aprender uma linguagem nova para entrar no mercado de trabalho que está aí, xBase não é a melhor opção. O que não parece o caso do Acéfalo. Viu dei um jeito de tornar o post menos OT :) Mas o Delphi também está claramente em declínio em vagas.

O que eu mais gosto é de programar e adoro linguagens, até consigo gostar um pouquinho de COBOL :)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Procedural X OOP e outros assuntos

Mensagem por Maligno »

Desculpe, mas não vou fazer isso porque sua mensagem contém diversas impressões suas sobre características de produtos, parte de sua história pessoal, etc. Pouquíssimo sobre o tópico de onde veio sua mensagem.

Mas é simples. Por favor, cole só a parte que realmente diz respeito à questão do autor daquele tópico e inclua uma nova mensagem lá.
não estou nem ai do que mais gostam de usar para brincar de programar, não leio e muito menos participo sobre hábitos, lamúrias e vícios disso ou daquilo que não levam a nada.
Nesta seção pode. Mas participa quem quer.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Procedural X OOP e outros assuntos

Mensagem por Maligno »

Uma simples depuração em baixo nível te mostra todas as funções disponíveis no Clipper.
Acredito que seria um pouquinho difícil recuperar toda a documentação das funções ocultas apenas desmontando ou investigando o binário.
Engano seu: sei muito bem do que estou falando. Comecei a programar em 89 em ASM. Fucei bastante, viu? :)
Só para seu conhecimento existem *vários* kernels feitos com OOP.
Note que me referi apenas ao kernel de um sistema operacional. Imagino que você deve saber que OOP, apesar das vantagens, impõe um custo: um grande overhead, o que já torna seu uso proibitivo em um kernel como o Linux, que prima também pela velocidade. Se fosse OOP, adeus velocidade. Agora em outros tipos de kernel até pode-se usar OOP. Eu não disse o contrário.
Isso que você disse não é um fato e sim uma percepção. Não há nada em lugar algum que comprove o que você está dizendo.
A percepção é algo pessoal; vai de cada um. Na medida em que a percepção se torna real, o fato idem. Pra mim, portanto, é fato: OOP facilita. Logo, não preciso de comprovação.
Esse argumento de que precisa dominar o paradigma para usá-lo direito eu já usei centenas ou milhares de vezes. Hoje posso afirmar que ele está errado.
Imagina! Está certíssimo. Não se pode esperar sucesso ao levar a cabo um processo com o qual não se tem intimidade alguma. Talvez até chegue no objetivo, mas será por vias tortas, o que causará aumento nos custos, sofrimento e comprometimento da qualidade final. OOP é a mesma coisa. Quem não sabe usar, aprenda, mas SE realmente acredita nesse paradigma (melhor colher várias impressões). Ou se mantenha no estilo procedural, se tiver certeza que é só uma troca de 6 por 1/2 dúzia.
a equipe de 30 programadores que dava manutenção foi reduzida para 2 programadores novos.
De 30 pra apenas 2? Desculpe, mas pra mim está claro que essa empresa realmente tinha muitos problemas. E aposto que não era apenas com a falta de conhecimento suficiente para usar OOP a fim de aproveitar o que de melhor esse paradigma pode oferecer. Mesmo que você tenha achado que o OOP deles um primor. Ademais, o que pra você pode ser um primor, pra mim pode ser um terror. Isso é bem subjetivo.
Dê uma pesquisada em Smalltalk para saber como programar OOP s/ funções.
Verdade. Me esqueci de SmalTalk. Ela é totalmente OOP, mas parou no tempo. Não conseguiu evoluir, nem tomar mercado. Não posso dizer que seja uma pena, porque não conheço a fundo. Mas fica a curiosidade.
acho que trocar xBase por Delphi é trocar 6 por meia dúzia, uma méia dúzia diferente, claro, com vantagens e desvantagens.
Mesmo com a ressalva, discordo totalmente. Há inúmeras vantagens no Delphi se comparado com [x]harbour. Dez dias de dedicação e um leigo já vai conseguir fazer um sistema de cadastro de ótima qualidade no Delphi, num SGBD com SQL, sem ter que montar classe alguma. Mas no [x]harbour,... Nem literatura tem. Há pouco tempo até cobravam por um PDF bem simplesinho.
Quem a MS contratou (o pessoal chave pelo menos) não fez a IDE do Delphi, era quem trabalhou no core da linguagem e de fato especificamente o Anders Hejlsberg "é o cara". E ele não trabalha na Embarcadero.
Não mesmo. Segundo me consta, ele trabalha na MS. Inclusive, foi um dos cabeças do C#. Uma boa adição ao cast da empresa. Mas na Embarcadero eles certamente têm muita gente boa. Dá tranquilamente pra continuar acreditando neles.
descarrilou principalmente quando o único participante que sabia o que estava fazendo saiu do projeto para se dedicar ao Harbour
E se começar a ir devagar outras pessoas continuam o trabalho
Duas afirmações conflitantes. Se o cara saiu do [x]harbour e ele descarrilou, porque se ele sair do Harbour, outras pessoas vão tocar o projeto tão bem quanto ele? Pode muito bem acontecer a mesma coisa de novo. Quem garante que não? Difícil, não? Agora, com a grana correndo numa grande empresa, coisas desse tipo são muito mais difíceis de acontecer. Por isso que digo que uma linguagem proprietária tem melhores condições de emplacar.
Eu acho que a linguagem deva ser livre, não acho que a implementação seja gratuita
Se por implementação você quer dizer o uso da linguagem, concordo.
uma holding de projetos desconexos com era CA e por isso o Clipper/VO foram pro vinagre, e como é a Embarcadero também
Difícil dizer que a Embarcadero é uma holding de projetos desconexos, se o seu público está justamente dizendo o contrário, elogiando as iniciativas da empresa. Quando apareceu nesse cenário, veio com fama de empresa sólida. Porque você afirma isso?
Mas o Delphi também está claramente em declínio em vagas.
Não é um termômetro preciso, mas existe um fórum (Stack Overflow), que é bem popular. Vê-se gente do mundo inteiro. Acho que dá pra ter uma idéia da popularidade das linguagens/ferramentas. Note nas tags que as seis linguagens mais populares são para web. A sétima (primeira desktop) é C++, com 27.770 tópicos. Delphi, com 4329, aparece só na quinta coluna. Ainda assim, é uma ótima posição. Extremamente melhor que XBase, que aparece apenas na página 174, com 5 tópicos. Como disse, não é algo preciso, mas dá o que pensar.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: Procedural X OOP e outros assuntos

Mensagem por clrod »

Acredito que seria um pouquinho difícil recuperar toda a documentação das funções ocultas apenas desmontando ou investigando o binário.
Engano seu: sei muito bem do que estou falando. Comecei a programar em 89 em ASM. Fucei bastante, viu? :)
Não vou questionar essas discrepâncias entre programar em asm e achar difícil localizar com facilidade todas as funções usadas pelo Clipper. Eu até acredito que tenha pego alguma rotina e montado, mas programar mesmo, é difícil de acreditar. Converse com alguém experiente em asm.

Em nenhum momento eu falei em recuperar documentação, quem está falando isso é você. Eu falei em recuperar toda a lista de funções. E dá para recuperar toda a forma de comunicação com o resto da aplicação também, embora isso dá um pouquinho mais de trabalho. A lista que é o que estávamos falando é hiper fácil, pelo menos em todos os formatos de montagem que conheço e que são os que realmente são usados.
Note que me referi apenas ao kernel de um sistema operacional. Imagino que você deve saber que OOP, apesar das vantagens, impõe um custo: um grande overhead, o que já torna seu uso proibitivo em um kernel como o Linux, que prima também pela velocidade. Se fosse OOP, adeus velocidade. Agora em outros tipos de kernel até pode-se usar OOP. Eu não disse o contrário.
Estou falando de kernel mesmo, existem inúmeros kernels desenvolvidos com OOP. E a perda de velocidade que poderia ter com o OOP vem de implementações ruins. O máximo de overhead que poderia ter é uma indireção através da vtable que pode ser otimizada quando se está compilando um kernel. Perda de performance só é um problema da OOP para quem quiser e quando quiser. E a tão dita velocidade do Linux que hoje é mais parte da sua história passada do que a realidade atual tem haver com sua característica monolítica que o permite fazer menos trocas de contexto, mas trazendo outros problemas. Nem pense que estou aqui defendo o Windows em detrimento do Linux, apenas estou colocando a realidade dos fatos sobre a motivo do Linux ter uma vantagem de velocidade em relação à qualquer microkernel, mas que o Linux colocou tanta coisa no kernel atual que essa vantagem *na prática* não se verifica tão vantajosa. Em testes benchmarch o kernels monolíticos se saem fantasticamente. Nada impediria que o Linux fosse feito usando OOP, mas seria bem mais difícil dar manutenção em um código que precisa ser extremamente otimizado. O Tolvards que é
um excelente programador também não compra a ideia do OOP como solução mágica, não só para o Linux.

Dá uma pesquisada sobre o Singularity da MS. Além de ser OOP, é código gerenciado que teoricamente deveria tornar a coisa mais lenta. O único motivo do Sing ainda não ter uma boa performance é que ele depende de muitas trocas de contextos e faz tudo por IPC que não é uma forma rápida, apesar de ser bem segura.

Nem vou discutir o que é percepção e o que é fato. teimosia tem limite.
Imagina! Está certíssimo. Não se pode esperar sucesso ao levar a cabo um processo com o qual não se tem intimidade alguma. Talvez até chegue no objetivo, mas será por vias tortas, o que causará aumento nos custos, sofrimento e comprometimento da qualidade final. OOP é a mesma coisa. Quem não sabe usar, aprenda, mas SE realmente acredita nesse paradigma (melhor colher várias impressões). Ou se mantenha no estilo procedural, se tiver certeza que é só uma troca de 6 por 1/2 dúzia.
Me cite exemplos de o que é programar do jeito certo em OOP. Que erros o pessoal comete quando está usando OOP? isso é importante para saber se estamos falando a mesma língua, porque eu participei do projeto de conversão com outros especialistas, eu diria que todos melhores que eu e todos achavam o código muito bom, mas ninguém conseguiu dar uma solução melhor. Fico imaginando onde estão os profissionais competentes em OOP que a gente nunca acha. Acha sim um pessoal que é muito bom para fazer OOP, eu achei um monte, mas na hora que se comprara o trabalho deles com de outros profissionais, o deles só fica melhor documentado, mas perde em todos os outros quesitos, inclusive de manutebilidade, já que o melhor código para dar manutenção é aquele que não existe.

O pessoal fala muito nisso, mas nunca vejo dizerem o que é o certo. Em Delphi por exemplo eu praticamente nunca vi OOP feita da forma certa, fora as classes da Borland e mesmo assim nem todas. E ainda tem a reinvenção de roda que eles fazem em muitos componentes, mas parece que aos poucos estão eliminando essas coisas. O que deve ser uma coisa terrível para os muitos programadores Delphi que defendiam a reinvenção da roda quando alguém criticava.

Eu não colho impressões ou mesmo percepções com coisas importantes como esta, eu estudo a fundo o assunto.
De 30 pra apenas 2? Desculpe, mas pra mim está claro que essa empresa realmente tinha muitos problemas. E aposto que não era apenas com a falta de conhecimento suficiente para usar OOP a fim de aproveitar o que de melhor esse paradigma pode oferecer. Mesmo que você tenha achado que o OOP deles um primor. Ademais, o que pra você pode ser um primor, pra mim pode ser um terror. Isso é bem subjetivo.
Isso é exatamente a continuação do argumento anterior. Sempre que algo se mostra ruim na OOP, as pessoas estavam erradas. Eu conhecendo bem o processo todo e com toda a experiência que tenho e de outras pessoas que participaram também, posso afirmar que o problema era a adoção da OOP. OOP era necessária porque os programadores eram craques nisso, faziam como poucos e por isso o código foi virando aquele monstrengo. Eles argumentavam que fizeram algo para resolver um problema, aí surgia um problema pelo que eles fizeram, aí encontravam uma técnica super duper defendida por todos que adoram OOP e eu mesmo as defendia e então resolviam o problema causando outro.
Todos os 30 programadores sairam do projeto porque eles não conseguiam acompanhar o desenvolvimento que passou exigir profundo conhecimento de engenharia da computação e eles estavam acostumados com engenharia de software. Note que foram demitidos 30 bons engenheiros de software e foram contratados 2 excelentes Programadores, com P maiúsculo mesmo. Resolveram pagar bem para quem sabia fazer ou invés de pagar a merreca de 3500 à 5800 que pagavam para os 30 anteriores. Eu usei um caso extremo eu acho mais realista em situações mais normais você trocar 5 programadores OOP por 5 programadores procedural, ambos de mesma qualidade e produzir produtos de mesma qualidade. O que eu quero dizer é que OOP não é mágica seja quem for o programador. Se fosse comparar OOP com Funcional, aí a coisa seria direfente, tenho certeza que 5 programadores poderiam ser facilmente substituídos pro 4 ou até 3 programadores, o problema é que os únicos bons programadores funcionais que conheço são por blog. Ainda pretendo aprender direito a pelo menos brincar com derivadas de Lisp como Scheme e linguagens derivadas de ML. para quem quiser radicalizar, F# pode ser uma boa.

De qualquer forma se o jeito certo de usar OOP for subjetivo, então quero ficar longe disso. Eu sei que tem um "jeito certo", mas isso é defendido em teses, em livros best seller na área, por profissionais respeitados.
Verdade. Me esqueci de SmalTalk. Ela é totalmente OOP, mas parou no tempo. Não conseguiu evoluir, nem tomar mercado. Não posso dizer que seja uma pena, porque não conheço a fundo. Mas fica a curiosidade.
Smalltalk continua evoluindo mas não tem mercado porque OOP puro torna as coisas quase impossíveis de serem desenvolvidas, apesar de ser o jeito mais correto de se fazer. Falta pragmatismo. Haskell é talvez a linguagem mais maravilhosa que eu já vi, mas como o próprio Simon Peyton Jones diz, não serve pra nada no mundo real.

Tem muita gente criticando C# atualmente porque a cada versão ela deixou um pouco mais a OOP. Só que os programadores reais de C# admitem que nunca foram tão produtivos.
Mesmo com a ressalva, discordo totalmente. Há inúmeras vantagens no Delphi se comparado com [x]harbour. Dez dias de dedicação e um leigo já vai conseguir fazer um sistema de cadastro de ótima qualidade no Delphi, num SGBD com SQL, sem ter que montar classe alguma. Mas no [x]harbour,... Nem literatura tem. Há pouco tempo até cobravam por um PDF bem simplesinho.
Ser rápido de aprender não significa ser coisa boa. De qualquer forma, qualquer programador de verdade aprende qualquer linguagem em menos de 10 dias, porque eles sabem programar. Variável é igual em qualquer linguagem, se ele sabe programar mesmo, sabe lidar bem com semântica de variáveis com tipagem forte e fraca, que a maioria nem sabe o que é e qual a diferença para tipagem dinâmica ou estática, assim como não sabem a diferença de *dados* por valor, referência e "por referência", imagine entender orientação a objeto s/ entender isso. Controle de fluxo também igual em qualquer linguagem quando se sabe o porque da existência de cada um e que problemas eles resolveram. A forma como são tratadas funções gerais ou instanciadas também não tem nenhuma novidade nos últimos 30 anos, aprendeu tudo o que tem para aprender sobre o assunto, não importa a linguagem, só muda a sintaxe e a escolha de semântica feita dentre as já conhecidas. Como tratar uma função em clausúra, delegar código, manter os dados na memória, como organizar classes, interfaces, o que pode e o que não pode, o que é default, apenas são escolhas de cada linguagem mas tudo já deveria ser de conhecimento de qualquer programador. Sei que a realidade está bem distante disso, mas deveria ser assim.

O fato de uma linguagem ter mais ou menos documentação, não determina sua qualidade, mas agora acho que entendi o que você vê de qualidade no Delphi. Ele dá as coisas bem prontas, tem muito livro, muito código sobrando por aí, tem muito componente, já vem com uma IDE poderosa. Bem aí não estamos mais falando de linguagem.

Há alguns anos era minha linguagem, apesar de eu não gostar muito da sintaxe, gostava da maioria da semântica, mas gostava muito mesmo era da implementação que era um show, como gostava do Turbo Pascal também e tudo que era da Borland.

Mas não misture Harbor com xHarbour, são bichos totalmente distintos com sintaxe semelhante. No Harbour por exemplo toda documentação que é incompleta, é verdade, está disponível para quem quiser e tem vontade de se virar com ela. De fato o Harbour, assim como quase todos os xBase, não entregam as coisas tão de mão beijada assim. Esse não é o forte. O forte é permitir ser produtivo no dia-a-dia, não na hora de aprender como algo funciona.
Não mesmo. Segundo me consta, ele trabalha na MS. Inclusive, foi um dos cabeças do C#. Uma boa adição ao cast da empresa. Mas na Embarcadero eles certamente têm muita gente boa. Dá tranquilamente pra continuar acreditando neles.
Você leu o que eu escrevi? Não fique tão desesperado em discordar que discorda até repetindo o que eu escrevi. E recentemente que depois da saída do Anders da Borland para ir p/ a MS fazer o MS-Java que depois virou J++ e influenciou o C#, uma linguagem muito boa, começou uma debandada geral e depois da aquisição final pela Embarcadero saiu os últimos que eram realmente bons, assim como o cara do Java já caiu fora da Oracle. Pelo que vi, inclusive agora a pouco, os caras bons da comunidade Delphi estão descrentes na equipe que ficou na Embarcadero, apesar de darem um voto de confiança. Os ruins, alguns que conheço bem, eu vi que estão fazendo rezas e missas para não ficarem na mão. Virou umacoisa bem dogmática.

Mas de qualquer forma, é uma escolha de cada um e eu não acho o Delphi um lixo, eu apenas perdi e percebo que a maioria dos antigos usuários também perderam a confiança no produto, alguns continuam com ele, outros não, percebo que a comunidade deu uma bela diminuída, mas isso é só opinião.

É que tudo reforça a ideia: se é para sair de algo que não tem futuro, então vá para algo mais bem planejado. O próprio Anders diz que fez no C# muito do queria fazer no Delphi mas não podia mais por questões de compatibilidade.

Trocar Clipper por qualquer coisa é uma evolução. Trocar um xBase qualquer que esteja vivo ainda (vivo mesmo) por C# só um exemplo, pode ser uma boa evolução, mas trocar um Harbour por um Delphi eu, neste caso, acho que é só postergar ou trocar de problema.

Duas afirmações conflitantes. Se o cara saiu do [x]harbour e ele descarrilou, porque se ele sair do Harbour, outras pessoas vão tocar o projeto tão bem quanto ele? Pode muito bem acontecer a mesma coisa de novo. Quem garante que não? Difícil, não? Agora, com a grana correndo numa grande empresa, coisas desse tipo são muito mais difíceis de acontecer. Por isso que digo que uma linguagem proprietária tem melhores condições de emplacar.
Primeiro que não vejo para que projeto ele vá. Ele adora aquilo, faz por amor e não pela grana e não tem nada melhor que isso. Não posso dizer por ele aqui, mas ele saiu do xHB porque viu que estava no projeto errado e foi fazer exatamente a mesma coisa no projeto que estava no rumo certo. O projeto continua sendo tocado, o problema é que o cara saiu justamente porque estava sendo tocado por gente que estava estragando o produto. A ideia do xHarbour era fantástica, só que ela não foi implementanda como deveria. Se esse cara especificamente saisse, pra mim pelo menos não faria diferença porque eu não uso DBF mais, onde ele se dedicava mais. E nos outros pontos eu bem que gostaria de poder substituí-lo :) E ele não é a única cabeça do projeto. Mas meu seguro mesmo é que tenho um amigo que é o melhor profissional que já conheci, e conheci muita gente, um cara que está no nível desses mais famosos, e que me ajudou decidir trabalhar com o Harbour, porque ele me assegurou também que assumiria o desenvolvimento se desse algum crepe. Até tento convencer ele participar do desenvolvimento, mas ele não quer se meter em time que está ganhando.

Mas para quem não quer correr risco, a melhor coisa que existe é investir na MS. Esse é um dos poucos defeitos que eles podem ser acusados, o de abandonar produtos que ainda tem mercado. Só fizeram com o FoxPro porque a comunidade abandonou antes. Abandonou quando eles lançaram o VFP 3.0 há uns 15 anos. Vou chutar que no Brasil ainda tem mais usuários (programadores) de Clipper/FP/[x]HB do que Delphi.
Difícil dizer que a Embarcadero é uma holding de projetos desconexos, se o seu público está justamente dizendo o contrário, elogiando as iniciativas da empresa. Quando apareceu nesse cenário, veio com fama de empresa sólida. Porque você afirma isso?
Era uma empresa praticamente inexistente que passou ter destaque quando compraram praticamente todos os produtos que eles possuem hoje, quase numa pancada só, simplesmente procuraram por ativos disponíveis no mercado como a Borland e a CA fizeram nos anos 90. Isso tá provado que não dá certo. Aquisição boa é aquela para complementar uma linha forte da empresa que falta alguma coisa. tem exemplos de outros setores onde montar uma empresa em cima de ativos perdidos, não dá certo.
Você deve saber que por muito pouco a divisão CodeGear não foi desativada pela Borland. Alguns dizem que se a Embarcadero não aparece em mais 1 ou 2 meses, e bye bye Code Gear e Delphi.
Não é um termômetro preciso, mas existe um fórum (Stack Overflow), que é bem popular. Vê-se gente do mundo inteiro. Acho que dá pra ter uma idéia da popularidade das linguagens/ferramentas. Note nas tags que as seis linguagens mais populares são para web. A sétima (primeira desktop) é C++, com 27.770 tópicos. Delphi, com 4329, aparece só na quinta coluna. Ainda assim, é uma ótima posição. Extremamente melhor que XBase, que aparece apenas na página 174, com 5 tópicos. Como disse, não é algo preciso, mas dá o que pensar.
De fato não é coisa mais precisa, mas web é a tendência. Depois de mais de 10 anos mexendo muito com isso, alguns momentos exclusivamente, e posso dizer que não é pra mim. Prefiro fazer software para desktop. Na verdade nem desktop propriamente.
Nem questiono a popularidade de Delphi, claro que é uma popularidade declinante.
C# e Java não são para web, podem ser usadas para web e eles tem frameworks muitos bons para isso. Mas já fiz coisas para web em Delphi e nesses dias estou brincando não só em fazer sites aplicações web em Harbour, como usar um servidor de aplicação web feito em Harbour. Não chega substituir um apache, claro, mas sabe que me impressionou a qualidade dele. Como linguagem mesmo e sem contar as variações, Delphi é praticamente a última a aparecer :) Claro, ganha de muitas linguagens como assembly, scala, matlab, r, groovy, erlang, lisp, clojure, lua, muitas outras e principalmente de xBase que está mais atrás ainda, mas é algo bem de nicho mesmo, não acho que seja algo que terá uma comunidade forte.

Não tenho nada contra a linguagem ou o produto ou a comunidade, pelo contrário. Só acho que a melhor troca. Se eu tiver que me preparar para o mercado de trabalho se tiver que usar uma linguagem de tipagem estática, eu particularmente iria para o C#. Iria p/ o Delphi se o Anders ainda estivesse comandando, se não tivessem feito tanta tormenta e principalmente ser multiplataforma (do jeito certo, não aquela tentativa mais retardada que fizeram e é claro, tiveram que abandonar). Eu já não poderia escolher o Delphi por esse fato. E hoje, depois de eu mesmo ter resistido bastnte, ser monoplataforma é uma das coisas mais retrógradas que uma linguagem pode ter. Serve bem a determinados tipos de usuários, mas se for pra usar algo monoplataforma hoje em dia eu *quase* prefiro o Clipper :)

Mas note que em nenhum momento eu quis dizer que o Delphi é uma coisa ruim. E sinceramente eu acho que de uma maneira geral, os programadores Delphi são os piores programadores OOP que já vi, a maioria acha que sabe o que estão fazendo e não sabem, inclusive o cara por muitas vezes apenas consome objetos e acha que está programando OOP. Nestes casos fica fácil entender que o cara não tem problemas com OOP, ele não está programando OOP :)

Meu objetivo foi apenas mostrar um caminho no tópico original. Não acho que quem opta pelo Delphi esteja fazendo algo errado. E quis fazer um mea culpa por ter incentivado tanta gente a usar OOP e depois de tanta experiência eu acabar me convencendo de que não me trouxe vantagens. Sempre vou me culpar por isso. Só vi OOP dar certo em locais bem burocráticos e onde os programadores na verdade eram engenheiros preocupados com outras coisas que não eram o software.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Procedural X OOP e outros assuntos

Mensagem por Maligno »

Discordo de muita coisa que, quero crer, deve tê-lo confundido a ponto de fazê-lo de ter uma opinião distorcida. Mas nem vou entrar em detalhes. Na medida em que, no primeiro parágrafo, você desdenha do conhecimento de quem nunca conheceu na vida, imagino que você está disposto a levar essa discussão até as últimas, já que parece ter todas as respostas. Acho perda de tempo. Nada disso importa muito. Prefiro parar por aqui.

O que me importa é que programo em C++, escrevo (muito bem) minhas classes OOP, ganho meu dinheiro, pago minhas contas, etc. Estou feliz. Aliás, acabo de receber uma tarefa de um cliente de SP. Então já nem tenho tempo pra perder. O final de semana agora é pra outra coisa. :)

Mas acho que os colegas do fórum certamente vão poder aproveitar alguma coisa dessa discussão toda. Obrigado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Procedural X OOP e outros assuntos

Mensagem por Toledo »

Bom, acho que este assunto já deu o que tinha que dar! E também cada um já deixou sua opinião sobre o assunto, que já serve como base para os demais membros do fórum seguir o caminho que achar melhor.
Eric.Developer escreveu:Mas farei um grande favor, não estarei mais participando deste fórum...
Eric, em março de 2008 você também abandonou este fórum dizendo a mesma coisa, inclusive na época você até solicitou que o seu registro no fórum fosse deletado, bem como todas as suas mensagens. Mas isto não aconteceu, suas mensagens e o seu registro antigo continuam aqui (ericmagaldi). Só que o meu registro, que eu tinha no seu fórum, você excluiu.

Quando ví um novo registro seu aqui no fórum, estranhei, mas logo percebi a razão do seu retorno... basta olhar o primeiro tópico que você postou aqui no fórum, divulgando o seu produto novamente.

Bom, só que desta vez, vou atender ao seu pedido e o seu registro será bloqueado.

Agora, mais uma mensagem com o tamanho destas últimas que foram postadas, meu servidor não vai aguentar... manera ai gente... hahahaha
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Re: Funções Não-Documentadas: uma listagem

Mensagem por Clipper »

Eita !!!! Lá vem essa estória de que o Clipper morreu. Esqueçam isso, o Clipper só é uma linguagem obsoleta, não morta. Digamos que eu queira fazer um cadastro de nomes bizarros, esse cadastro conteria apenas o código e o dito nome, seria melhor fazer em Clipper, Cobol, C++, VB.net, Python, Java, PHP ? Acho que seria melhor fazer na linguagem que domino, já que qualquer uma delas me proporciona as ferramentas necessárias. Agora se eu precisasse de um cadastro de nomes bizarros, com as fotos dos donos destes nomes e que tocasse uma música especifica para cada no meu celular quando algum deles ligasse, neste caso não daria para ser em Clippper, pelo menos eu acho que não.

A questão é se o Clipper será capaz de suprir as necessidades que você terá no seu projeto, se a resposta for sim, não vejo motivo para não usá-lo.

Ps. Ainda me pedem muito para fazer estes tipos de cadastros (Membro de igreja, Eleitores, Frota de carros, Imoveis, nomes bizzaros não apareceu ainda, mas não dúvido muito que apareça), e geralmente eles só querem mesmo o cadastro, as vezes um listagem e mais nada.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Responder