Some of the best comp sci people Ive ever worked with came from Romania and Russia (I am Austrian btw. have been groing up in the west).
I guess one reason for that is, the prolongued, we have to code lots of stuff in assembler period, which was way over in 1990 in our countries, most of them had to wait until 1995 until the situation was at the point they could afford better stuff.
The other thing is, that unlike the west, who has been celebrating half criminal business people and even more criminal laywers as heroes and basically has been slamming technical people since the mid eighties as freaks, nerds and whatever, in the old soviet union (which was until 1990) mathematicians and technical people were very highly regarded and it was a good career path (my current girlfriend had a father who worked in nuklear research and a mother who basically was a computer technitian) for both genders.
Things have changed by now as well, but that those things are still sort of a aftermath of those years. The reason why the SU never took off technically was because of the communists who basically had the researchers but lacked the mentality and the funds to give them a breeding ground for ideas, also my personal guess is that many of them were thrown into jail as well once they started to criticize the system, which always happens with intelligent people (one of the reasons why a downgoing society starts to beat the bright ones, who usually dont have the mentality to fight back, because they scare the ones in power).
Over here we have different problems, and it sort of is a wonder that we came that far, because the treatment the techies have been given generally is not that good, we probably will see the aftermaths of the current, we dont develop anything we just buy the stuff period in a few years, when the first corporations will crumble because they have become obsolete brands which will be slowly replaced by once outsourcing companies.
Actually subversion has a commerical backing. But those who wrote the thing simply wanted to keep the fanboys out of the LKML. And they are right in their analysis, they have a kicksass version control system but their approach is not suitable for the needs of the Linux kernel developers.
What Linus and others really need is a highly distributed system and subversion (even SVK) is not exactly that, SVN is more like a drop in replacement for CVS without the problems CVS has, and it has its fair place in the world, and most who use it love it.
The answer is just the style the people who do subversion generally have, very honest and professional.
Well... women spend the money on shoes, to find somebody worthwile to have a child with, while they meet only man normally who want to screw and them dump them:-)
Which in the long run would indicate, that if somebody would invent artificial women the shoe industry would have a serious problem on their hands.
I agree for a non developer it is very unintuitive...
The best option for user installs still is just to drop an icon into a folder and if you want to get rid of it delete the icon from the folder.
Just like rox zeroinstall does it, and apple to a certain degree (although apple fails in a clean deinstall because some apps expand all over the machine and removing the archive icon only removes the archive and the subfolders in it.
Sorry to rant here, but Wikipedia is a project from the community for the community.
The Microsoft approach is more like, let the community do the job and we cash in on the work of the community.
There is a huge difference, and the Microsoft management in their endless greed will never really get it...
The trick is the same as in debian, uninstall one of the core libs and voila the desktop goes away as well.
kde-libs for instance removes the entire kde desktop...
same goes for lib-nautilus in gnome...
or libgtk2 basically removes everything gnome and gtk2 related
What I noticed is that some plugins/clients cause a severe speed it. The combination subclipse in combination with a huge project (currently I have a project with around 8000 files) can cause the entire combination into checkout times checkin times of minutes even if you only checkin one file.
I guess moving most of the meta data which is cluttered in even more files in the.svn dir into something more compact could help out there significantly.
But it does not have to be that way, as the svn clients and tortoise prove.
Dream on... in European Free TV the naked tit, adverts start at midnight...
But you can see a naked tit here and there, nobody really bothers. After all a naked tit so far has not killed anyone.
Dont forget the hibernate handbook on the Hibernate site.
Hibernate is one of the best documented frameworks there is, thanks to the excellent documentation which is done by the Hibernate people themselves.
It has not been forgotten, but people moved away from it due to vendor lock in problems.
If you have to pay the annual (fee free to add whatever really expensive database system exists here) fee and you can get cheaper alternatives which meet your needs as well, then you are in a real mess with putting lots of application code onto the database server.
The movement away from this has been going on since the early ninenties, and DB vendors fought left and right to keep the lockin by not implenting newer SQL standards, but after 10 years much of this torpedoing has been nullified by abstraction libraries moved into the db mapping domain of things.
But as you said there is a problem with the current approach as well, the whole integrity checking is now in the application domain (often even casacded deletes) so you really have to be careful.
Yes joins are very OO like in hibernate
all you do is:
objecta.relation1.relation1 do whatever you wantwith it
That was basically the only part of the OQL which I really loved which hibernate based the HQL upon.
You dont have to care whether the DB joins or subselects it you ara in a plain object scope for this.
You gotta talk with the local film producing companies there (local tv stations often produce that stuff themselves or hire the people)
Then you have the problem of dubbing on your hands, but with enough money and if you are eager for content, you can resolve those issues.
Actually it is there for a reason, there is a SQL standard which is broken by many databases see that as a vendor lock in, also if you want to stay in an object scope you cannot stay in SQL.
There were earlier attempts to resolve the SQL-Object scope discrepancy but they did not work out too well.
OQL basically gives you a big amount of database independency and resolves many of the how do I map SQL into the object realm problems very well.
Design issue... The guy made a mistake in the DB design (you also can see it at the SQL statements)
read the comments down the posting, one of the guys does explain it.
He basically set's three foreign key 1:1 relations but has forgotten about adding the key colums on one side of the relation. Why the db itself did not check that is weird to me, normally dbs cry at such situation at creation level.
This is definitely not a Hibernate issue, and if you could read more than three lines or would have bothered to read the topics you would have read the answer as well.
Well in m:n relations in hibernate you need at least three tables beneath it, so no two table join limit there.
As for the queries, yes simplistic queries are faster as long as you dont hit a cache.
In the typical webapp 90% of the operations are done over and over again on almost the same data, and there hibernate can shine.
You can add a query cache if your query is constantly started again and again, you can start to cluster on application cache level once you hit a maximum of possible site users your VM can handle so that you still run against one DB but have clustering due to a cluster cache on the Object level.
You dont have to write any JDBC to object binding code which almost every plain JDBC app does.
You basically are 99% database independent thanks to the abstracted query language and abstracted data type mapping.
You have automated connection management, to keep the number of connections small.
The list of stuff Hibernate adds to this mix is endless. But dont expect to run a single query on a plain table as fast as one in JDBC. The reason for this is, all this caching and query translation, object mapping stuff comes with a small constant speed penalty which goes away once you run into the caches or you have to do bigger work in JDBC and have to start to implement the caching and mapping yourself (which you almost always have to do)
You will start to love hibernate once a customer or your boss decides to switch databases for political reasons and wants a reasonable upgrade path.
Well hibernate is very dependend on the database being beneath it, so if your database design already is excellent you probably will not get any better performance, with lousy databases you might sometimes get better performance due to the excellent caching hibernate has.
But dont expect wonders. You wont get any OODB all you get is an OODB-RDB layer, but one of the best there is.
(I dont expect anything decent from JDO, since it is done by former ODMG people and DB vendors which shy interoperability like the devil shies holy water are sitting in there, that was one of the reasons why the ODMG standard was one of the lousiest ever in existence and basically rendered databases which relied entirely on it useless)
But the JDO specs might prove me wrong in the long run, I somehow doubt it though once Oracle and others get a serious vote in the specs.
Hibernate should not have any problems in this regard. Hibernate follows usually in its approach following strategy. Give the developers the tools for one approach which follows some standard practices, if those work out for all leave it that way, if not add a second or third way to cover the rest of the 10%,
In case if your problem you might have to go for following solutions, Iterators can handle the dataset load, maybe paging (dumping 1.5m objects into the object heap is not really preferrable) and as for the queries, hibernate has a query caching system which you can turn on optionally, so even if you thing you run a ton of queries you only might send a handful of real queries to the database...
If you want to process the data parallely, you might run several app servers and have a clustered cache.
But in case of Hibernate the description is really true. I have worked with many persistence layers in the past, (self written ones, Torque, some provided by the company I worked for, and Hibernate basically is the best there is, and one of the fastest.
I worked with an OODB system years ago, they had so many open corners, like a lousy query language, no control over the object scope, no possibility to handle large amounts of object (you always heared that there is a flaw in the object design until they gave the hint, reverse the queries)
Hibernate has solved all those things. I just wished there already was an ide, which binds JSF, Spring and Hibernate into a graphical editor, this ide would be a clear winner. Sun goes for raw JDBC , neglegting any sanity there is regarding session scope, oracle also goes for JDBC and IBM I have not seen yet (probably also does for JDBC) the other IDEs either only give helper tools to raw code with some visual editors but no database bindings, ore dont do anything.
media MAFIA (Movie and Film Industry Association)
the companies just have to look into other countries.
I am not talking about bollywood here (which produces more movie than anyone else, but most of them have questionable quality)
France also is a huge television and movie producer, germany produces most of its tv content itself, and italy also does, at least France and Italy have very high quality standards, whereals germany has high output (mostly soaps, soap related stuff and sometimes gems and good comedies in between and excellent cartoon movies which are on the rough side of humor)
If those companies start to look outside of the US for content, they at least have some, and since most of this stuff produced outside of the US is sold only to one or two countries besides the country of origin they might be eager to hear about online distribution in the US or on a worldwide scale.
You never really had to deal with the issue to attach to one of those big irons did you?
You never had the issue to develop for an RS6000 which was a very valuable production machine and no software install basically was allowed, and you never really until install time you were able to even get access to the machine?
Java is not the best solution to quickly hack the average guestbook, but it definitely shines once you have to cross platforms.
Lambdas are not really that amazing, a good introspection (and/or) function pointer mechanisms functionality does a much better job than the language design wise hack lambdas, or inner classes.
I appreciate the goal to make python a readable language, hence the similarities to object pascal in my opinion which was so far the ulimate language in readability (Python has not reached that leven and probably never will due to various design choices).
China has nothing to do with it, dont really blame China, they were and in many aspects still are a poor country and have the opportunity to bring it up.
The main problem and to my knowledge I am not the only one but some chinese also shake their heads over this is. That the west for endless greed and lust for the next higher quarterly results basically sell off the long term core assets of its wealth.
That the Chinese now have the knowledge to take over western markets is just the natural order of things. It would have happened in every other country which is taught the no limits capitalism the US currently has, as the ultimate goal.
What the west did and still does is to dump high tech knowledge basically for free into those countries in exchange for being able to increase the profit spans on products, once the knowledge is gone (the people who developed and kew the knowledge also went for greener pastures) there is no substance to the companies anymore and in the end there is a dying brand.
The last thing I would do is to blame China or India, the got free development aid in the biggest high tech fields currently in existence (Which is a good thing per se). We have to blame ourselfs to have greed become our religion. I will ask you what values does the west currently teach the world, war and greed (war over questionable religious hipocracy, because christianity explicitely forbids war and violence)
And greed because currently any crime seems to be justifyable by the next quarterly results.
So dont expect any good result from countries which take that lesson and learn from it. Instead of learning from the values which made Europe until the nineties and the US until the 70s liveable for the majority of the people.
History just repeats itself, it was the same situation in the 70s in Japan before greed took over, there as well and they began outsourcing and running down their local industry.
There is an old saying. A businessman would even sell you the rope you would hang him with, there is much truth to this, not his wealth but his pension savings for a cheap coin in our case.
So before we start blaming others and look for an enemy (which is always easier) we have to look at our own faults, and there are so many, that our karma is really bad.
China has nothing to do with it, dont really blame China, they were and in many aspects still are a poor country and have the opportunity to bring it up.
The main problem and to my knowledge I am not the only one but some chinese also shake their heads over this is. That the west for endless greed and lust for the next higher quarterly results basically sell off the core assets of their buisness the knowledge.
That the Chinese now have the knowledge to take over western markets is just the natural order of things. It would have happened in every other country which is taught the no limits capitalism the US currently has, as the ultimate goal.
What the west did and still does is to dump high tech knowledge basically for free into those countries in exchange for being able to increase the profit spans on products, once the knowledge is gone (the people who developed and kew the knowledge also went for greener pastures) there is no substance to the companies anymore and in the end there is a dying brand.
The last thing I would do is to blame China or India, the got free development aid in the biggest high tech fields currently in existence (Which is a good thing per se). We have to blame ourselfs to have greed become our religion.
History just repeats itself, it was the same situation in the 70s in Japan before greed took over, there as well and they began outsourcing and running down their local industry.
There is an old saying. A businessman would even sell you the rope you would hang him with, there is much truth to this, not his wealth for a cheap coin in our case.
Actually AOP can help dealing with checked exceptions in a proper manner in quite a good way.
For instance you can write interceptors which basically encapsule your data accessor methods/business methods in a transaction scope automatically without touching any code and add a proper transaction handler to that without touching the core code.
Also you can write interceptors which deal with certain transactions in a clean way, no matter where they are thrown and when.
Getting the transaction handler mess out of your algorithms is really one of the points where AOP can show its strenghts.
I personally hate unchecked exceptions, because once a program becomes bigger you run into trouble because you never know what is goint to be thrown around your ears, and in the end you end up with catching every exception there is on earth at certain points which could trigger unwanted sideeffects in the subsystems. (I once had such a case caused by a guy who never really caught up with the concepts of exceptions at all and suddenly had to program.Net (coming from the VB side))
Actually I never really liked lambdas the way I hate inner classes in java, they are unnecessary constructs if you add serious introspection to a lanuguage on language level which is a far better concept.
(the best example for the power of introspection is ruby rails where you simply derive a class from a database table and instantly have the accessors in the class without writing any code)
Some of the best comp sci people Ive ever worked with came from Romania and Russia (I am Austrian btw. have been groing up in the west).
I guess one reason for that is, the prolongued, we have to code lots of stuff in assembler period, which was way over in 1990 in our countries, most of them had to wait until 1995 until the situation was at the point they could afford better stuff.
The other thing is, that unlike the west, who has been celebrating half criminal business people and even more criminal laywers as heroes and basically has been slamming technical people since the mid eighties as freaks, nerds and whatever, in the old soviet union (which was until 1990) mathematicians and technical people were very highly regarded and it was a good career path (my current girlfriend had a father who worked in nuklear research and a mother who basically was a computer technitian) for both genders.
Things have changed by now as well, but that those things are still sort of a aftermath of those years. The reason why the SU never took off technically was because of the communists who basically had the researchers but lacked the mentality and the funds to give them a breeding ground for ideas, also my personal guess is that many of them were thrown into jail as well once they started to criticize the system, which always happens with intelligent people (one of the reasons why a downgoing society starts to beat the bright ones, who usually dont have the mentality to fight back, because they scare the ones in power).
Over here we have different problems, and it sort of is a wonder that we came that far, because the treatment the techies have been given generally is not that good, we probably will see the aftermaths of the current, we dont develop anything we just buy the stuff period in a few years, when the first corporations will crumble because they have become obsolete brands which will be slowly replaced by once outsourcing companies.
Actually subversion has a commerical backing. But those who wrote the thing simply wanted to keep the fanboys out of the LKML. And they are right in their analysis, they have a kicksass version control system but their approach is not suitable for the needs of the Linux kernel developers. What Linus and others really need is a highly distributed system and subversion (even SVK) is not exactly that, SVN is more like a drop in replacement for CVS without the problems CVS has, and it has its fair place in the world, and most who use it love it. The answer is just the style the people who do subversion generally have, very honest and professional.
Well... women spend the money on shoes, to find somebody worthwile to have a child with, while they meet only man normally who want to screw and them dump them :-)
Which in the long run would indicate, that if somebody would invent artificial women the shoe industry would have a serious problem on their hands.
I agree for a non developer it is very unintuitive... The best option for user installs still is just to drop an icon into a folder and if you want to get rid of it delete the icon from the folder. Just like rox zeroinstall does it, and apple to a certain degree (although apple fails in a clean deinstall because some apps expand all over the machine and removing the archive icon only removes the archive and the subfolders in it.
Sorry to rant here, but Wikipedia is a project from the community for the community. The Microsoft approach is more like, let the community do the job and we cash in on the work of the community. There is a huge difference, and the Microsoft management in their endless greed will never really get it...
The trick is the same as in debian, uninstall one of the core libs and voila the desktop goes away as well. kde-libs for instance removes the entire kde desktop... same goes for lib-nautilus in gnome... or libgtk2 basically removes everything gnome and gtk2 related
What I noticed is that some plugins/clients cause a severe speed it. The combination subclipse in combination with a huge project (currently I have a project with around 8000 files) can cause the entire combination into checkout times checkin times of minutes even if you only checkin one file. I guess moving most of the meta data which is cluttered in even more files in the .svn dir into something more compact could help out there significantly.
But it does not have to be that way, as the svn clients and tortoise prove.
Dream on... in European Free TV the naked tit, adverts start at midnight... But you can see a naked tit here and there, nobody really bothers. After all a naked tit so far has not killed anyone.
Dont forget the hibernate handbook on the Hibernate site. Hibernate is one of the best documented frameworks there is, thanks to the excellent documentation which is done by the Hibernate people themselves.
It has not been forgotten, but people moved away from it due to vendor lock in problems. If you have to pay the annual (fee free to add whatever really expensive database system exists here) fee and you can get cheaper alternatives which meet your needs as well, then you are in a real mess with putting lots of application code onto the database server. The movement away from this has been going on since the early ninenties, and DB vendors fought left and right to keep the lockin by not implenting newer SQL standards, but after 10 years much of this torpedoing has been nullified by abstraction libraries moved into the db mapping domain of things. But as you said there is a problem with the current approach as well, the whole integrity checking is now in the application domain (often even casacded deletes) so you really have to be careful.
Yes joins are very OO like in hibernate all you do is:
objecta.relation1.relation1 do whatever you wantwith it
That was basically the only part of the OQL which I really loved which hibernate based the HQL upon. You dont have to care whether the DB joins or subselects it you ara in a plain object scope for this.
You gotta talk with the local film producing companies there (local tv stations often produce that stuff themselves or hire the people) Then you have the problem of dubbing on your hands, but with enough money and if you are eager for content, you can resolve those issues.
Actually it is there for a reason, there is a SQL standard which is broken by many databases see that as a vendor lock in, also if you want to stay in an object scope you cannot stay in SQL. There were earlier attempts to resolve the SQL-Object scope discrepancy but they did not work out too well. OQL basically gives you a big amount of database independency and resolves many of the how do I map SQL into the object realm problems very well.
Design issue... The guy made a mistake in the DB design (you also can see it at the SQL statements) read the comments down the posting, one of the guys does explain it.
He basically set's three foreign key 1:1 relations but has forgotten about adding the key colums on one side of the relation. Why the db itself did not check that is weird to me, normally dbs cry at such situation at creation level.
This is definitely not a Hibernate issue, and if you could read more than three lines or would have bothered to read the topics you would have read the answer as well.
Well in m:n relations in hibernate you need at least three tables beneath it, so no two table join limit there. As for the queries, yes simplistic queries are faster as long as you dont hit a cache. In the typical webapp 90% of the operations are done over and over again on almost the same data, and there hibernate can shine. You can add a query cache if your query is constantly started again and again, you can start to cluster on application cache level once you hit a maximum of possible site users your VM can handle so that you still run against one DB but have clustering due to a cluster cache on the Object level.
You dont have to write any JDBC to object binding code which almost every plain JDBC app does. You basically are 99% database independent thanks to the abstracted query language and abstracted data type mapping. You have automated connection management, to keep the number of connections small.
The list of stuff Hibernate adds to this mix is endless. But dont expect to run a single query on a plain table as fast as one in JDBC. The reason for this is, all this caching and query translation, object mapping stuff comes with a small constant speed penalty which goes away once you run into the caches or you have to do bigger work in JDBC and have to start to implement the caching and mapping yourself (which you almost always have to do)
You will start to love hibernate once a customer or your boss decides to switch databases for political reasons and wants a reasonable upgrade path.
Well hibernate is very dependend on the database being beneath it, so if your database design already is excellent you probably will not get any better performance, with lousy databases you might sometimes get better performance due to the excellent caching hibernate has. But dont expect wonders. You wont get any OODB all you get is an OODB-RDB layer, but one of the best there is.
(I dont expect anything decent from JDO, since it is done by former ODMG people and DB vendors which shy interoperability like the devil shies holy water are sitting in there, that was one of the reasons why the ODMG standard was one of the lousiest ever in existence and basically rendered databases which relied entirely on it useless) But the JDO specs might prove me wrong in the long run, I somehow doubt it though once Oracle and others get a serious vote in the specs.
Hibernate should not have any problems in this regard. Hibernate follows usually in its approach following strategy. Give the developers the tools for one approach which follows some standard practices, if those work out for all leave it that way, if not add a second or third way to cover the rest of the 10%,
In case if your problem you might have to go for following solutions, Iterators can handle the dataset load, maybe paging (dumping 1.5m objects into the object heap is not really preferrable) and as for the queries, hibernate has a query caching system which you can turn on optionally, so even if you thing you run a ton of queries you only might send a handful of real queries to the database... If you want to process the data parallely, you might run several app servers and have a clustered cache.
But in case of Hibernate the description is really true. I have worked with many persistence layers in the past, (self written ones, Torque, some provided by the company I worked for, and Hibernate basically is the best there is, and one of the fastest. I worked with an OODB system years ago, they had so many open corners, like a lousy query language, no control over the object scope, no possibility to handle large amounts of object (you always heared that there is a flaw in the object design until they gave the hint, reverse the queries) Hibernate has solved all those things. I just wished there already was an ide, which binds JSF, Spring and Hibernate into a graphical editor, this ide would be a clear winner. Sun goes for raw JDBC , neglegting any sanity there is regarding session scope, oracle also goes for JDBC and IBM I have not seen yet (probably also does for JDBC) the other IDEs either only give helper tools to raw code with some visual editors but no database bindings, ore dont do anything.
media MAFIA (Movie and Film Industry Association) the companies just have to look into other countries. I am not talking about bollywood here (which produces more movie than anyone else, but most of them have questionable quality) France also is a huge television and movie producer, germany produces most of its tv content itself, and italy also does, at least France and Italy have very high quality standards, whereals germany has high output (mostly soaps, soap related stuff and sometimes gems and good comedies in between and excellent cartoon movies which are on the rough side of humor)
If those companies start to look outside of the US for content, they at least have some, and since most of this stuff produced outside of the US is sold only to one or two countries besides the country of origin they might be eager to hear about online distribution in the US or on a worldwide scale.
You never really had to deal with the issue to attach to one of those big irons did you? You never had the issue to develop for an RS6000 which was a very valuable production machine and no software install basically was allowed, and you never really until install time you were able to even get access to the machine? Java is not the best solution to quickly hack the average guestbook, but it definitely shines once you have to cross platforms.
Lambdas are not really that amazing, a good introspection (and/or) function pointer mechanisms functionality does a much better job than the language design wise hack lambdas, or inner classes. I appreciate the goal to make python a readable language, hence the similarities to object pascal in my opinion which was so far the ulimate language in readability (Python has not reached that leven and probably never will due to various design choices).
China has nothing to do with it, dont really blame China, they were and in many aspects still are a poor country and have the opportunity to bring it up.
The main problem and to my knowledge I am not the only one but some chinese also shake their heads over this is. That the west for endless greed and lust for the next higher quarterly results basically sell off the long term core assets of its wealth.
That the Chinese now have the knowledge to take over western markets is just the natural order of things. It would have happened in every other country which is taught the no limits capitalism the US currently has, as the ultimate goal. What the west did and still does is to dump high tech knowledge basically for free into those countries in exchange for being able to increase the profit spans on products, once the knowledge is gone (the people who developed and kew the knowledge also went for greener pastures) there is no substance to the companies anymore and in the end there is a dying brand.
The last thing I would do is to blame China or India, the got free development aid in the biggest high tech fields currently in existence (Which is a good thing per se). We have to blame ourselfs to have greed become our religion. I will ask you what values does the west currently teach the world, war and greed (war over questionable religious hipocracy, because christianity explicitely forbids war and violence)
And greed because currently any crime seems to be justifyable by the next quarterly results.
So dont expect any good result from countries which take that lesson and learn from it. Instead of learning from the values which made Europe until the nineties and the US until the 70s liveable for the majority of the people.
History just repeats itself, it was the same situation in the 70s in Japan before greed took over, there as well and they began outsourcing and running down their local industry.
There is an old saying. A businessman would even sell you the rope you would hang him with, there is much truth to this, not his wealth but his pension savings for a cheap coin in our case.
So before we start blaming others and look for an enemy (which is always easier) we have to look at our own faults, and there are so many, that our karma is really bad.
China has nothing to do with it, dont really blame China, they were and in many aspects still are a poor country and have the opportunity to bring it up.
The main problem and to my knowledge I am not the only one but some chinese also shake their heads over this is. That the west for endless greed and lust for the next higher quarterly results basically sell off the core assets of their buisness the knowledge.
That the Chinese now have the knowledge to take over western markets is just the natural order of things. It would have happened in every other country which is taught the no limits capitalism the US currently has, as the ultimate goal. What the west did and still does is to dump high tech knowledge basically for free into those countries in exchange for being able to increase the profit spans on products, once the knowledge is gone (the people who developed and kew the knowledge also went for greener pastures) there is no substance to the companies anymore and in the end there is a dying brand.
The last thing I would do is to blame China or India, the got free development aid in the biggest high tech fields currently in existence (Which is a good thing per se). We have to blame ourselfs to have greed become our religion.
History just repeats itself, it was the same situation in the 70s in Japan before greed took over, there as well and they began outsourcing and running down their local industry.
There is an old saying. A businessman would even sell you the rope you would hang him with, there is much truth to this, not his wealth for a cheap coin in our case.
Actually AOP can help dealing with checked exceptions in a proper manner in quite a good way. For instance you can write interceptors which basically encapsule your data accessor methods/business methods in a transaction scope automatically without touching any code and add a proper transaction handler to that without touching the core code.
.Net (coming from the VB side))
Also you can write interceptors which deal with certain transactions in a clean way, no matter where they are thrown and when. Getting the transaction handler mess out of your algorithms is really one of the points where AOP can show its strenghts.
I personally hate unchecked exceptions, because once a program becomes bigger you run into trouble because you never know what is goint to be thrown around your ears, and in the end you end up with catching every exception there is on earth at certain points which could trigger unwanted sideeffects in the subsystems. (I once had such a case caused by a guy who never really caught up with the concepts of exceptions at all and suddenly had to program
Actually I never really liked lambdas the way I hate inner classes in java, they are unnecessary constructs if you add serious introspection to a lanuguage on language level which is a far better concept. (the best example for the power of introspection is ruby rails where you simply derive a class from a database table and instantly have the accessors in the class without writing any code)