Microsoft abandons the C language

A

Ansel

Rui said:
<snip example/>

You have a point, and it certainly sounds like the best option
available.

Like that is a new concept or something rather than the fundamental-est of
the fundamentals of platform software development.
Nevertheless, it is in the world's best interests to let people make
that decision by themselves

Or learn it in their gestation period of learning how to develop software
(it comes after years of being *just a programmer* for some).
 
A

Ansel

BartC said:
I've no idea at the moment what Windows 8 or Metro is about, but it
sounds very much like I'm going to be locked out.

Don't be fooled by Jacob's wild flailings. Get the info you need from the
source and you will see that it is not as Jacob makes it appear.
But this I imagine will apply to many other languages, not just my
private ones, and apparently C too! Or are all of those hundreds of
programming languages that people might want to use on Windows,
expected to compile down to CIL (whatever the .NET thing is), or
implemented in one of the four official MS languages (VB, C#, 'C++',
and .. XAML?). Will ASM still work?
And how *does* one create graphics from another language (since the
examples assume you are using an official one)? In fact how do you do
anything? Without a generic or binary interface (or one in C which is
almost the same), then it becomes a closed system.

The Win32 API is still available in its entirety in Win 8 (probably some
changes as always). Metro apps only can access a subset of it because Metro
apps are very high-level, sandboxed apps. Think of Metro apps like Java
apps. At least think of them as being at some level more
abstracted-away-from the Windows core. That's my take on it anyway. Don't
take my word for it--go to the MS sites and learn all about it from the
horse's mouth.
 
A

Ansel

BartC said:
I've tried it a few times and it just doesn't work. The Windows common
controls are a complete and utter mess. Every one is different.
There's no consistency. Each uses a set of dozens of messages,
notifications, styles, structs and functions that are different, and
incompatible with, all others. A feature available on one control
(vertical text justify for example) is not available on another. You
can't draw into any control at will. Some have a discrete border,
others have it as part of the client area. Etc. Who designed this
heap of rubbish?

The same that brought you Unicode and today's C++?
I'm not surprised Swing does it that way, and my next attempt will
use a similar approach. Really, programming this stuff is not that
difficult. All my controls will use the same, small, compatible sets
of messages and features.

However I need at least the ability to create a top-level window, and
some very basic graphics capability; and there might not be an easy
way to do that on Windows 8 if all C interfaces are removed!

They are not removed.
I can see myself dusting off my soldering iron and building my own
hardware again in a couple of years...

Solder? There won't be boards that you can just snap-in whatever chips you
want? Heck,who needs a board at all--SOC (System On a Chip)!
 
A

Ansel

BGB said:
a long while ago, I had just written code to mimic the "look and feel"
of the Windows GUI widgets on top of OpenGL.

Isn't OpenGL way overkill for 2D? Or were you doing 3D stuff and textures,
etc.? It would seem that all you'd gain with your approach is cross-platform
capability, but in doing so, creating a dependence on another monstrosity.
To me, it seems like just abstracting some platform primitives (or a bit
higher-level) would be much less work than even just figuring out OpenGL's
complexities. ?
it is also a pain because what I am using it for now implies the use
of a client/server GUI (where a socket may exist between the
"client/user" and the "server" which contains the logic behind the
UI).
X-Windows!

I haven't really gotten around to implementing this (or worked
out exactly what the API is going to look like).

xlib? Motif? ;)
 
A

Ansel

Malcolm said:
But it's a nuisance. I've written endless little graphics routines to
darw lines any polygons and things, purely to avoid OS dependence.

Do you mean you actually programmed the rasterization of those things akin
to what's in the books by Foley, Van Dam and others?
 
8

88888 Dihedral

Anselæ–¼ 2012å¹´8月26日星期日UTC+8下åˆ1時36分15秒寫é“:
Malcolm McLean wrote:







Do you mean you actually programmed the rasterization of those things akin

to what's in the books by Foley, Van Dam and others?

MS has been so faithful to Intel CPUs. Thus Ms missed the OS dominating
best time for cpus in the arm family.

Now android=LINUX +JVM and IOS from apple are attracting
money away from the PC industry.

If MS wants to fight in other CPUs, how can MS does not chunk out a better
C/C++ compiler for other CPUs in the world?
 
A

Ansel

Nick said:
yeah I skipped most of them too. I've recently had to do a bit of COM.
Not too bad if you wrap up well

At least COM has implementation on other platforms. Though I've researched
it a few times out of curiosity, I have never programmed to it. I was never
at a position to package and offer components for Windows that would be
useable to those using any Windows-supported language. I dismissed COM as
being for the development of cross-language Windows components. I just don't
find it any fun working with MS technologies either. I prefer to write the
things that get wrapped-up with those things (until I create my own
you-wrap-it-up-in-this technologies?)--that is *real* code! I'm "sure" COM
is still a lower-level technology upon which even Metro underpinnings are
built.
 
