Sorry for my ignorance, but again I am curious - what were the attempts, and why didn't that appear in the final version?

For a while the prototype generics compiler implemented this: http://www.daimi.au.dk/~plesner/variance/This extended generics to arrays (also via erasure). While technically very nice, many people had major problems understanding it.

I see a lot of whining, when the reality is - it doesn't bloody matter. Generics does enough good, and only has a couple, well known, issues that ultimately are never going to affect my code. So I'm happy with it.

[off topic]Blah^3 - interesting rant on Apache... I have it seems the exact opposite opinion of them. You can't blame AF for the fact that most open source projects are never finished. There are a few Apache products that I make use of without trouble. In terms of open source projects they have one of the better collections.[/offtopic]

I see a lot of whining, when the reality is - it doesn't bloody matter.

Maybe. I'm still distressed about the increased maintenance costs of people abusing the API's, or partners forcing us to start using them when talking to their API's.

Quote

[off topic]Blah^3 - interesting rant on Apache... I have it seems the exact opposite opinion of them. You can't blame AF for the fact that most open source projects are never finished.

You can blame them for refusing to re-use any / all existing open-source projects and starting again from scratch, thereby wasting lots and ltos of time.

I've used (and continue to use) many ASF projects. At first, they seem great. Over time you come to realise frequently (leaving aside the flagships) that the project had X hours put into it, of which Y would have been saved if they'd not refused to use the pre-existing systems. A total of Z is needed to get to a prodcution usable version (not in any way perfect, just missing any critical bugs in the code used by 90% of people, etc).

Often, X + Y >= Z (approx).

i.e. if they'd re-used other code, they would have finished a good release a long time ago.

Instead, they hit a brick wall where they languish (Velocity, JMeter for example).

That's very frustrating.

Quote

There are a few Apache products that I make use of without trouble. In terms of open source projects they have one of the better collections.

Probably wasn't clear, but ... I think highly of where they're aiming, I've just become bitter at their repeated inability to get there on all these many fronts.

In parallel, I think badly of the Apache webserver, whose design for many years was fundamentally stupid seemingly because - according to comments on the mailing lists - a core of people who apparently couldn't understand simple facts about scheduling overhead and refused to go to a proper server threading model, as used on all server software everywhere else in the world.

I am (or would be, if these things were ever delivered!) grateful and supportive of the philosophy and devotion of people involved, just the actual realised achievements are so depressing.

Finally: this is all gross generalization. There are fundamental flaws in any debate on such a basis; for instance, I don't use their collections at all. It is plausible that you could use a handful of ASF projects and just happen to get the cream of the crop, and have completely different experiences from me.

Most software is shit. Most of the software I write is shit. Mostly everyone else's software is shit. The OS people are kind enough to let us see just how shit. For the rest of all the software there is, we just get to see it behaving shit instead.

I see a lot of whining, when the reality is - it doesn't bloody matter. Generics does enough good, and only has a couple, well known, issues that ultimately are never going to affect my code. So I'm happy with it.

Never say you will never be bitten by Java 5 code! Have a look at Sun Generics forum to see strange new things...

OK, that's not generics only but also autoboxing! This program fails with IndexOutOfBoundsException because it does not translate list2.remove(7) as list2.remove(new Integer(7)), just as it would do for list2.add(7).

Explanation: Including "extends Object" is an ugly trick that causes the compiler to erase the method to"Object min(Collection coll)" instead of "Comparable min(Collection coll)". This would makethe erased method compatible to J2SDK 1.4...

Yes, new Java version is a bastard one and not all marketing hype Sun is employing to say cleaner, safer Java hides the truth: the baby is ugly!

Saw a TV program today about Demetrius. He was a cynical philosopher, and lived from 1 before christ to 63 after.

He thought alot of anger (probably because he worked as a tutor for emperor Nero). He said that anger came from too high expectations , meaning that we humans tend to expect too much and thus be dissapointed when the real world wouldent fufill our expectations .

So the story goes that when emperor Nero demanded that he killed himself, he just took a bath and slith his wrists, with no remorse or anger.

Anyway the morale is. You expect too much of SUN and of software.

Let me put it like this, most of you have been working with software for years. It keeps shrewing up, it keeps being f**ked one way or the other. Why do you keep being surprised?. Why be angry?

Every programmer starts to be fascinated with small programming languages like basic or C. Those languages have a giant seductive power to make a programmer think that everything can be done with a simple instruction like:

x = y + 2

or

if x = 0 then goto exit

And it's true. The problem his that everythig can be done with a URM machine which has only three instructions:

S(n) increment register N J(n,m,i) jump to instruction i if the content of registers n and m are equalZ(n) zero the contents of register n

Soon the programmer starts to realize that the more important question is not really if it can be done or not but how economicaly (in terms of programing hours) the task can be achieved.

After the programmer recognizes the problem he jumps to the next level. He will next try structured programming with functions, subrotines, organized in modules.

This will look like the solution at first. If i can subdivide the problem in smaler problems i can attack any problem of any complexity and turn it into a piece of cake.

