 |
|
 |
|
On Wed, 08 Apr 2009 19:11:05 -0500, BobF <...@no.spam
Keep in mind that you're asking this question in a MFC (C++) newsgroup ...
IMO, there are different best tools for different jobs. So far, I
haven't been compelled to throw away C++ in favor of C#.
C# is a very cool language. C# combined with WPF/xaml for GUI work is
absolutely awesome. The kind of things I do aren't compatible with C#,
so I stay with C++.
YMMV, as always
|
|
 |
|
 |
 |
|
 |
|
On Wed, 8 Apr 2009 23:36:03 -0700, "Tom Serface" <...@camaswood.com
I use both and find both to be handy for different applications. It is
certainly easier to develop in C# and the tools in Visual Studio support C#
better and C# has better integration into new paradigms like WPF. But, C++
creates smaller faster programs and is still great for lots of applications.
If you are going to use managed code C# is certainly easier to learn and use
over C++/CLI, but for native, well... C# can't do native.
Tom
"SteveR" <...@TK2MSFTNGP02.phx.gbl...
|
|
 |
|
 |
 |
|
 |
|
On Wed, 8 Apr 2009 17:38:45 -0700 (PDT), Ajay <...@yahoo.com
On Apr 8, 7:41 pm, "SteveR" <maxsrussellatremovethisembarqmail.comwrote:
There is no perfect answer for this. C# is a very friendly language
compared to C++. Its easy to be productive in C# in a short amount of
time compared to C++, which will easily demand much more. If I was
someone starting out today, C# is where I would look. In today's age, C
++ is a specialized language. Also, it may not make any business sense
to move an existing C++ code to C#. You gain almost nothing. Any
existing C++ shop is likely to continue with using it.
Going forward, C#/.Net is where the action is and some of the features
that .Net offers(threading, async programming etc) are so compelling
that once you use them, you would feel that C++/MFC are more than a
generation behind.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 8 Apr 2009 23:40:56 -0700, "Tom Serface" <...@camaswood.com
I think that it's the .NET that makes C# interesting. If C++ were easier to
use with .NET I'd be inclined to use it instead of C#, but C++ tries to hang
in both worlds and is encumbered by "standards", etc. C# is simple and has
easy access to hundreds of APIs that come "in the box".
I agree with that you that porting an app to C# from C++ doesn't make a lot
of sense, to a point. MFC is still a power framework that has sort of
stood the test of time, but it's starting to show its age more and more
(even though there have been some nice additions lately. Still, if the
application is doc/view and you want it to be native, MFC is still a great
way to go IMO. Not sure why applications would have to be native these days
though.
The best reason to use C++... these newsgroups. Great support and great
community :o)
Tom
"Ajay" <...@r3g2000vbp.googlegroups.com...
On Apr 8, 7:41 pm, "SteveR" <maxsrussellatremovethisembarqmail.comwrote:
There is no perfect answer for this. C# is a very friendly language
compared to C++. Its easy to be productive in C# in a short amount of
time compared to C++, which will easily demand much more. If I was
someone starting out today, C# is where I would look. In today's age, C
++ is a specialized language. Also, it may not make any business sense
to move an existing C++ code to C#. You gain almost nothing. Any
existing C++ shop is likely to continue with using it.
Going forward, C#/.Net is where the action is and some of the features
that .Net offers(threading, async programming etc) are so compelling
that once you use them, you would feel that C++/MFC are more than a
generation behind.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 10:20:32 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"SteveR" <...@TK2MSFTNGP02.phx.gbl...
"most circumstances" should be better defined... :)
I mean: if you want to build web apps using ASP.NET and AJAX technology,
then sure C++ is quite useless, and you'd better use C# (or VB.NET) and
JavaScript.
But there are other domains in which C++ does win.
For example, think of lots of commercial software, from CAD software (e.g.
AutoCAD) to math software (like Mathematica), to photo editing (like
PhotoShop), etc. All these softwares are built using C++.
And Office is built in C++ as well, as browsers like FireFox or Google
Chrome or Microsoft IE are.
Have you tried Google Chrome? If not, please give it a try: it's very fast
in both start up and when you use it: it is really snappy. You can't do that
with managed code.
Moreover, when you build something in .NET, you need the entire .NET runtime
to be installed on the client machine. It's a 20 MB download for .NET 2.0,
and much more for .NET 3.5. Instead you can use static linking with C++, or
app-local deployment, and C++ runtime libraries are small (few megabytes).
And there is the world of scientific computing, where C++ is used as well
(besides other languages, like Fortran). For example, watch this very
interesting interview on Computational Fluid Dynamics (CFD):
http://channel9.msdn.com/shows/Inside+Out/Intelligent-Light-Computational-Fluid -Dynamics-and-High-Performance-Computing/
In general, I think that when you manage hundreds of megabytes of data or
terabytes of data, you want to write custom /ad hoc/ memory managers and
memory mapping code, and you can't use the default C# garbage collector or
"managed memory" system.
And if you want to write shell extensions on Windows, you have to use C++,
because you can't inject different CLR runtimes in the Explorer process
(instead you can use C++ e.g. with ATL to build COM-based components to be
used as shell extensions).
And don't forget that the CLR (i.e. the Common Language Runtime, on which C#
and other .NET languages are based) is written in native code :)
So, C++ is live and well.
Both C++ and C# have their own domains; I think that the key is to realize
that programming languages are just *tools*: use the best tool for the
particular job.
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 11:06:15 -0500, "AliR \(VC++ MVP\)" <...@online.nospam
I've been programming C++/MFC for 18 years now, and have done some C# from
time to time in the past 5 years. I've found that development tools for C#
are a little more technologically advanced than for C++ programming in VS.
But I have ran into roadblock after roadblock with C# with things that I'm
working on. It almost seems like I have to revert to win32 calls in C# to
get anything complex done.
You can see my latest problem here:
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID =378161
The bad thing is that if I have to revert to win32 then I'm bypassing .Net,
which I thought was the point of switching to C#
With all that said, when we are ready to develop a new version of our
application, I'm going to switch to C#.
AliR.
"SteveR" <...@TK2MSFTNGP02.phx.gbl...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 11:17:24 -0500, "AliR \(VC++ MVP\)" <...@online.nospam
Another example of having to go down to win32 dlls was for inter-process
communication. I don't know why .Net does not have this built-in. I had to
revert back to native SendMessage and WM_COPYDATA to get that functionality.
AliR.
"AliR (VC++ MVP)" <...@nlpi061.nbdc.sbc.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 11:45:04 -0500, "AliR \(VC++ MVP\)" <...@online.nospam
I did, but now that I remember a little more, I couldn't use that because
the other app was native, and was sending the WM_COPYDATA message. I guess
that problem wasn't entirely .Net's fault.
AliR.
"Ajay" <...@e38g2000vbe.googlegroups.com...
On Apr 9, 12:17 pm, "AliR \(VC++ MVP\)" <...@online.nospam
I havent done this in .Net but I would be surprised if it was missing.
Did you look here:
http://www.codeproject.com/KB/threads/dotnetnamedpipespart1.aspx
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 09:58:01 -0700 (PDT), Ajay <...@yahoo.com
On Apr 9, 12:45 pm, "AliR \(VC++ MVP\)" <...@online.nospam
Mixing Native and .net is not kosher but will explain this. If you
have native, its better to be native all around.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 12:01:36 -0500, "AliR \(VC++ MVP\)" <...@online.nospam
I wish I could. Last month I got a new hardware to work with, and the only
API for it was in .Net. So I had to write the app that talked to the
specific device using C# .Net. But the main app was in C++/MFC. We have
many little apps that talk to the big app, but they find each other through
a registered windows message (a GUID string is used for that), and then they
open sockets to talk to each other.
AliR.
"Ajay" <...@e18g2000yqo.googlegroups.com...
On Apr 9, 12:45 pm, "AliR \(VC++ MVP\)" <...@online.nospam
Mixing Native and .net is not kosher but will explain this. If you
have native, its better to be native all around.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 10:09:47 -0700 (PDT), Ajay <...@yahoo.com
On Apr 9, 1:01 pm, "AliR \(VC++ MVP\)" <...@online.nospam
That kind of sucks. This will always be a struggle unless the
migration is all one side.
We use .net in a very high performonant system (heavily multi-threaded
trading system) and I find it to be significantly easier. We use it
for both client and server. The only hitch I have found so far is the
grid performance, We did resort to GDI for a high performance grid but
that could be our fault and I didnt think it was an impediment in any
way.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 11:48:03 -0500, "AliR \(VC++ MVP\)" <...@online.nospam
Also that article is using the system32 dlls to get the job done. tons of
calls to kernel32.
AliR.
"AliR (VC++ MVP)" <...@nlpi061.nbdc.sbc.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 09:57:08 -0700 (PDT), Ajay <...@yahoo.com
On Apr 9, 12:48 pm, "AliR \(VC++ MVP\)" <...@online.nospam
That article is also old, probably .Net 1.0. I think Remoting is what
you need, but I am not sure. Yes, there may be cases that you may need
to revert to using System32 DLLs. But for *any* higher level app, .Net
is significantly superior to MFC. For low level development, .Net isnt
the answer.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 09:55:39 -0700, "Tom Serface" <...@camaswood.com
I'd bet underneath .NET are all kinds of calls to the system :o)
Tom
"AliR (VC++ MVP)" <...@nlpi061.nbdc.sbc.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 15:39:44 -0600, "Jonathan Wood" <...@softcircuits.com
Probably the biggest advantage of C++ over C# is efficiency. A C++/MFC
application can be compiled into a single EXE file that loads and runs very
fast. C++ also allows you to declare complex objects as static data.
C# has a richer run-time platform and some cool features. And, as more and
more computers get faster and tend to include the 20-30MBs of .NET run time,
these will become less of an issue over time.
For me, I use C# to write Web applications, where I only need to install the
app on one computer--the server. I don't like to use C# for apps I plan to
distribute. This may change in the future.
--
Jonathan Wood
SoftCircuits Programming
http://www.softcircuits.com
http://www.softcircuits.com/blog/
"SteveR" <...@TK2MSFTNGP02.phx.gbl...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 9 Apr 2009 20:32:56 -0400, "SteveR" <maxsrussellatremovethisembarqmail.com
Thank you all for your comments. I showed the ones that were here, as of
early this morning, to my IT friend, and he completely agreed. I am
convinced that for my particular kind of app, which is not oriented toward
database and user input, but rather animation and particularly mouse
responses like clicking and dragging, that my choice of C++ was correct.
Not to mention this wonderful newsgroup of invisible friends that have
bailed me out over and over. I would not have a completed product if it
were not for all of you.
Steve Russell
--------------
"Jonathan Wood" <...@TK2MSFTNGP05.phx.gbl...
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 11:35:30 +0200, "mika" <...@ole.com
"SteveR" <maxsrussellatremovethisembarqmail.comnews: %23z...@TK2MSFTNGP02.phx.gbl...
Neither C++ nor C#.
Real Windows programmers use C and Win32 ASM.
C# is nowadays mainly used by kids (<30), who know nothing about Windows
programming and architecture....
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 13:17:18 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"mika" <...@ole.com
The device drvier developers, OK.
Yes, try to do a normal business desktop app or web app in C and ASM... How
long does it take, and what are the benefits? :)
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 11:07:38 -0400, Joseph M. Newcomer <...@flounder.com
I have not written native Win32 API code since 1975. I see no particular advantage to
using it, and it is clumsy. If I enjoyed being miserable all the time, I'd still be
programming in C/Win32. But I program in C++/MFC, and my life is a good deal easier
because of that choice.
I like C#, but my client base has not interest in it, having expertise in C++/MFC, and
they'd have to do a lot of retraining to get their people up to speed on C#. So
currently, I work in C++/MFC.
C# is definitely a cool language, and I've enjoyed programming in it the few opportunities
I've had. The biggest problem is translating my expectations about how things work (such
as graphics output) into the idioms of C#. But the last time I did this, I created a
cross-reference table (it's on my MVP Tips site) to aid others in the transition.
I don't see much reason to debate the value of these two languages; C++/MFC works fine if
you want native applications, and when extensive computational loads are required, it
usually creates more efficient code. But efficiency often doesn't matter, such as in GUI
interfaces. Ultimately, you choose the language most appropriate for the solution space,
which includes the nature of the problem, the nature of the platform, the needs of the
client, and similar decisions.
joe
On Sat, 11 Apr 2009 11:35:30 +0200, "mika" <...@ole.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 21:28:36 -0700, "David Ching" <...@remove-this.dcsoft.com
"Joseph M. Newcomer" <...@4ax.com...
For practical purposes, C# and C++ are roughly the same. While they trade
off conveniences (RAII is better in C++ vs. 'using' in C#; C# strings can
be literal using '@' vs. ugly _T() in C++, etc.) there is little
productivity advantage of one or the other for experienced C++ people. It
is a matter of taste and familiarity.
What people are really comparing when they say C++ vs. C# is MFC vs. .NET.
Here it is no comparison, MFC is a dated concept whose only lovers are
people who compare it to C/Win32, or even assembler. .NET is much richer
and easier to use. Many of the questions we routinely answer in this
newsgroup are taken care of automatically in .NET. For example, someone
asked why accessing m_hwnd in the ctor of the CWnd-derived class didn't
work, or why setting a style after the window was created did not have any
effect. All of these things are taken care of in WinForms so the question
doesn't even arise.
I have about 4x the experience in C++ vs. C#, so prefer C++. But I much
prefer WinForms over MFC. For several years I have not felt at home in
either as both had significant disadvantages as cited in this thread. I'm
hoping my new love of Qt lasts! :-)
-- David
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 21:38:18 -0700, "David Ching" <...@remove-this.dcsoft.com
"David Ching" <...@TK2MSFTNGP06.phx.gbl...
To clarify, I prefer C++ as used by frameworks such as MFC and Qt instead of
STL, Boost, metaprogramming using templates, C++0x, and all that. The new
C++ stuff isn't very pragmatic that I can tell. Although I do have my eye
on anonymous functions (and only hope this is implemented somewhat like C#
does and not in obscurity like the rest of the C++ train seems to be
headed). Anonymous functionsl are a really clean way to implement callback
functions, since the bodies can be implemented directly in the function call
instead of having to declare them prior to the function call).
-- David
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 08:06:01 -0700, Electronic75 <...@discussions.microsoft.com
Hello, thank you Mr.Ching for valuable insight, Frankly speaking it was the
first time I heard about Qt, I did a small internet research and I found it
very interesting.
These features were interesting to me.
1- It can be used for different platforms.
2- It is (almost) free.
3- it is c++ based.
4- it can mimic platform look and feel
5-I read that many respectable applications like Adobe photoshop album,
google earth, mathematica, and KDE had been developed using Qt
6- It is associated with nokia, a giant embedded manufacturer.
if someone like me is not familiar with Qt, then watch this:
if someone has not seen this yet, his/her impression is guaranteed! it
develops a web browser in XP and linux just in a few minutes!
http://www.youtube.com/view_play_list?p=22E601663DAF3A14
things that I don't know and I would appreciate if someone can tell me,
I am not sure what exactly its license means, can it be called open source?
how rich is the library comparing to MFC? with so many professional
applications developed with it, it can't be an amateur tool!
How is it platform independent, I mean dose it run on top of a virtual
machine like Java or has different libraries for different platforms?
I read it soon supports symbian and ARM9/ ARM11! wow!
cheers,
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 09:52:45 -0700, "David Ching" <...@remove-this.dcsoft.com
"Electronic75" <...@microsoft.com...
Qt is licensed under 3 terms: LPGL, GPL, and Commercial. The most
interesting is LPGL where we can use it for free. The limitations are we
must dynamically link to the Qt DLL's (allowing users to update/change the
Qt implementation and still use it with our apps) and put a notice in the
app's documentation.
The video you mention is using Qt Creator (their IDE). A nicer choice for
us who know Visual Studio is the Visual Studio integration plug-in. I blog
about this and also an introductory book here:
http://dcsoft.com/community_server/blogs/dcsoft/archive/tags/qt/default.aspx
Although the Qt library is similar to MFC (has QString instead of CString,
etc.), it is really closer .NET in terms of richness. It achieves it's
cross platform ability by requiring apps to be recompiled using C++ compiler
on each desired platform. So you need to generate .exe on Windows, and
other binaries for Mac/Linux separately, not just have one .jar file as in
Java that runs on all platforms. But then each platform runs natively,
that's why it's so fast. And you also need to redistribute Qt libraries
compiled for each platform with your app and not assume any virtual machine
is installed. Advantage is you can create an installer that is small(er)
and not require separate installation of the virtual machine, which is a
royal pain and the primary reason why apps avoid .NET.
HTH,
David
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 08:29:17 -0700, r norman <...@comcast.net
On Sat, 11 Apr 2009 11:35:30 +0200, "mika" <...@ole.com
C is for wimps (usually brats under 65). I code directly in machine
language, just writing out by hand the hex for the Motorola S-record
files to burn proms.
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 11:16:51 -0400, Joseph M. Newcomer <...@flounder.com
I remember coding major apps in assembler. Then there was the night we lost our hard
drive while enhancing the payroll program for a customer. Because we did not have 24/7
support from IBM, the tech could not arrive before 8am (we phoned it in at 10:30pm) but
here we were with the need to have the program running in the morning. I literally
punched parts of the program into "hex patches" in the correct loader format, patched the
patches, and patched the patched patches, wrote about 400 instructions in absolute machine
code between 11pm and 6am. My colleague ran the test data while I worked on the next
enhancement.
Ultimately, I had to re-integrate this mess into the source, which took another two days.
But we delivered the customer's payroll before noon on Friday, we just barely had time to
run it after the disk drive was repaired and we got the machine back.
Real Programmers don't use S-records, they toggle the code in by hand from the front
panel. But see
http://www.cs.utah.edu/~elb/folklore/mel.html
joe
On Sat, 11 Apr 2009 08:29:17 -0700, r norman <...@comcast.net
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 20:57:49 -0700, r norman <...@comcast.net
Now that citation really does take me back to the old days. The
LGP-30 was the first computer I ever worked on, back when Eisenhower
was president. It was a course in computer design and we studied the
boolean logic behind how each instruction in that machine worked, then
programmed it into a tight loop and put an oscilloscope on different
points in the logical circuitry to verify that each instruction
executed according to the logic in the manual.
For my class project I wrote a Monte Carlo method to calculate
integrals. Fortunately there was an assembly language system for
programming it.
On Sun, 12 Apr 2009 11:16:51 -0400, Joseph M. Newcomer
<...@flounder.com
>MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 10:58:21 -0400, "Scott McPhillips [MVP]" <org-dot-mvps-at-scottmcp
"BobF" <...@TK2MSFTNGP04.phx.gbl...
Love It! I started on this one...
http://computer-history.info/Page4.dir/pages/IBM.7090.dir/images/Picture.9.jpg
The memory cost about $1.00 per bit, or $1 million per memory unit.
But a few years later I purchased one of these computers (for spare parts
for the University) for about $100 from government surplus.
--
Scott McPhillips [VC++ MVP]
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 14:48:29 -0500, BobF <...@no.spam
Are you hanging the tape or are you the suit? :-)
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 17:10:33 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
I see neither monitors nor keyboards there... how did you *edit* your
programs??
Just curious.
Thanks,
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 12:18:40 -0400, "Scott McPhillips [MVP]" <org-dot-mvps-at-scottmcp
"Giovanni Dicanio" <...@TK2MSFTNGP02.phx.gbl...
Punched cards. I would type up some new ones on a keypunch machine, then
"edit" the deck of cards. Then to "build and run" you put a rubber band
around the deck and handed it in through a window. Maybe 4-8 hours later
you could pick up your deck and the printout it produced.
Sometimes I could get 30 minute turnarounds by coming in after midnight and
bringing a six-pack of beer to share with the grad student operator!
--
Scott McPhillips [VC++ MVP]
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 02:11:52 -0400, Joseph M. Newcomer <...@flounder.com
You selected, in the switches, a memory location, and hit the "display"
button/switch/whatever. The contents of that memory location appeared in the lights. To
make a change, you toggled in a set of data in the switches, hit the "deposit" button, and
the contents of the switches replaced the existing address.
This business with keyboards is a newfangled invention that results in wimpy programmers.
Monitors? Are you kidding? Real Programmers could decode the octal from the lights.
I spend thousands of hours in cold computer rooms debugging computers this way. Even when
we had text editors, high-level languages, and compilers, I was debugging operating
systems from lights-and-switches because we were below any level where a debugger could
possibly function. For example, debugging the boot cycle of the OS.
joe
On Sun, 12 Apr 2009 17:10:33 +0200, "Giovanni Dicanio"
<...@REMOVEMEgmail.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 02:15:57 -0400, Joseph M. Newcomer <...@flounder.com
If you could see text on a screen, it's too modern.
On the PDP-8 you had to toggle the boot-load program in by setting switches. Now *that*
was a Real Machine.
For modern computing, how about a machine that could read in only one card image (80
characters) and start executing at location 1 (the card was read into 1..80). That card
had to load in the rest of the boot-load program, then load in the program to be executed.
By the time you get to devices with screens, history was over and everything else we know
today is just slightly fancier.
Did I mention we had to use rocks to implement boolean logic? :-)
joe
On Sun, 12 Apr 2009 17:16:11 +0200, "Giovanni Dicanio"
<...@REMOVEMEgmail.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 00:24:43 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Joseph M. Newcomer" <...@4ax.com...
:)
How can you express a logical XOR with rocks ?? :)
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 19:23:15 -0400, "Scott McPhillips [MVP]" <org-dot-mvps-at-scottmcp
"Giovanni Dicanio" <...@TK2MSFTNGP02.phx.gbl...
A one-handed juggler can do it.
--
Scott McPhillips [VC++ MVP]
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 11:58:12 -0400, Joseph M. Newcomer <...@flounder.com
!!!!!!!!! LOVE IT !!!!!!!!!!
joe
On Sun, 12 Apr 2009 19:23:15 -0400, "Scott McPhillips [MVP]" <org-dot-mvps-at-scottmcpwrote:
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 18:00:50 +0200, "Bo Persson" <...@gmb.dk
Off line editing, of course.
The card punches were located elsewhere. :-)
Bo Persson
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 02:21:49 -0400, Joseph M. Newcomer <...@flounder.com
If you couldn't edit your program directly from the console switches, you were screwed.
You had signed up time, and to go back to the keypunch meant you lost your turn and
someone else had the computer, and you didn't get another turn until tomorrow. So you
edited the program by patching the instructions, directly in memory, to do what you
wanted. Then, after your turn at the machine was over, you went back, punched the changes
up on cards, and ran your test the next day with the fixed code. With any luck, you
actually punched up the changes you had patched in.
Now think about it. You needed to add six instructions. So how did you do it? Every
programmer had a slightly different variant of this technique, but usually you had an
empty array of a hundred bytes or so, called "Patch". You replaced the incorrect
instruction with a
jmp patch
instruction, which overlaid the old instruction. In the patch area, you put that old
instruction, the next six, and then a
jmp back
where "back" was the address you had written down which followed the "jmp patch"
instruction. Generally, this was made simpler by the fact that most computers had simple
instruction sets, often one word per instruction, so patching was a lot easier than it
would be on an x86.
joe
On Sun, 12 Apr 2009 18:00:50 +0200, "Bo Persson" <...@gmb.dk
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 00:22:59 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Joseph M. Newcomer" <...@4ax.com...
Thank you Joe and Scott for the historical perspective...
This is kind of "unbelievable"... I mean: waiting for so long for your turn,
or debugging decoding the octals from the lights...(!)
I'm glad that we have Visual Studio today :)
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 11:58:18 -0400, Joseph M. Newcomer <...@flounder.com
Typical turnaround was 24 hours, and you got one run per day. CMU made an interesting
discovery around 1970: the time taken to account for student usage, to limit students to
one run a day, and to "bill" (with internal "funny money") the student's course or
department for the run, was sufficiently high that we would actually *save* time and money
by not putting limits on! CMU was one of the first universities to simply allow students
to submit as many jobs as they wanted to, as often as they wanted to. Each job had
something like 30 seconds of computing time allowed, not counting compilation time. But
this also meant the queue of jobs was several hours long. We had comfy couches outside
the computer facility. One of the first CRTs we ever had sat behind the glass window,
showing the queue, so you could sort-of-estimate how long it would be before your job ran.
Students would be found sleeping at night outside the computer room; the more sensible
ones brought sleeping bags.
Back in 1990, when Gordon Bell, former chief architect of Digital Equipment corporation
(and designer of the PDP-11 and Vax computers) was in the supercomputer game, there were
National Science Foundation (NSF) grants to researchers who needed supercomputer time.
These ran about US$5000/year. This essentially bought the researcher 30 seconds on a
top-of-the-line supercomputer once a day for five days a week. Gordon did some studies.
It turned out that a 386 with a math coprocessor could compute the same result in...24
hours! So you got one result per day if you were a researcher. But since a 386 cost
US$2500 at that time, you could take the money, buy two, use one in the background to run
your computation, and the other for word processing, so it was more cost-effective both to
NSF and the researcher to use desktop personal computers!
I also used to program devices using plugboards. I should take a picture of the plugboard
and put it up on my Web site (I found one years later on sale, and paid all of $10 for it)
joe
On Mon, 13 Apr 2009 00:22:59 +0200, "Giovanni Dicanio"
<...@REMOVEMEgmail.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Mon, 13 Apr 2009 09:18:56 -0700, r norman <...@comcast.net
This modern "turbo language" or "visual programming" style of
compile/edit has made us lazy. People (including me) tend to just fix
the first error and rebuild, letting the compiler find our errors.
Back in the early 60's, I recall computer great Bernie Galler teaching
us never to resubmit a deck of cards until we found at least ten
errors in the program. With only two or, at most, three turnarounds a
day, you didn't have many chances to try your work before the
submission deadline for the assignment. As a result, you carefully
read and reread and reread your source code finding all the possible
errors, both syntactical and logical. The modern style of letting the
compiler find your errors clears out the syntax errors quickly but
leaves in all the logical errors. Who ever now prints out the full
source code so you can really study it thoroughly in a way that
scanning the screen can never duplicate?
On Mon, 13 Apr 2009 11:58:18 -0400, Joseph M. Newcomer
<...@flounder.com
>MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Fri, 10 Apr 2009 08:02:01 -0700, Electronic75 <...@discussions.microsoft.com
Hello, I read this topic and it was interesting for me because it is a while
that I'm thinking do I need to learn a new language?
I'm an electronic man that also write MFC programs for my devices
(commercially for almost 6 years and I have more non commercial familiarity
with C/C++) . I come here sometimes and I have to say that I consider my c++
programing skills low relative to many wonderful regular contributors of this
newsgroup. I have read their posting for a long time and IMHO they are far
better than MSDN(By the way, it would be great if Mr. newcomer also would
comment on this topic, I really like his posts among other wonderful
contributors).
Back to the topic, because I also need to program some embedded
devices(currently I program them with plain C and no OS) I was interested to
learn a language that both can be useful for embedded systems and desktop
computers. my candidates are Java and .Net and I tried to gather information
about them and pros and cons of each one before I dive into an unknown
territory.
1- I understood that the main claim of .Net people is "development speed"
and main claim of c++ people is "execution speed" but almost all comparisons
that I've read till now were qualitative rather than quantitative. so
development speed how much faster under C#, 2 times 10 times 100 times.
execution speed how much faster in C++ 2times, 10 times, 100 times, is this a
general rule? I mean even in this topic I have read some people complaining
that they couldn't find right tool in C# so they have to come back to C++
this means more development time, or many programs simply dose not need high
execution speed(i.e. Office programs). so my question is can learning curve,
previous experience, personal libraries be justified to learn a new language.
2- embedded system programming getting more popularity each day and devices
become more and more sophisticated. many of them have their own OS (Symbian,
Windows CE, Linux,...). I personally like before learning something I make
sure that, the tool won't be useless in 10 years from now so I have to throw
away all my experience. My personal judgment is at this time and I emphasize
at this time Java is much better for someone who also want to program for
embedded systems but I still have not made my mind because many things can
happen, microsoft may buy Sun and kills it and become lord of things, or
otherwise java may become prevalent, linux may gradually gain more
popularity.
3- finally there are many things that you can do with C++ and you never can
do with C# , like kernel programming, programming for other OS, Demanding
applications like games,...
but there is nothing that you can do with C# and you can't do it with c++,
although it may takes a lot more development time
cheers,
>
|
|
 |