A

Ansel

rashid said:
This is a long story. It starts years ago since windows 3.1 and it
ends now, with "Metro".
[cut]

Dude you are a crazy.

MS is a great friend of C. They have put C/C++ at the center of
Windows development for 25 years.

No, they were on a full-force path away from C++ for quite awhile and
anticipating C# (Java all grown up and on steroids) to be be-all, end-all
language on Windows. They have been confirming their commitment to C++ in
the past few years and admit that they were out of touch with C++
developers' wants. Their developers have publicly explicitly stated this.
Surely they just did a lot of learning as we all have and do and realized
that C++/CLI (aka, "managed C++") was an alienating technology (remnants
survive, however).
They sold more C/C++ compilers than
anyone. They produce their own software in C/C++. All their MFC .NET
etc is built right on top of C/C++.
C would not
have survived as a successful language without the great support of
MS across many years!

I do not see that as a feather in MS's hat. Windows would have been better
if it had come after C++ was invented. Much better. C, as a matter of fact,
is much of the reason why Windows's underpinnings are so convoluted. There
is no denying that. They did the best they could with what they had at the
time.
 
A

Ansel

Keith said:
What exactly is "C/C++"?

Take the slash as meaning "or". It's a quick way of addressing users of C
and C++ recognizing that you can do whatever in either language, but that
the language isn't really that important to the overall thought. E.g., "Well
if you don't want to use C#, you can use C/C++". Also, using just the C
subset of C++ is akin to writing something in C.
There no such language. C and C++ are two
distinct, but closely related, languages.

As for Microsoft's support for them, yes, they have a C compiler, but
it doesn't support the C99 or C11 standard. I believe that they use
much more C++ than C in implementing their own software (Windows,
etc.).

I wonder if the lowest-level Window-messaging stuff is still in C and
assembly.
I'm not going to say that they've "abandoned" C, but they certainly
aren't showing much enthusiasm for it these days.

It's hard to be enthusiastic about boring old C though. Yeah, it may be the
simplest way to deliver a library of simple functions, but so what? Why
bother worrying about the lonely C standard when C++ is almost a superset of
it and you're using a C++ compiler anyway?

I think of C as a kind of least common denominator. While I shun
"sophisticated" C++ libraries (BOOST comes to mind), I welcome *select* C
code. *Very* simple C++ classes and such are acceptable to me too. C++ code
(even much of C code) from projects, I consider to be pretty much "write
once, can't reuse" code. IOW, mostly C++ ends up being great for abstracting
within a project, but too big of a pill to reuse in another project. Library
development is much harder than application program development and only a
few know how to do it well (and some of those throw in a bunch of extraneous
crap to obfuscate the key elements). YMMV.
 
B

BGB

Isn't OpenGL way overkill for 2D? Or were you doing 3D stuff and textures,
etc.? It would seem that all you'd gain with your approach is cross-platform
capability, but in doing so, creating a dependence on another monstrosity.
To me, it seems like just abstracting some platform primitives (or a bit
higher-level) would be much less work than even just figuring out OpenGL's
complexities. ?

I mostly do 3D stuff, but OpenGL works pretty well for both 2D and 3D stuff.

for many non-trivial tasks, it is still much easier overall than drawing
pixel values into a buffer (although a pixel-buffer gives a lot more
control, and for some tasks is easier to use and more capable than is
using shaders).

X-Windows!

well, except this is tied to Linux or similar.
technically, this is inside of a game, where the GUI would be integrated
with the delta-protocol otherwise used for scene-graph delta messages
(entity movements, ...).

theoretically, a GUI is basically just a small scene-graph with event
messages thrown in, but the specifics get a little less obvious.


to some extent I had been using console-style UIs (via the in-program
console), and have in a few cases implemented a subset of the VT100
escape-sequences, but thus far they are mostly just used for changing
colors and other things. also, unlike a real console, this system
doesn't generally (by default) have a freely movable cursor, although my
text-editor interface did go in this direction (by disabling/ignoring
the usual command-entry prompt, and setting up another faux cursor).

note: the console interface is itself drawn using OpenGL (and uses an
8x8 bitmap font).

xlib? Motif? ;)

my initial API was done similar to OpenGL, namely:
begin/end pairs and get/set functions (using handles), just with more
strings (I took API design ideas mostly from OpenGL and the Win32 GDI,
with a few misc ideas from GTK). this turned out to kind-of suck.