This is when the problem becomes the language itself. The programmer starts to recognize patterns in their programs and patterns cannot be well represented as a single function or without changing the language.

The programmer will also recognize the need to control errors in their code when the aplications he creates grow so much that no single person can know all the details or when its important to rotate people and work with code made by others. There is also the problem that people with the right competences is hard to find.

After this the programmer recognizes yet more problems and jumps to another level. This time he will use contract programming and OO language design to attack the new problems he has identified.

Soon contract program will become a limitation because of the language used to define the contracts. OO is not capable to colect all patterns eficiently because OO is just another type of pattern.

So by identifying the new problems the programmer will again dispair and reach for a new level.

This time the programmer will want no restrictions or half-assed solutions. The programmer will want a language that can inspect and write itself; a language with a simple paradigm that will not impose any programming pattern in particular.

Sooner this too will become irrelevant. The programmer will realise the most import thing is not the language itself but the programmers but knowledge of the problem he wants to solve and the elegance of its implementation.

So its perfectly natural for people to have all these complains about Java generics. Java wasn't really made to be the perfect language but just an easy step into the next level.

You can blame them for refusing to re-use any / all existing open-source projects and starting again from scratch, thereby wasting lots and ltos of time.

Blame them? Why should I care if they waste their own time? It's not like I paid them to finish a project for me.

Quote

I've used (and continue to use) many ASF projects. At first, they seem great. Over time you come to realise frequently (leaving aside the flagships) that the project had X hours put into it, of which Y would have been saved if they'd not refused to use the pre-existing systems. A total of Z is needed to get to a prodcution usable version (not in any way perfect, just missing any critical bugs in the code used by 90% of people, etc).

Often, X + Y >= Z (approx).

i.e. if they'd re-used other code, they would have finished a good release a long time ago.

Instead, they hit a brick wall where they languish (Velocity, JMeter for example).

Velocity is one that I recently started using. It works well enough for me as it is. So I don't care that it wasn't active for a while. That is the open source way after all. If you need it to do something more you can (and often have to) do it yourself.Velocity has started moving again. But the point is that it's the same everywhere. People working for free can't keep at it forever. Velocity hit a wall and then eventually found someone else to take on some tasks.

The fact that somebody else could have done something better is always going to be true. If you are worried or frustrated about that you will always be frustrated. Take what they have given you (for free) and use it to your advantage. If you can do better join the project or shut up.

Never say you will never be bitten by Java 5 code!...OK, that's not generics only but also autoboxing! This program fails with IndexOutOfBoundsException because it does not translate list2.remove(7) as list2.remove(new Integer(7)), just as it would do for list2.add(7).

It works EXACTLY as I would expect. LinkedList has a remove(int) method and that is what is and should be called. The only people that would be bitten are those that don't read the docs or don't use an IDE that would show them exactly what method they are calling.

Again it works as expected. == compares object references so naturally there isn't really any reason to expect the comparison above to evaluate to true. Anyone that programs in Java knows enough to use the Object.equals(Object) method instead.Those knowing a bit more will recall that Integer objects are immutable and so the optimization of returning the same instance for a few common values (in this case small numbers like '2') are a valid optimization that is present in the current implementation.

Quote

Or generic presumably simplifying the code and making it safer. I like this definition:

Explanation: Including "extends Object" is an ugly trick that causes the compiler to erase the method to"Object min(Collection coll)" instead of "Comparable min(Collection coll)". This would makethe erased method compatible to J2SDK 1.4...

Yes, that indeed looks scary.

Quote

Yes, new Java version is a bastard one and not all marketing hype Sun is employing to say cleaner, safer Java hides the truth: the baby is ugly!

The baby is more complicated than it was before. Try adding features without becoming more complicated. Let me know when you've figured it out.

If generics confuse you, avoid them. You can use C++ without templates too. I'm not saying that things couldn't be better. I'm just saying that the situation is far from the dire state of affairs that this thread seems to indicate.

The fact that somebody else could have done something better is always going to be true. If you are worried or frustrated about that you will always be frustrated. Take what they have given you (for free) and use it to your advantage.

Sure, I was just explaining my comment that they are IMHO people I don't trust with making decisions about what is good for java-the-language and what is acceptable implementation for new feautres and whether those features should go in at all, etc.

Quote

If you can do better join the project or shut up.

Shrug. I donate stuff to a lot of open source projects, and I spend a lot of time trying to explain to them the stupid mistakes they make (like when some projects are simply offensive to people trying to help, or when Mozilla's BZ has an impenetrable submission form FOR NO REASON). But I still get to be disappointed when intelligent people waste time doing things badly that they could have done well and got more out of that way .

If you have 20 MS Word docs open, and 20 webpages open, you have precisely TWO (argh!) apple-tab entries. Under all other OS's, you get 40.

That's because other OSes suck. Under Macs, you Apple+Tab to the Application you want, then you Apple+` (back tick) to the window you want. So instead of a worst case of O(n-1), you have a worst case of O((applications-1) + (windowsPerApp-1)). In most situations, it's a HUGE improvement! BTW, just add the shift key if you accidentally pass an app or window. :-)

