Neal Gafter On Java Under Oracle 130
An anonymous reader writes "Microsoft's Neal Gafter, who was primary designer and implementer of the Java SE 4 and 5 language enhancements and now works for Microsoft on .NET platform languages, discusses the impact of Oracle's acquisition of Sun on Java, makes the case for adding segmented stacks and a meta-object protocol to Java, and offers some insights into how Java and C#/.NET compare."
The first couple of answers meander a bit, but after that the interview picks up and is a pretty good read.
Shills (Score:5, Insightful)
I gather he drank the kool-aid when he went through the door. I'm halfway through the interview and its basically ".NET is better than Java"
Re: (Score:1)
Well it doesn't take shilling to know that it is better than java under most circumstances.
Re: (Score:2)
Well it doesn't take shilling to know that it is better than java under most circumstances.
A little bit more quantification and qualification of these would be in order, not unless you have a tendency to pull one of these (courtesy of S. Harris) when building up arguments:
http://www.sciencecartoonsplus.com/gallery/math/math07.gif [sciencecartoonsplus.com]
Re: (Score:3, Insightful)
Re:Shills (Score:4, Insightful)
At least he explains why. MS has way more resources than Sun ever could manage. It surprises me that Java even got out the door, honestly.
Also recall that MS hired the best and brightest away from Borland a few years before the inception of .NET. And look, the best of them (Anders) architects C# now.
It might also have something to do that when C# turned up, Java was already a mature language and approached the various problems. Of course, if you do something later, you learn from previous attempts, so it couldn't be worse just from that fact. Since C# never aimed to run on non-windows, it's also not a fair comparison of designs, because the goals were different.
Re: (Score:3)
Since C# never aimed to run on non-windows, it's also not a fair comparison of designs, because the goals were different.
Plain wrong. C# is a platform-agnostic language with a standards-defined specification [ecma-international.org]. The CLR and CIL specifications are also 100% platform independent.
What is tied to Windows is Microsoft's implementation of their CLR and CIL compiler. This is what Mono implements for other platforms.
Re:Shills (Score:4, Insightful)
The MSIL output is loaded with calls to win32 and COM/DCOM. .NET was designed for Java initially. When talks with Sun failed C# was made to run only on Windows and use the .NET API instead.
In essence it was made to quickly be a defacto .NET language tied with Visual Studio. Sure you can use Mono C# but what is the point of not using .NET? The reason why C# apps can't be recompiled on Linux are simply winforms by their very nature are abstraction layers of Com/DCOM. Add then threading and networking and it probably has more ties to things like NDIS and VMS/NT style threads and other nasties. You have to emulate Windows to get anything done.
Sure the spec is free and I think Moto (can't remember exact name) was made for FreeBSD that was an acutal C# compiler but it did not create MSIL or use .NET.
If free software advocates are serious they need to invent an alternative to .NET and some tools to make it competive before Mono can be taken seriously as a cross platform tool. Reinventing .NET and Winforms is a losing battle that will make many programmers switch to Windows and stay there for development costs.
Re: (Score:2)
If I remember correctly, the project was code-named Motor, and Microsoft partnered with Corel to release a commerical version of it.
Didn't go very far.
The compiler did create MSIL (it was targeted for the CLR, and MSIL is the low-level assembly language of the CLR), and had the basic .Net libraries, which were much smaller then. This core is still quite portable, but it is a much smaller part of the the whole .Net platform now.
The basic point does remain, that there is a significant effort in bringing the w
Re: (Score:2)
Agreed, but only in a theoretical sense and only if you're talking about the language specifically. Microsoft's .NET efforts were focused on Windows (at least until XNA and compact framework came along). That's reflected in the API and development tools (hello VisualStudio). You've got to think that Sun might have spent more energy on innovation if they
Re: (Score:1)
Not even Microsoft uses WPF. Why should Mono bother implementing something that's not their goal. Most of .NET code is business logic, back end, etc. with boring UI just like Java (up until they introduced Silverlight).
And Mono implements many things that Microsoft .NET does not implement. Language concepts are fully supported, APIs are not. Do I care about the Windows API on Linux? No, I care about GTK# bindings, Unix bindings, etc.
Re: (Score:2)
Not even Microsoft uses WPF
Visual Studio?
Re: (Score:3)
Re: (Score:3, Insightful)
The current version of C# (4.0, from 2010), has no standard defining it, besides its Windows-only implementation.
Re: (Score:2)
Plain wrong. C# is a platform-agnostic language with a standards-defined specification [ecma-international.org]. The CLR and CIL specifications are also 100% platform independent.
You honestly think that Microsoft never making a non-windows part of the VM wasn't part of the Microsoft intention to make it a Windows language? The reality is that C# IS a Windows language. You're either very
Re: (Score:2)
Erm, great - so where's that 100% compatible version of the CLR and libraries that can seamlessly run any .Net app built making use of the 'official' libraries on windows, linux & unix (x86, x86-64, ARM variants of both),
Oh, right. Java is still the only place to get that. If you build using standard .Net 3+ libraries, you're limited to Windows platforms. At least you'll get ARM architecture back under Windows 8...
The CLR and CIL specs were submitted for standardization for PR purposes only. If they
Re: (Score:3)
At least he explains why. MS has way more resources than Sun ever could manage. It surprises me that Java even got out the door, honestly.
Also recall that MS hired the best and brightest away from Borland a few years before the inception of .NET. And look, the best of them (Anders) architects C# now.
It might also have something to do that when C# turned up, Java was already a mature language and approached the various problems. Of course, if you do something later, you learn from previous attempts, so it couldn't be worse just from that fact. Since C# never aimed to run on non-windows, it's also not a fair comparison of designs, because the goals were different.
I've been a Java/EE developer for the last 12 years, and Java has given me a good way to put food on the table, but even I have to say that this is just not true, and that is not the case here. C# has become a superior language over Java because C# has been lead by more pragmatic PL designers than Gosling ever was. Not to take away from Gosling's genius, but his major contribution by now has become the VM, not the primary high-level language running on top of it (Java.)
The design of C# has been more than
Re: (Score:2)
Sun had lots of capital in the 1990s and made billions in revenue when Java was in development. It was before NT slaughtered them and before the great recession and when Wall Street had faith to invest in Sun. I think Java was very well designed for its time in the early 1990s. Sun's obsession with making sure it had to be run on a VM with no executables killed it. Sun wanted software to run on Solaris more than having it mult-platform in a successful way, as many would write java programs but make sure the
Re: (Score:2)
Java and .Net (that's .Net the runtime library, not ASP.Net or any of the confusing array of other stuff called .Net) have been leap-frogging each other for a while now. C# with .Net 4 was "everything in Java 6, and some better stuff". I hope Java 7 is "everything in .Net 4 and some better stuff", but I haven't studied it yet.
Certainly the competition between these languages has been great for developers using either!
Re: (Score:2)
Java 7 is, unfortunately, extremely lack-luster. That, combined with whOracle in charge, doesn't bode well IMHO.
If only MS actively supported cross-platform .NET, so we had an alternative to Java...
Re: (Score:1)
The sun is setting on Java indeed. (no pun intended)
Java will exist as Cobol exists for many decades on crappy intranet apps for IE 6 and for newer mainframe and as/400 apps. I learned true object oriented programmimg on it after I had issues with C++. Java takes millions of lines of code to get anything done in any moderately complex web apps vs PHP and even ASP.Net.
It is a shame as it hurts Linux, but many companies are willing to drop down $100,000 in licensing fees for IIS, SQL Server, and Windows Serve
Re: (Score:2)
The sun is setting on Java indeed. (no pun intended)
Java will exist as Cobol exists for many decades on crappy intranet apps for IE 6 and for newer mainframe and as/400 apps.
What does IE 6 has to do with intranet apps, COBOL or Java? And what's wrong with enterprise computing in big-iron hardware? And who the hell develops in AS/400 anymore? Do you really know what you are talking about?
I learned true object oriented programmimg on it after I had issues with C++.
Strange, I thought one learned OO modeling (not just programming) on a language agnostic way. Also, as a person has worked with C++ (and C) and Java and other OO and non-OO languages, this statement makes no sense to me at all.
Java takes millions of lines of code to get anything done in any moderately complex web apps vs PHP and even ASP.Net.
Fortunately, the bulk of Java development is not on web apps alone. A
Re: (Score:1)
Re: (Score:2)
Go for scala
I suggest you listen to episode #44 of the Basement Coders Podcast : http://basementcoders.com/2011/09/episode-44-david-pollak-scalas-not-for-the-proletariat-hp-touchpad-is-resurrected-rss-is-poisonous-javaone-winner/ [basementcoders.com]
Re: (Score:2)
The sun is setting on Java indeed. (no pun intended)
Java will exist as Cobol exists for many decades on crappy intranet apps for IE 6 and for newer mainframe and as/400 apps. I learned true object oriented programmimg on it after I had issues with C++. Java takes millions of lines of code to get anything done in any moderately complex web apps vs PHP and even ASP.Net.
It is a shame as it hurts Linux, but many companies are willing to drop down $100,000 in licensing fees for IIS, SQL Server, and Windows Server over free Linux and Java because of the productivity gains and pro MS inertia by the MBAs in I.T. departments.
Me I am ready to abandon Java on a website I am creating and I am seriously considering C# or PHP if licensing is too expensive. There is no need to start a new project in Java as it is like starting a new project in cobol. Why?
This is a clueless post.
Indeed. It has 'i-know-only-makes-little-web-appz' written all over it.
Re: (Score:2)
Well yeah, but it is. In what way except licencing do you prefer Java?
Re: (Score:2)
Better cross-platform compatibility. Mono just plain sucks.
Re: (Score:2)
Yes it does.
I mentally clumped that under licencing because I think Miguel can't attract developers due to fear of MS's control, but you're right - that is a reason to develop in Java.
Re: (Score:2)
* Better tooling support (ant, maven, grandle, open source plugins),
* free IDEs (Eclipse, Netbeans, IntelliJ, for C# you only have VS),
* more open source libraries, and more active open source community
* simpler language that doesn't change with each version,
- checked exceptions
- no struct/class
- no op-overloading
* it's cross-platform (I can run my applications on all Windows versions, all Linux distributions, on MacOS and on the BSDs if need to, while developing exclusively on Linux).
* support for multiple
Re: (Score:1)
Very good summary.
I would add that .NET has much better multiple language support as Scala and Jython are not mature as Lambda is going to be added in Java 8 officially. Iron Python is python for .NET and I believe more languages too have .NET support. That makes it sweet as anyone with a different language can share code as one executable with .NET. Some people were hoping gnome shell 3 would be .NET based a few years ago on Mono as it would help multiple language support and finally give C# apis so it is
Re: (Score:2)
> Tool support
There's an awful lot of .net tools available. Whether they are better is subjective.
> Free IDEs
VS is effectively free. You only pay for the professional version which isn't needed by most people. There's also MonoDevelop though it's not at the same level.
> More Open Source Libraries and community
Well yes, but I could say "More libraries" and a larger community. Obviously .net is less popular with Open Source proponents.
> simpler language that doesn't change with each version,
I'
Re: (Score:2)
> VS is effectively free. You only pay for the professional version which isn't needed by most people. There's also MonoDevelop though it's not at the same level.
Yes most stuff from MS is "effectively free". But you are always a second class citizen if you use the free stuff. With Java and Linux I have the first class software for free, the same software that Google, Amazon and FB is using.
For me it's more psychology. If I use the crippled versions, I always feel that I'm missing something and always to
Re: (Score:2)
My feeling with MS stuff was always that I'm a second class citizen, only because I don't have money to buy the full version. Yes, the limitations are not "unreasonably" but they are in place. You always have the feeling in the back "and if I build something awesome, I have to buy the full version". Or "in the end I have to buy the full version anyway".
What me struck with Linux was that I have all the enterprise ready tools and all are free and without any limitations. Lampp server, email server, Java EE se
Re: (Score:2)
Re: (Score:2)
I gather he drank the kool-aid when he went through the door. I'm halfway through the interview and its basically ".NET is better than Java"
Java and Lamp's advantages have more to do with deployment simplicity then quality of language. C# is a better language, but there's so much more to a development platform then the language or even the VM. With PHP you can just open the script in any text editor and change it without having to recompile. Java has a much more robust open-source / Linux deployment scenario compared to Mono.
Having used PHP, C#, and Java, I'll gladly state that even though C# / .Net is the best language and VM; Java and Lamp ar
Re: (Score:2)
I gather he drank the kool-aid when he went through the door. I'm halfway through the interview and its basically ".NET is better than Java"
Java and Lamp's advantages have more to do with deployment simplicity then quality of language. C# is a better language, but there's so much more to a development platform then the language or even the VM. With PHP you can just open the script in any text editor and change it without having to recompile. Java has a much more robust open-source / Linux deployment scenario compared to Mono.
Having used PHP, C#, and Java, I'll gladly state that even though C# / .Net is the best language and VM; Java and Lamp are often a better fit for what people are trying to make.
Bingo. Finally someone who summarizes the Java/C# state of affairs rather well. I've been doing Java for so long (and tired of its verbosity) that I'm just enamored with C#'s way of doing things. It is simply a better language. But as you said, language itself is not the only factor to take into account when creating and deploying solutions.
I cannot say that Java and LAMP-based solutions are often a better fit for what people are trying to make (since I've seen truly large scale MS-based solutions that w
Re: (Score:2)
Why does that require drinking the kool-aid? It's actually the truth nowadays.
Java has stagnated in recent years, not least because of the Oracle takeover of Sun. .NET has kept moving at a better pace, and because of that it has left Java behind in a few areas. It also had the advantage of being built after Java such that it could avoid some of Java's shortcomings in C# - operator overloading, cleaner method of integrating unmanaged code etc.
In the early days Java was certainly still better anyway, but now?
Re: (Score:2)
Or maybe that that they want portability that isn't reliant on rubbish like Mono.
Re: (Score:2)
The parent is clueless.
Java works just fine in Linux and Windows. Even for complex GUI apps (try IntelliJ IDEA sometime).
Re: (Score:3)
On Java, under Oracle (Score:3, Funny)
( Oracle )
nealgafter
( J a v a )
Java 1.4 (Score:2)
Pedantry, but there was no Java SE 4. Confusingly it is Java2, version 1.4. Then they went to Java 5, 6, 7, but kept the internal version number as 1.5, 1.6, 1.7, and it's still "Java 2 platform, standard edition".
Technically correct, but not worth dignifying it.. (Score:3)
Pedantry, but there was no Java SE 4. Confusingly it is Java2, version 1.4. Then they went to Java 5, 6, 7, but kept the internal version number as 1.5, 1.6, 1.7, and it's still "Java 2 platform, standard edition".
Yeah, but with respect, while Slashdotters may be pedantic on occasion (and gratuitously so), you can normally argue that there *might* be a point.
Whereas Java's stupidly inconsistent naming and numbering scheme over the years reflects nothing more than a succession of pointless changes made by stuffed shirts in marketing to justify their jobs, cosmetic changes for changes sake that did nothing but confuse things. (*) Actually worrying about the "correct" nomenclature when everyone knows what is meant see
Re: (Score:2)
Oh sure, I couldn't care either - other than the version number has been ridiculously inflated to meaningless proportions! :-)
+1 Informative (Score:2)
I respectfully disagree. I care.
I've had several nasty experiences with Java, and while I am onboard with the concept and will support java initiatives in the enterprise.. the stunts they have pulled over the years does not help. Not at all.
And yes, if you are 'in the know' then you are FINE. If you are not, or are not technical.. it's really confusing and does not help when presenting technology options to a bunch of PHBs.
So, I'd mod leenks up .. this is a good point to discuss and is very relevant. Consid
fair and balanced (Score:1)
As a Microsoft employee I'm sure he'll give a fair and balanced review with no influence in comparing them. You know, like the Microsoft "Get The Facts" comparison between Windows and Linux.
Re: (Score:2)
Sorry, no Segmented Stacks (Score:1)
All this engineering mubmo jumbo about segemented stacks is for weenies. Languages Features are the most important part of a language, how it runs isn't important anymore.
Re: (Score:1)
All this engineering mubmo jumbo about segemented stacks is for weenies. Languages Features are the most important part of a language, how it runs isn't important anymore.
Yeah, and all this talk about automated memory management (garbage collection) and array bounds checking is for weenies too.
Seriously, safety from stack overflow is a language feature, just like reliable tail recursion.
Re: (Score:1)
Re: (Score:2)
I missed them too. They're invisible for HTML rendering.
Still no way for overloading operators?? (Score:2)
Re: (Score:1)
Sure there is. It's called Scala.
Re: (Score:1)
Java was designed to be cleaner than C++ and easier to develop and read. Operator overloading can be abused just like pointers and casting. What Sun did was write down a list of things bad in C++ and make sure they were gone in Java.
You can use pointers and casting in Java, but you need to use the api to do it for you.
Re: (Score:1)
How is operator overloading any worse than creating a member function that does something contrary to what the name says? Eliminating something entirely because someone could do something wrong is idiotic.
Re: (Score:2)
Next time you'll want custom operator precedence.
Re: (Score:1)
Re: (Score:2)
If the fact that the nobody is using it isn't a problem ...
Re: (Score:2)
I don't know D well enough. What I saw it was nice.
I've programmed quite a bit in Prolog, and it has custom operator precedence, and I think it has it's place in creating DSL-s, but I don't see it's value for general purpose programs. Also, Prolog has Lisp style macros, and it can make things much harder to understand, when used liberally.
Also, Java is simply a good enough enough language. And in it's time it was pretty innovative (i.e. stealing for the right places and packaging it nicely). C# is awesome,
Re: (Score:2)
I feel operator overloading is one of those features that is mis-categorized as being fundamentally bad when in fact it was only temporarily bad. I suspect that a lot of people got giddy when the feature was popularized by C++ and wrote a lot of bad code as a result, but with time and maturity people have learned how to handle this feature sensibly. My evidence? C# supports operator overloading and I've never seen
Re: (Score:1)
Java has operator overloading it's just taken away from the programmers. String concatenation with + is done through oppressor overloading. Unfortunately the java designers think no one else should be able to do so to stop them from doing.bad things. But then again these are the same people who develop the jvm which is doing its best to pass flash as being the most exploitable piece of software running on your system so maybe they aren't the best to be.lecturing others on bad practices.
Re: (Score:2)
Re: (Score:2)
No, the + operator implies commutivity. Not all do. Division doesn't. >, >, don't. I agree that you shouldn't use + for string concatenation because it isn't commutitive, but there's no reason other operators can't be overlaoded, or that + couldn't be when the result is commutitive.
Re: (Score:2)
Re: (Score:1)
So that's why it was bad for the Java developers to overload the + operator for string concatenation, right?
Re: (Score:2)
Re: (Score:2)
the reason that java still does not allow or never intended you to overload operators? Simply because they say so and that's that.
The reason Java does not allow operator overloading is to make it harder for rookies to shoot themselves or others in the foot. Same as Java's typing; duck-typing is more powerful, but more subject to pebkac errors.
Re: (Score:2)
Re: (Score:2)
Do we scale down the language to the point of developers not having to debug their errors or perhaps no mechanism for a program to even crash?
Not in all cases. There is a time and place for a language like that. Squeak comes to mind; an outstanding environment in which to start kids off with programming. But I don't think most production languages should be like that.
I think production languages should run the spectrum from Squeak to pure Lisp (or whatever is on the "OMFG that's peculiar and powerful" end o
Re: (Score:2)
to make it harder for rookies to shoot themselves or others in the foot.
It's amazing how few geeks understand why this makes Java so successful. So many languages are written for the right tail of the programmer-quality bell curve, while Java aims for the large area in the middle. That, and it works reliably - one time I ported a network analyzer to Linux using JNI and the damn thing just worked.
Re: (Score:1)
Compare to Smalltalk - once you decide that everything is an object, you pretty much have to either support operator overloading, or not support operators at all.
Java on the other hand has both primitive and object types, each with a distinct set of operators. That is, aside from the awkward case of '+' for string concatenation, and the effects of auto-[un]boxing, and maybe some other bits and bobs I've forgotten about.
But note that the operators provided for primitives are all 'numbers'-related, since the
Re: (Score:2)
And i quote: "There are some things that I kind of feel torn about, like operator overloading. I left out operator overloading as a fairly personal choice because I had seen too many people abuse it in C++" - In other words no operator overloading because he himself d
sorry - REAL link with gosling here. (Score:2)
Re: (Score:2)
Re: (Score:1)
Yes a very stupid reason since they overloaded the + operator themselves. Apparently they are the only people who are allowed to do so bring such gurus. Especially since it's just as easy to do the same bad things with regular member functions as can be done with an overloaded operator.
Re: (Score:1)
Well sort of - you can '+' two String instances together, but String is really a primitive type that acts like a class.
So in that sense this is no more overloading than is allowing '+' to stand for both integer and floating-point addition.
Re: (Score:1)
java? let it die in peace please. (Score:1)
Re: (Score:2)
And even if 5% of the non-paying Java users out there decide to convert to some future paid-java enterprise license version, Oracle ends up winning :(
Re: (Score:1)
Please, you are just spreading FUD and garbage just to stir crap up, so shut the F up. The only way Oracle can be harmful is to simply not update Java. It's GPL'd, so Oracle can't close it off. Please educate yourself.
Re: (Score:1)
C, c++, ruby, python, scheme, d and the list could go on and on. Last time I checked those all still existed and weren't magically disappeared.
Re: (Score:2, Insightful)
Re: (Score:2)
It might be GPL'd, but what about involved patents? Considering how Oracle is playing, I'm mentioning the P word isn't entirely FUD :(
What about the patents Linux .NET
What about the patents Windows
What about the patents OS X
What about the patents
What about the patents Java
What about the patents etc.
Is this the new "think of the children"? Patents are everywhere. Oracle is well defended, so are the others. Take your pick and move on.
Re: (Score:2)
Oh, I'm not afraid of Java being targeted by others - I'm afraid of what stupid moves Oracle might pull in their typical short-sighted near-future-revenue kind of way. IMHO suing Google over android/dalvik isn't exactly helping java.
My post above is missing a "afraid" between "I'm" and "mentioning", btw.
Re: (Score:1)
You know it is frustrating because if Java looses so does Linux and Windows wins and becomes more entrenched. Php is the only choice left and web servers are the only servers left running Unix as Windows is eating up everything else in site.
I like to daydream what an alternative universe is like if the DOJ got their way and split MS into 3 companies 12 years ago. C# and .NET are really great and if they existed on Linux the world would be a better place. If they were split my guess is today we would have la
Re: (Score:1)
I hear there's this new thing called mono that brings c# and .net to linux.
Re: (Score:2)
I hear there's this new thing called mono that brings c# and .net to linux.
You really only just "heard" that of this "new" Mono, or you were just being so wittily sarcastic and implying that it's a good solution?
It's a great solution!... If you don't mind it being condemned to being perpetually behind the curve, that is, catching up to Microsoft's current version and almost getting there (if they're lucky) around the point that MS release the next one, which they- of course- have a head start on.
And if you don't mind all the bits that are- in the real world- needed for compati
Re: (Score:2)
mono brings a partial (and buggy) implementation of .NET to linux, that no corporate IT department will let near their systems because it is practically impossible to get any meaningful support for, and is not endorsed by MS as a .NET implementation. Wake me up if that changes.
Interesting interview (Score:1)
bizare: int i = 1+1+1+1 ... (Score:2)
The guy seriously thinks about some hanging-on-by-bleeding-fingernails edge case stuff.
I just don't see it being relevant to any real world situation.
From the part where he says "I work with compilers..." and, you know, just do int i = 1+1+1+1 a few thousand times... and it will blow the stack. Help me understand why anybody cares if that doesn't compile?
Here's the quote (emphasis added):
I work with compilers and it's easy to crash the Java compiler just by writing, you know, int i = 1+1+1+1 and just do that a few thousand times. And the semantic analyzer will be trying to analyze that, or the parser will be trying to parse it and it will just blow the stack.
And what happens is, the process crashes.
You know, there's no good recovery from that. And you can fix it by [saying], "Well, we start over again but I'll just allocate more stack". The problem is, you can't necessarily know ahead of time how much stack to allocate to any given thread.
Re: (Score:2)
Java on z/OS already has segmented stacks (Score:1)
haha - - (Score:2)
I read this as. .
"Submission: Neal Gafter on Java"
That sounds about right.
Re: (Score:1)
It's IT. Everything that is "over" (Mainframes, Dumb Terminals) will be the "next big thing" a while later under a different name (Cloud, Web2.0 Clients)
Re: (Score:3)
At least, we keep being told that by MS people and blogs and Channel 9.
Really? No. Not really.
Re: (Score:2)
Re: (Score:2)
I'd be careful with compiler-only changes to Java. Given the proliferation of frameworks that do dynamic magic with the VM, the VM should in many cases be altered. I may remember the exact details of the below slightly wrong, but you get the point.
In Java there are basic types and classes, and there are equivalent basic types and class. There is bool and there is Boolean. People got a little tired of boxing bools in Booleans and unboxing, so Sun added auto-boxing and auto-un-boxing. When writing code, my bo
Re: (Score:2)
Anders had many years of reflection (arf) to ponder over too. Additionally, Sun went out of their way to avoid breaking backwards compatibility where possibly. The other organisation not so much.
Re: (Score:2)
Re: (Score:2)
Disclaimer: I'm experimenting on a Java compiler with reified generics. It seems to be possible to have reified generics on the current JVM, but it's neither pretty nor quite as powerful as in .NET.
You have to mangle type names - just storing type arguments in a variable is not enough to make inheritance work correctly (so you can inherit both from IList and IList interfaces, for example). And if you open the name mangling can of worms then you have a whole lot of problems:
1) When should be parametrized cla
Re: (Score:1)
(an article by the same author as TFA on the subject [blogspot.com].)