Falta de conhecimento técnico ou o autor não soube se expressar?

35 respostas
D

Vi em destaque no JavaFree.org, devido a parceria deles com esse portal e, bom :shock: , leiam primeiro:

http://www.baguete.com.br/colunasDetalhes.php?id=3108

Depois, opinem.

PS: Coloquem lá suas opiniões também.

35 Respostas

Felagund

O que você não concordou com o Autor?

A analise dele inicialmente, não li a serie de artigos, mas me parece valida.

[]'s

J

Para mim tmb faz sentido. Não vi nada de anormal

Marcio_Nogueira

A análise apresentada pelo autor não acrescentou nada de novo, mas considero válida. :wink:

B

Como disseram em um comentário ali, ele está comparando banana com maçã. Levar em consideração toda a plataforma .net não faz sentido algum.

ViniGodoy

Achei bem falho, também.

  1. Ele não especifica qual das linguagens .Net está comparando.
  2. Ele não diz que tipo de aplicações desenvolveu para a comparação, nem por que método levantou os dados, nem que fatores levou em consideração em cada quesito;
  3. Ele não explica o tamanho da amostra, ou seja, quantas aplicações analisou, em que ambientes, para chegar nessas conclusões.

Em resumo, a série toda é empírica. E provavelmente será tendenciosa pela linguagem que ele mais conhece, ou que ele mais leu a respeito.

J

ViniGodoy:
Achei bem falho, também.

  1. Ele não especifica qual das linguagens .Net está comparando.
  2. Ele não diz que tipo de aplicações desenvolveu para a comparação, nem por que método levantou os dados, nem que fatores levou em consideração em cada quesito;
  3. Ele não explica o tamanho da amostra, ou seja, quantas aplicações analisou, em que ambientes, para chegar nessas conclusões.

Em resumo, a série toda é empírica. E provavelmente será tendenciosa pela linguagem que ele mais conhece, ou que ele mais leu a respeito.

Ele disse isso no final do artigo, e o framework .net é igual para qualquer linguagem da plataforma. Realmente não tem muita precisão, mas é válida.

ViniGodoy

É aí que eu discordo. Ele apresenta num gráfico, dando a entender que é algo válido uma informação totalmente empírica. E podemos questionar a informação, já que ela pode não ter absolutamente nenhuma precisão, de acordo com o contexto que se aplique. Portanto, ela não seria válida.

Aliás, acho que hoje em dia é no mínimo imaturo comparar linguagens e tentar chegar a qualquer conclusão sem ter um contexto nas mãos ou, pelo menos, critérios um pouco mais objetivos de comparação.

rimolive

Esse comentário também foi um tanto impreciso, digo até errado porque a “turma do Java” não reimplementa nenhum tipo de escalabilidade de Banco e o fato de criar estruturas no meio, conforme dito, significa pra mim mais reusabilidade do que escalabilidade.

Mero_Aprendiz

ViniGodoy:

Aliás, acho que hoje em dia é no mínimo imaturo comparar linguagens e tentar chegar a qualquer conclusão sem ter um contexto nas mãos ou, pelo menos, critérios um pouco mais objetivos de comparação.

2X!

D

Impressionante que tem gente que ainda concorda com o cara e acha válido. Gente, pelo amor de Deus, o cara está comparando linguagem com plataforma :shock: .
Além de não passar informações específicas, é extremamente superficial. .Net não é linguagem nem aqui e nem no inferno (alusão a M$ Hell :lol: ). Logo, ele comparou, como já disseram, bananas com maças e tem apoio? Afe…

Mauricio_Linhares

Uma análise decente e aceitável tem que ser mais ou menos assim - http://martinfowler.com/articles/rubyAtThoughtWorks.html

J

djemacao:
Impressionante que tem gente que ainda concorda com o cara e acha válido. Gente, pelo amor de Deus, o cara está comparando linguagem com plataforma :shock: .
Além de não passar informações específicas, é extremamente superficial. .Net não é linguagem nem aqui e nem no inferno (alusão a M$ Hell :lol: ). Logo, ele comparou, como já disseram, bananas com maças e tem apoio? Afe…

o que o artigo quis dizer é que .net também é um framework, e todas as linguagem que rodam na plataforma se comportam da mesma maneira. Não existe diferença em se codificar em c++ managed, c# ou vb.net. Nenhum conhecimento extra é necessário, pois funcionam da mesma forma.

está bem explícito no final do artigo que é puramente empírico. Não há motivo pra criticar o artigo.

D

Mauricio, também não tem nem o que dizer do cara né?

D

juliocbq:
djemacao:
Impressionante que tem gente que ainda concorda com o cara e acha válido. Gente, pelo amor de Deus, o cara está comparando linguagem com plataforma :shock: .
Além de não passar informações específicas, é extremamente superficial. .Net não é linguagem nem aqui e nem no inferno (alusão a M$ Hell :lol: ). Logo, ele comparou, como já disseram, bananas com maças e tem apoio? Afe…

