C#--is it growing? Or saturated? (Charles Petzold does C#)

A

Arne Vajhøj

The important thing is not to take a job where anybody else can dictate what
tools/languages to use.

That will rule out most companies.

The people working on the same application has to use the same language
(or at least same platform).


And if the management is just bit competent they will insist
that multiple applications get developed in same language/platform.

Arne
 
A

Arne Vajhøj

raylopez99 said:
What is the state of C#? Somebody in a Linux advocacy newsgroup
implied it has saturated (leveled off in growth).

Still growing. Probably growing slightly less than than previously
because a huge part of the VB6 and ASP stuff has already been
ported.
Today we are ready for the official release of the .NET Framework 2.0.
Tabulating only MSCORLIB.DLL and those assemblies that begin with word
System, we have over 5,000 public classes that include over 45,000
public methods and 15,000 public properties, not counting those
methods and properties that are inherited and not overridden. A book
that simply listed the names, return values, and arguments of these
methods and properties, one per line, would be about a thousand pages
long.

If you wrote each of those 60,000 properties and methods on a 3-by-5
index card with a little description of what it did, you’d have a
stack that totaled 40 feet.7 These 60,000 cards, laid out end to end —
the five inch end, not the three inch end — can encircle Central Park
(almost), and I hear this will actually be a public art project next
summer.

Can any one programmer master 60,000 methods and properties? I think
not. One solution, of course, is specialization. I myself have
specialized. This evening I hope no one will ask me questions about
web forms or ASP .NET or SQL Server because those aren’t my specialty.
I do Windows Forms, and my language is C#.
IntelliSense

Libraries today has to be big. Programmers expect that. Try look at
Java or Python or whatever - they have also tons of classes for
everything.

Arne
 
P

Pavel Minaev

In all due respect then I believe that VS was first with the
feature.

For the sake of historical accuracy - it wasn't. IntelliSense first
appeared in a Microsoft IDE in VB5; meanwhile Delphi had similar level
of automatic code completion pretty much since its inception, and I
wouldn't be surprised if there were something preceding it, as well.
 
P

Pavel Minaev

I actually find massive libraries a challenge of memory as well as
exploration. I love to dazzle my coworkers with an almost inhuman
retention and quick responses (not to brag). A couple years ago,
spitting out property and methods names for even the most commonly
used classes was a bit of a challege. However, now that I have been
working in C# for two years, spouting out a few hundred class
definitions a day is like a walk in the park.

What makes it so easy to remember? I think it is that the library
itself is exceptionally well organized. It is hard to think of a class
that is improperly placed within the wrong namespace. The classes are
usually very intuitively named. And it helps that Intellisense reduces
your need to remember names to few characters.

As for C#, I don't think it is dying down or reaching a peak. There
are a lot of folks out there who simply don't know something as
wonderful as C# exists. I let them know that they are wasting their
time writing their own web service proxies. I let them know that they
are wasting their time building classes just like DataTable. I let
them know they are wasting time looking through the labyrinthic tomes
of API references, when I can find what I am looking for in a matter
of seconds and its use is intuitive.