basically, begin/end pairs were used to submit widgets or forms, and
typically forms or menus were modified by entirely replacing them (by
begining a new form using the old one's ID-number), though some
properties could be changed via get/set calls, which would be passed a
widget-handle.


my more recent idea had more been based on the idea that widgets are
basically structs (similar to "entities") which can be linked together,
and linked onto "containers" or "surfaces".

in the protocol though, it will probably all just boil down to delta
messages and handles though (so, any changed variables in the
server-side structure are relayed as delta messages across to the other
end, where they update the client-side version of the widget).
likewise, if the user interacts with the widget, a message will be sent
back indicating this.

I haven't yet gotten to this though...
 
B

BGB

Like I said, that is a ludicrous thought. Overnight, just go and dump
decades of product technology evolution and mindshare for a stupid-little
touch UI paradigm? C'mon!

presumably people who wanted to keep using the older technology would
just stick with VS2008 or VS2010 or something?...

they did apparently want people to give up C and C++ and adopt .NET and
C# though, but people like myself were just like "whatever" and
continued using languages like C and C++...

(partly a notable reason I didn't use C# for much of anything serious
was, ironically, because Mono kind of sucked and its C++/CLI support was
broken, so it would have left things mostly as Windows-only).

Have a link?

not off-hand.

not terribly inclined to go try to look it up at the moment.
 
B

BGB

C++ doesn't have "restrict".

The lack of "for (int i;, ...)" is a little surprising, but I think I
read somewhere that they're planning to support it later.

well, at least they have "long long"...
 
J

jacob navia

Le 26/08/12 05:55, Keith Thompson a écrit :
I think I
read somewhere that they're planning to support it later.

You have been telling this too many times. And even if it was true that
changes nothing on the fact that they still have,'t implemented the C
standard, 12 years after its publication.
 
A

Ansel

BGB said:
presumably people who wanted to keep using the older technology would
just stick with VS2008 or VS2010 or something?...

I don't believe an idea like that would live more than a few seconds in any
meeting at MS, and I think it is preposterous for anyone to think so.
they did apparently want people to give up C and C++ and adopt .NET
and C# though,

A few years ago, yes.
but people like myself were just like "whatever" and
continued using languages like C and C++...

Or their own developers didn't like it much either maybe, especially their
top-dog C++ afficionados (Herb Sutter?)?

What are the applications programs, if any, that are critical to have on
Windows from a party other than from MS that would be significantly
detrimental to sales of Windows? On my Win 7 + MS Office Pro desktop
machine, I can't, off the top of my head, think of any software on it that I
actually paid for (and I don't have any pirated software) and same for the
Win XP setup I had previously, so that's why I ask. A programming language
NG may be the wrong place to ask this.
(partly a notable reason I didn't use C# for much of anything serious
was, ironically, because Mono kind of sucked and its C++/CLI support
was broken, so it would have left things mostly as Windows-only).



not off-hand.

So hearsay times two then.
 
J

jacob navia

Le 26/08/12 08:35, Ansel a écrit :
It's hard to be enthusiastic about boring old C though. Yeah, it may be the
simplest way to deliver a library of simple functions, but so what? Why
bother worrying about the lonely C standard when C++ is almost a superset of
it and you're using a C++ compiler anyway?

That's fine with me, many people have the same opinion.

I would just ask you then what the F*CK are you doing in a C interest
group?


Just trolling?

Ahh ok. Go on then, now we know.
 
A

Ansel

jacob said:
Le 26/08/12 05:55, Keith Thompson a écrit :

You have been telling this too many times. And even if it was true
that changes nothing on the fact that they still have,'t implemented
the C standard, 12 years after its publication.

Maybe there is no need to because very few develop with C on Windows? Those
who do use the C subset available through C++ and find it adequate? What
features of the C standard are missing and who wants to *use* them? It's
one thing to criticize that the standard is not implemented while there is
great need by developers for the features, but quite another to criticize
just "for standards sake", as if ISO decree were more important than actual
developer needs/desires. Statistics please. What C features are developers
targeting Windows clamouring for and which developers and how many
developers? C standard compliance just for compliance sake is wasted effort?
 
A

Ansel

jacob said:
Le 26/08/12 08:35, Ansel a écrit :

That's fine with me, many people have the same opinion.

I would just ask you then what the F*CK are you doing in a C interest
group?

I'm a developer. Not just a *fan-boy* like you.
 
B

BartC

Ansel said:
Do you mean you actually programmed the rasterization of those things akin
to what's in the books by Foley, Van Dam and others?

If you were doing graphics twenty years or more ago, then this was quite
common! (I think my first attempts with raster graphics were in '79...).

These days I would prefer to use OpenGL, a rare example of a well-designed
API, and available for many languages! Including C, which allows bindings to
be created for languages not officially supported (like mine..).

However OpenGL was never popular with MS, and was only grudgingly supported.
Hopefully that will still be available, but probably stuck at some ancient
version.
 
B

BartC

Ansel said:
BartC wrote:

Solder? There won't be boards that you can just snap-in whatever chips you
want? Heck,who needs a board at all--SOC (System On a Chip)!

For non-production work, you would typically solder sockets, and chips would
be inserted into those.

But it's possible that some components now only come in surface-mount forms
that need special equipment, that would make things tricky.
 

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

Members online

Forum statistics

Threads
473,774
Messages
2,569,598
Members
45,157
Latest member
MercedesE4
Top