Why C# is hot... cool... whatever
-
Kevin McFarlane wrote:
Do you think F# will take off next year or remain niche? My guess is that most developers will shun it because it seems too alien
My guess is it will remain niche. It is hard to learn and the benefits of using it are not obvious to most developers. But again, I've been wrong before :)
I had a brief look at Scala a while back and it seems more accessible, though that could be illusory because its syntax is more familiar.
Kevin
-
Welll... yeeaah... but it doesn't belong in the toolbox, it doesn't appear on the form.
The toolbox offers easy access to Controls (as in System.Windows.Forms.Control) and other Components (as in System.ComponentModel.Component), things one often needs, and having lots of properties. They include Timers, SerialPorts, BackgroundWorkers, etc. Dragging and configuring them through Designer makes sense to me. :)
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get. Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
-
I had a brief look at Scala a while back and it seems more accessible, though that could be illusory because its syntax is more familiar.
Kevin
Kevin McFarlane wrote:
I had a brief look at Scala a while back
Interesting that you mention Scala in the same context as F#. I believe they play roughly equivalent role on their platforms. And I think they are both going to remain niche, although Scala probably has better chance of going mainstream because Java evolves slower than C# and VB so that may influence some Java developers to switch to Scala. On the .NET side, I am afraid we are going to continue enjoying the verbosity and clumsiness of C# and VB :)
-
The toolbox offers easy access to Controls (as in System.Windows.Forms.Control) and other Components (as in System.ComponentModel.Component), things one often needs, and having lots of properties. They include Timers, SerialPorts, BackgroundWorkers, etc. Dragging and configuring them through Designer makes sense to me. :)
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get. Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
Luc Pattyn wrote:
makes sense to me
Then I guess you're in its demographic.
-
Do you think F# will take off next year or remain niche? My guess is that most developers will shun it because it seems too alien (personally I wouldn't shun it just because of that but developers are often surprisingly conservative).
Kevin
One area where F# has some promise is in Scientific and engineering computations. The other area where I think F# might be useful is in the area of DSLs (Domain specific languages). I am currently investigating in my free time how to use F# for Financial modeling.
-
Kevin McFarlane wrote:
I had a brief look at Scala a while back
Interesting that you mention Scala in the same context as F#. I believe they play roughly equivalent role on their platforms. And I think they are both going to remain niche, although Scala probably has better chance of going mainstream because Java evolves slower than C# and VB so that may influence some Java developers to switch to Scala. On the .NET side, I am afraid we are going to continue enjoying the verbosity and clumsiness of C# and VB :)
Nemanja Trifunovic wrote:
Scala probably has better chance of going mainstream
Twitter is a prominent user. It's written mostly in Ruby, Java and Scala.
Kevin
-
I was looking at how to use a thread for background tasks and there is a BackgroundWorker in the toolbox list :cool:
Visit http://www.notreadytogiveup.com/[^] and do something special today.
I all comes down to money. C# is cool and hot only because Microsoft has marketed it to developers that way. C# is just another slow, limited, buggy C++ clone without the .NET library. The .NET library could have been written almost 20 years ago as that's when a lot of those patterns you're loving so much were first written up and the community was catching on to their value. Mircosoft only did something that was new for them with C# and .NET, not something that was new to the developer community. Yes I use C#, every day in fact. Obviously, I'm not terribly impressed.
patbob
-
Now all they have to do is make MSDN work, so that it's easier to find this stuff out. :)
Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.”
Henry Minute wrote:
Now all they have to do is make MSDN work, so that it's easier to find this stuff out.
No kidding! I can usually find what I'm looking for on MSDN faster by using Google, and usually accidentally find better information on external blogs!
-
Nemanja Trifunovic wrote:
Scala probably has better chance of going mainstream
Twitter is a prominent user. It's written mostly in Ruby, Java and Scala.
Kevin
Yeah, but considering that Twitter runs on Apple stuff, it makes sense to that the fruit-fanatics would "think different" about how to create a mainstream web app. It also explains why their service so often displays "network too busy" messages when trying to simply login.
-
That's one of the advantages of .NET over C++, the rich framework. Yes I know you can achieve the same in C++ but you have to hunt harder. Though things may have moved on in the past four years which was when I last looked at C++.
Kevin
-
Please do not confuse between .NET and C++; .NET is a framework, while C++ is a language. Also, C++ creates .NET.
I'm not confused. When you're using C# it's inseparable from the .NET framework, i.e., you have a rich library at your fingertips. With C++ typically you do not and either need to do all the stuff yourself or hunt around for disparate pieces.
accent123 wrote:
Also, C++ creates .NET.
So what? I'm not saying that C# is superior to C++, just that it has better "infrastructure" support for common problems. Naturally there are some scenarios where despite this C++ is a better choice.
Kevin
-
Henry Minute wrote:
Now all they have to do is make MSDN work, so that it's easier to find this stuff out.
No kidding! I can usually find what I'm looking for on MSDN faster by using Google, and usually accidentally find better information on external blogs!
I don't program much anymore but enjoy reading threads such as this as I still do a little C# .NET work. Your post caused me to wax nostalgic and recall how back in my early days when something didn't work the way you thought it would - due to bad or no documentation, or buggy program, or hardware failure (which used to happen quite often) - you had no Internet for help. Imagine no user forums. There were computer clubs whose members helped one another but when you're at a point that needs to be dealt with immediately, well, you know... There were published algorithms to do all kinds of sorts and searches and stuff, but there were no rich frameworks that generated the code for you. To make matters much worse there was always a memory and storage limitation to consider. Now if you need a fast file hash method just allocate some megabytes or gigabytes or, hell, terabytes. As for a development platform C# .NET is superb. As Ray Kurzweil's book title says: The Singularity is near. Mack McKinney
-
I don't program much anymore but enjoy reading threads such as this as I still do a little C# .NET work. Your post caused me to wax nostalgic and recall how back in my early days when something didn't work the way you thought it would - due to bad or no documentation, or buggy program, or hardware failure (which used to happen quite often) - you had no Internet for help. Imagine no user forums. There were computer clubs whose members helped one another but when you're at a point that needs to be dealt with immediately, well, you know... There were published algorithms to do all kinds of sorts and searches and stuff, but there were no rich frameworks that generated the code for you. To make matters much worse there was always a memory and storage limitation to consider. Now if you need a fast file hash method just allocate some megabytes or gigabytes or, hell, terabytes. As for a development platform C# .NET is superb. As Ray Kurzweil's book title says: The Singularity is near. Mack McKinney
It's wonderful isn't it? The functionality at your fingertips these days is so rich that sometimes it feels like you can get 10 times as much done these days as you could a mere 10 years ago.
-
I don't program much anymore but enjoy reading threads such as this as I still do a little C# .NET work. Your post caused me to wax nostalgic and recall how back in my early days when something didn't work the way you thought it would - due to bad or no documentation, or buggy program, or hardware failure (which used to happen quite often) - you had no Internet for help. Imagine no user forums. There were computer clubs whose members helped one another but when you're at a point that needs to be dealt with immediately, well, you know... There were published algorithms to do all kinds of sorts and searches and stuff, but there were no rich frameworks that generated the code for you. To make matters much worse there was always a memory and storage limitation to consider. Now if you need a fast file hash method just allocate some megabytes or gigabytes or, hell, terabytes. As for a development platform C# .NET is superb. As Ray Kurzweil's book title says: The Singularity is near. Mack McKinney
I remember purchasing a library of assembly language functions for the Commodore 64, which provided user interface functionality. That was the closest thing that I had to a framework back then. I would sit up all night, staring at code, printing out code and highlighting it, compiling over and over, making small changes to avoid a troubleshooting nightmare. It was almost an art form -- to try to fit the most functionality into the smallest amount of memory, using the smallest amount of processor power. Now, things are almost directly opposite. With all emphasis being on development time, optimization takes a back seat in most business-oriented applications. I still get a guilty feeling when I code something quickly, knowing that I could have done it more efficiently with just a little more time. But, that extra time could be spent on another project, and that's all that matters to the corporate bean-counters.
-
Please do not confuse between .NET and C++; .NET is a framework, while C++ is a language. Also, C++ creates .NET.
In the spirit of dispelling confusion, may I counter that C++ did not and does not "create" .NET.
-
In the spirit of dispelling confusion, may I counter that C++ did not and does not "create" .NET.
It is either Assembly or C++ or a combination of both. Also, comparing C++ and the .NET family of languages is like comparing apples and oranges. C++ is a fully compiled laguage and you are totally free to do anything with it, including hang your self, where as, .NET languages are not fully compiled; they end up in bytecodes which are then interpreted by the .NET run-time when the application runs. Therefore, if your code is intended for speed in a extreme high trafic environment, such as real-time communication, C++ is your choice. Otherwise, for rapid app development, pick .NET. if you disagree, then please tell us what was used to create the .NET framework/.NET languager interpreters, or Java, or Javascript or all the other bytecode-oriented/managed codes/interpreters/the so-called "new languages" for that matter, that are being sold out there.
-
It is either Assembly or C++ or a combination of both. Also, comparing C++ and the .NET family of languages is like comparing apples and oranges. C++ is a fully compiled laguage and you are totally free to do anything with it, including hang your self, where as, .NET languages are not fully compiled; they end up in bytecodes which are then interpreted by the .NET run-time when the application runs. Therefore, if your code is intended for speed in a extreme high trafic environment, such as real-time communication, C++ is your choice. Otherwise, for rapid app development, pick .NET. if you disagree, then please tell us what was used to create the .NET framework/.NET languager interpreters, or Java, or Javascript or all the other bytecode-oriented/managed codes/interpreters/the so-called "new languages" for that matter, that are being sold out there.
I don't think that the phrase "fully compiled" means what you think that it means. I'm certain that "compiler existence" is not a direct feature of any language. For some languages, compilers have been created. For others, they have not. The languages themselves are entirely distinct from such things. If one were so inclined, a Javascript compiler could be created. So far, no one has been so inclined (that I know of anyway). In fact, if one were so inclined, said compiler could be created using C#. C# could be used to make a C# compiler. Comparing C++ to "the .NET family of languages" is an apples-to-apples comparison, because languages are languages and compilers are compilers and the two categories are only related when someone links them together (punny!). I think the folks at Microsoft responsible for Visual C++ might take particular exception to you attempting to distinguish C++ from "the .NET family of languages", given all the really hard work that went into making it into one of those .Net languages. ANY language can be a .Net language; all it needs is to be able to refer to the libraries. If having JITted bytecode really bothers you, use NGEN[^] on it. For the record, I've got some real-time communications code working just fine. I wrote it in VB. I didn't NGEN it. Heck, I didn't even adhere to general best practices while coding it. I could have written it in C++, but I like making the VB and .Net haters go spastic.
-
I all comes down to money. C# is cool and hot only because Microsoft has marketed it to developers that way. C# is just another slow, limited, buggy C++ clone without the .NET library. The .NET library could have been written almost 20 years ago as that's when a lot of those patterns you're loving so much were first written up and the community was catching on to their value. Mircosoft only did something that was new for them with C# and .NET, not something that was new to the developer community. Yes I use C#, every day in fact. Obviously, I'm not terribly impressed.
patbob
C# is C++, that has been made nicer. I do probably 75/25 C++/C#, but it's clear which language is more elegant in terms of syntax and conventions. What C++ needs is a complete redesign, to get rid of a lot of the stuff that doesn't work in languages, and add stuff that works. No, I don't mean C++0x which is like a little bandaid patch. Unfortunately, it has a lot of interoperability to keep, so that won't ever happen. When you say C# is slow, you should also qualify your statement. How slow and which parts are slow? It may not be as fast as native code in general, but compare it to an interpreted language like python. Then, how slow are we talking about?
-
I was about to suggest exactly the same thing. Quite a few of my company's products are based on that framework, and I must say, working with it is a pleasure. Good job, Trolltech, Qt Software and Nokia (this sounds exactly as me, myself and I :D ).
Where it seems there are only borderlines, Where others turn and sigh, You shall rise!
-
C# is C++, that has been made nicer. I do probably 75/25 C++/C#, but it's clear which language is more elegant in terms of syntax and conventions. What C++ needs is a complete redesign, to get rid of a lot of the stuff that doesn't work in languages, and add stuff that works. No, I don't mean C++0x which is like a little bandaid patch. Unfortunately, it has a lot of interoperability to keep, so that won't ever happen. When you say C# is slow, you should also qualify your statement. How slow and which parts are slow? It may not be as fast as native code in general, but compare it to an interpreted language like python. Then, how slow are we talking about?
I disagree which language is more elegant. I actually seem them in a dead heat with neither being a clear winner. I'm not going to go into details -- this is not the right media for me to do that effectively. Slow -- that I can exactly qualify. Its about as fast as Java, another compiled-to-bytecode/bytecode-interpreted language. There are certain kinds of problems that neither language is appropriate for -- anything compute intensive. For example, there's no native C# nor Java H.264 codec implementations. Someday there will be, but for now we'll have to stick with the C++ implementations if we want to watch video on our computers. That said, there's an entire class of problems where (moderate) slowness doesn't matter, and that's UIs. So UIs are where C# excells over Visual C++, which is why, where I work, we've pretty much switched to doing UIs in C#, brute force computing in C++ and taking the pain to write the managed C++ thunking layers between the two. However, it isn't so much the base C# language that makes it so good for UI implementatiton, nor that it's semi-interpreted, but its the .NET library.
patbob