On Mon, 17 Dec 2012 00:19:51 -0800, deadalnix <deadal...@gmail.com> wrote:
On Monday, 17 December 2012 at 08:02:12 UTC, Adam Wilson wrote:
With respect to those who hold one ideology above others, trying to
impose those ideals on another is a great way to ensure animosity. What
a business does with their code is entirely up to them, and I would
guess that even Richard Stallman himself would take issue with trying
to impose an ideology on another person. What does that mean for D
practically? Using a close-to-home example, imagine if Remedy decided
that shipping their ENTIRE codebase in .DI files with the product would
cause them to give away some new rendering trick that they came up with
that nobody else had. And they decided that this was unacceptable. What
would they most likely do? Rewrite the project in C++ and tell the D
community to kindly pound sand.
A license agreement is not enough to stop a thief. And once the new
trick makes it into the wild, as long as a competitor can honestly say
they had no idea how they got it (and they probably really don't, as
they saw it on a legitimate game development website) the hands of the
legal system are tied.
But that what I say !
I can't stop myself laughing at people that may think any business can
be based on java, PHP or C#. That is a mere dream ! Such technology will
simply never get used in companies, because bytecode can be decoded !
I use C# everyday at my job. We have expensive obfuscater's to protect the
bytecode. Even then it isn't perfect. But it's good enough. With the
metadata model of .NET this isn't a problem for public API's, just tell
the obfuscater to ignore everything marked 'public'. However, with DI's
being a copy of the plaintext source and NOT bytecode you run the risk of
changing the meaning of program in unintended ways. You see, in CIL (.NET
bytecode) there are no auto's (var's) or templates (generics) the C#
compiler does the work of figuring out what the auto type really should be
or what the templates really are is BEFORE it writes out the IL, so later
when the obfuscater does its job, there are no templates or auto's for it
to deal with.
In D, we don't have this option, you either have plaintext, or you have
binary code, there is no intermediate step like CIL. Hence we can't use
the obfuscation approach.
--
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/