C# The Next Thing?
Posted 23 November 2003 - 01:42 AM
Posted 05 December 2003 - 04:03 PM
Posted 25 August 2004 - 02:49 PM
<a href='http://www.littlenetworks.com' target='_blank'>http://www.littlenetworks.com</a>
Posted 25 August 2004 - 03:04 PM
then i thought, cool, c++ with high quality compiler, and the new c++/CLI wich is a quite impressive designed language to work with native and managed code. so i touched managed the first time really with c++ and thought its cool.
then i tried the c# version of 2005..
i never step back:D intellisence fast and perfectly knowing everything, a language easy as pie (once you mastered c++ c# is .. wow! :D), fast compilation, great exception help (so you really know what you did wich you shouldn't), fast working binaries (haven't benched. but they feel responsible, load quick, etc..).
i'm happy.. for me, c# is not the next thing. it's the only thing right now. the package is so clean, so solid, so complete.. .NET 2.0, c# 2.0, vs 2005.. great work..
well.. that was my little microsoft-love-advertising:D
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
Posted 25 August 2004 - 03:07 PM
Posted 25 August 2004 - 04:25 PM
Posted 26 August 2004 - 04:44 AM
Posted 30 September 2004 - 05:40 AM
C# is far from being a restrictive language like Java, Reflection actually affords great power and – when used sparingly – can actually replace the need for more complex and potentially time consuming work-arounds. C# is very much a “self-documenting” language, but without being as verbose as either Java or VB (though I don’t advise the literal application of this self-documenting approach). It cuts out the need for header files, and provides unparalleled compilation speeds. The Just-in-time compilation optimizes the assembly for the target machine and even operating system and the fact that it is a managed language opens the door to seamless cross-platform development and deployment and removes the need for the a host of if-defs and the maintenance of separate builds.
In the future, C# will even allow for seamless deployment of many games to the X-Box II and other consoles which will make use of XNA (well XNA is some-what ambiguous as to its actual purpose at the moment, but I take that as the jist of it). C# affords maintainability and rapid application development: two features that are imperative for any successful software solution… especial game development. Sadly the stigma of being “to slow for game development” is associated with both Java and C#, though Java has made great strides in this and C# has proven very efficient and fast with often very minimal differences in speeds from native code (other then the quick and dirty comparison tests which don’t even run long enough for the JIT time to be compensated for or which perform simple computations).
I have seen Axiom, a C# port of OGRE actually run faster then its predecessor, and this speed will only grew by leaps and bounds with the advent of generics in .NET 2.0. It was tested with Axiom and resulted in a 5X FPS increase!! (not to mention all of the repetitive code which could be eliminated). The only class that I have seen to be slow in comparison to other languages implementation is the ArrayList, but this is likely due to the boxing/unboxing and will therefore be remedied in .NET 2.0. Many find C# a turn off and consider it nothing more then a proprietary, windows-only Java clone (J++ anyone?), but I find that for the most part it is implemented *very* well in both Mono and DotGNU Portable.NET.
The only thing that I could ask for is an excellent cross-platform, LayoutManager-driven, GUI library similar to that found in Java. This is largely remedied with Portable.NET’s (and to a lesser extent Mono’s) excellent cross-platform support for WinForms. It is also provided with C# binding for other mature cross-platform GUI solutions including wx.NET (for wxWidgets) and GTK# (for GTK+). I have found that the Visual Studio.NET to be the best IDE that I have ever encountered - and short of a couple stability issues – as productive as Eclipse. You can even write Server-side web applications with the same language and even integrate them into the same solution!!
I have worked with C# for a while and have found that it has allowed me to accomplish any given task very easily and because Microsoft was smart enough to take a page out of the book of every successful programming language (from C++ to VB Java to Perl), it has resulted in an excellent solution for every programming task that I have worked with thus far. Its excellent support for interoperability with native languages and the ability to be used with any one of the literally hundreds of .NET language makes it a very flexible solution. It is my opinion that C# and the .NET framework, will make and excellent game development solution as soon as some of the stigmas associated with it are debunked. It provides the maintainability, powerful, flexibility, and cross-platform deployment that are so critical to game developers at the moment and I think with time the speed hit will either be overcome, or rendered insignificant in comparison to productivity gained by its use. I wish to test my hypothesis and determine if C# is in fact a feasible solution for game development by continuing my work on the RealmForge GDK and I think that others should at the very least do themselves a favor and keep an open mind and give C# a try.
Posted 30 September 2004 - 08:46 AM
I have been programming C++ for several years. At frirst it was shocking that:
1. I can't control the creation and destruction of my objects.
2. I have no access to my traditional APIs. (I thought C# was a mere extension of C++ before.)
Anyway C# is a new refreshing trend. It has an overwhelming library of standard classes (NET Framework) and some features that make it easier than its predecessor. I know several projects that utilize it as a scripting language and that is also the right way to do.
Posted 30 September 2004 - 10:20 AM
Actually you can control creation and destruction using constructors, destructors, and optionally the IDisposable interface, other then that garbage collection deletes then when needed, but you can even force that by called GC.Collect. See the following article:
Also you can access all of the traditional API's through the use of p/invoke. You can check out Tao (a C# convenience binding for many popular media and game related libraries) as simple example of this, and you can do the same easily with any API. Also, the .NET framework provides a wealth of base classes that i have seen replace the need for many misc. native libraries very well. Its much more then just a scripting language if you invest some to learning many of its intricacies. But i definlty agree that you must evaluate wether the amount of time invested getting used to a new language is worth the new features. I think that it would be useful to at least demanding a working knowledge of a managed language or at the very least become familiar with it for the sake of WinForms (as i have many dev-teams just use it for the GUI end and tie it into the native C++ app logic module).
Posted 30 September 2004 - 11:10 AM
They are all three recommended but still; first learn C before you start with the others! :wink:
<a href='http://s6.invisionfree.com/highwind/index.php' target='_blank'>http://s6.invisionfree.com/highwind/index.php</a>
Posted 30 September 2004 - 12:39 PM
Posted 30 September 2004 - 01:26 PM
Thanks a lot. You are good coding (driving) instructors. Anyway my final examination will be some project in C#. I just don't have one right now.
To GameWriter: I don't think learning C before is a good idea. Learning a new language involves writing a lot of programs in that language. And C programmer may develop a set of habits that will harm him when he will migrate to C++ or C#.
Posted 30 September 2004 - 01:52 PM
Posted 30 September 2004 - 03:41 PM
Posted 30 September 2004 - 09:35 PM
b) i find that c is stricter when it comes to structure of code. maybe you don't... that's the point... it doesn't matter if you start with c++, c, pascal or *insert language of your choice*
Posted 30 September 2004 - 10:19 PM
They are all three recommended but still; first learn C before you start with the others!
I agree with Decibit, it will take quite a time to learn two languages and right now he is taking a class in C#, not another language. But moreover, working your way from procedural to Object-oriented is the worst possible strategy for learning C#. These are two fundamentally different paradigms and this would be largely counter-productive. Object-oriented programming is much easier to grasp if you being designing and writing it. Also, is far more intuitive the procedural programming (though some developers may disagree if they are only comfortable with the later). It is human tendency to abstract and make association between things, specifically systems to real-world objects or "classes". Furthermore, C# is a far easier language to deal with bar none. It is very self-descriptive as opposed to the often cryptic coding style in C++ and C and it is written from the ground up to cater to the strengths of all the most powerful languages instead of hacked onto and internally implement everything in hideous structures the way C++ does. it is true that the ability to program and think programmatic solutions to problems and break them down into units is a universal concept in programming that allows the developers to acquire new languages very quickly, but C# is a far more object-oriented language then C++ and C doesn’t even support this methodology.
Posted 30 September 2004 - 10:50 PM
edit : another thing that you should consider is that while you think OO your computer does not and so you should have a good understanding of how the machine operates at the low level.
anyways, i didn't intend to turn this into a "what language is better" discussion. i don't question that OOP is superior and i like C# very much. it's just a matter of which approach will give you the better learning experience and i believe that, as you can't ignore the low level aspect forever, you should start from the bottom and work your way up. others might think differently though
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users