C
chrisv
Olaf said:Ohhhh, why would that not be my real name? Curious.
*plonk*
Olaf said:Ohhhh, why would that not be my real name? Curious.
Alex said:This is terrible, unmaintainable code.
[Snip]PS: Personaly I would program in Assembler, because that would prove my
real
skill and I love doing it,
You love programming Assembler? I've done it, I'm glad I did it, and I'm
very, very happy I don't have to do it again (touch wood).
Heavens, nut, you're totally missing the boat! Too much time spent
defending the OSS initiatives probably.
This kind of stuff is the mainstay of programming and the reason that
Microsoft and Sun and IBM and all the others are so filthy rich while
you get assigned to documentation duties.
As an example, take a company that wants to automate their accounts
payable system for reimbursing salesmen for their excessive travel and
entertainment account expenses. They will do an "inhouse business
application" using their own staff, if the company is large enough, or a
local "consultant" if they don't have their own staff.
The system would be designed with a database piece, e-mail notification
piece, website webform piece, etc. These are the kinds of applications
that Java was created for and is principally used for and also where
.NET mostly lives.
What Microsoft has done is flesh out the java language, which was sort
of a subset of C++ to begin with, a little, but mostly the .NET
framework means the System namespace functions that make it so easy for
an applications person to conjure up a highly functional business app.
You have to see it to understand it.
If you are familiar with C++ in system situations, as you say, think
about what it takes to connect a program to a database, authenticating
the user and keeping him in a safe sandbox, querying for necessary
information and presenting it for edit/create/update. It takes some
code and takes some iterations and takes some time, no matter how great
you are at C++ and the interfaces you have to access.
With .NET and C# or VB.NET (doesn't matter, they are the same thing in
the end) you just graphically access a data connection and stored
procedure and whatever presentation controls make sense, dragging them
onto the form and giving them names if you don't like DataConnection1,
and DataAdapter2, and suchlike naming. The .NET plumbing is
automatically hooked up by simple wizard-generated code and you are
ready to test.
.NET goes beyond java in dumbing down the computer science to a point
where it is simple rote actions and all you need to know is application
dependent information, such as what you want the application to do
vis-a-vis the business. This so-called business logic still needs to be
directly coded into the application's forms or modules, but you can get
away with knowing next to nothing at all about the plumbing behind the
scenes.
Never once had a dangling pointer, unreclaimed memory, or a buffer overflow
then? C# has an easier syntax with less typing for the most part, so
logically if one was as proficient in C# as in C++, one's productivity would
be higher. This excludes the various visual designers and the powerful
libraries.
Unless there's serious resource constraints/portability requirements, C#
should be able to do that easily.
Source?
Linønut said:Truthfully, though, a knowledge of assembler is very useful when your
debugging takes you into library or system routines for which you don't
have
the source code.
Believe it or not, if you do it right, you can gradually build up a speed
in
coding assembler that is surprising.
But I've forgotten much of what I knew about masm.
Linønut said:billwg poked his little head through the XP firewall and said: [Snip]With .NET and C# or VB.NET (doesn't matter, they are the same thing in
the end) you just graphically access a data connection and stored
procedure and whatever presentation controls make sense, dragging them
onto the form and giving them names if you don't like DataConnection1,
and DataAdapter2, and suchlike naming. The .NET plumbing is
automatically hooked up by simple wizard-generated code and you are
ready to test.
I hope it works better than the plumbing in Visual Studio and MFC.
That's cool, but sometimes you need to know about the plumbing, too.
It is dependent, to some extent, what your application domain is.
Anyone who thinks one paradigm fits the entire world of software
development
has a simple view of this world.
Linønut said:Alex poked his little head through the XP firewall and said:
I don't have any source myself, but google for "Visual COBOL". Or
"object-oriented COBOL".
I prefered TASM Over MASM but I knew both.Never got particularly quick in it, merely somewhat competant.
I used to use TASM and DJGPP. Ah, the memories...
chrisv said:*plonk* for feeding a cross-posted troll.
belt, you can go with C#, Java... or even HTML, for that matter.If you're not picky, or you just don't have the experience under your
I couldn't agree more. However, knowing about the plumbing doesn't mean you
need to *do* plumbing.
Hello Jeff,
This is not good C++. Never was, never will be.
It may or may not be good C.
And, while the higher level Tools found in C# don't apeal to me,
the lower level tools, like macros, are oddly Verboten .LoopTo() and ER(), shown below, are the Tools I prefer,
but C# doesn't allow macros like that.
So how would you write this in C# ?
#define LOOP while ( 1 )
#define \
LoopTo( StopCond ) \
while ( Ch && ( Ch = ( uchar ) * ++ P \
, Ch2 = ( uchar ) P [ 1 ] \
, Ch ) \
&& ! ( StopCond ) )
Gaak!
What's wrong with templates and inline functions?
This is terrible, unmaintainable code.
It may be accepted in comp.os.linux.advocacy (I wouldn't know,
I don't frequent that group)
but try posting it in comp.lang.c++.moderated and see the
reaction it will evoke.
I don't know who your employer is but I would like mine
to be so lenient.
More readable to who?
Cute rewriting of C++ syntax is universally considered
as bad practice.
Don't take my word for it, c.l.c++.m (see above) is
a great resource - you have Stroustrup, Sutter,
Alexandrescu and their peers actively participating
in discussions there and offering ego-less advice.
Standards, conventions and idioms are good for a reason.
Any C and C++ programmer should recognize for(; at a glance.
Bruce said:What most businesses want, whether they are selling software or
developing in-house, is something in between. They don't want piggish
software, but then neither do they want to be forced to hire geniuses
at $200K a year.
Bruce said:There are myriad problems with this.
1. There is only a limited number of gurus to go around.
2. Most gurus don't like writing boring business software.
3. This presumes that the hiring managers can tell which hires are
worth spending money on and which aren't. There is an equal number of
"snake oil salesmen" in the ranks of interviewees as there are selling
big software packages. I have many times worked for companies that
spent big bucks on "gurus" who were, in fact, total idiots who knew how
to sell themselves in an interview.
4. Today's stock-and-trade tools are yesterday's "snake oil." I
remember when relational databases were "snake oil" crap. Now we
wouldn't do without them. Yes, IT managers often fall for hype.
However, just as often "gurus" are stuck in the past. How many really
smart guys have you met who insist on writing everything in C and sneer
at modern tools?
Many...
How effective do you think they are at writing the
kind of software businesses need?
5. One of those very, very smart gurus can write me up a business
report in C that is a model of beautiful design, all in only a couple
of days. Some jackass fresh out of college can cook up the same thing
in VB in two hours, and it interoperates neatly with all of MS's stuff,
to boot. Yes, the code is crap (I hate VB), yes, it could be much more
efficient (.NET practically guarantees bloat), but I'm going to throw
it away next month and ask for a different one. Who should I hire, do
you think? Different skill sets and languages lend themselves to
different problems. (I wouldn't hire the VB jackass to program a CAT
scanner, for example.)
I used to write real-time, multi-tasking software for telephone
switches. I absolutely do _not_ try to program business apps the same
way.
My old job required hyper-efficient code, fine tuning, attention
to memory consumption, and estensive unit testing. My new job requires
short development cycles: get the product on the business user's desk
_fast_ without killing his PC or the network. It's a completely
different way of thinking.
I will give you one thing, though: my new company would do well to
search out someone who _really knows_ Microsoft's development world,
and pay that person a high salary to help the rest of us get up to
speed on architecture and design decisions in the context of MS's long
term plans.
Some guy who writes elegant C code would be utterly useless to us,
apart from his basic thinking skills and attention to detail.
The computing world has become so diverse that there is plenty of room
for the guys building little jewels of programs in C, and plenty of
room for the guys building business apps using Visual Studio, ADO.NET,
and SQL Server using drag-and-drop. We need them all, but for different
domains and different reasons. Gone are the days when one person could
do it all, where one skill set was enough to get you any "computer job"
anywhere you wanted to work.
Whether you like it or not, you're specialized, so don't go sneering at
some other guy with a different speciality just because he can't match
you in your domain. That kind of dismissive attitude toward other skill
sets is the refuge of the insecure.
Similarly, get used to what I call the 10 / 80 / 10 rule: 10% of the
programmers out there are "gurus" in some area who are leading the way
and understand what's what. 80% of the programmers out there understand
the basics and can get the job done. 10% of the programmers out there
have no idea what they're doing: they just copy and paste and then
tweak it until it works. In every industry you have to deal with all of
these types of people. If you're in the top 10% and you let the other
90% get to you then you _will_ go nuts. Guaranteed.
Tried a couple of other newsreaders, didn't like them. Got any good
suggestions that run on Windows?
So you can optimize for speed, and you can optimize for functionality andbe used and maintained. In my environment, which is in-house
development for a milling company, my reaction to a devilishly tricky,
but lightning-fast business analysis program would be to toss it in the
trash and write a new one that was much slower but also much more
easily maintained. My company wants people here focused on solving new
business problems, not tweaking and tuning what we have until it's a
jewel of efficiency, and then spending big bucks maintaining the
result. Other companies do want that efficiency, even if it costs... it
all depends upon the problem domain.