|
 |
 |
|
 |
|
On Fri, 10 Apr 2009 10:09:15 -0600, "Jonathan Wood" <...@softcircuits.com
"Electronic75" <...@microsoft.com...
There is no across-the-board answer to this. Certain tasks can be programmed
faster in C++ and MFC. It just depends on what you are doing and, of course,
how well you know the particular platform. The same can be said about
execution speed. Parts of the .NET frameworks are actually written in
hand-optimized assembly language and are very fast. On the other hand,
QuickBooks now takes forever just to load now that it's been written in
.NET.
No one can answer this for you either. I took forever to move to .NET
because I was busy with tools I knew to move to ones I didn't know. With
time, it because harder for me to earn a living with the old tools and I bit
the bullet. I don't ever regret learning something new but it was a very
painful transition for me personally.
If you could predict which tools would be popular 10 years from now, you
could make some good money. Every indication is that .NET will still be
around then but they've pulled the rug out from developers before. I don't
know how to answer this.
One thought on this: there are a LOT of things that can be done easily in C#
that are very difficult in C++, thanks primarily to the richness of the .NET
frameworks library. So there are "functional" advantages to C#. But, yes,
you can do pretty much anything in C++ assuming you know how and have the
time to program it.
--
Jonathan Wood
SoftCircuits Programming
http://www.softcircuits.com
http://www.softcircuits.com/blog/
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 08:50:08 +0200, "Bo Persson" <...@gmb.dk
Yes, if what you want and need is what .NET already provides, then
that is a big time saver. If it is not, then you are in trouble using
C#.
Like you say, with C++ yoy HAVE to make a choice each time. That might
be either good or bad, depending on your project.
Bo Persson
|
|
 |
