PC Review


Reply
Thread Tools Rate Thread

.NET SUCKS --- READ FOLLOWING. MICROSOFT IS A SUCKY CO

 
 
=?Utf-8?B?QmFyb24gTWF0cml4?=
Guest
Posts: n/a
 
      2nd Oct 2005
..Net isn't bad. The GC can be easily manipulated to maintain state by making
your state as static member variables. The GC will not destroy static
variables and careful crafting of the "using" statement wil allow you to
"nearly" guarantee that objects you expect to see are available and ones that
need to be reset are. This is not to say that VB.Net 2.0 should be used for a
mission critical real time system, but .Net does give you access to Win32
through PInvoke and COM interop through EnterpriseServices, so it is
definitely a step in the right direction.

"(E-Mail Removed)" wrote:

> Let me tell you a scenario and you will see what I mean.
> There is a large application that has communication with a real time
> system . The app has to respond to the requests in no more than 1 s.
> The app is a C# .NET app and everything is fine and everyone at
> Microsoft is happy that they forced their "new" platform down someone's
> throat.
>
> Now imagine a scenario where the GC has to collect the memory. Well,
> when GC runs all the threads are suspended and there is no response to
> the incoming requests and application fails a critical requirement.
>
> Well,any MS people here who can defend their sucky product,
> I know they will say "don't use .NET for this or that...use C or C++
> etc"
> My q to them is why did you create .NET then?
>
>

 
Reply With Quote
 
 
 
 
=?Utf-8?B?Q29sZW1hbg==?=
Guest
Posts: n/a
 
      3rd Oct 2005
(E-Mail Removed)- A tip: Don't speak up at your meetings as your boss
might finally realize you're an idiot. This may be over your head, but
probably more your speed...

> 10 FOR I = 1 TO 10
> 20 PRINT "(E-Mail Removed) is a HACK.";
> 30 NEXT I
> 40 GOTO 10


> RUN


.... Now do us all a favor, stop clogging the internet, stop making our
profession look stupid, and go back to delivering pizza.

Regards
Coleman
A professional developer.
 
Reply With Quote
 
 
 
 
=?Utf-8?B?UERIQg==?=
Guest
Posts: n/a
 
      3rd Oct 2005


"Tyrant Mikey" wrote:

> Never underestimate the power of mass stupidity. When you think people
> can't be stupid in vast numbers, just look back on the 2004 elections.
>
>


I agree. By all that is holy, tens of millions of people actually voted for
Kerry!

Now to the topic, before things get ugly.

I am a physicist by trade. I have found plenty of things about .NET that I
don't like. For one thing, it has no native support for complex numbers, the
native math library is pretty sparse, and worse yet, generics are not well
suited for use in high speed arithmatic, which could likely have been easily
fixed.

For all my ranting about such things at times, I am quite capable of
realizing (when I'm not throwing one of my Bill Doesn't love me enough
tantrums) that .NET wasn't designed specifically to suit whatever needs I
might come up with. No, Bill wan't thinking just about me. He was thinking
about other people. There are, after all, a few people in the world who might
not develop software that needs to do a lot of bessel function calculations
with complex numbers. Just like there are probably a couple people in the
world who write software that doesn't have exacting real time requirements.

So here's my advice for others, who like me, on occasion, get bothered
because the whole Microsoft universe does not revolve aound them. Do what I
do.

When I need to use complex arithmetic without knowing beforehand if I need
doubles, reals, or whatever, I start by throwing my tantrum. I have a nice
blanket on the floor in a clear area, with no hard pointed objects that I
might injure myself on. I can lie down there, and safely kick and scream for
an hour or two. Then i sit up, take a deep breath, and try to actually
concieve the thought that the world does not revolve around me. The final
step is to write some code in native C++, using a template and the complex
math library, to do my math, that I can then call from managed code.

There is nothing wrong with a screw driver manufacturer suggesting that
hammers might actually work better with nails.
 
Reply With Quote
 
Lloyd Dupont
Guest
Posts: n/a
 
      3rd Oct 2005
> I am a physicist by trade. I have found plenty of things about .NET that I
> don't like. .......
> I can lie down there, and safely kick and scream for
> an hour or two. ......
> try to actually
> concieve the thought that the world does not revolve around me.

Funny interesting post here ;-)


 
Reply With Quote
 
Kevin Spencer
Guest
Posts: n/a
 
      3rd Oct 2005
Hi PDHB,

Not sure what you mean by "native support" for complex numbers, but I have
written an app or 2 that uses complex numbers, and even a class for working
with complex numbers. The class is a sort of "catch-all," as I prefer to
dispense with the overhead in most cases, and just do the math myself.
Still, manipulating complex numbers isn't a whole lot more difficult than
working with real numbers