All I can add to this is that it it mirrors my own .NET experience
100% (and also Java, and other similarly organized frameworks; Qt
isn't that far off, for example).

One huge benefit of using a large platform is that there is usually a
single well-established way of doing something, and a developer on the
platform will recognize (or at least, is supposed to recognize) it as
a standard pattern with a certain specific meaning. This makes the
code much more readable and maintainable. Of course, there's still no
shortage of people writing their own enum Boolean, or bubble sort, or
trying to parse dates with regexes where DataTime.Parse would work
perfectly. But it's much less tolerated in the Java/.NET land.
 
A

Arne Vajhøj

Pavel said:
One huge benefit of using a large platform is that there is usually a
single well-established way of doing something,

There are several things that can be done different ways
but still using the standard framework.

Read data from database, find something in an XML document etc..
and a developer on the
platform will recognize (or at least, is supposed to recognize) it as
a standard pattern with a certain specific meaning. This makes the
code much more readable and maintainable. Of course, there's still no
shortage of people writing their own enum Boolean, or bubble sort, or
trying to parse dates with regexes where DataTime.Parse would work
perfectly. But it's much less tolerated in the Java/.NET land.

As long as they pick one of the solutions that MS maintain, then
there is less code to maintain (read: it is good).

Arne
 
A

Arne Vajhøj

MC said:
Well said, sir!

How on earth do you find a job where nobody else can dictate what
tools/languages to use, unless you're only doing free-lance consulting?

Even freelancers will often work with existing code or a multi person
development teams.

Arne
 
P

Pavel Minaev

Arne said:
There are several things that can be done different ways
but still using the standard framework.

Read data from database, find something in an XML document etc..

Sure, but there are usually reasons for having several ways, and there
is an obvious choice to make when all the requirements are considered.
E.g., when you have a choice between DataReader and DataSet
+DataAdapter, there are well-known benefits and tradeoffs in either
case, and any rational decision would take those into account, and
pick accordingly, no matter who makes it.

Also, with a limited number of "stock" choices, the intent of the code
is still clearer than when everybody rolls out their own.
 
A

Arne Vajhøj

Pavel said:
Sure, but there are usually reasons for having several ways, and there
is an obvious choice to make when all the requirements are considered.
E.g., when you have a choice between DataReader and DataSet
+DataAdapter, there are well-known benefits and tradeoffs in either
case, and any rational decision would take those into account, and
pick accordingly, no matter who makes it.

Sometimes the reason is not so much different purposes but more
evolution.

And I am not so sure that there is always one obvious choice. DataSet
is not something there is universal agreement on when to use.
Also, with a limited number of "stock" choices, the intent of the code
is still clearer than when everybody rolls out their own.

I agree with that.

Arne
 
V

viepia

I said can, not necessarily, lead to a programmer being trapped, for instance IMHO these
are sickening wastes of human life:
http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library

http://en.wikipedia.org/wiki/Active_Template_Library morfed into
http://en.wikipedia.org/wiki/Windows_Template_Library

Why does Microsoft still make new releases of these deadend tools? The world of managers
who could care less about the future of their programmers. Following your rational do
you agree, "it would be insane to start suggesting the any large company change all their
MFC ATL infrastructure to run modern tools "?

Is $160.4B Google's software development future really completely tied to a 5.2B company
that doesn't keep it's word and is in a downward spiral, losing 40% of its value in the
last 6 months? What is the future of Java development if one way or another 253.9B
Microsoft takes control of Sun?

As far as working on a team, if I have to maintain it my experience is it's better to
write the whole thing by myself.

I am 49, in 1986 I was told to forget about PC programming and keep writing Data General
assembly language, I quit that job, ever since then I have had control of my tools.
 
J

Jon Skeet [C# MVP]

I said can, not necessarily, lead to a programmer being trapped, for instance IMHO these
are sickening wastes of human life:
http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library

http://en.wikipedia.org/wiki/Active_Template_Library morfed into
http://en.wikipedia.org/wiki/Windows_Template_Library

Why does Microsoft still make new releases of these deadend tools?
The world of managers who could care less about the future of their
programmers. Following your rational do you agree, "it would be
insane to start suggesting the any large company change all their MFC
ATL infrastructure to run modern tools "?

That would entirely depend on the exact situation. Rewriting code from
scratch with more modern technologies *sometimes* makes sense, and
sometimes doesn't.
Is $160.4B Google's software development future really completely
tied to a 5.2B company that doesn't keep it's word and is in a
downward spiral, losing 40% of its value in the last 6 months? What
is the future of Java development if one way or another 253.9B
Microsoft takes control of Sun?

Java has been supported by multiple vendors for a long time now. With
OpenJDK it's even more independent of Sun.
As far as working on a team, if I have to maintain it my experience
is it's better to write the whole thing by myself.

In that case you'll never work on a particularly large project, I
suspect.
I am 49, in 1986 I was told to forget about PC programming and keep
writing Data General assembly language, I quit that job, ever since
then I have had control of my tools.

When someone insists that you hold yourself back, then it makes sense
to quit. That's not at all the same thing as saying it makes sense to
never put yourself in a position where other people can say what to
use. Most of the time what they say *will* make sense, and you've
always got the option of quitting if it doesn't.

To cut yourself off from all positions which involve working for a team
in order to avoid an unlikely situation where you'd have to change job
is cutting off your nose to spite your face.
 
A

Arne Vajhøj

I said can, not necessarily, lead to a programmer being trapped, for instance IMHO these
are sickening wastes of human life:
http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library
http://en.wikipedia.org/wiki/Active_Template_Library morfed into
http://en.wikipedia.org/wiki/Windows_Template_Library

Why does Microsoft still make new releases of these deadend tools?

Because there are lots of apps out there using those with no intention
to port to .NET or other newer technologies for the near future.

Heck - there are even developers out there that like those technologies.

MS delivers what the market wants - not what you want.
Is $160.4B Google's software development future really completely tied to a 5.2B company
that doesn't keep it's word and is in a downward spiral, losing 40% of its value in the
last 6 months?

No.

See below.
What is the future of Java development if one way or another 253.9B
Microsoft takes control of Sun?

Practically unaffected.

The Java standards are not controlled by SUN but by JCP. The highest
body with JCP is the Executive Committee.

Google is already represented in JCP EC. By Joshua Bloch BTW. The other
members currently are: SUN, IBM, Oracle, HP, SAP, Intel, Fujitsu,
Redhat, Eclipse, Apache, Nortel, SAS and 2 individuals. Very close
to being the top of the IT industry minus Microsoft.

SUN has over the last couple of years open sourced all their
implementations: JDK, Glassfish, NetBeans. If SUN disappeared,
then Google could continue to use the SUN based open source Java.
Or they could pick one of the alternative open source implementations
(Apache, FSF). Or they could pick a commercial implementation from a
171B company (IBM). Or pick a commercial implementation from a
118B company (Oracle). Or develop their own. Plenty of options.

The only thing SUN still owns is the trademarks. And there are
other islands in Indonesia that could be used ... :)

The bottom line is that the Java world would not care much
if MS bought SUN except for nostalgic reasons.

MS on the other hand would get a bunch of HW suppliers that
was very unhappy about MS going into HW.

If someone is going to buy SUN then Oracle would be a much
more likely candidate.
As far as working on a team, if I have to maintain it my experience is it's better to
write the whole thing by myself.

It is not cost efficient to always rewrite existing code. It is not
feasible to have one person do all development except for trivial
small projects. Teams notoriously produces higher quality solutions
than individuals.

So that strategy is completely hopeless.

Arne
 
R

raylopez99

I said can, not necessarily, lead to a programmer being trapped, for instance IMHO these
are sickening wastes of human life:http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library

http://en.wikipedia.org/wiki/Active_Template_Librarymorfed intohttp://en.wikipedia.org/wiki/Windows_Template_Library

Thanks for the link, that was interesting. I reproduce what I found
of interest below.
Why does Microsoft still make new releases of these deadend tools?   The world of managers
who could care less about the future of their programmers.    Following your rational do
you agree, "it would be insane to start suggesting the any large company change all their
MFC ATL infrastructure to run modern tools "?

No it's not insane; I agree. I share your distain of MFC--I found it
was a sort of half-way house between C++ and Visual Basic. With Forms
things are much easier, albeit the library is much smaller still.
Is $160.4B Google's software development  future really completely tiedto a 5.2B company
that doesn't keep it's word and is  in a downward spiral, losing 40% ofits value in the
last 6 months?   What is the future of Java development if one way or another 253.9B
Microsoft takes control of Sun?

Well said. Despite Java being an Open Standard, you are correct in
saying that Sun Corporation dying would be a mortal blow to Java.
Even btw PDF (Adobe Acrobat format) is an "open standard" but for
practical purposes it's synonymous with Adobe Corporation.

I pity working for Google using Java--but a job is a job. Google is
great for founders with founders shares or employee numbers 1 through
100. But I suspect the writer of this (Jon?) is not one of them, too
bad. And amusingly Google was just surpassed by Apple in market cap.
Can you say "WordPerfect" or "Netscape"? I see MSFT dominating the
search space once they perfect their search engine ("Longhorn" (Vista)
was supposed to have such an engine. BTW an excellent search engine
is dtSearch, a commercial product; surprised nobody has bought them
out--they have a fast tree and it supports, unlike Google, Boolean AND/
OR and "within 15 words" type searches).

RL

from Wikipedia:

When MFC was introduced, it provided C++ macros for Windows message-
handling (via Message Maps), exceptions, run-time type identification
(RTTI), serialization and dynamic class instantiation. The macros for
message-handling were intended to reduce memory consumption by
avoiding gratuitous virtual table use and also provide a more concrete
structure for various Visual C++-supplied tools to edit and manipulate
code without parsing the full language. The message-handling macros
replaced the virtual function mechanism provided by C++.
The macros for serialization, exceptions, and RTTI predated
availability of these features in C++ by a number of years. 32-bit
versions of MFC, for Windows NT 3.1 and later Windows operating
systems, used compilers that implemented the language features and
updated the macros to simply wrap the language features instead of
providing customized implementations, realizing upward compatibility.
[edit]Visual C++ 2008 Feature Pack

On April 7, 2008, Microsoft released an update to the MFC classes as
an out-of-band update to Visual Studio 2008 and MFC 9.[6] The update
features new user interface constructs, including the Ribbon user
interface of Microsoft Office 2007

Microsoft has also imposed additional licensing requirements on users
of the Ribbon UI.[9] These include a requirement to adhere to
Microsoft UI Design Guidelines, and a prohibition against using such a
UI in applications which compete with Microsoft applications.
 
R

raylopez99

Because there are lots of apps out there using those with no intention
to port to .NET or other newer technologies for the near future.

Heck - there are even developers out there that like those technologies.

I take it you don't particularly like MFC. But I agree some people
do: I saw one programmer who compared MFC to a $3000 modern art sofa,
while Windows Forms was a cheap $300 sofa you bought at IKEA.

RL
 
M

Mike Schilling

raylopez99 said:
I take it you don't particularly like MFC. But I agree some people
do: I saw one programmer who compared MFC to a $3000 modern art
sofa,

With eight legs,. no four of them in the same plane.
 
M

Mike Schilling

raylopez99 said:
I see MSFT dominating the
search space once they perfect their search engine ("Longhorn"
(Vista)
was supposed to have such an engine.

And they'll own the low-end database market once they prefect that
transactional file system that was promised for NT 4.0.
 
A

Arne Vajhøj

Mike said:
And they'll own the low-end database market once they prefect that
transactional file system that was promised for NT 4.0.

I believe that transactional NTFS is part of Vista and 2008.

Arne
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top