just aren't willing to fund the social programs and mental health infrastructure to take care of these people, so they end up in the streets. and not all cities with a homeless population have shelters
You seem like someone who has never spent any time with any crazy homeless people. Nearly all big cities do have shelters. All the ones I've visited and had the chance to look do (Orlando, Chicago, New York, Atlanta, Indianapolis).
Those are generally *not* for the crazy homeless, though. They're for the temporarily homeless. If you really want to keep being homeless, and you refuse any medical treatment that will help you get better, you are allowed to remain homeless. You are not forced to change. I know that the primary city in which I've lived - Orlando - has *plenty* of ways of keeping people from being homeless and of giving the very, very poor homes and medical treatment - both through the government and through local philanthropic organizations.
little has been done about it
Thanks especially to this, we realized that "fixing" such people means that we're curtailing their freedom - freedom to be crazy, and freedom to make the choices that leave them homeless.
Let me have my own self-destructive vices; let the homeless have theirs. It is their right as human beings. Don't try to make decisions for them. I am proud that we live in a country were we don't lock up our crazy people like criminals just because we don't like the way that they think, and am glad that "little is being done about it."
Money is at the crux of this issue, in two ways:
I noticed in your sig that you are a consultant. I am as well...to government agencies. I convert gibberish into cash-flow...but it's not the gibberish I spew. Bear all that in mind when I bring up my other points, also related to money:
3) The *domain* in which an agency works determines what is optimal IT-wise for them to do their work. Some of that can, and should, be standardized way more. This is not always intuitive. (For example, a police department actually needs to spend much more on Geographical Information Services software than does a transit authority). Believing that a single man is going to know enough to actually make standardization of every kind of government agency is a recipe for disaster. IT improvement has to come from within the agencies themselves.
4) People with knowledge and vision to do Things the Right Way are almost never in a position to do so because experienced government work pays so badly compared to its industry counterparts. What you get, then is the people who either won't leave their government jobs because they don't have the motivation to do so (which means that they *naturally resist change*), or people who aren't competent enough to learn new things.
Part of that is knowing how to use the libraries that you need.
There is but a single construct within normal SQL that can't be represented in Hibernate - functions in subselects anywhere except the select subclause.
You can do absolutely everything else, and there's even a workaround for that - use functions only within the select subclause, or use formulas (same thing). My guess is that you didn't actually look into how HQL works.
Anyway, what I'm getting at is that there are libraries for a single task, and libraries to make programming itself easier. You've chosen libraries that fall into the second category. If it's not making your life easier most of the time and at *every* level of scalability, you're probably using them wrong.
My general experience is that libraries that implement a lot of extra functionality that you don't need, but that you *have to use* in order to use them are generally more pain than they're worth. If you need to extend, you often have to implement lots of extra stuff that you're not using. Otherwise, the libraries give you a good starting place, if nothing else.
Hibernate also chooses to hide those SQL differences
Wrong. Reread my last comment. You're perfectly free to use any function, aggregate, or other feature defined only within your database when you're using hibernate. The ONLY thing the ORM is doing is combining relational with OOP. It isn't binding you to some whole new language that limits the features you can use (other than the aforementioned lack of aggregates in subselects).
It needs backend drivers to recognize the small portion of SQL that it actually uses to do such a mapping. Hiding the functionality of the database is well and good, but sometimes databases have fantastic functionality that you don't want to miss.
I don't want to be bound by the lowest common denominator of database functionality when I'm writing my code, and if Entities always requires this, then it is certainly always going to be much less functional than the databases it supports...and so will not be used.
You want to know who I am? I suppose some of you have journals for that, but I put it all on my webpage. If you're looking for something amusing, check the humor section, or try the text adventures. Oh, and now there's a projects page, which is statistically unlikely to be of use to anyone - it's documentation on how I solved some of the common Linux problems that I couldn't find any good documen
"Someone's been mean to you! Tell me who it is, so I can punch him tastefully." -- Ralph Bakshi's Mighty Mouse