Linked by R_T_F_M on Thu 13th Sep 2012 21:19 UTC
FreeBSD "For the past several years we've been working towards migrating from GCC to Clang/LLVM as our default compiler. We intend to ship FreeBSD 10.0 with Clang as the default compiler on i386 and amd64 platforms. To this end, we will make WITH_CLANG_IS_CC the default on i386 and amd64 platforms on November 4th."
Permalink for comment 535291
To read all comments associated with this story, please click here.
RE[8]: C++
by boldingd on Sun 16th Sep 2012 03:06 UTC in reply to "RE[7]: C++"
boldingd
Member since:
2009-02-19

Since when? COM is all about libraries.

Your COM components can exist in separate executables, for more security. In this case a kind of local RPC is used.

However, most COM components are actually dynamic libraries that get dynamically linked with your application and follow the same format as C++ VMT. No communication going on here.

In Windows 8 COM got extended. Now with WinRT, COM makes use of .NET metadata for language interoperation.

If Metro succeeds, many Windows developers believe Win32 might be in the legacy path, with WinRT taking over the full spectrum of Windows APIs.


I'm not a Windows dev, but from what I'm reading, COM isn't a calling convention, it's an object serialization technique. You're right that it will help different OOP languages on the same underlying platform swap objects easily, but that's not the only problem I'm talking about. That works because COM support is pushed into the language run-time and underlying platform, and handled by the compiler; things change when one of the languages you're using isn't object-oriented or doesn't have usable COM bindings, like Fortran, Ada or C. Exactly the reason that C is the common language for multi-language linking is that C linking is the lowest common denominator among calling conventions, and that's still going to be true even on a platform that makes heavy use of COM in its low-level APIs.

C got developed, because of UNIX. If UNIX had failed in the market, most probably no one would be talking about C today.

Now UNIX got successfull, everyone wanted to have UNIX like utilities and C started to be ported everywhere.

The day, operating system vendors start using another language for systems programming, like Microsoft is doing now with Windows 8, then C starts to loose its influence in this area as well. At least in the desktop area.

If the operating system vendor does not offer you a C compiler, or C like APIs, then there is not a C interface to talk about.

You FORTRAN compiler, Ada compiler will need to support another type of interface.

This is nothing new. From what I know, there are no C like interfaces in mainframe systems, and you are forced to use whatever call convention the OS vendor decided upon.


"C exists because of Unix" is historically true, but you're missing the point. The reason that C came into existance was that B and BCPL - and pretty much all low-level system languages - sucked. C became popular because there was a huge need for a portable, high-level language that could still be used for low-level work. C and Unix answered real needs in the market that nobody else did; it's not as if they became popular by coincidence or clever marketing.

Reply Parent Score: 2