Sun Releases Open Source XACML Language
LowneWulf writes "An InternetNews.com article mentions that the OASIS standards group today ratified the Extensible Access Control Markup Language 1.0 specification. But even better, Sun Microsystems Labs has backed this up with an open-source version in Java on Sourceforge."
YAUML (Yet Another Useless Markup Language) should become more commonly used around here.
How can a language be open source? A language doesn't need source; it's a syntax. Compilers need source, not languages. 'Open Source Language' sounds like more hype to me. I may be stupid, but I don't know of any truly open source implementations of the Java that this 'Open Source Language' is in (Last I checked, Sun had a pretty strict licensing scheme going for Java implementations)
using namespace slashdot;
troll::post();
Jee-aah! Another language! That's great, because we can never have too many of these. I was just thinking to myself, "Gee, I wish I had another markup language to learn".
(obl: karma to burn)
Belief is the currency of delusion.
What application does this language have in digital restrictions management of copyrighted works?
Will I retire or break 10K?
If I get this right, XACML ist yet another way of realizing digital rights management (DRM). Who will use it, and for what purposes??
Not everything is about DRM. Move along.
Forget the whales - save the babies.
there are those who disagree, but those whose jobs require complexity, it is a step towards easier integration. Microsoft should just go with the architecture Oasis has laid out for ebXML and dump their piece of junk which originally had no concept of coreography.
I got excited for second, incorrectly reading this as.. Sun Microsystems Labs has backed this up with an open-source version of Java
How can a language be open source?
I consider a language to be "open source" if it has a reference implementation available to the public as OSI Certified(TM) open source software.
Will I retire or break 10K?
Does it ever occur to Sun that Java is not the answer to all problems? That maybe, just maybe, an implementation in C would be more generally useful as a reference implementation?
I know more Java programmers than C programmers
All industry software projects I'm involved in are in
HINT: its not C and its not C++.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
So you would rather Sun write all the necessary authentication and identity management support in C? I'm no C programmer, but doing network+authentication in C is not easy. Java isn't the answer to everything, but the source is available. If you're so eager for a C implementation, go download the source and port it. Bitching is easy. How about contributing?
The meme police, They live inside of my head
y41 f0uled. :-P
This seems to be a mostly server-side technology, and Java is generally accepted on the server, so I don't see it as a bad thing that it's in Java.
.NET or Java is a very negative thing, because many clients will either not have the necessary runtimes, or will have very outdated versions of them. Both .NET and Java weigh in at at least 10mb, and that will definitely hurt deployment of any technology.
However, if this technology requires the client to implement some complex authentication stuff, you've got a problem. Exclusively tying your reference implementation to 'weighty' technologies like
using namespace slashdot;
troll::post();
In their latest report sun made a 2.3 BILLION dollar loss in the last quarter alone!!! Thats just plain crazy.
Why the hell do they have people doing stuff for free? Some executives inside sun needs to wake up and make sure every employee does something that actually makes money.
off topic ? this was more ontopic than the comment above with goatse. freaking stupid moderators.
Who will use it, and for what purposes??
A generic digital restrictions management component such as XACML, TCPA, or the technology formerly known as Palladium can be used for good (protect the privacy and integrity of personal information) or for evil (deny fair uses of copyrighted works).
Will I retire or break 10K?
The subject submits its query to the entity protecting the resource (e.g. file system, web server). This entity is called a Policy Enforcement Point (PEP). The PEP forms a request (using the XACML request language) ... (snip)
;-)
They should have called its language PEP Talk.
-----
"You spilled my egg... I needed that egg."
just l33t version of HackML - a language
made specially for hackers!
HINT: its not C and its not C++.
Visual Basic?
C is definitely not as good of a general-purpose langauge as Java is. The fact that people use it for general programming does not make it appropriate.
C is a low level language that nearly nobody understands. Sure, anyone can look at the language as a whole and think they ``get it,'' but the number of buggy C applications out there speak for its complexity.
Java is a good high-level language. Most applications need to be written in high-level languages. That means that most developers should be using high-level languages to get these things written.
C is good for writing the low-level portions of operating systems, and perhaps some embedded work.
For those who still complain about the speed of java, look to languages like ocaml and the bigloo scheme compiler. In my tests, they both produce insanely fast code (slightly slower than the C from which I translated it, faster than anything else), but are high-level languages well suited for general application development.
-- The world is watching America, and America is watching TV.
First, synchronize watches - how long before JBOSS integrates this?
Now on to more serious commentary. This story is interesting in that Sun might actually be "getting it". Sure they've been saying "we get it" for some time but that crappy Sun license...that's just what we needed, YACL (Yet Another Community License).
This project is actually on Sourceforge, and with a BSD-looking license no less!! I like what I'm seeing, Sun.
-joe
I don't think so.
Can't you see Java is the default language for XML technology since its beginning?
When you think to create web services using all infrastrctute such as provided by Sun One , you think Java, not C, nor Perl.
It's necessary to have frameworks to build complex applications, unless you think its worth to start from scratch. In this case you can implement all the standards on your favourite language.
Hey, it's just a prototype/demo application that conforms to the standard. If you don't like it write your own in your favorite language (and feel free to borrow as much as you like from the source code).
Besides, this kind of thing would typically be used in a web application environment, where C typically is not the language of choice (mostly because core dumps are not acceptable in a server environment). And guess what, sun happens to produce some of the most popular tools and techniques for web applications (mostly Java based).
Jilles
* One standard access control policy language can replace dozens of application-specific languages
* Administrators save time and money because they don't need to rewrite their policies in many different languages
* Developers save time and money because they don't have to invent new policy languages and write code to support them; they can reuse existing code
* Good tools for writing and managing XACML policies will be developed, since they can be used with many applications
* XACML is flexible enough to accommodate most access control policy needs and extensible so that new requirements can be supported
* One XACML policy can cover many resources; this helps avoid inconsistent policies on different resources
* XACML allows one policy to refer to another; this is important for large organizations, for instance, a site-specific policy may refer to a company-wide policy and a country-specific policy.
Before someone else rants about copy protection, find out what it is before you start typing. I'm guitly of it in the past, but this is a useful language will real benefits.
Does it ever occur to Sun that Java is not the answer to all problems
Did it occur to you that Sun would write the code to match whatever use fits THEM the best. The fact that they then turn around and make the code OS is a gesture on their part. Did you think they sat around and said "hey, lets write an implementation of this for the masses"? Nope, their needs came first, as it should be.
Sun is providing Java programmers for easily accessing and mutating this new ACL standard. This has value since there are so many fucking Java programmers you morons.
'Open Source English'. That makes absolutely no sense.
The PICK operating system had a database query language called English, a dialect of SQL. I'd consider the English programming language (not the English natural language in which this comment is written) an "open-source language" if one of the major free databases (MySQL, PostgreSQL, SAP DB, etc) introduced PICK interoperability through support for English queries.
If you're worried about my use of "open-source language" to refer to "computer language with a widely used open-source implementation", don't worry too much. Such "overloading" is common in computer jargon.
Will I retire or break 10K?
The requirement of having robust access control (beyond simple enter your name and password) is not very common outside the corp. world. So those who've not had to deal in that code would not fully understand how big of a deal that this markup language CAN be (assuming it's adopted, robust, etc, etc). This is definitely one of those areas where "everybody rolls their own", or worse, they dumb down their access control to fit things like directory services and the ilk, that were never intended to do what this is trying to.
Funny how in many posts this has degenerated into either "we don't need no more stinkin languages" or "Sun/Java sucks, yadda, yadda".
Funny how folks like you never seem to get up and go away....
just when I thought security-related articles couldn't get any more boring, Sun releases XACML.
[/tongue-firmly-in-cheek]
"I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
What exactly is the need for this 'new' language. I get the impression that really this system just defines some interfaces and uses XML to allow various aspects of the implementation to communicate. Not exactly rocket science and certainly not worthy of a new language IMHO. What exactly does it do that XML and some well defined schemas cant?
Its some what strange that given the recent 'commitment' from SUN to clean up the J2EE API's they want to foist this on us as I assume the enterprise is where it will see most usage.Is this sone sort of bastard child from the slightly less than successful Liberty project?
Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
What truth?
There is no dupe
One standard access control policy language can replace dozens of application-specific languages
But what is an "access control policy language"? Is it the language used to write ACLs on files and folders, or is it a language used to write copyright management information as defined in 17 USC 1202?
Will I retire or break 10K?
You mean like Ada used to be, Java is etc etc etc..
How is this getting modded up in a place where Java is constantly criticised for being closed source. If a company creates a document it owns the copyright on that document, if it trademarks a name it owns that name. If you create a language that has the same syntax with the same meaning then you are breaking those "rights".
UNLESS you can create a Clean Room implementation ala the original IBM Bios clones. And who would want to do that for a language.
An Eye for an Eye will make the whole world blind - Gandhi
All industry software projects I'm involved in are in ... ah forgett it you wont belive it anyway ...
HINT: its not C and its not C++.
is it C# ?
I'm out of my mind right now, but feel free to leave a message.....
Intercal? BrainF*ck? Fundies? Well for god's sake man, do tell!!
Q: What Open Source license are you using? We are using a modified BSD license. This is a true Open Source license with no "viral" effects.
Almost sounds like they are either a)trolling for liscensing wars or b)trying to allay managerial fears about loss of code controll. While I would agree with them that for their purposes (and the purposes of any project/standard which needs to be integrated into the core of both commercial and non-commercial code) that the BSD liscense makes more sense I don't think they have to implicitly slam other liscenses like the GPL through use of MS like terms.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
I also would be quite happy for you to live in either France, Germany or Belgium these days...
If you create a language that has the same syntax with the same meaning then you are breaking those "rights".
If I don't call it Java(TM) brand then I'm not infringing Sun's Java mark. Stating that something "interoperates with programs that use Java(TM) technology" is fair use of Sun's technology.
Likewise, if I write my own spec without using any of Sun's expression, I break no copyright. There is currently no U.S. copyright on facts (1y7 USC 102(b); Feist v. Rural).
UNLESS you can create a Clean Room implementation ala the original IBM Bios clones.
The dirty/clean process used to write the clone of IBM PC BIOS involved one "dirty" team that turned the BIOS code and its observed behavior into a specification and another "clean" team that turned the specification into a computer program. It was designed to defeat any accusation of access to the original work, without which there is no copying and thus no infringement. Anybody who has never seen Sun code and works only from the published specification is already "clean".
Will I retire or break 10K?
open sourced? Why is java now a 100 meg download ? Why are there 100 versions? Why can't someone build a faster better language than java? XBASIC ?
No.
Belief is the currency of delusion.
The Unix passwd file is DRM! Down with the passwd file!!!
I believe exocamels will become important when we're exploring harsh extraterrestrial environments like Mars. Think about it - terrestrial camels are the best-suited ride for the harshest places on Earth. It only stands to reason that the same would apply to their offworld relatives.
I think the idea of using exocamels to explore the Sun is ridiculous, though. I mean there's a difference between the Sahara and the plasma skin of a 6000 degree fusion furnace. They're tough critters, but really.
I have no idea what open source has to do with any of this. But then I find that with most slashdot stories.
That's how I like my /.!
girl
So much for "open" standards....
The reason they can use languages like OCaml for doing work like this is because the underlying system has already been implemented in C, and there's a regular interface for OCaml or other high level language to use. Most languages even go so far as to provide ways to use C libraries, which should show just how powerful C is.
Even so, C has some shortcomings, mostly related to many (some/a lot) of the functions in the standard library not being thread safe. A good example of this is strtok(), which isn't reentrant. The solution for fixing this was to add a function, strtok_r() that is reentrant. This works just fine, but overall isn't a good idea, because what happens next time when strtok_r won't cut it? Will strtok_r_x be added? It becomes a nightmare, because you still have to support strtok in your compiler to stay compatible with old code. C is by far the best language for programming a computer, but it's starting to pick up some baggage after 30 years of change in an industry where five years can make something obsolete (not obsolete in and of itself, just in comparison to the ``next new thing'').
The solution is a new language, written for the technology of today and backported to old computers. It would be as low level as C or lower, and have no functions that aren't reentrant. Perhaps a way of doing objects and better exception handling could be added: closer than Objective C is to C, but implemented on the next level with the new language.
As for other languages, they really don't cut it for down and dirty programming. Without a low level language, we could find ourselves in a postition similar to those people in Star Trek:TNG that had all this nice technology that nobody knew how to use. C++ really doesn't have any uses. A quote in the recent funniest nerd joke thread perfectly describes C++. Also, I have a word for people who can program Java but not C: dumbass. C is about programming a computer, Java is about using a computer.
It's a testament to C's power that it's been around for 30 years, but in that time, the way computers work hasn't changed all that much. Now they're starting to change, and adapting C to them is going to be more difficult and require clunky kludges that will eventually end in C being used like Java, rather than C used to control a computer-machine. That's why now is a great time to write a language to replace C. There are people out there with Linux kernel programming experience that know what this language needs to be, and everybody has 30 more years of experience to use to write the language.
As a bonus, if it were finished soon enough, the Hurd people would have to start over and rewrite everything in the new language.
Like so many other "XML-based" standards, XACML is horribly constrained by the lack of general logical or procedural primitives in XML. As we all know, XML is not a programming language - it was never intended to be computationally complete - yet there seem to be a neverending stream of attempts that effectively try to turn it into one.
It is a fundamental mistake to try to shoehorn semantics which will generally include logic - such as an access control decision - into a language which has no support for them. While XACML "is not intended to form the basis of an authorization decision by itself" it must of necessity include the means to combine and modify rules - hence requiring logical operators which of course have no standard representation in XML.
The specific result is that each attempt to use XML for anything other than the simplest semantics (SOAP, Schema, XSLT, JSP...) must invent its own representations of operators, variables, modules and so forth.
The general result is one unholy mess. We, the poor bloody coding infantry, have to face learning a dozen or more ways of representing the same fundamental concept in a multitude of languages, each supposedly specialized for a narrowly-defined task, but in reality incorporating almost-but-not-quite-all the features of a general purpose language. XML's ugly syntax becomes the least of our problems - that can always be hidden by visual tools or 'generators', but no tool is likely to be able to reunite fundamental concepts fragmented into so many different representations.
Standards such as these do not represent progress, they represent a growing mass of redundancy that one day will have to be refactored into more coherent form. Anyone who studied LISP, or some other language capable of representing the popular data and programming paradigms (logic, procedural, declarative...) will be aware that common ways of representing such semantics have been known for decades. The fact that the practice of XML continues to ignore such basic prior art is an extraordinary indictment of the state of our industry today.
I welcome any explanation from the individuals or organizations concerned as to what obliged them to make yet another idiosyncratic elaboration of the generally incoherent and unusable body of XML specifications.
This is really a bit of a niche domain (in that, system administrators and other folks are interested, most other people aren't).
Basically, in the world, there are many scenarios where it would be VERY useful to be able to enable access controls on various resources in a system. By "access controls", I mean rules which define who can perform actions on given resources. This sounds so general because it is very general. The purpose of XACML is to provide a language which allows you to specify these rules, or policies, in a nice format independant of the rest of the system (data storage, etc) for any number of domains, and provides software to implement the required components for such a system.
As a solid example, you could use XACML, a central PDP, and a PEP on a set of firewalls to control which IPs have access to what. You'd have to write a PEP for the firewalls, and set up a PDP to handle the requests, but once this is done, you could use XACML to write firewall rules!
Another example, suppose you have a user trying to access their email. You could have a PEP in the client which talks to a PDP to determine if the user is allowed to perform various actions on the mailbox (read, write, etc). In this case, you'd use XACML to determine who can perform what actions on the mailbox.
In both of these cases, XACML defines the language PEPs use to talk to PDPs, and also specifies a common XML language for defining the policies to determine who can do what.
In essence, XACML abstracts these concepts of policy enforcement, rule definitions, etc, and wraps them up in a nice XML language which can be used in any component which implements the XACML specificiations for a PDP and PEP. Why would you want to do this? Well, first, it allows you to use plug in in an access control system, rather than having to roll your own. This is good. Second, anyone who implements the XACML standard can interwork. So, I can write a PEP for my email client, and use Joe's PDP to enforce policy in my system. Third, because all your systems now use a single language, you can centralize the policy database and use common tools to manage all of them. An administrators dream!
Now, this is really important people, this has NOTHING TO DO WITH DRM! Or Palladium! Or any other conspiracy theory you want to come up with. This is simply a tool for software developers and system administrators to easily integrate a standard access control framework into their systems.
* Note, in the previous, PDP - Policy Decision Point, and PEP - Policy Enforcement Point.
It's not difficult to check bounds, it just adds an "if" statement before every index is used in the C the compiler is probably written in.
FRAC-TAL
One of the beauties of XML is so many different language bindings exist.
That XML is a lingua franca is frequently asserted but can't be proved. The reason is that XML has no (or more strictly, very limited) semantics.
To say that your application can "understand" XML because it can use the DOM API doesn't mean that it can interpret XACML, or any other XML "ontology". You might just as well argue that you can understand Danish because you can parse the "å" character.
All you are saying when you assert that XML applications can be written in any language is that the semantics of XACML (or whatever) can be mapped to various programming languages.
This feature is shared by any machine-readable language, many of which are arguably better at representing XACML semantics than XML.
Yeah, and this will make it's way to iPlanet or whatever it is they call it these days and that'll be that. If it makes it to core Solaris as Java I'm spitting my dummy and changing OS.
I know more Java programmers than C programmers .... and all C programmers I know program Java now.
... ah forgett it you wont belive it anyway ...
All industry software projects I'm involved in are in
HINT: its not C and its not C++.
Maybe in the world you are in, but if I look on my PC there's not one single application that's written in Java. I write software for embedded systems and that mostly still C and C++ (with a touch of assembler).
Furthermore, an implementation in C would be more useful because practically any platform supports a C compiler, whereas by far not all do support a Java VM.
Not that I think an implementation in Java is bad though. It may be that the majority of apps needing this technology are actually written in Java...
Also, I have a word for people who can program Java but not C: dumbass. C is about programming a computer, Java is about using a computer.
If C is the only language you can write in, then every further word is wasted I guess.
Anyway:
The solution is a new language, written for the technology of today and backported to old computers. It would be as low level as C or lower, and have no functions that aren't reentrant. Perhaps a way of doing objects and better exception handling could be added: closer than Objective C is to C, but implemented on the next level with the new language.
Probably you might look at 'D', the language Walther Bright is working on? See www.digitalmars.com.
C might be an appropriated language for system programming, but that is more or less a shortcomming of our current computer architecture, not a feature of the language C.
Two simple 2 liners like:
int i = 4;
fwrite(FILE, &i, size_of(i), 1);
and
int i;
fread(FILE, &i, size_of(i), 1);
Thats not even portable over different system architectures. And sometimes not even over two different compilers on the same architecture.
If everything looks like a register or like memory your appropriated tool is
But if your problem is not register or memory and not signal processing
Neither is Java, but we have nothing wich is better
At least a Java program or a server component running on an App Server is portable.
And Java offers hundreds of APIs, STANDARDS even, to cope with all cross architecture interoparability problems.
If you would say, PERL, ok, then I only could say: puh, a nerd, writing in a cryptic 'write once, never maintane' language.
But PERL indeed offers nearly everything Java offers. Easy web integration, DB access, portability, speed, text and XML processing etc.
But C?
BTW: writing a linux like kernal is to be done far easyer in Java then in C/C++.
Your post simply shows that you have no clue about Java and that you think you have a clue about C
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Yes, you are right.
... so Java makes no sence. Not because of technology but because of support and installation and configuration.
Java is just emerging in the embedded system area.
I consult in writing enterprise wide IT solutions. If the desktop is involved in that, then Visual Basic is the prefered solution(not by me, but by the customers).
Why? Well, the desktop is Windows, sadly
On my PC the only Java applications are CASE tools written in Java, the IDE, written in Java and the tools, written in Java, like ant, tomcat etc.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Surf the web a little,
do some e-commerce.
Java is all over the place, not in the form of applets, but server side j2ee stuff.
Ever work for anyone that uses Oracle? Well, several thousand companies conduct all of there business with Oracle financial applications. Guess what? There applications use java clients.
Java is definetly not the answer to everything, and I still fail to see its benefit for embedded systems (other than it being an easy language to write with). But it does have its place, and anyone paying attention can see that its still gaining steam.
[Obligatory body]
When will the myth ever die? Java is not a high-level language. Neither is C nor C++. They are all categorized as low-level languages. Being high or low-level has nothing to do with how "good" a language is or how much hype or popularity or evangelism it has. Go study the theory of programming languages.
The level of a language has to do with the expressiveness of the paradigms (concepts) you can use directly in the language. In this regard it can be easily argued that C++ is of a higher-level than Java because it supports the programing paradigm of generics, whereas Java in it's current form does not. But then look at something like Python and it's many higher-level features such as dictionaries (associative arrays), generators, or even built-in infinite-precision numbers and imaginary numbers. In those cases the language allows you to directly express those complex concepts that you have to "program" yourself (or use libraries) using lower level languages. And then you can progress up to languages like Haskell and so forth which are higher-level still.
As another example, it should be obvious that within it's intended problem domain even a language like SQL is of a higher-level than Java, and SQL is still just of some intermediate level. Even some generally unpopular old languages have some high-level features not found in Java/C/C++ like Scheme's continuations or COBOL's PIC formatting or Fortran's matrix arithmetic. I know you can program those in Java, but those high-level concepts are not directly provided by Java.
In the big picture of all the languages out there Java is decidedly pretty far over on the scale of being low-level. Again level is not a scale of goodness, so don't fall into that misconception and use that term as such.
First, you personally don't know me, so don't make stupid assumptions about what you think I know. You're completely wrong.
Second, programmers who only learn Java miss out on the closeness-to-hardware that C offers, and can manage (if they're not careful), to never learn anything about how a computer actually works. You can code Java with no understanding of how a computer works. You can't pull that lazy-shit stuff with C, or at least you can't and write effective C code.
Third, your example of the nonportability of C is not representitive of the language. There are many programs out there that could only successfully be written in C, and they are quite nice and portable. Mplayer is my current favourite example of a C program. It even manages to use the MMX instructions on my PII. Furthermore, that code snippet will work on practically every 32-bit processor (remember, code runs on a processor eventually, no matter how far away from the hardware you try to abstract it) there is, which isn't bad. Java runs only on systems Sun has ported the bytecode compiler/JVM to.
Fourth, with respect to the following statements: Yes, Java has many, many, many APIs, but it still isn't viable for systems programming for various reasons. I don't know the status of native Java compilers, but I don't think any are complete yet. Also, while doing an OS kernel in Java might be easier, it still would have performance overhead (in garbage collection, array bounds checking, etc) that C just doesn't have. C is the language of choice for anything that touches hardware in some way.
Fifth deals with: Yes, but a lot of that sounds like frontend stuff to something implemented in C (incidentally, when I think of fast languages, Java is pretty far down the list).
Sixth deals with: I looked at D a while back when I was on a frustrated-language kick. I stopped looking when I saw it had garbage collection. I want a language that adds no overhead for something like garbage collection or array bounds checking but doesn't have the reentrancy problems C does. You didn't mention reentrancy in your post. Do you know what it is? I believe all reentrancy troubles have been abstracted away in Java (at what hidden cost?). Other languages look neat, but each of them adds overhead in some way. There's a great big list of programming languages at Google. Most of them are either very high level with lots of hidden overheard, or tailored to a specific purpose. You should look at E; it has some neat features for parallel processing, and I hope it gets to the native-code point soon.
Finally, it's important to remember that at some point, all these nice programs everybody can write have to run on hardware. If everybody only knows Java, who's going to write the bytecode compiler? For touching hardware, C is the best option, and C can do everything else as well.
GPL is viral, that's why people are using more and more LGPL or less intrusive licenses.
;-)
... aside from big guys (IBM, ...) but the trouble is that here people from the veryfirst project are no-way aware of existing fork (that can bring good new features as well as raw incompatibilities).
...
;-)
Freedom is good, as long as you've got liberty of choice
Let's face to a reality, how many people in the real world do get a copy of apache HTTPD, modify it and release it under a YAHTTPD ?
IMHO, very few
That's how you came out with YetAnotherREvolutionaryStuff projects ! Wouldn't it be better if before hamering code, people look after improving existing softwares and contributing their job the comunity ?
I asume that it is harder to contribute a clean diff than writing you own spagheti lines ! But at the end, where the use of writing code for the comunity, if we are not able to get benefit from it ?
There should be a way within an opensource licence to prevent useless forks
Not an easy job
I know more Java programmers than C programmers .... and all C programmers I know program Java now. ... ah forgett it you wont belive it anyway ...
All industry software projects I'm involved in are in
Absolutely... I love C/C++, but haven't done anything work-related in it for at least two years now.
Well,
...
... so plenty of time for the /. readers to have picked it up.
... well, Java is meanwhile quite speedy.
... not in C. An example are mobile phones.
:-)
... so a native compiler is only interesting under special constraints.
:-)
... wich I used about 10 years.
some of your words are true some not.
E.g. Bertram Meyer, the inventor of Eiffel, made researches about the efficency of garbage collection by comparing C programs without GC to similar written Eiffel programs with GC.
He found in his researches that the GC of the Eiffel programs where faster (and bug free) than the C programs with hand crafted memeory management.
His conclusion was that a good GC(adapted to the program structure), often based on a gloabl optimization, done by the Eiffel linker, is very much faster than hand crafted code.
If I remeber right, all C programs had memory allocation/deallocation errors anyway
Well, that research is ten years old
Your word about speed
Of course you are right, if you need to access certain hardware you likely will need C. However your assumption that everyone using Java never has learned how a computer works is wrong.
Everybody studying CS at a university in germany learns how a computer works. I asume other universities in the world teach that as well.
I conclude you refer to "self tought" Java programmers. Well, gladly those ignorant self declared develoers use Java and not C, don't you agree?
Some more of your wrong assumptions:
A lot of embedded systems in our days are written in Java
I know what reentrant means. Just for your reference
No, Java has not abstracted reentrance problems away. However it offers language level constructs to tackle it. (the synchronized keyword)
Java to native compilers exist since the first days of Java.
Java VMs exist for nearly any thinkable platform, however Sun only offers 3, as far as I know.
Surely you are still right, as you get C for realy every platform.
Most VMs compile byte code on the fly to native code
If you need an embedded VM and like to talk to Java people who are fully aware of how a machine works, you probably should visit the Wonka web site.
http://wonka.acunia.com/
By googling for "Embedded Java VM" you find a lot of vendors offering similar products.
Anyway, I don't challange your reputation as C developer. However I hope you will meet some profound java developers as well in your life
angel'o'sphere
P.S. I only used C for 2 years and switched to C++ then
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.