1) apps that make use of specific aspects of the Linux kernel (particularly the/proc filesystem). You see this frequently with things like security or management apps (and of course OS enhancement but that isn't a "fair" category) 2) apps that make use of specific vendor configurations. Lots of closed source software for Linux falls under this rubric. 3) apps which assume things about configurations that are LInux specific (and thus make porting complex). You see this a lot with software targeted to home & school environments. 4) apps that depend on rpms that meet criteria 1 or 2.
Where are you getting this from? Windows uses a capability system, linux (with the exception of SE Linux) uses a permissions systems. Capability systems are far more secure permissions systems were designed for a low security model. Linux most certainly does allow for plugins with high permissions, that combined with the fact that this user has access to hundreds of programs (many turing complete) which can be used in combination with one another make Linux/Unix systems a nightmare to secure.
What makes Windows seem less secure is poor application security not flaws in the operating system.
Additionally they take code that they call "compatibly licensed" and appropriate it into their own projects. Then distribute the whole thing with a file called "LICENSE" that says "This is under the GPL." Without ever mentioning that parts of the code are definitely not GPL.
Asserting copyright ownership when you don't have it is criminal fraud. I doubt highly this happens on a regular basis.
but commiting to cvs is not and has never been distribution
Sure it is. I've just taken a copy of code and put it on another server. That's distribution. Worse yet the CVS server is a public distribution server to other servers, which means my intent in putting it on that server isn't merely to make one copy but rather mass distribution.
Re:How do other heavy Java apps perform?
on
OpenOffice 2.2 Released
·
· Score: 4, Insightful
Java apps by in large are 3-5x slower than the same apps written in C++. That's because:
1 -- C++ gives you access to low level routines and these are used to improve efficiency 2 -- C++ is inherently faster because of its more C like defaults 3 -- Java tends to create longer chains of function calls because of the way the libraries are architected 4 -- Java is running on a JVM not on the hardware and thus adds another layer of calls
Its perfectly correct to blame Java for being slower than C++. The fact that there exist fast Java apps doesn't mean that Java apps on average aren't substantially slower.
Finding a decent optimisation of the core.net framework would be a major benefit and you cannot do that without an implicit understanding of assembler.
You don't have access to assembler inside of.NET..NET uses an intermediate language which runs on a virtual machine (similar to Java or Perl)..NET itself is becoming more abstract (see C--) as Microsoft wants another layer in there for automated parallelism.
I think you are trying to over-generalize what I wrote. I was addressing the issue of Microsoft copyright enforcements against people developing software using Microsoft tools and crossing over the line. This wasn't about their overall personality and every aspect of their behavior.
1 -- Microsoft has gone after a few small companies. They play very rough when it comes to product development. However by and large they have generally deliberately hurt big companies: Netscape, adobe, intuit, Lotus. For small companies they seem to be more like an elephant trampling through the woods. They just don't notice....
2 -- There was a successful GPL MySQL license enforcement against Nusphere, which essentially bankrupted Nusphere.
3 -- You'll notice my article was very clear about accidental Microsoft violations and making good faith efforts to rectify. Whole different world if they violation was deliberate of the company doesn't agree to basically apologize and pay up. But you are talking criminal acts, I was talking honest people making mistakes.
So would they feel more comfortable including something like a DirectX installation package with a Microsoft EULA that is included with their own offering? Or that their developers have copied code snippets from the same DirectX SDK and knowledge base, also under that license?
Sure because Microsoft is one entity with a consistent personality. 1) They have a long history of being thrilled when you make your applications windows only and being very supportive. By and large they tend not to enforce their rights fully 2) They have a long history of being understanding when developers cross the line into copyright violation who agree they violated and are willing to come into compliance. Usually this is a no cost option. 3) They have a long history when people grossly violate copyright (accidentally) or patents of simply requiring reasonable license fees and not going for all sorts of punitive actions.
The free software community is a bunch of entities who are all over the place ideologically 1) They are extremely aggressive about enforcing their rights 2) They tend to attack products publicly for non compliance which can business partners 3) By in large for large scale violations coming into compliance effectively waiving all rights on the derived work.
There was a huge difference between the Linux culture and the BSD culture in mid 1990s. The BSD culture was interesting in making Unix free for current Unix users. The Linux culture was interesting in creating a free OS to replace commercial OSes. The BSD people never really got interested in widespread acceptance until around 2000.
That's not true at all. Most libraries charge a $X / copy unlimited right to redistribute. The second most common license terms are $Y per copy distributed. Other than that there are generally very few terms. Moreover in 30 some years of legal history by and large there are almost no cases of being being sued who were actively complying with the pay $X or pay $Y. Further coming into compliance generally just means paying money.
Open source licenses are often much more complex and coming into compliance once you violate can be difficult.
Declaring that you are distributing something under public domain (that is declaring you have copyright) when you don't is fraud. Its no different then if he was saying Windows Vista was public domain.
Yes it would make their program GPL if they "included" your program. On the other hand of they independently derived it or got from another source then your license wouldn't apply. Programers tend to think in terms of some sort of platonic absolute version of the code. The law thinks in terms of a tree of derivation. Where those lines came from is what determines their legal status.
Just as an aside, those lines are so common that the courts are likely to find that any copyright if null. But the burden would be on the defendant to prove that kind of public common usage. Companies don't like having the burden in lawsuits.
Right this isn't just selective enforcement. Its selective enforcement for the purpose of allowing the code to be distributed via. the GPL. The courts can look at the reason for the selective enforcement. I think you can establish intent here on Microsoft's part: they intended to allow their code to be distributed via. the GPL. I think you can establish intent: Novell had rights (a non sue agreement) which were attached to the code and were not re-distributable while claiming they were redistributing all rights.
I'm not arguing the case is clear, just that it isn't so clear cut the other way.
6. Courts: "Nope, it hasn't been sublicensed to you"
But in doing that the courts would be affirmatively establishing a contract violation. That is the Novell claimed to be distributing all patent rights they had when the distributed the software under the GPL. The non customer could then argue that they acted in good faith. I think the non customer has a pretty strong claim that any monies owed microsoft are owed by Novell.
Further you might get
6a. licensing code containing your patented material to be distributed in a GPL product constitutes a waver of patent and thus there is no more enforceable patent with respect to this code. A very reasonable outcome btw.
Re:Performance, anyone?
on
Lisp and Ruby
·
· Score: 1
I'd say you are mistaken regarding the design of the CLR. Take for example the original "C--: a portable assembly language that supports garbage collection" papers. I can't see how you can't see that as a move towards what amounts to using a LISP machine for a runtime rather than using hardware.
In terms of the STL reference, it is being incorporated as the major concurrency strategy for C# (and VB for that matter).
Undoubtedly, Lisp is in a position to influence other designs. Lisp is a major language that pioneered a lot of important ideas, and it any new design can leverage those ideas. However, we're talking about actually using Lisp as an implementation language on a major product. Actually no, what I'm arguing is that Microsoft is pushing their languages division in the direction of of adopting the ideas and capabilities of LISP. That is lispy features and lispy paradigms. There are no modern full featured LISPs to just pick and use.
Re:Genuine question about perl vs ruby
on
Lisp and Ruby
·
· Score: 1
I'm surprised you got that wrong, given how long you've been in the industry. It wasn't C that created this it was assembly for PCs and workstations. Branch on Zero existed for years. Once you had a small number of registers an integer operation which resulted in a zero or non zero followed by an "if" could be best implemented via. a direct branch of zero. C is just making that available to the programmer.
Re:Performance, anyone?
on
Lisp and Ruby
·
· Score: 1
Oh I don't know.
-- The entire.NET compiler (that is VB, Java, C#...) is essentially written in ML -- STL has come over from PL/Haskell -- LINQ is basically LISP for VB -- The Mactopia group is thinking of embedding a LISP in as their macro language for office
I'd say those guys are having an influence.
But the final example is: -- For about a decade Microsoft used to offer a wonderful C tutorial along with Microsoft C. The final exercise (fully worked btw) was to implement a Common Lisp compiler.
Re:Genuine question about perl vs ruby
on
Lisp and Ruby
·
· Score: 1
An interesting phenomenon is that most stuff that people perceive as a reason to go to ruby from perl, are available in perl too, but somehow they offer those stuff an novel.
I think a fair way to put it is this Ruby Perl is quite possibly the most paradigm agnostic language ever used for mainstream programming (OZ for example supports more paradigms but its meant only for teaching). OTOH Perl is horribly inconsistent. What Ruby offers is about 85% of Perl with enough consistency that the 85% is easily learnable and maintainable.
Re:Performance, anyone?
on
Lisp and Ruby
·
· Score: 1
Microsoft has a ton of LISP people. Bad example.
Re:Performance, anyone?
on
Lisp and Ruby
·
· Score: 1
we don't really see a large, consistent standard library for Lisp.
You absolutely do, that's what Common Lisp is; a Lisp with a very large, consistent standard library (now the bad part) for types of OSes that stopped being used by the early 1980s. And that's really the problem. Lisps stopped evolving in the late 1970s. And no Lisp programs often only contain small re-implementations of interfaces to modern OSes.
Further as Paul Graham puts it: Lisp and Fortran were the trunks of two separate evolutionary trees, one rooted in math and one rooted in machine architecture. These two trees have been converging ever since. Lisp started out powerful, and over the next twenty years got fast. So-called mainstream languages started out fast, and over the next forty years gradually got more powerful, until now the most advanced of them are fairly close to Lisp. Close, but they are still missing a few things....
What is happening is that ideas from LISP are slowly getting put into today's C based languages about one every 5 years or so. OTOH why wait?
Re:VB already gets the respect it deserves...
on
Lisp and Ruby
·
· Score: 1
VB.Net is getting lambda expressions. Its in the compiler the discussion now is syntax and closure handling. As for module systems I'm not sure they are powerful in Haskell than VB.Net could you explain?
Re:VB already gets the respect it deserves...
on
Lisp and Ruby
·
· Score: 1
If I were to write something like:
I have met Java developers who do not understand what a pointer is. I have yet to meet a Java developer who: Understands what a monadic transform is Understands can read assembly Understands higher order programming Really understands the difference between class types and classes Uses DSL's instead of classes
Besides being false what would that prove? People who know only one language tend not to know the paradigms from different languages.
1) apps that make use of specific aspects of the Linux kernel (particularly the /proc filesystem). You see this frequently with things like security or management apps (and of course OS enhancement but that isn't a "fair" category)
2) apps that make use of specific vendor configurations. Lots of closed source software for Linux falls under this rubric.
3) apps which assume things about configurations that are LInux specific (and thus make porting complex). You see this a lot with software targeted to home & school environments.
4) apps that depend on rpms that meet criteria 1 or 2.
Where are you getting this from? Windows uses a capability system, linux (with the exception of SE Linux) uses a permissions systems. Capability systems are far more secure permissions systems were designed for a low security model. Linux most certainly does allow for plugins with high permissions, that combined with the fact that this user has access to hundreds of programs (many turing complete) which can be used in combination with one another make Linux/Unix systems a nightmare to secure.
What makes Windows seem less secure is poor application security not flaws in the operating system.
Really. Cite an example. The FSF is extremely strict about copyright with the possible exception of debian they are the strictest group around.
Additionally they take code that they call "compatibly licensed" and appropriate it into their own projects. Then distribute the whole thing with a file called "LICENSE" that says "This is under the GPL." Without ever mentioning that parts of the code are definitely not GPL.
Asserting copyright ownership when you don't have it is criminal fraud. I doubt highly this happens on a regular basis.
but commiting to cvs is not and has never been distribution
Sure it is. I've just taken a copy of code and put it on another server. That's distribution. Worse yet the CVS server is a public distribution server to other servers, which means my intent in putting it on that server isn't merely to make one copy but rather mass distribution.
Java apps by in large are 3-5x slower than the same apps written in C++. That's because:
1 -- C++ gives you access to low level routines and these are used to improve efficiency
2 -- C++ is inherently faster because of its more C like defaults
3 -- Java tends to create longer chains of function calls because of the way the libraries are architected
4 -- Java is running on a JVM not on the hardware and thus adds another layer of calls
Its perfectly correct to blame Java for being slower than C++. The fact that there exist fast Java apps doesn't mean that Java apps on average aren't substantially slower.
Oh I'd agree you can make .Net itself more efficient using assembly. I just was just saying you can't make applications written in .NET more efficient.
Finding a decent optimisation of the core .net framework would be a major benefit and you cannot do that without an implicit understanding of assembler.
.NET. .NET uses an intermediate language which runs on a virtual machine (similar to Java or Perl). .NET itself is becoming more abstract (see C--) as Microsoft wants another layer in there for automated parallelism.
You don't have access to assembler inside of
I think you are trying to over-generalize what I wrote. I was addressing the issue of Microsoft copyright enforcements against people developing software using Microsoft tools and crossing over the line. This wasn't about their overall personality and every aspect of their behavior.
....
1 -- Microsoft has gone after a few small companies. They play very rough when it comes to product development. However by and large they have generally deliberately hurt big companies: Netscape, adobe, intuit, Lotus. For small companies they seem to be more like an elephant trampling through the woods. They just don't notice
2 -- There was a successful GPL MySQL license enforcement against Nusphere, which essentially bankrupted Nusphere.
3 -- You'll notice my article was very clear about accidental Microsoft violations and making good faith efforts to rectify. Whole different world if they violation was deliberate of the company doesn't agree to basically apologize and pay up. But you are talking criminal acts, I was talking honest people making mistakes.
Does anybody have a good free gui text editor for the mac?
http://smultron.sourceforge.net/
So would they feel more comfortable including something like a DirectX installation package with a Microsoft EULA that is included with their own offering? Or that their developers have copied code snippets from the same DirectX SDK and knowledge base, also under that license?
Sure because Microsoft is one entity with a consistent personality.
1) They have a long history of being thrilled when you make your applications windows only and being very supportive. By and large they tend not to enforce their rights fully
2) They have a long history of being understanding when developers cross the line into copyright violation who agree they violated and are willing to come into compliance. Usually this is a no cost option.
3) They have a long history when people grossly violate copyright (accidentally) or patents of simply requiring reasonable license fees and not going for all sorts of punitive actions.
The free software community is a bunch of entities who are all over the place ideologically
1) They are extremely aggressive about enforcing their rights
2) They tend to attack products publicly for non compliance which can business partners
3) By in large for large scale violations coming into compliance effectively waiving all rights on the derived work.
There was a huge difference between the Linux culture and the BSD culture in mid 1990s. The BSD culture was interesting in making Unix free for current Unix users. The Linux culture was interesting in creating a free OS to replace commercial OSes. The BSD people never really got interested in widespread acceptance until around 2000.
That's not true at all. Most libraries charge a $X / copy unlimited right to redistribute. The second most common license terms are $Y per copy distributed. Other than that there are generally very few terms. Moreover in 30 some years of legal history by and large there are almost no cases of being being sued who were actively complying with the pay $X or pay $Y. Further coming into compliance generally just means paying money.
Open source licenses are often much more complex and coming into compliance once you violate can be difficult.
Declaring that you are distributing something under public domain (that is declaring you have copyright) when you don't is fraud. Its no different then if he was saying Windows Vista was public domain.
Yes it would make their program GPL if they "included" your program. On the other hand of they independently derived it or got from another source then your license wouldn't apply. Programers tend to think in terms of some sort of platonic absolute version of the code. The law thinks in terms of a tree of derivation. Where those lines came from is what determines their legal status.
Just as an aside, those lines are so common that the courts are likely to find that any copyright if null. But the burden would be on the defendant to prove that kind of public common usage. Companies don't like having the burden in lawsuits.
Right this isn't just selective enforcement. Its selective enforcement for the purpose of allowing the code to be distributed via. the GPL. The courts can look at the reason for the selective enforcement. I think you can establish intent here on Microsoft's part: they intended to allow their code to be distributed via. the GPL. I think you can establish intent: Novell had rights (a non sue agreement) which were attached to the code and were not re-distributable while claiming they were redistributing all rights.
I'm not arguing the case is clear, just that it isn't so clear cut the other way.
6. Courts: "Nope, it hasn't been sublicensed to you"
But in doing that the courts would be affirmatively establishing a contract violation. That is the Novell claimed to be distributing all patent rights they had when the distributed the software under the GPL. The non customer could then argue that they acted in good faith. I think the non customer has a pretty strong claim that any monies owed microsoft are owed by Novell.
Further you might get
6a. licensing code containing your patented material to be distributed in a GPL product constitutes a waver of patent and thus there is no more enforceable patent with respect to this code. A very reasonable outcome btw.
In terms of the STL reference, it is being incorporated as the major concurrency strategy for C# (and VB for that matter). Undoubtedly, Lisp is in a position to influence other designs. Lisp is a major language that pioneered a lot of important ideas, and it any new design can leverage those ideas. However, we're talking about actually using Lisp as an implementation language on a major product. Actually no, what I'm arguing is that Microsoft is pushing their languages division in the direction of of adopting the ideas and capabilities of LISP. That is lispy features and lispy paradigms. There are no modern full featured LISPs to just pick and use.
I'm surprised you got that wrong, given how long you've been in the industry. It wasn't C that created this it was assembly for PCs and workstations. Branch on Zero existed for years. Once you had a small number of registers an integer operation which resulted in a zero or non zero followed by an "if" could be best implemented via. a direct branch of zero. C is just making that available to the programmer.
Oh I don't know.
.NET compiler (that is VB, Java, C#...) is essentially written in ML
-- The entire
-- STL has come over from PL/Haskell
-- LINQ is basically LISP for VB
-- The Mactopia group is thinking of embedding a LISP in as their macro language for office
I'd say those guys are having an influence.
But the final example is:
-- For about a decade Microsoft used to offer a wonderful C tutorial along with Microsoft C. The final exercise (fully worked btw) was to implement a Common Lisp compiler.
An interesting phenomenon is that most stuff that people perceive as a reason to go to ruby from perl, are available in perl too, but somehow they offer those stuff an novel.
I think a fair way to put it is this Ruby Perl is quite possibly the most paradigm agnostic language ever used for mainstream programming (OZ for example supports more paradigms but its meant only for teaching). OTOH Perl is horribly inconsistent. What Ruby offers is about 85% of Perl with enough consistency that the 85% is easily learnable and maintainable.
Microsoft has a ton of LISP people. Bad example.
we don't really see a large, consistent standard library for Lisp.
You absolutely do, that's what Common Lisp is; a Lisp with a very large, consistent standard library (now the bad part) for types of OSes that stopped being used by the early 1980s. And that's really the problem. Lisps stopped evolving in the late 1970s. And no Lisp programs often only contain small re-implementations of interfaces to modern OSes.
Further as Paul Graham puts it:
Lisp and Fortran were the trunks of two separate evolutionary trees, one rooted in math and one rooted in machine architecture. These two trees have been converging ever since. Lisp started out powerful, and over the next twenty years got fast. So-called mainstream languages started out fast, and over the next forty years gradually got more powerful, until now the most advanced of them are fairly close to Lisp. Close, but they are still missing a few things....
What is happening is that ideas from LISP are slowly getting put into today's C based languages about one every 5 years or so. OTOH why wait?
VB.Net is getting lambda expressions. Its in the compiler the discussion now is syntax and closure handling. As for module systems I'm not sure they are powerful in Haskell than VB.Net could you explain?
If I were to write something like:
I have met Java developers who do not understand what a pointer is. I have yet to meet a Java developer who:
Understands what a monadic transform is
Understands can read assembly
Understands higher order programming
Really understands the difference between class types and classes
Uses DSL's instead of classes
Besides being false what would that prove? People who know only one language tend not to know the paradigms from different languages.