|
 |
 |
|
 |
|
On Fri, 10 Apr 2009 20:37:10 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Electronic75" <...@discussions.microsoft.commessaggio news...@microsoft.com...
It all depends on what you do... I think that there is no general rule.
In several cases, C# "execution speed" is just fine.
But not in all cases.
I did a simple benchmark to load and show a Chinese dictionary, based on
Raymond Chen's interesting series on his Old New Thing blog.
I built a C++ MFC app, a C#/WinForm app and a C#/WPF app:
http://www.geocities.com/giovanni.dicanio/vc/ChineseDictionaryTests.zip
The C#/WinForm app takes some seconds to load and display the dictionary.
Instead the C++/MFC and C#/WPF apps show up very quickly.
(Note that I'm a C#/WinForm beginner, so I don't know how to program in
C#/WinForm things like "virtual" listviews, as I did in MFC.)
Analyzing memory occupation using Task Manager, after some scrolling of the
listview content the C#/WPF app takes up to 80 MB, instead the C++/MFC app
takes only 11 MB.
Consider also that in the C++ version I used static linking: you have just
340 KB and everything is there. Instead the .NET apps require .NET framework
to be installed. (However, as others wrote, this is not a big problem on
modern computers where .NET is already installed.)
However, the C++ code is not as easy to develop and read as the C# code...
For example, in the *optimized* C++ version, a custom string pool allocator
is used instead of a standard string class with default allocator.
So, it is a trade-off between performance and ease of coding.
If you want to build something in less time and you don't have particular
requirements, frankly speaking C# and .NET offer very productive
environments.
But sometimes you need the speed, and optimized C/C++ are the way to go.
For example, the numbers of a machine of mine to load and parse the
dictionary are:
- Optimized C++ (project LoadDict2): 86 ms
- C# version (project CSLoadDict1): 188 ms
i.e. the C# version is more than 2X slower.
This is negligible for a normal user, like in this example. But suppose that
you are building a server or some complex calculation software: with C++
optimized code you may offer service to 2X clients in the same time, or you
can give results of calculation in 2X faster with C++.
It all depends on what you are programming, it depends on the nature of your
project...
For some jobs, I think that learning new languages and libraries is the wise
thing to do; e.g. C# and ASP.NET are very good tools to build web apps
(instead, this is hard to do in C++...).
I think that none of us has the crystall ball to see in the future :)
You may want to focus on more short-term things than long-term projections
:)
I think that you are right in this sentence.
However, for the particular point of "programming for other OS", I think
that thanks to Mono project, you can use C# also for Unix/Linux development:
http://mono-project.com/Main_Page
(However, I think that the quality tools like Visual Studio that we have on
Windows are not available on the Linux platform.)
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Fri, 10 Apr 2009 12:51:10 -0700 (PDT), Ajay <...@yahoo.com
On Apr 10, 2:37 pm, "Giovanni Dicanio"
<...@REMOVEMEgmail.com
I havent looked at the code but if you didnt use data virtually, its a
meaningless comparison. We use huge amount of data and its displayed
virtually. Issue is simply redraw speed of the underlying control.
Nothing else.
.Net 4.0 is going to improve start up time. Even now I dont see it as
a prohibitive factor. Its a one time cost.
I dont think this is a big deal. It may have been few years ago. Its a
non issue and has been for a while. Vista comes configured with it.
I dont know how this is done but if you exclude loading time, C#
should be better as .Net optimizes based on the platform.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 08:46:35 +0200, "Bo Persson" <...@gmb.dk
And you don't believe the C++ compiler knows how to optimize for a
given platform? :-)
Bo Persson
|
|
 |