For example, I did a Mandelbrot Set visualizer awhile back. Here's the code:

public enum ColorScheme : int
{
DefaultGradient = 0,
GrayScale = 1
}

public struct Settings
{
public int Width;
public int Height;
public double MinX;
public double MaxX;
public double MinY;
public double MaxY;
public int MaxIterations;
public Fractal.ColorScheme ColorScheme;

public Settings(int w, int h)
{
Width = w;
Height = h;
MinX = -2.25d;
MaxX = 0.75d;
MinY = -1.5d;
MaxY = 1.5d;
MaxIterations = 2048;
ColorScheme = ColorScheme.DefaultGradient;
}

public Settings(int w, int h, double mnx, double mxx,
double mny, double mxy, int maxit)
{
Width = w;
Height = h;
MinX = mnx;
MaxX = mxx;
MinY = mny;
MaxY = mxy;
MaxIterations = maxit;
ColorScheme = ColorScheme.DefaultGradient;
}
}


/// <summary>
/// Class for visualizing the Mandelbrot set
/// </summary>
public class MandelbrotSet
{
private int _MaxIterations = 500;
private System.Drawing.Color _SetColor = System.Drawing.Color.Black;
public System.Drawing.Color SetColor
{
get
{
return _SetColor;
}
set
{
_SetColor = value;
}
}

public event ProgressArgsEventHandler ImageProgress;

public Settings Settings;

public Bitmap CreateImage()
{
Bitmap b = null;
int stride;
BitmapData bmData;
System.IntPtr Scan0;

try
{
b = new Bitmap(Settings.Width, Settings.Height,
PixelFormat.Format24bppRgb);
bmData = b.LockBits(new Rectangle(0,0, Settings.Width, Settings.Height),
ImageLockMode.WriteOnly, b.PixelFormat);
stride = bmData.Stride;
Scan0 = bmData.Scan0;
unsafe
{
byte * p = (byte *)(void *)Scan0;

int nOffset = stride - Settings.Width*3;
int nWidth = Settings.Width * 3;

for(int y=0;y<Settings.Height;++y)
{
for(int x=0; x < Settings.Width; ++x )
{
// Calculate color for this pixel
System.Drawing.Color c = ResolveZ(GetComplexCoord(x,y));
p[0] = c.B; // Reverse byte order in bmp
p[1] = c.G;
p[2] = c.R;
p += 3;
}
if (ImageProgress != null)
ImageProgress(this, new ProgressArgs(y, Settings.Height));
p += nOffset;
}
}

b.UnlockBits(bmData);
return b;
}
catch (Exception ex)
{
Utilities.HandleError(ex);
throw(ex);
}
}

/// <summary>
/// Gets the Complex Coordinate values of an xy coordinate in the image
/// </summary>
/// <param name="x">x coordinate in the image</param>
/// <param name="y">y coordinate in the image</param>
/// <returns>Complex Coordinate at that point</returns>
public Complex GetComplexCoord(int x, int y)
{
double xdist = Settings.MaxX - Settings.MinX; // distance between
MinRx and MaxRx
double ydist = Settings.MaxY - Settings.MinY; // distance between
MinIy and MaxIy
double xratio = (double)Settings.Width / xdist; // distance per pixel
double yratio = (double)Settings.Height / ydist; // distance per pixel
double real = Settings.MinX + ((double)x / xratio);
double imaginary = Settings.MaxY - ((double)y / yratio); // Reverse from
bottom to top
return new Complex(real, imaginary);
}

public System.Drawing.Color ResolveZ(Complex C)
{
return ResolveZ(C, new Complex(0,0), 0);
}

public System.Drawing.Color ResolveZ(Complex C, Complex Z, int iteration)
{
if (iteration == Settings.MaxIterations)
return _SetColor;
int interval = (int)(Settings.MaxIterations / 12);
// Zn + 1 = ZnSquared + C
double real = (Z.real * Z.real) - (Z.imaginary * Z.imaginary) + C.real;
double imaginary = 2 * Z.real * Z.imaginary + C.imaginary;
Complex resultZ = new Complex(real, imaginary);

if ( 4 < ((Z.real * Z.real) + (Z.imaginary * Z.imaginary)))
{
switch(Settings.ColorScheme)
{
case ColorScheme.DefaultGradient:
if (iteration < 64) // Interval = 1 (0 to 64) (64 its)
return System.Drawing.Color.FromArgb(0,0, 64 + (iteration * 3));
else if (iteration < 320) // Interval = 5 (64 to 320) (256 its)
return System.Drawing.Color.FromArgb(iteration - 64, 0, 255);
else if(iteration < 512) // Interval = 8 (320 to 512) (128 its)
return System.Drawing.Color.FromArgb(255,
iteration - 320, 512 - iteration);
else if(iteration < 640) // Interval = 10 (512 to 640) (128 its)
return System.Drawing.Color.FromArgb(255,
iteration - 384, 640 - iteration);
else if (iteration < 768) // Iteration = 12 (640 to 768) (128 its)
return System.Drawing.Color.FromArgb(255, 255, (iteration - 640) *
2);
else
return System.Drawing.Color.White;
case ColorScheme.GrayScale:
double ratio = (double)Settings.MaxIterations/192d;
int i = (int)(((double)iteration / ratio)) + 64;
return System.Drawing.Color.FromArgb(i, i, i);
}
}
return ResolveZ(C, resultZ, iteration + 1);
}

public MandelbrotSet()
{
Settings = new Settings(400, 400);
}

public MandelbrotSet(int width, int height, double minrx,
double maxrx, double miniy, double maxiy)
{
Settings = new Settings(width, height, minrx, maxrx, miniy, maxiy, 2048);
}
}

