> On Mon, Mar 22, 2010 at 5:12 PM, Marechiare wrote: > > You know C already, don't you? There should not be a problem with C#. > = > What is the learning curve if you know only ANSI C? How do you compile > it to native code? Can you write a device driver in C#? C# as a language is not that hard to learn. Sure, there are things that can= get = complicated, like generics, interfaces, abstract classes, delegates and eve= nts = to mention some. For small and simple programs these things are not needed = though. You don't compile to native code with C#. You can't write device drivers with C#. What I think is the hardest part when learning a new language is not the = syntactical grammar of the language itself but rather to know what classes = and = functions from the libraries/framework to use to get something done. In thi= s = case the .net framework which has a lot of namespaces to handle things like = databases, forms and controls, internet, xml parsing, threads and processes= , = regular expresions, file and hardware io and so on. > = > Hope it does not open a new flame. However, I just can't understand > the concept behind C#, as it uses a VM but works only on one platform. > A'la an interpreted language from the '80s -- see Apple Basic where > the tokenised code (AIL -> Apple Intermediate Language :-) ) was > stored and interpreted, when memory was full it made a garbage > collection etc, so what new C# and .NET brought us? :-) The CLR (common language runtime or the core of .net) sits as an interface = between the program (or the programmer) and the hardware and the lower leve= l = kernel functions. Instead of taking down the entire environment (windows) t= he = CLR works as a safety net and can halt the program and throw an exception w= hen = the programmer has done something wrong. But the CLR is really much more than that - code management, memory managem= ent, = type safety verification, conversion of IL to native code, META data access= , = Code Access Security, Exception handling, Interoperation between managed co= de, = COM objects and Pre-existing DLLS(unmanaged code and data), Profiling, = Debugging etc. I have used both C++ (and still do) and C# a lot but I feel that I can be m= uch = more productive using C#. Both in the sence of writing quicker code (which = may = be because of the nice IDE), writing applications that are better looking a= nd = writing more inheritable and reusable code. As you can tell, I really like C# when working with windows applications. M= aby = soon also when working with embedded processors and the micro framwork. /Ruben=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D Ruben J=F6nsson AB Liros Electronic Box 9124, 200 39 Malm=F6, Sweden TEL INT +46 40142078 FAX INT +46 40947388 ruben@pp.sbbs.se =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D -- = http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist