Well that is not fair because C++ CLI is basically C++ .NET which is
another language altogether baring some resemblance to C++.

And you dont need C++ CLI to sit on barrier of runtime and compile , C++
can do this just fine.

I found this recently trying to experiment at whether its possible to do
live coding with C++. I found it after following tutorials that is very
possible doing that isfyou put only a super minimal code loop in the
executable that loads DLLs and divert all other code to DLLs. This gives
you ability to have instant compilation and change code while it is
executed. For live data you can put all data to a place in memory and then
pass the memory as pointer to the DLLs. This give you live inspection of
data and live change of data. You can even protect yourself from crashes ,
something that Pharo cannot currently do, by wrapping the loading of the
DLLs to an OS exception, the executable will never crash but it will show
the crash errors. Of course you can hook the debugger for live debugging
etc.

You can find my experiment here
https://github.com/kilon/LiveCPP
and find more info here
https://www.youtube.com/watch?v=WMSBRk5WG58

My complains however is over the design of WIndows APIs for C++ , they are
beyond ugly, the naming convention alone has a notoriously bad reputation.

.NET is another thing altogether, its a beauty. Its actually an insult to
put C# and Java on the same sentence, many coders think that C# is a rip
off of Java but nothing could be further from the truth. The creator of
.NET is not Microsoft , Microsoft has no clue what good design is, its a
coder they hired that worked previously with Borland and created the
gorgeous Delphi. Delphi is the only true pro quality Smalltalk out there,
without being a Smalltalk. That may sound as a contradiction and it is.
Delphi does not use the Smalltalk language , instead uses Object Pascal but
pretty much else is a recipe take from the Smalltalk book, notable the API
which Delphi calls VCL and the IDE. The API is of special interest here
because it has been the first pro quality api to utilize full OO the proper
way , with well designed objects and carefully mapped class inheritance.
Java on the other hand like windows C++ APIs is a huge pile of mess. The
same coder designed C# and .NET and used all the ideas he used with Delphi
, winforms alone is a large rip off of Delphi's GUI api.

But even with this beauty Microsoft could help itself dropping the ball, so
what it did was to completely ignore the cross platform ability of .NET ,
hence why Java kept the lead. The excuse was mainly the Windows Mobile that
Microsoft dreamed of competing with iOS and Android but that dream
eventually failed with the spectacular commercial failure of Microsoft
smartphones. So Microsoft did the expected thing, accepted defeat and
bought the company that already ported .NET to iOS and Android and
countless other platforms and named it Mono. The company is called Xamarin.

Fortunately Microsoft seems to learn from its past mistakes and has
recently redesigned .NET to better support cross platform and even open
sourced it.

Personally I love .NET and I would not mind at all coding on C# and
ironpython  (.NET variant of python). Mircrosoft definetly has lost
interest in C++ anyway , it has seen the rapidly decline of the language of
the language and the mass migration to Java. Java may be ugly but it cured
of the pain of manual memory management and offered the first pure business
orientated API with the best cross platform support. Java also destroyed
the myth that a Garbage Collector cannot reach top performance and compete
with C++ code. In sort Java is not as popular because of the design of its
libraries but is certainly extremely popular for a lot other reasons.

The question is why you even bother with C++ CLI , C++ CLI was created
mainly to bridge C++ with C# / .NET languages, is there a reason you prefer
it over C# ?

On Sun, Oct 2, 2016 at 2:01 PM CodeDmitry <dimamakh...@gmail.com> wrote:

> To be fair, C++CLI is quite a pleasure to code, it's a very refreshing
> technology that sits nicely on the barrier of runtime and compiletime,
> similar to Objective C; eg still has access to unmanaged resources, while
> still having managed resources in contrast to Java/C# which kinda go one
> step towards runtime, and ISO C++ which tries to stay within compile time.
>
> Windows Programming isn't quite that bad now with C++CLI, my image is
> contrived to demonstrate one of my first successful attempts at getting COM
> to actually do something other than give me compilation errors.
>
>
>
> --
> View this message in context:
> http://forum.world.st/Intro-to-Microsoft-COM-for-Smalltalkers-tp4917738p4917767.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>

Reply via email to