With all due respect to people who collect garbage for a
living, I do not want to be a garbage collector. Moving from the Magic xpa
application platform to a C# pile of code is like moving from a beautiful
mansion to a garbage dump.
The frustration of programming in C# is that you spend so
much of your time doing unpleasant things, like garbage collection, that you are forced to spend less time on your real applications, more overtime
evening and weekend hours working on non-productive code, or both. I don’t make
this stuff up, folks. Microsoft’s “Conclusion” is very clear: “The .NET garbage
collector provides a high-speed allocation service with good use of memory and
no long-term fragmentation problems, however it is possible to do things that
will give you much less than optimal performance.” In other words, stepping
into a C# programming project means you are entering a highly risky world where
you can easily spend excessive amounts of effort and end up with extremely poor
performance.
C# is Microsoft’s archaic imitation of Java. We all know
Java is an overly complex, bloated pile of code as well, but in C# Microsoft
managed to release a language that is very poorly suited to today’s business
challenges. Let’s be clear, C# is not a cross-platform mobile language. Depending
on kluges like Mono, is a highly risky business strategy for creating mobile
apps because the future of these approaches is highly uncertain. Mono recently
had to get another $12 million to stay afloat and there is no indication that
they have a strategy that will stabilize their rocky history.
C# is dependent on APIs in extension libraries. If you are
only ever going to program for today’s requirements, this may be fine. But what
happens when you need to run your code somewhere other than Windows? Let’s be
clear, C# is not a platform and it is not cross-platform. If you depend on API
extension libraries, you are inviting yourself into a development dead-end.
Maintaining C# code is extremely difficult, especially when
you are trying to work with someone else’s code. For example, a section of code
can look exactly the same but behave differently depending on whether it is actually
a class or a struct. I get nightmares just thinking about it.
An application platform provides a world of benefits and saves you from a world of hurt. At Magic, we see sharp so you don’t have to
C#.
No comments:
Post a Comment