|
 |
 |
|
 |
|
On Sat, 11 Apr 2009 14:12:04 -0700, Electronic75 <...@discussions.microsoft.com
thanks a lot Mr.Dicanio & Mr.Wood for your valuable insights. By the way Mr.
Wood I'm one of your "How Do I" video fans, very nice job.
Thanks Mr.Dicanio for very interesting test that you have done on
performance of C#.
I think the topic of this thread is a very legitimate question that
shouldn't be dealt with by emotion or what we love to believe. definitely
both C# and C++ are powerful tools that have their own strengths but one
thing that I tried to address in previous post was that, is it justifiable to
learn a new language just because it has some cool features but we still can
do the job with current language. if the effort that is made in learning a
new language would spend on mastering details of one's own language couldn't
it result in more productivity?
Some 10 years ago I started to learn 2 new foreign languages and after about
6 months while I had noticeable progress in both, I asked myself wait a
minute isn't it better if I first master every corner of one of those
languages before I move to the next one? and I stopped learning one of them
and I have to confess I still couldn't master even one of them.
The point is when a programmer learns a new language he wont be as good as
before in his/her first language. I have seen one such example myself. a
relative of mine who was master in C++ and migrated to C# a few years ago now
can't remember method names and some details of c++ programming. of course
he defends his decision and he earns good money and maybe for him was the
right choice because he works mainly on web based applications. It maybe
justifiable for him but not for me who mainly involves in embedded devices
and their communication with computer and processing data and drawing graphs.
If I decide to learn .Net it won't be for its cool controls and development
speed and my main reason will be its suitability for embedded programming. As
I said before I will choose between Java and .Net but I think my main
language will remain c++.
by the way is anybody know here if this silverlight stuff is can be used in
c++. the aforementioned relative of mine have talked much about it and its
cool looks though my controls are not bad but I don't mind if I can make them
more beautiful with silverlight.
cheers,
>
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 00:15:35 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Electronic75" <...@discussions.microsoft.commessaggio news...@microsoft.com...
Sure.
If the old language does the job well, I think that there is no reason to
move to another language.
I think that there are several C++/MFC quality programmers who don't know
much C#.
If C++/MFC is just fine for them, the only reason for learning C# would be
intellectual curiosity (a good thing, by the way).
But if you want to develop software like web apps, learning C# (which in
this domain is a valuable tool) is a wise move.
My understanding is that embedded devices are well serverd by C/C++.
I read somewhere that Java has a good market penetration in embedded devices
as well (e.g. I was told that Java is, but I'm not much in Java...
I'm not sure that C# is good for embedded development; I read that they have
the so called "compact framework", which seems to me to be a "thin" version
of the huge .NET framework, tailored for embedded systems, but I don't know
if it is used much...
However, frankly speaking, C# and Java are similar languages, so the time
you spend in learning one of them is a good investement also for the other
language.
Silverlight is a browser plug-in, based on a technology similar to WPF.
Silverlight programming can be done in managed languages (e.g. C# or
VB.NET), but not from C++.
You may want to use Silverlight (or WPF) for the presentation layer, write
the back-end in pure C++, and use C++/CLI extensions to build a bridging
layer between back-end native code (C++) and GUI managed code (C#).
HTH,
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 08:44:30 -0500, BobF <...@no.spam
Sorry for the top post - it seems appropriate in this case as I don't
want to SNIP this time ...
Regarding multi-language developers:
Before a discussion about which development language you should use
takes place, the requirements of the particular application in question
need to be considered; including performance, size, etc. This is
relative to the run-time environment the application will live in.
If the .Net framework is chosen as the runtime environment, THEN move on
to specific language considerations ...
One of the stated goals of .Net is to allow cross-language compatibility
development across all .Net languages. While all of the .Net languages
are "new" to folks today, you have to start somewhere with a concept
like this. For example; in theory when a .Net app is planned, it
shouldn't matter if the development is done in C# or VB.Net - or both in
a team scenario. For those coming from a C++ background there is
Managed C++ (and possibly CLI) to ease the transition.
So the next step is to evaluate your current (and anticipated future)
development team skill set(s), with full consideration for
implementation costs associated with each of the possible choices AND
future maintenance/enhancement costs.
NOW you are ready to make an informed decision regarding which
particular language and development tools to use for implementation.
Asking which language is better in a context with any less up-front
analysis is futile - IMHO, of course. :-)
>>
|
|
 |
|
 |
 |
|
 |
|
On Sun, 12 Apr 2009 08:29:01 -0700, Electronic75 <...@discussions.microsoft.com
thank you very much bob, your input certainly was valuable.
cheers,
>
|
|
 |
|
 |
 |
|
 |
|
On Fri, 10 Apr 2009 09:01:52 -0700 (PDT), Ajay <...@yahoo.com
On Apr 10, 11:02 am, Electronic75
<...@discussions.microsoft.com
Thats really a wrong comparison. You can do much more in C# because it
gives access to .Net framework which is not available to C++
(native). .Net is very rich compared to Win32 and is not accessible
to native C++.
I dont know about kernel/low-level programming. I would assume that it
would make no sense to do it .Net(even it its possible).
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Fri, 10 Apr 2009 09:30:08 -0700, "Tom Serface" <...@camaswood.com
Yes... Even though the syntax of C# is easier (like you don't have to mess
with those dumb _T() macros and objects are easier to access) I think the
biggest difference is the easy access to the .NET API's. I don't know of
any reason those API's couldn't have been done for native as well, but they
are not so ... I've found with .NET for every "thing" I want to do there is
usually something written and included already to help with doing it. Also,
there is much easier access to some of the newer technologies like WPF and
the other W's and a ton more controls for WinForms than there are for MFC
Resource editor.
Since so much of .NET is based on top of native I think for the most part it
is starting to be almost as fast for a lot of applications as well. It is
more trouble to build a self contained application and certainly not as good
for building a small self contained application, but these days that is not
always as important. As .NET becomes more integrated with the OS I think
the emphasis on API files will become lessened.
Tom
"Ajay" <...@z14g2000yqa.googlegroups.com...
On Apr 10, 11:02 am, Electronic75
<...@discussions.microsoft.com
Thats really a wrong comparison. You can do much more in C# because it
gives access to .Net framework which is not available to C++
(native). .Net is very rich compared to Win32 and is not accessible
to native C++.
I dont know about kernel/low-level programming. I would assume that it
would make no sense to do it .Net(even it its possible).
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Tue, 14 Apr 2009 22:53:42 +0100, Daniel James <...@nospam.aaisp.org
In article
That's a crass, unhelpful, and totally misleading statement.
There is nothing you can do in .NET that you can't do in native code.
NET is written in native code, so that's a self-evident truth.
Yes, the .NET runtime provides APIs that make some functionality easily
available to managed code, and some of that functionality is not so
easily available to native code ... but if you really can't find an
alternative to the .NET APIs you CAN call them from native code via a
C++/CLI wrapper.
C++ is a vastly more powerful language than C#, and can be used for both
native and managed applications. Were that the end of the story there
would no need -- or desire -- for anyone ever to use C# at all for
anything. However, because C# is a simpler language than C++ it is
easier to write tools for, and Visual Studio incorporates a variety of
different code generation and code manipulating tools for C# that it
doesn't support for C++. For many people this is a sufficient reason to
eschew the superiority of C++ ... C# programs are fairly easy to write,
and the versatility of the toolset largely makes up for the lack of
power and flexibility in the language itself -- as long as you don't
have a specific need to generate native code.
.. of course, what many of us would REALLY like is for Microsoft to
produce the same quality and range of tools for native C++ as they do
for C#. Then nobody would want or have to use C# at all (see above). In
fact, if they'd just concentrated on getting the tool support for C++ up
to scratch they'd never have had to get involved in all this .NET stuff
at all. As I said, though, it's much harder to produce good tools for
C++ than it is for C# because C++ is more complex and more powerful.
The important thing is to learn enough about the two approaches that you
understand the trade-offs that are made when you choose between native
code development and .NET, and when you choose between C# and any other
language on .NET. Only when you have that understanding can you make
your decision ...
Cheers,
Daniel.
|
|
 |