o que o artigo quis dizer é que .net também é um framework, e todas as linguagem que rodam na plataforma se comportam da mesma maneira. Não existe diferença em se codificar em c++ managed, c# ou vb.net. Nenhum conhecimento extra é necessário, pois funcionam da mesma forma.

está bem explícito no final do artigo que é puramente empírico. Não há motivo pra criticar o artigo.

Nem pra escrever. Lamento mas não tem fundamento cara. Em que situação, desenvolver .Net é tudo igual?
QUer dizer que pra desktop é igual a Web? Em Java é tudo igual? E as linguagens oficiais do java que se comportam de maneira diferente e tem tempos de desenvolvimento diferente, ou acha que Groovy e Java são a mesma coisa? Não, vamos ser bem superficiais e comparar o Ruby com Java e não dizer que se trata da plataforma, mas, porém, ele fala de algo que, em Java, está ligado a plataforma e não a linguagem somente. Enfim, não tem fundamento técnico. Olha o exemplo que o Maurício passou. Aquilo sim é um artigo técnico.

ViniGodoy

Ótimo, então ele parte de um pressuposto que também não é válido.

J

Ótimo, então ele parte de um pressuposto que também não é válido.

O que ele fez foi justamente analisar da maneira dele. Cabe a cada um aceitar ou não, mas isso não faz do artigo em si um erro. Esse é o ponto que quero chegar.

Se eu fosse fazer comparações de linguagens, não analisaria dessa forma tmb.

D

juliocbq:

O que ele fez foi justamente analisar da maneira dele. Cabe a cada um aceitar ou não, mas isso não faz do artigo em si um erro. Esse é o ponto que quero chegar.

Se eu fosse fazer comparações de linguagens, não analisaria dessa forma tmb.

O erro maior é do site aceitar. Uma vez que, expondo daquela forma, leva um iniciante a um erro de interpretação. A maior impressão que fica, pra quem conhece e já passou por várias linguagens é que, infelizmente, o cara pouco sabe do que escreveu e comparou.

tnaires

E o pior de tudo é que esse artigo vai sim ser aceito por muitas pessoas, pois muitos verão apenas o gráfico. Um comparativo de plataformas e/ou linguagens é tudo o que os grandes gerentes de desenvolvimento procuram hoje em dia, para dar respaldo às suas opiniões vagas e infundadas. Quando eles virem esse gráfico então…

J

E o pior de tudo é que esse artigo vai sim ser aceito por muitas pessoas, pois muitos verão apenas o gráfico. Um comparativo de plataformas e/ou linguagens é tudo o que os grandes gerentes de desenvolvimento procuram hoje em dia, para dar respaldo às suas opiniões vagas e infundadas. Quando eles virem esse gráfico então…

Mas, quem vai levar ao pé da letra, um artigo que mesmo o autor diz que foi feito empiricamente, e não científicamente?
Deve-se ter consenso também.

Mauricio_Linhares

Ótimo, então ele parte de um pressuposto que também não é válido.

Isso é realmente muito bizarro. Não tem diferença de se programar em C++ e VB.Net? O Bjarne deve estar com a orelha pegando fogo agora XD

tnaires

Espera-se que todos tenham, mas nem sempre isso ocorre.

J

Ótimo, então ele parte de um pressuposto que também não é válido.

Isso é realmente muito bizarro. Não tem diferença de se programar em C++ e VB.Net? O Bjarne deve estar com a orelha pegando fogo agora XD

Preste atenção no que você está me perguntando. Já usou c++ “managed”?

É um c# misto de mfc. Sem condição de uso.

#pragma once


namespace testee {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Summary for Form1
	///
	/// WARNING: If you change the name of this class, you will need to change the
	///          'Resource File Name' property for the managed resource compiler tool
	///          associated with all .resx files this class depends on.  Otherwise,
	///          the designers will not be able to interact properly with localized
	///          resources associated with this form.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Add the constructor code here
			//
		}

	protected:
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->components = gcnew System::ComponentModel::Container();
			this->Size = System::Drawing::Size(300,300);
			this->Text = L"Form1";
			this->Padding = System::Windows::Forms::Padding(0);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
		}
#pragma endregion
	};
}

Olha se isso é iso.

Mauricio_Linhares

juliocbq:
Preste atenção no que você está me perguntando. Já usou c++ “managed”?

É um c# misto de mfc. Sem condição de uso.

?

J

Mauricio Linhares:
juliocbq:
Preste atenção no que você está me perguntando. Já usou c++ “managed”?

É um c# misto de mfc. Sem condição de uso.

?

#pragma once