BTW, you can find quite a bit in the Microsoft Managed DirectX class
libraries as well.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Big things are made up of
lots of little things.


"PDHB" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>
>
> "Tyrant Mikey" wrote:
>
>> Never underestimate the power of mass stupidity. When you think people
>> can't be stupid in vast numbers, just look back on the 2004 elections.
>>
>>

>
> I agree. By all that is holy, tens of millions of people actually voted
> for
> Kerry!
>
> Now to the topic, before things get ugly.
>
> I am a physicist by trade. I have found plenty of things about .NET that I
> don't like. For one thing, it has no native support for complex numbers,
> the
> native math library is pretty sparse, and worse yet, generics are not well
> suited for use in high speed arithmatic, which could likely have been
> easily
> fixed.
>
> For all my ranting about such things at times, I am quite capable of
> realizing (when I'm not throwing one of my Bill Doesn't love me enough
> tantrums) that .NET wasn't designed specifically to suit whatever needs I
> might come up with. No, Bill wan't thinking just about me. He was thinking
> about other people. There are, after all, a few people in the world who
> might
> not develop software that needs to do a lot of bessel function
> calculations
> with complex numbers. Just like there are probably a couple people in the
> world who write software that doesn't have exacting real time
> requirements.
>
> So here's my advice for others, who like me, on occasion, get bothered
> because the whole Microsoft universe does not revolve aound them. Do what
> I
> do.
>
> When I need to use complex arithmetic without knowing beforehand if I need
> doubles, reals, or whatever, I start by throwing my tantrum. I have a nice
> blanket on the floor in a clear area, with no hard pointed objects that I
> might injure myself on. I can lie down there, and safely kick and scream
> for
> an hour or two. Then i sit up, take a deep breath, and try to actually
> concieve the thought that the world does not revolve around me. The final
> step is to write some code in native C++, using a template and the complex
> math library, to do my math, that I can then call from managed code.
>
> There is nothing wrong with a screw driver manufacturer suggesting that
> hammers might actually work better with nails.



 
Reply With Quote
 
=?Utf-8?B?Q2h1Y2sgV2FnbmVy?=
Guest
Posts: n/a
 
      5th Oct 2005
"Jon Skeet [C# MVP]" wrote:
> When I'm developing in Java, I develop much faster, even
> though the language occasionally constrains me (in terms of lack of
> events and properties). Then again, in C# I miss the Java-style
> enums...