|
 |
 |
|
 |
|
On Tue, 14 Apr 2009 15:09:25 -0700, "Tom Serface" <...@camaswood.com
Absolutely... :o)
Although, MSFT has more control over the C# syntax so there is some benefit
to that being the main .NET language.
Tom
"Daniel James" <...@nospam.aaisp.org...
|
|
 |
|
 |
 |
|
 |
|
On Tue, 14 Apr 2009 19:43:15 -0500, BobF <...@no.spam
Don't forget the training, cert and book revenue streams a new language
and framework brings! :-)
>
|
|
 |
|
 |
 |
|
 |
|
On Tue, 14 Apr 2009 19:42:08 -0700 (PDT), Ajay <...@yahoo.com
On Apr 14, 8:43 pm, BobF <...@no.spam
Anything to simulate the economy. But seriously who buy books now a
days?
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 04:17:02 -0500, BobF <...@no.spam
I buy a few every year. On-screen reference is useless when sitting in
The Big Chair :-)
Sadly, however, quality publications are very hard to find these days.
For the most part, they seem to be recycle MSDN information - even if
they are rewritten to be better presented (in some cases).
I fear we'll never again see something in print as practicle as "Win32
Programming" ...
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 06:49:49 -0700, "Tom Serface" <...@camaswood.com
MFC hasn't changed enough in the last few years to make me want to buy any
books about it. I did by a book on ASP.NET with C# when I first got started
programming it, but never really needed the book much. I'd perish without
Google though ...
Tom
"Ajay" <...@p11g2000yqe.googlegroups.com...
On Apr 14, 8:43 pm, BobF <...@no.spam
Anything to simulate the economy. But seriously who buy books now a
days?
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 08:11:54 -0700 (PDT), Ajay <...@yahoo.com
On Apr 15, 9:49 am, "Tom Serface" <...@camaswood.com
Technical books are almost not needed. Everything you need to know is
available online. Some blogs are much more effective than a book and
obviously current. Besides, I have always been able to find almost any
technical book I needed online(free) including the ones I paid top
dollar for.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 09:37:11 -0700, "Tom Serface" <...@camaswood.com
My problem is I have all these old, out dated, books I just can't seem to
part with ... :o)
Tom
"Ajay" <...@j12g2000vbl.googlegroups.com...
On Apr 15, 9:49 am, "Tom Serface" <...@camaswood.com
Technical books are almost not needed. Everything you need to know is
available online. Some blogs are much more effective than a book and
obviously current. Besides, I have always been able to find almost any
technical book I needed online(free) including the ones I paid top
dollar for.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 11:09:09 -0700 (PDT), Ajay <...@yahoo.com
On Apr 15, 12:37 pm, "Tom Serface" <...@camaswood.com
Same here. But I am accumulating the electronics copy of most, so it
will be easy to get rid of most of those. I have way too many books.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 11:27:04 -0700, "David Ching" <...@remove-this.dcsoft.com
"Ajay" <...@j12g2000vbl.googlegroups.com...
True, but reading this material on a computer screen is not as effective for
some learning as holding a book you can flip through and mark up. For that
reason I still buy hardcopy books even after acquiring electronic versions.
I estimate that just due to being able to carry the book with me, I gain
more than 2x the info from it.
-- David
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 12:36:05 -0700 (PDT), Ajay <...@yahoo.com
On Apr 15, 2:27 pm, "David Ching" <...@remove-this.dcsoft.com
I agree but thats the question of choice. I frequently commute with my
laptop and have all the electronic versions on it. I can open *any*
book anytime I feel like it. In addition, all MSDN magazines are
available for download but for some reason I like reading the real
MSDN magazine as opposed to being on my under 3lb X60 Lenovo laptop.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 13:15:15 -0700, "Tom Serface" <...@camaswood.com
I have two monitors now so I can put the help on one and still work on the
other. I don't know how I ever lived without two monitors.
Tom
"Ajay" <...@w9g2000yqa.googlegroups.com...
On Apr 15, 2:27 pm, "David Ching" <...@remove-this.dcsoft.com
I agree but thats the question of choice. I frequently commute with my
laptop and have all the electronic versions on it. I can open *any*
book anytime I feel like it. In addition, all MSDN magazines are
available for download but for some reason I like reading the real
MSDN magazine as opposed to being on my under 3lb X60 Lenovo laptop.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 13:15:14 -0700, "David Ching" <...@remove-this.dcsoft.com
"Ajay" <...@w9g2000yqa.googlegroups.com...
On Apr 15, 2:27 pm, "David Ching" <...@remove-this.dcsoft.com
I wonder how many more years it will take before they make electronic
readers like Kindle effective enough before we can stop killing trees for
good.
-- David
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 19:04:58 -0400, Joseph M. Newcomer <...@flounder.com
I started collecting books when I was 16. 46 years later, I can still go back and read
them. How will I be able to keep my Kindle books for decades?
joe
On Wed, 15 Apr 2009 13:15:14 -0700, "David Ching" <...@remove-this.dcsoft.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 22:48:47 -0700, "Tom Serface" <...@camaswood.com
Of course "The Fortran Coloring Book" (I still have it) is a fun read, but
not so useful as a reference for me any more.
Tom
"Joseph M. Newcomer" <...@4ax.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 10:33:55 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Joseph M. Newcomer" <...@4ax.com...
Exactly!!
Classic paper-based books last for decades and centuries!
And it is trivial to read them (assuming you know the language): just open
it and read the pages.
Instead we can't read some electronics documents written with some old
word-processor on MS-DOS or other platforms (without proper reader software,
it is just a sequence of uncomprehensible bits; and some supports like
magnetic floppy disks are volatile, are less "robust" than paper).
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 07:29:46 -0700, r norman <...@comcast.net
On Thu, 16 Apr 2009 10:33:55 +0200, "Giovanni Dicanio"
<...@REMOVEMEgmail.com
My archival quality punched paper tape made of Mylar will certainly
last for centuries. Reading it is another story, of course.
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 08:33:58 -0700, "Alexander Grigoriev" <...@earthlink.net
"r norman" <...@4ax.com...
Just pull it next to your video camera, and write a program to read the
holes from the video recording.
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 14:30:03 -0400, Joseph M. Newcomer <...@flounder.com
Not really. You just lay it down. The top row is the parity. The remaining rows, not
counting the sprocket hole row, are the bits. So just read the bits and write down the
value.
Now to automate that, just scan in the image and write a program that does image
recognition!
I was asked if I could figure out how to read thousands of punched cards. I suggested
that I could scan the images and read the cards, but the people had no money to pay me.
Ultimately, they found someone with a working card reader!
joe
On Thu, 16 Apr 2009 07:29:46 -0700, r norman <...@comcast.net
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 07:34:31 -0700, "David Ching" <...@remove-this.dcsoft.com
"Giovanni Dicanio" <...@TK2MSFTNGP02.phx.gbl...
But most books that at least I read are like apps - they lose their value
over time. So I don't think I will care much if they are available in 10
years or so. Besides, how many of us have thrown out books that we
eventually wish we had saved? Electronic copies will not be thrown out. I
agree the DRM of e-books may make them harder to move to modern media over
time, but rudimentary OCR should be able to help with this.
Cheers,
David
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 14:32:13 -0400, Joseph M. Newcomer <...@flounder.com
Technical books lose value over time, then gain it as the become antiques (for example, my
MS-DOS Quick Reference Card). But works of literature and science have persistent value.
Electronic copies of books don't need to be thrown out; they decay due to "bit rot" (the
only available readers stop working). My SO is teaching a course this term on Digital
Preservation, and I've done two lectures about issues such as conservation reformatting.
joe
On Thu, 16 Apr 2009 07:34:31 -0700, "David Ching" <...@remove-this.dcsoft.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 16:36:26 -0700 (PDT), Ajay <...@yahoo.com
On Apr 15, 4:15 pm, "David Ching" <...@remove-this.dcsoft.com
I think the technology still needs to evolve. Even though my laptop is
2.8lb, I rather carry something lighter and possibly in my pocket. I
dont like Kindle mainly because its only for reading. Netbooks are
good but they are still evolving and not that powerful yet.
As for reading electornically, either I dont know or its not
available, I find the lack of ability to highlight and bookmark these
books as very limiting. PDF reader wont let you touch it and I am not
going to pay for a PDF writer for this purpose.
Over time, I think everything is going to be all digital. Books will
be a rare commodity.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Tue, 14 Apr 2009 19:40:27 -0700 (PDT), Ajay <...@yahoo.com
On Apr 14, 5:53 pm, Daniel James <...@nospam.aaisp.org
I dont think so. I should have put out of the box.
OK. But that would be upto the devleoper to do it. All that framework
is available at no cost. I cant imagine someone sitting down and
coding those asynchronous constructs available in .Net. Of course you
can do it. But why would you? Why not just go where its available.
So? It also uses COM. So what? MFC is written on top of Win32 but that
doesnt mean MFC is not useful.
Thats why I highlighted "native". Regardless, this approach highlights
the inherent limitation of whats available in native.
Yes. In real world, when you find this need, its better to stay
native. How many companies/projects do you know going thru this. Its a
good selling point for C++ but thats all it is.
Agreed.
I disagree. Its not the lack to tools that is making C++ unpopular.
The language itself is the culprit. What you call superiority is
really baggage when it comes to finding the right people for job.
maintenance, compesation etc. You shouldnt expect the workforce to be
adept at it.
Thats BS. VB was significantly more popular than C++. It wasnt because
of tools. Tools are insignificant for that reason. They become
meaningful after the fact.
Agreed and thats not a good thing. Occasionally it is, but for a vast
majority it isnt.
Of course.
After having used C++ for many many years and been with .Net for last
3-4 years, I can safely say .Net is significantly more powerful,
productive than anything I used in MFC/C++. C++ is needlessly complex
and costly compared to C#/.Net. That doesnt imply C++ doesnt have any
place in the dev community. But its dated and should be used only for
specialized projects. I have also noticed that people complaining
about .Net have simply not used it the way it ought to be used. Tools
have nothing to do with this.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 19:11:14 -0400, Joseph M. Newcomer <...@flounder.com
Note that I can do anything you can do in .NET by writing assembly code. I can do
anything you can do in MFC in the native WIn32 API. I can do anything you can do in C# in
MFC.
It is not interesting is "what" I can do, but "how cost-effective is it to do it?" .NET
builds in features I have to code "by hand" in MFC.
What annoys me is that I don't have primitives like "draw button face", so if I want a
button that generally looks like a regular button but has some really cool extension, I
can't make it look like a "real" button because the dweebs at Microsoft have decided that
buttons now have to look "cool" but they don't give me the same primitives they have
(hello: antitrust cases anyone?). This limits my ability to do reasonable interfaces.
But ultimately the ONLY valid metric is "can I do what I need to do in a cost-effective
fashion?" This will *include* concepts like performance, flexibility, maintainabilty,
etc. If I can't do a tight inner loop in C# or Java to do image convolution, no matter
how good it is otherwise, it isn't solving my problem. But if all I need to do is write
some native code for that little piece of my problem and the rest of my app comes up in
one week isntead of 3 weeks, then C# really is a better choice.
joe
On Tue, 14 Apr 2009 19:40:27 -0700 (PDT), Ajay <...@yahoo.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 21:28:37 -0700, "David Ching" <...@remove-this.dcsoft.com
"Joseph M. Newcomer" <...@4ax.com...
Doesn't the Theme API support this?
-- David
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 01:52:54 -0400, Joseph M. Newcomer <...@flounder.com
I'll have to look into that. Thanks.
joe
On Wed, 15 Apr 2009 21:28:37 -0700, "David Ching" <...@remove-this.dcsoft.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 16:41:48 -0700 (PDT), Ajay <...@yahoo.com
On Apr 15, 7:11 pm, Joseph M. Newcomer <...@flounder.com
That was my point.
Exactly.
--
Ajay
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 17:56:37 -0400, Joseph M. Newcomer <...@flounder.com
I have a T-shirt the C/C++ team was giving out a few years ago. It says
"My compiler compiled your compiler"
joe
On Tue, 14 Apr 2009 22:53:42 +0100, Daniel James <...@nospam.aaisp.org
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 15:27:00 -0700, "Tom Serface" <...@camaswood.com
I have that as well, but I guess that could work all the way down to the
guys who did the hand coded machine code assembler originally :o)
Tom
"Joseph M. Newcomer" <...@4ax.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 00:40:01 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Tom Serface" <...@microsoft.com...
Yes :)
Moreover, I think that C# is mature enough and probably they are (or will be
doing it soon) compiling C# compiler with C# itself, like they compile the
C++ compiler with C++ itself.
Giovanni
|
|
 |