namespace testee {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Summary for Form1
	///
	/// WARNING: If you change the name of this class, you will need to change the
	///          'Resource File Name' property for the managed resource compiler tool
	///          associated with all .resx files this class depends on.  Otherwise,
	///          the designers will not be able to interact properly with localized
	///          resources associated with this form.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Add the constructor code here
			//
		}

	protected:
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->components = gcnew System::ComponentModel::Container();
			this->Size = System::Drawing::Size(300,300);
			this->Text = L"Form1";
			this->Padding = System::Windows::Forms::Padding(0);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
		}
#pragma endregion
	};
}

Olha o código acima e me diz se isso é c++.

Link_pg

Olá!

É, esse código ae é a implementação C++ da MS no Visual Studio, o tal do Visual C++. No final das contas se for ver ao pé da letra, todas as linguagens do .NET framework utilizam as mesmas classes e tem os mesmos recursos intrínsecos nas linguagens. Tanto é que se você for nos tutorias da MSDN, você consegue ver pedaços de códigos “internacionalizados” perfeitamente (clique aqui para ver esse código em C#, aqui para VB, aqui para C++, etc). É algo do tipo: delegates existem em todas as linguagens .NET, só muda o nome, diferente de Java, que se quisesse representar os delegates teria que ter uma classe anônima.

Acho válido dizer que todas as linguagens .NET tem os mesmo recursos e acessam as mesmas classes, quem já usou VB.NET e C# pode comprovar como só muda a sintaxe. O que não acho válido é comparar C#/VB contra Java/JRuby, por exemplo. Se você pegar Java X JRuby percebe que a única coisa que eles tem em comum é o acesso as bibliotecas da outra linguagem, porque as linguagens em si apresentam muitas diferenças entre elas.

Abraços

J

Esse código é c++ adaptado para donet, o chamado managed c++. Ele suporta coleta de lixo automático. Tentei utilizar isso num projeto de vídeo, e vou te dizer que não compensa. Não é compatível com nada. C# dá 10 a 0 nisso ae.

Link_pg

Então, ele é compatível com qualquer coisa que gere CLR e vice-versa.

luistiagos

prefiro o bom e velho C++ do que isso ae…

J

Então, ele é compatível com qualquer coisa que gere CLR e vice-versa.
Eu quis dizer que não é iso, e não posso compilar em outros compiladores. Mono não suporta também, então, não é compatível com nada.

Além de que, se eu não puder ter a performance do c++, prefiro codificar em c# ou java.

W

Pior eh o comentario desse carinha:

Nego nao sabe programar, o sistema vira uma caca e poem a culpa no .NET.

Link_pg

Qualquer coisa do .NET que não venha da M$ (desenvolvedora original e dona dos direitos) é uma adaptação, então o problema não é com a M$ e sim com quem “adapta”.

Engraçado você dizer isso sobre uma plataforma que foi desenvolvida originalmente for Win32 (sim, eu sei que o mono tem uma versão for Windows também, apesar do foco do projeto ser para ambientes não Windows) :lol:

Yep, concordo em gênero, número e grau.

J

Qualquer coisa do .NET que não venha da M$ (desenvolvedora original e dona dos direitos) é uma adaptação, então o problema não é com a M$ e sim com quem “adapta”.

Engraçado você dizer isso sobre uma plataforma que foi desenvolvida originalmente for Win32 (sim, eu sei que o mono tem uma versão for Windows também, apesar do foco do projeto ser para ambientes não Windows) :lol:

Não entendi o que você quis dizer com isso. Quem está Adaptando alguma coisa? O managed c++ é idéia da microsoft, e só funciona com o .net.
Ninguém cria um compilador para linguagem que não seja iso.

O managed c++ é um recurso idiota, ninguém vai usar isso. É chato de codificar, e não tem performance.

Link_pg

O mono é uma adaptação. Quis dizer que você disse que se não da pra compilar em outros compiladores então não é compatível com nada. Mas esse nunca foi o propósito original do tal “managed” C++. Ele só tem a sintaxe do C++ rodando sobre o .NET framework.

Não adianta querer que um carro (managed C++) ande sobre a água (Unix e variações), sendo que ele foi feito pro asfalto (Win32), se quiser vai ter que adaptar (Mono). E ainda assim não vai ser lá essas coisas comparado com um barco (C++ do Unix).

Algo parecido aconteceu com o EcoSport. O propósito dele não é ser um OffRoad (virou moda colocar o estepe atrás do carro) como muita gente pensou (não fiz pesquisas nem nada, digo por escutar muito isso), na verdade ele é só um Fiesta com uma carroceria de jipe. Ele é carro pro asfalto, se tentar usar na lama como um jipe, não vai rolar. :lol:

J

Ele não tem a sintaxe do c++. Só se parece um pouco.

Bem…ninguém vai querer compilador disso, isso eu tenho certeza. Um recurso que faz isso muito bem, é a D, que gera código nativo e possui coletor de lixo. Mas não é popular.

J

http://www.digitalmars.com/d/

Criado 3 de julho de 2009
Ultima resposta 6 de jul. de 2009
Respostas 35
Participantes 13