BTW, another cool Mac trick is an accessibility thing that works great for developers. Need to get a zoomed view on that graphic? Just hit Option-Apple-* to turn on the zoom mode, then hit Option-Apple-[+/-] to zoom in and out on the mouse cursor! Great for eye strain, too!

That's because other OSes suck. Under Macs, you Apple+Tab to the Application you want, then you Apple+` (back tick) to the window you want. So instead of a worst case of O(n-1), you have a worst case of O((applications-1) + (windowsPerApp-1)). In most situations, it's a HUGE improvement!

I'm not convinced that approach is superior, although (now that the unobvious shortcut has been magically revealed to me) I agree it's no worse; if it supported all variants, then it definitely would be superior.

I have in mind the frequent situation where you are cycling between two windows in one app and one in a second app; alt-tab lets you not have to stop and think which app each is in.

It;s like winXP's crap "collapse all apps into one task button": most of the time, the normal sane user doesn't give a monkey's which application they're using (nb: something known for decades which mainstream OS's still haven't quite realised: people work with *documents* not *applications*). I have often seen people do "the wrong thing" (hit kb shortcuts etc) for a document because they were thinking about what they were typing rather than about which application the current document was in.

Thanks for enlightening me; hopefully I'll find the dual tabbing system works for me and doesn't prove confusing.

Quote

Need to get a zoomed view on that graphic? Just hit Option-Apple-* to turn on the zoom mode, then hit Option-Apple-[+/-] to zoom in and out on the mouse cursor!

Thanks for all that, too. For all it's much-vaunted user-friendliness, OS X is surprisingly nasty to new users...

For all it's much-vaunted user-friendliness, OS X is surprisingly nasty to new users...

When I first got my powerbook I was also frustrated that all these shortcuts were hidden and I had to search high and low to find out about them (http://macosxhints.com/ proved to be a good place to visit for the first few months of Mac ownership).

I think the reasoning though is that it is specifically NOT nasty to new users. The typical Mac user is someone that simply doesn't want to know all that stuff. At least not at first - it can be overwhelming. Let them get comfortable with the simple UI concepts and then they can gradually discover shortcut keys and such.

As a power-user you feel like your hands are tied when you aren't aware of the useful tips and tricks that you knew on Windows. So a Mac seems nasty only to the advanced users that might know enough to think that they are missing something. But Macs have addressed the needs of the power users too. A unix shell after all is not something the typical user would ever want to deal with (and a command line was not present at all on Macs until OS X).

Now if I could just manage to dig up the 1,500 + dollars for a PowerMac capable of *fast* video editing/compositing, I'd be set.

If you are at all serious about fast video editing and compositing then you need to spend the money, it's that simple.

I have been working in the professional video industry for about 10 years now, writing code and APIs for hardware that gets used by everyone from major film studios to people doing wedding videos in their basement. The equipment to do that stuff properly is not cheap.

In fact something like Final Cut Pro or Express (HD) on a decent Mac is pretty darn good for the price. Similar systems I've worked with for Windows are much more expensive, with custom hardware for video capture and playback in professional formats, with realtime hardware effects, integration with professional compositing systems and all the fancy bells and whistles. With that stuff, the computer is the cheapest part. The Mac solution is very competitive.

It also has abosolutely nothing to do with Sun's crappy generic implementation.

If you are at all serious about fast video editing and compositing then you need to spend the money, it's that simple.

Yeah, but I already have a fairly good PC, and I can upgrade it for less than buying a new Mac. I want a mac, I just can't afford it.

Me and my friends are going to make a very hi-quality indie film this summer, so I'm saving all my money for a prosumer video camera. After buying that, I won't have any money left over for for a Mac system.

Quote

I have been working in the professional video industry for about 10 years now, writing code and APIs for hardware that gets used by everyone from major film studios to people doing wedding videos in their basement. The equipment to do that stuff properly is not cheap.

Tell me about it.

Quote

In fact something like Final Cut Pro or Express (HD) on a decent Mac is pretty darn good for the price. Similar systems I've worked with for Windows are much more expensive, with custom hardware for video capture and playback in professional formats, with realtime hardware effects, integration with professional compositing systems and all the fancy bells and whistles. With that stuff, the computer is the cheapest part. The Mac solution is very competitive.

I'd love to, but like I said, after buying the camera I won't have money for the awesome mac system

Quote

It also has abosolutely nothing to do with Sun's crappy generic implementation.

Nope.

It's time to prove to your friends that your worth a damn. Sometimes that means dying; sometimes that means killing a whole lotta people.

Adobe Premiere (:-/) and Combustion for compositing (much nice than AE) is the current plan.

[quote[The products I've worked with in the past are those of DPS (now part of Leitch), makers of dpsReality and Velocity editing software, as well as Eyeon Software's Digital Fusion (nice compositor)[/quote]

I'll check them out.

Quote

If you are on a budget I know that Avid was giving away a lite, DV-only version of it's editor.

Ok, thanks man.

It's time to prove to your friends that your worth a damn. Sometimes that means dying; sometimes that means killing a whole lotta people.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org