|
 |
 |
|
 |
|
On Wed, 15 Apr 2009 23:38:38 -0400, Joseph M. Newcomer <...@flounder.com
Back in the days when everyone imagined him/her-self as a language designer, people were
writing languages all the time. A friend of mine referred to these talks as "MFTL" talks,
"My Favorite Toy Language". Her classic question was always "Has this language ever been
used for any purpose other than writing its own compiler?"
For a long time, compilers were bootstrapped from assembly code. But that day is long
gone. Once we could replug code generators, an accomplishment of the 1970s, we could
write the compiler in anything we wanted to. Eventually, C became the "standard".
The Modula-3 compiler, in fact, was a compiler whose "code generator" wrote C code, in
fact, one line of C code for one line of Modula-3, so the source-line-debugging capability
was maintained. When the debugger (which was a C debugger) reported an error on line 257,
it was told to show the Modula-3 file instead of the generated C file.
I once wrote a set of macros in one assembler that generated binary bits that were the
machine code of a completely unrelated machine. Getting label resolution and handling the
relative-offset-jumps was a fascinating challenge, but the result was that instead of
having a crappy assembler that ran on the embedded development environment, I had a full
text editor/assembler/etc. system running on our mainframe, with all the convenience that
implied, and it generated code that I could post-process into the Motorola S-record format
(it wasn't a Motorola chip, or anything even close, but they adopted the same
representation for binary code). So I was able to develop the embedded realtime
application in a sane environment (it was a pain to debug, without a debugger but only
four lights, but we got it to work; I was writing an emulator for it out of desperation,
but I finally discovered my problem was a bad opcode I was generating and then it all
worked correctly, more or less).
So the bootstrapping problem no longer goes back to writing the first-level assembler in
octal (we didn't use hex In Those Days), using it to build the second-level assembler,
using it to build an assembler with a primitive macro capability, and finally building the
real assembler, which allowed us to write the first compiler, which couldn't do much but
could compile a subset of the language, which allowed us to write the second draft of the
compiler in its own language, and six generations later we had a compiler that compiled
its full language. Many books were written about this process, as it was done in the
1950s and early 1960s, but by the late 1960s this hardly ever happened in terms of
building assemblers. For example Macro-11, the PDP-11 (minicomputer) assembler, ran on
the PDP-10, a completely different (and mainframe) architecture.
[Comparison: the PDP-11 was approximately 100KIPS, cost US$20,000. The PDP-10 was 1MIPS,
cost about US$1,000,000, 1972 dollars which is something like ten billion dollars today,
or something like that...but you can get a machine 1000 times faster than the PDP-10 for
US$600 today]
The first Bliss compiler was written in assembly-language macros on the PDP-10, until
there was enough of the compiler to compile the subset language; this took the Bliss group
about a year to move from the first draft macro-assembler to the final product compiler
[1969-1970]. That was because there were no good high-level languages in that era in
which to write the compiler. But once Bliss was written, nobody ever wrote another
compiler in assembly code for the PDP-10 or PDP-11 (the PDP-11 FORTRAN compiler was
written in Bliss-11, Bliss-11 was written in Bliss-36 which was the rewrite of Bliss-10).
Today, we do the same thing with C or C++.
joe
On Thu, 16 Apr 2009 00:40:01 +0200, "Giovanni Dicanio"
<...@REMOVEMEgmail.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 10:26:38 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
Thanks for the interesting (as usual) historical perspective, Joe.
When I compare the status of today with that of "back in the days" that you
describe, it seems clear to me that being a computer scientist/programmer in
those "back in the days" times was *much harder* than it is today.
Debugging with lights... (!), using several iterations to write a usable
compiler (from "raw" assembler, used to build an assembler with macros, used
to build a simplified language compiler, used to build compiler for the
language that has some more features, etc. and finally have a decent
compiler...)... wow.
Giovanni
"Joseph M. Newcomer" <...@4ax.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 06:58:23 -0700, "Tom Serface" <...@camaswood.com
In some ways it was much harder back in the day, but the requirements for
the programs are so much more arduous these days. For example, we used to
get away with a program that had a little square cursor and required you to
know the command to type in to get it to do something. Now, we need
computers (and IDEs) that almost write the program for you and do your job
and buy you coffee when they are done. :o)
Tom
"Giovanni Dicanio" <...@TK2MSFTNGP05.phx.gbl...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 16:05:38 +0200, "Giovanni Dicanio" <...@REMOVEMEgmail.com
"Tom Serface" <...@TK2MSFTNGP05.phx.gbl...
:))
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 14:25:55 -0400, Joseph M. Newcomer <...@flounder.com
I had been a programmer for nine years before a saw a "little square cursor".
I used to be skilled in holding a deck of cards in one hand and punching a replacement
card with the other hand while leaning over the keypunch operator. Having a wide
hand-span was a distinct advantage because the shift keys were only on the left but the
keys to be struck were on the right.
And by "shift", I don't mean "upper case". The character set of the 026 card punch was
0123456789ABCDEFGHIJKLMNOPQR/STUVWXYZ $ * , . - space [42 characters]
You could have the "scientific set" which had the characters ( ) & # ' [5 characters]
or the "commercial set" which had % ¤ + = @ in those same character code positions
The computer could print, but the keypunch could not punch with one keystroke
? (12,0)
! (11, 0)
In addition, the computer had the possibility of the characters but none of these appeared
on the typical printer chain or bar (it reduced the printing speed too much). These could
not be punched into cards by striking a key; instead, you held down the "multi-punch" key,
and then typed +-0123456789 keys (or &-0123456789) to punch the holes in the same column
of the card. The +& were the "12-punch" and the - was the "11-punch".
record mark (0,2,8) (an equal sign with a vertical bar through it)
group mark (12,7,8) (like a record mark, but 3 horizontal bars)
word mark (0,5,8) (like a little flying bird cartoon)
tape mark (7,8) (looked like a square root sign)
substitute blank (2,8) (represented as a b with a slash)
segment mark (0,7,8) ( two vertical lines with a single horizontal line)
delta (11,7,8) (an equilateral triangle)
<
When creating binary patches for the 1401/40/60 computers, the word mark was critical to
punch into the card. Some of these other codes were critical as well (for example ? was
the opcode for "Zero and Add" and ! was the opcode for "Zero and Subtract", record marks
and group marks were essential data values.
On 1967, I got to use a "remote job entry" system that allowed us to type programs in on a
Model 35 Teletype. The programs were stored with line numbers in columns 72..80, and to
edit, we would write programs to edit our source, such as
$EDIT 3/P
$DELETE 110
$INSERT 180
text
text
text
$END
$REPLACE 240
text
$DONE
Of course, once you got too many insertions, you had to renumber, which means you couldn't
edit again until you got a listing, which could take 4-6 hours. The files were named by
their "file number" under your user ID, and each file had a version number that was
incremented on each edit. So I would have file 3/1, edit it and get file 3/2, and so on.
If I asked to edit a file and got the version # wrong, it would refuse to edit, so 4-6
hours later, I would find that my edit job had failed. So we all used /P which meant
"edit whatever the version is". I had a file numbered 1 which decoded all the file
numbers against file "names".
Teletypes printed 10 characters/second, so output was very slow. This is why we usually
waited for the printer listing; it took too long to get a listing on the terminal. Or we
could work with punched cards, but that reduced turnaround even more but editing was
faster.
At least I didn't have to physically cut and re-tape punched paper tape!
joe
On Thu, 16 Apr 2009 06:58:23 -0700, "Tom Serface" <...@camaswood.com
Joseph M. Newcomer [MVP]
email: newc...@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 11:38:58 -0700, "Tom Serface" <...@camaswood.com
OK, you win :o)
I used to run a card sorter, but that's as far back as I go. Kid's these
days have it so easy. They don't have to wait until tomorrow to see if
their program ran.
Tom
"Joseph M. Newcomer" <...@4ax.com...
|
|
 |
|
 |
 |
|
 |
|
On Thu, 16 Apr 2009 16:43:08 -0700 (PDT), Ajay <...@yahoo.com
On Apr 15, 5:56 pm, Joseph M. Newcomer <...@flounder.com
I have that as well. It was around 2001 when we got it. At that time, C
++ was under threat from .net and this was a way to calming the team
down(IMO). That was also when they announced that MFC was done...
--
Ajay
|
|
 |
|
 |
|
|