Java style enums? Are you talking about the pattern from Effective Java
(#21)? You could do that same thing in C#, although since C# supports enums
(which Java gets in 5.0) they seem to be equivalent in that way.

You're right about the IDEs - although Visual Studio with a third party
addin (that I can't mention or my post will be edited, but it's by a major
Java IDE vendor) goes a long way to making up the difference. And doesn't
eclipse support C# these days? Wouldn't that work better for you than using
Visual Studio?

When I'm in Java I miss having REAL properties, instead of the silly
getter/setters.
 
Reply With Quote
 
Jon Skeet [C# MVP]
Guest
Posts: n/a
 
      5th Oct 2005
Chuck Wagner <(E-Mail Removed)> wrote:
> "Jon Skeet [C# MVP]" wrote:
> > When I'm developing in Java, I develop much faster, even
> > though the language occasionally constrains me (in terms of lack of
> > events and properties). Then again, in C# I miss the Java-style
> > enums...

>
> Java style enums? Are you talking about the pattern from Effective Java
> (#21)?


I can't remember off the top of my head what Effective Java recommends,
but Java enums are fully-fledged objects with methods which can be
overridden by some elements of the enum, etc.

They're also supported by the compiler to enable things like switching
on the values.

> You could do that same thing in C#, although since C# supports enums
> (which Java gets in 5.0) they seem to be equivalent in that way.


No, C# enums and Java enums are very, very different.

> You're right about the IDEs - although Visual Studio with a third party
> addin (that I can't mention or my post will be edited, but it's by a major
> Java IDE vendor) goes a long way to making up the difference. And doesn't
> eclipse support C# these days? Wouldn't that work better for you than using
> Visual Studio?


No, Eclipse doesn't support C#. There's a plug-in which does syntax
highlighting and calls the command-line compiler, but that's about it.
It's a world away from being a properly supported language.

> When I'm in Java I miss having REAL properties, instead of the silly
> getter/setters.


Indeed. And events, and delegates.

--
Jon Skeet - <(E-Mail Removed)>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
 
Reply With Quote
 
=?Utf-8?B?TWFydXRoaQ==?=
Guest
Posts: n/a
 
      5th Oct 2005
Wonder who would consider communicating with real time system using Windows ?

Suppose Windows crashes, would you expect your real time system to blast ?

Huh..?

Looks like somebody who does not know what he is writing about...

Regards,
Maruthi

"(E-Mail Removed)" wrote:

> Let me tell you a scenario and you will see what I mean.
> There is a large application that has communication with a real time
> system . The app has to respond to the requests in no more than 1 s.
> The app is a C# .NET app and everything is fine and everyone at
> Microsoft is happy that they forced their "new" platform down someone's
> throat.
>
> Now imagine a scenario where the GC has to collect the memory. Well,
> when GC runs all the threads are suspended and there is no response to
> the incoming requests and application fails a critical requirement.
>
> Well,any MS people here who can defend their sucky product,
> I know they will say "don't use .NET for this or that...use C or C++
> etc"
> My q to them is why did you create .NET then?
>
>

 
Reply With Quote
 
=?Utf-8?B?QmxhbmRlc3Q=?=
Guest
Posts: n/a
 
      5th Oct 2005
http://msdn.microsoft.com/library/de...anagedapps.asp
Check out "Hosting the server GC" section; also, make sure you know what you
are talking about before posting.

"(E-Mail Removed)" wrote:

> Let me tell you a scenario and you will see what I mean.
> There is a large application that has communication with a real time
> system . The app has to respond to the requests in no more than 1 s.
> The app is a C# .NET app and everything is fine and everyone at
> Microsoft is happy that they forced their "new" platform down someone's
> throat.
>
> Now imagine a scenario where the GC has to collect the memory. Well,
> when GC runs all the threads are suspended and there is no response to
> the incoming requests and application fails a critical requirement.
>
> Well,any MS people here who can defend their sucky product,
> I know they will say "don't use .NET for this or that...use C or C++
> etc"
> My q to them is why did you create .NET then?
>
>

 
Reply With Quote
 
=?Utf-8?B?VmFpYmhhdg==?=
Guest
Posts: n/a
 
      11th Oct 2005
Hi,
It seem that by trying to use .NET for real time, we are trying to open a
nut with the help of a screwdriver. What I mean to say is .NET is not
designed for realtime applications. Its not the case of one size fits all. We
can't overlook all the great features of .NET on the behalf of the fact that
it doesn't support realtime apps.
The question asked "why did you create .NET then?" can be answered best by
thinking about the fact "Why at all high level programming languages were
developed? Was machine language not enough?"
I hope I am able to deliver my thoughts on this.


"(E-Mail Removed)" wrote:

> Let me tell you a scenario and you will see what I mean.
> There is a large application that has communication with a real time
> system . The app has to respond to the requests in no more than 1 s.
> The app is a C# .NET app and everything is fine and everyone at
> Microsoft is happy that they forced their "new" platform down someone's
> throat.
>
> Now imagine a scenario where the GC has to collect the memory. Well,
> when GC runs all the threads are suspended and there is no response to
> the incoming requests and application fails a critical requirement.
>
> Well,any MS people here who can defend their sucky product,
> I know they will say "don't use .NET for this or that...use C or C++
> etc"
> My q to them is why did you create .NET then?
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
dreamscene sucks big time ... read why Tiberius Windows Vista General Discussion 1 26th Sep 2007 05:23 PM
Ubuntu - Read the review - Ubuntu Sucks Homer Schwartz Windows Vista General Discussion 43 22nd Jun 2007 06:52 AM
Outlook 2003's sucky search tool scs0 Microsoft Outlook Discussion 5 3rd Apr 2006 03:05 PM
Sucky tuner on A-I-W X800xt... or is it me? Lee Hagen ATI Video Cards 5 17th Sep 2005 05:34 PM
WMP 10 (sucks) Service Pack 2 (sucks) Douglas Scherer Windows XP Music 0 22nd Oct 2004 08:43 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:26 AM.