If you ask 10 different experienced developers what MVC is, you'll get 10 different answers
And assuming at least one of them has it right, that means 9 people are wrong. MVC (original or model 2, thats about as far as defining it needs to go) is a documented software design pattern. By definition, software design patterns are meant to be standard, documented (thats the main part) ways of solving a recurring problem.
You may have a Model, a View and a Controller without having MVC. MVC or MVC Model 2 mean something extremely specific. For example, MVP (Model View Presenter) also actually have a model, a view and a controller (among other things), but its NOT the MVC design pattern. The whole point of software design patterns is to have a standard vocabulary and preset documented ways of implementing solution.
If I talk about Adapter, Template Method, Abstract Factory, Strategy, or, yes, MVC, I mean something very specific, not a generic concept of a fuzzy way of doing things. You only need to define MVC if you're not using the commonly accepted definition of it. Ideally, you'd specify if you mean the original or Model 2, but if you're talking about web, it is almost (but not quite) certain you mean Model 2, so thats redundant too.
These same things create false positive in the current system too though. I tend to get extremely sweaty when I'm in a hurry (stress or not), and my passport tends to show it when I hand it over to the person at the customs. That, on top of my totally horrible memory for when they ask "When's the last time you came to this country?", and I ended up in the interrogation chamber more times than I'd like.
In these cases not having to spend time on a cost benefit analysis could probably be considered a feature of mysql.
In this day and age, the only RDBMS that aren't "rediculously simple to maintain" are stuff like Oracle (and with the smaller free editions, thats debatable. And all of them could work fine for a "small website" (though some will have more functions than others, making it easier or harder to code the SQL to do even basic things.)
So in the end, it comes down to what I said: people use it because its "there" and its what they heard about. Not because its necessarly the right tool for the job. It works. Doesn't mean it works best.
Question: Is it really the right tool for that many job, or is it just a fallback option? What I mean is, do MySQL users actually do a benefit analysis of MySQL and its alternatives and find MySQL to be the best tool for the job, or are they using it because "its there", "its what everyone uses", "I heard about it while at school", etc?
To avoid being accused of being a troll, let me give a personal example: I'm personally a SQL Server guy (sweet, now instead of being called a troll, I'll be called worse, hahaha). I really like SQL Server and its tools. So when given the choice, I naturally go to SQL Server. Its what I know, it is cheap (among commercial offerings anyway), and its often "there" (as many of my clients use it already).
However, I'm sure in many cases, if I did a cost/benefit analysis, even if I include setup time and training, alternatives such as Oracle or PostgreSQL (or even MySQL in some cases) would come out at the top. Actually, for more important projects, its what I do and its what happens. As much as I love SQL Server, it isn't the end all be all.
So to come back to MySQL: I don't think I'd be too far from the truth if I'd say that "most" of its users haven't carefully looked at alternatives, and are spending a lot of man hours tweaking it and working around its limitation, just because its what they know, and are not fully aware of the extent to which its missing features are hurting them.
No, you're no idiot. It USED to be hard to setup. I just took your post literally, and you stated it in present tense, so I thought you meant right now (especially since for your other points that only had to do with long ago, you specifically mentionned it).
1 and 5 are there on Postgres too. It doesn't get much easier to setup than "You dont need to do anything" or "next next next -> finish". The big one though from what you mentionned is #2, that was a huge issue back then.
MySQL was supported by more free or near free shared hosts earlier. So it basically has an "earlier to market" advantage... Also, it has actively been targeting people newer to the database field (thus why some "enterprise-level" features were originally given low priority). So imagine someone new to databases, and they have 2 choices... one that is heavily targeting them, and one that doesn't really care...
Then it sticks...when those "newbies" become "senior", they pass the word around. Also, originally, when PHPMyAdmin was all the rage, PostgreSQL was pretty much command line only, or at least the tools it had werent as well known... I remember my first job out of college, it was with PostgreSQL (long ago), and it was fairly scary. MySQL gives a better first impression, and its the first impression that "sells".
Could Microsoft be trying to extricate itself from the relationships it has with hardware vendors?
Thats possible. Remember the beggining of Vista: Videocard and soundcard drivers were by far the biggest cause of headaches (followed closely by OEMs bundle incompatible codecs and drivers even when newer, compatible versions had been released). If you could have simply flicked a switch and have a slower (no big deal for a desktop render...) but well supported implementation, it would have solved the issue and clearly shown that the problem was with the drivers.
"Oh my god, my computer is crashing constantly, damn Vista!!!"::knowledgeable person flicks a switch in the control panel:: "Hey...it doesn't crash anymore o.O".
It would have made for a vastly different scenario, and fingers would have been pointed in a much different direction... Thats probably part of why MS is doing this.
Oh! Ok, I misunderstood you. I thought you meant "Why didn't they make it so Vista's GUI could run in software more". Sorry I misunderstood you.
There is actually a software direct x renderer, and was since pretty much the beggining... it was only ever shipped as part of the development toolkit though, don't know why they never put it as a standard part of Windows. Software OpenGL renderers have been around on Windows since forever too, not just on Mac (I was playing Baldurs Gate 1 with that to get the cool "3d" effects, if you can call them that, at 3 frames per second...).
So not sure why MS never shipped a consumer version.
Because when they designed it, they (understandably so) figured it was pointless. Who in this day and age wouldn't have a videocard capable of running Aero? Then of course, Intel had to prove them wrong by making the world's crappiest integrated solutions.
But seriously, we need to push more onto the GPU, since its doing virtually nothing most of the time, not less.
Ok good:) I wasn't sure if that question was following the rest of the post, or if you were among those who seriously thinks there is nothing beyond MVC. Almost got a heart attack. Thanks for the clarification:)
Then just propose the middle ground? A C# app with WPF will run in a browser, will not require installation (well, ok, they'll have to run Windows update if they're not using Vista...), and bing bada boom, you have a thick client in a browser that doesn't need to be installed, wee! Now, if platform independence is required, just look for the non-Microsoft equivalent of these technologies...
Using C++ for a typical data driven business app's front end though? May as well put your money on fire.
Why should an architecture such as MVC be expected to hold up in its original form? It's designed to solve a different problem.
It shouldn't and it doesn't: the smalltalk MVC has about as much in common with the MVC used on the web than javascript has in common with java: the name, and thats about it.
Then you get to debug the emitted code, which is not going to be fun
Yet we do it all the time by not using raw machine code. Works fine. If there's issues, its because the tools aren't powerful enough. Many are starting to be though, and it becomes really rare to have to debug the emitted code. I don't know about GWT (though I did hear decent things about it), but I've tried Visual WebGUI for example, and while it had flaws, having to debug emitted code was NOT one of them.
I personally never touch any game that has limited installs (I made an exception for the PC Version of Overlord:Raising Hell, but hat was the only time). You upgrade your computer, have a lap-top around, get computer issues once or twice and bang its over. I personally go back to games years or decades later in some cases, and it wouldn't work out with this type of DRM.
Some DO refund installs when you uninstall the game, and have a method for you to call and request more installs. Thats a LITTLE better... I still wouldn't touch that unless the game is REEEEEEEEEEEEEEEEEEEEEEEALLY good (and that never happened yet).
I had seen World of Goo in the WiiWare list, but had no clue what it was, so I guess the piracy numbers did generate some publicity (its an -awesome- game btw).
That said, there is a fairly long demo on Steam (its the full first chapter of 5 or something). Not sure you need to play more than 15-20% of a game to make up your mind, unless it has online multiplayer -maybe-.
In many cases, the developers are not in a position to make a stance. Especialy with smaller developers, this ends up like a second take on the big labels for music/movies. The "artist" (developer in this case) needs the publisher more than the publisher needs the "artist"... some games, including decent ones, never see the light of days for lacking publishers (especially indie ones. Commercial ones still may or may not struggle to get the game out).
There may also be licenses that are owned by the publisher. The biggest example of this is the Neverwinter Night serie. Bioware was at the mercy of Atari, who screwed them over quite a few times over the licenses, forced DRM on the games, and forced even some development decision on them. Most publishers are, simply put, assholes. With digital distribution, some games now totally bypass the corporate publisher though...I guess that helps.
Its to stop casual piracy. That is, uncle Bob McJoe buys GTA4, gets asked by cousin Timmy DeMoron if he can install it on his new lap-top. Bob says "sure!", they do so, and bang its useless without the disk (or whatever). Thats first.
Second, its to delay the release of cracked versions as much as possible. While I won't debate if it is true or not, the logic behind it is that games sell the most on day 1. So even if you delay the cracked version by a few HOURS (and that includes a few hours for it being leaked), they feel that they gain back some sales. If they can somehow manage to prevent the game being cracked until launch, the gain is supposingly fairly significant.
Thats all its supposed to do. Delay the inevitable by a few hours/days (including delaying the leaks), and stopping people from casually sharing the game without any effort, to deter the laziests among us.
When are these idiot developers going to get their heads around this?
PUBLISHERS, not developers. As a general rule, game developers are against strong DRM, and often, against any DRM at all. The publishers usually strong arm them. In this case, the developer and the publisher is pretty much one and the same (I think...), but I doubt the development department agreed with the suits on this.
Lets make things clear first: MVC model 2 has nothing to do with the original MVC, as you already pointed out. The original MVC isn't used much, not even in live interactive system anymore, so they reused the term, and clearly documented it (it made sense at the time: there is a model, a view and a controller, and its a strict design pattern, and the original MVC is rarely seen outside of legacy system and 4G tools that die faster than they pop up).
Otherwise, you end up with a lot of terms that eventually all mean the same thing but not, and it is even more confusing. The main issue came with people thinking that MVC is ANYTHING with a model, a view, and a controller. That put aside, there's no abuse of language here. There's MVC, and MVC Type 2, and if you're talking about the web, aside in extremely rare scenarios, you're always talking about Type 2, so its redundant.
Still, that doesn't change much... MVC, because of frameworks like Struts and Rails is seen by the unwashed mass of developers as the "end all be all: if its not MVC, its not a well architecture application", totally ignoring all of the alternatives. Now THAT is a problem. MVC Type 2 is only good for a subset (large, but still just a subset) of web apps.
That said, I'm not sure anyone with 10-20 minutes could find the truth about the iphone. Googling about it turns out WAAAY too much Apple worshipping (even die hard Apple fans HAVE to admit that the hype behind the iphone is rediculous) to be able to find any kind of truth about it. There's just this thick fog of concentrated hype around everything iphone related... Plus, since its something thats usually sold with a lock-in contract, its even worse.
I don't think most Axe wearers have a 3 years contract.
I feel like a moron. You're correct of course...since I rarely ever use "normal" DVD players, I actually had never noticed that before. Thank you for correcting me.
And assuming at least one of them has it right, that means 9 people are wrong. MVC (original or model 2, thats about as far as defining it needs to go) is a documented software design pattern. By definition, software design patterns are meant to be standard, documented (thats the main part) ways of solving a recurring problem.
You may have a Model, a View and a Controller without having MVC. MVC or MVC Model 2 mean something extremely specific. For example, MVP (Model View Presenter) also actually have a model, a view and a controller (among other things), but its NOT the MVC design pattern. The whole point of software design patterns is to have a standard vocabulary and preset documented ways of implementing solution.
If I talk about Adapter, Template Method, Abstract Factory, Strategy, or, yes, MVC, I mean something very specific, not a generic concept of a fuzzy way of doing things. You only need to define MVC if you're not using the commonly accepted definition of it. Ideally, you'd specify if you mean the original or Model 2, but if you're talking about web, it is almost (but not quite) certain you mean Model 2, so thats redundant too.
These same things create false positive in the current system too though. I tend to get extremely sweaty when I'm in a hurry (stress or not), and my passport tends to show it when I hand it over to the person at the customs. That, on top of my totally horrible memory for when they ask "When's the last time you came to this country?", and I ended up in the interrogation chamber more times than I'd like.
Well, I was going to post something similar, but you put it in much better words than I could have!
In this day and age, the only RDBMS that aren't "rediculously simple to maintain" are stuff like Oracle (and with the smaller free editions, thats debatable. And all of them could work fine for a "small website" (though some will have more functions than others, making it easier or harder to code the SQL to do even basic things.)
So in the end, it comes down to what I said: people use it because its "there" and its what they heard about. Not because its necessarly the right tool for the job. It works. Doesn't mean it works best.
Question: Is it really the right tool for that many job, or is it just a fallback option? What I mean is, do MySQL users actually do a benefit analysis of MySQL and its alternatives and find MySQL to be the best tool for the job, or are they using it because "its there", "its what everyone uses", "I heard about it while at school", etc?
To avoid being accused of being a troll, let me give a personal example: I'm personally a SQL Server guy (sweet, now instead of being called a troll, I'll be called worse, hahaha). I really like SQL Server and its tools. So when given the choice, I naturally go to SQL Server. Its what I know, it is cheap (among commercial offerings anyway), and its often "there" (as many of my clients use it already).
However, I'm sure in many cases, if I did a cost/benefit analysis, even if I include setup time and training, alternatives such as Oracle or PostgreSQL (or even MySQL in some cases) would come out at the top. Actually, for more important projects, its what I do and its what happens. As much as I love SQL Server, it isn't the end all be all.
So to come back to MySQL: I don't think I'd be too far from the truth if I'd say that "most" of its users haven't carefully looked at alternatives, and are spending a lot of man hours tweaking it and working around its limitation, just because its what they know, and are not fully aware of the extent to which its missing features are hurting them.
No, you're no idiot. It USED to be hard to setup. I just took your post literally, and you stated it in present tense, so I thought you meant right now (especially since for your other points that only had to do with long ago, you specifically mentionned it).
Sorry for the misunderstanding :)
1 and 5 are there on Postgres too. It doesn't get much easier to setup than "You dont need to do anything" or "next next next -> finish". The big one though from what you mentionned is #2, that was a huge issue back then.
MySQL was supported by more free or near free shared hosts earlier. So it basically has an "earlier to market" advantage... Also, it has actively been targeting people newer to the database field (thus why some "enterprise-level" features were originally given low priority). So imagine someone new to databases, and they have 2 choices... one that is heavily targeting them, and one that doesn't really care...
Then it sticks...when those "newbies" become "senior", they pass the word around. Also, originally, when PHPMyAdmin was all the rage, PostgreSQL was pretty much command line only, or at least the tools it had werent as well known... I remember my first job out of college, it was with PostgreSQL (long ago), and it was fairly scary. MySQL gives a better first impression, and its the first impression that "sells".
Thats possible. Remember the beggining of Vista: Videocard and soundcard drivers were by far the biggest cause of headaches (followed closely by OEMs bundle incompatible codecs and drivers even when newer, compatible versions had been released). If you could have simply flicked a switch and have a slower (no big deal for a desktop render...) but well supported implementation, it would have solved the issue and clearly shown that the problem was with the drivers.
"Oh my god, my computer is crashing constantly, damn Vista!!!" ::knowledgeable person flicks a switch in the control panel:: "Hey...it doesn't crash anymore o.O".
It would have made for a vastly different scenario, and fingers would have been pointed in a much different direction... Thats probably part of why MS is doing this.
Oh! Ok, I misunderstood you. I thought you meant "Why didn't they make it so Vista's GUI could run in software more". Sorry I misunderstood you.
There is actually a software direct x renderer, and was since pretty much the beggining... it was only ever shipped as part of the development toolkit though, don't know why they never put it as a standard part of Windows. Software OpenGL renderers have been around on Windows since forever too, not just on Mac (I was playing Baldurs Gate 1 with that to get the cool "3d" effects, if you can call them that, at 3 frames per second...).
So not sure why MS never shipped a consumer version.
Because when they designed it, they (understandably so) figured it was pointless. Who in this day and age wouldn't have a videocard capable of running Aero? Then of course, Intel had to prove them wrong by making the world's crappiest integrated solutions.
But seriously, we need to push more onto the GPU, since its doing virtually nothing most of the time, not less.
Ok good :) I wasn't sure if that question was following the rest of the post, or if you were among those who seriously thinks there is nothing beyond MVC. Almost got a heart attack. Thanks for the clarification :)
Then just propose the middle ground? A C# app with WPF will run in a browser, will not require installation (well, ok, they'll have to run Windows update if they're not using Vista...), and bing bada boom, you have a thick client in a browser that doesn't need to be installed, wee! Now, if platform independence is required, just look for the non-Microsoft equivalent of these technologies...
Using C++ for a typical data driven business app's front end though? May as well put your money on fire.
It shouldn't and it doesn't: the smalltalk MVC has about as much in common with the MVC used on the web than javascript has in common with java: the name, and thats about it.
Yet we do it all the time by not using raw machine code. Works fine. If there's issues, its because the tools aren't powerful enough. Many are starting to be though, and it becomes really rare to have to debug the emitted code. I don't know about GWT (though I did hear decent things about it), but I've tried Visual WebGUI for example, and while it had flaws, having to debug emitted code was NOT one of them.
You've seen what happens to people who go too often to McDonald's and KFC? They DO go back to being blobs.
You...you're joking right? You're not seriously asking that I hope?
I personally never touch any game that has limited installs (I made an exception for the PC Version of Overlord:Raising Hell, but hat was the only time). You upgrade your computer, have a lap-top around, get computer issues once or twice and bang its over. I personally go back to games years or decades later in some cases, and it wouldn't work out with this type of DRM.
Some DO refund installs when you uninstall the game, and have a method for you to call and request more installs. Thats a LITTLE better... I still wouldn't touch that unless the game is REEEEEEEEEEEEEEEEEEEEEEEALLY good (and that never happened yet).
I had seen World of Goo in the WiiWare list, but had no clue what it was, so I guess the piracy numbers did generate some publicity (its an -awesome- game btw).
That said, there is a fairly long demo on Steam (its the full first chapter of 5 or something). Not sure you need to play more than 15-20% of a game to make up your mind, unless it has online multiplayer -maybe-.
In many cases, the developers are not in a position to make a stance. Especialy with smaller developers, this ends up like a second take on the big labels for music/movies. The "artist" (developer in this case) needs the publisher more than the publisher needs the "artist"... some games, including decent ones, never see the light of days for lacking publishers (especially indie ones. Commercial ones still may or may not struggle to get the game out).
There may also be licenses that are owned by the publisher. The biggest example of this is the Neverwinter Night serie. Bioware was at the mercy of Atari, who screwed them over quite a few times over the licenses, forced DRM on the games, and forced even some development decision on them. Most publishers are, simply put, assholes. With digital distribution, some games now totally bypass the corporate publisher though...I guess that helps.
Its to stop casual piracy. That is, uncle Bob McJoe buys GTA4, gets asked by cousin Timmy DeMoron if he can install it on his new lap-top. Bob says "sure!", they do so, and bang its useless without the disk (or whatever). Thats first.
Second, its to delay the release of cracked versions as much as possible. While I won't debate if it is true or not, the logic behind it is that games sell the most on day 1. So even if you delay the cracked version by a few HOURS (and that includes a few hours for it being leaked), they feel that they gain back some sales. If they can somehow manage to prevent the game being cracked until launch, the gain is supposingly fairly significant.
Thats all its supposed to do. Delay the inevitable by a few hours/days (including delaying the leaks), and stopping people from casually sharing the game without any effort, to deter the laziests among us.
Nothing more, nothing less.
PUBLISHERS, not developers. As a general rule, game developers are against strong DRM, and often, against any DRM at all. The publishers usually strong arm them. In this case, the developer and the publisher is pretty much one and the same (I think...), but I doubt the development department agreed with the suits on this.
Lets make things clear first: MVC model 2 has nothing to do with the original MVC, as you already pointed out. The original MVC isn't used much, not even in live interactive system anymore, so they reused the term, and clearly documented it (it made sense at the time: there is a model, a view and a controller, and its a strict design pattern, and the original MVC is rarely seen outside of legacy system and 4G tools that die faster than they pop up).
Otherwise, you end up with a lot of terms that eventually all mean the same thing but not, and it is even more confusing. The main issue came with people thinking that MVC is ANYTHING with a model, a view, and a controller. That put aside, there's no abuse of language here. There's MVC, and MVC Type 2, and if you're talking about the web, aside in extremely rare scenarios, you're always talking about Type 2, so its redundant.
Still, that doesn't change much... MVC, because of frameworks like Struts and Rails is seen by the unwashed mass of developers as the "end all be all: if its not MVC, its not a well architecture application", totally ignoring all of the alternatives. Now THAT is a problem. MVC Type 2 is only good for a subset (large, but still just a subset) of web apps.
Good point about people who wear Axe :)
That said, I'm not sure anyone with 10-20 minutes could find the truth about the iphone. Googling about it turns out WAAAY too much Apple worshipping (even die hard Apple fans HAVE to admit that the hype behind the iphone is rediculous) to be able to find any kind of truth about it. There's just this thick fog of concentrated hype around everything iphone related... Plus, since its something thats usually sold with a lock-in contract, its even worse.
I don't think most Axe wearers have a 3 years contract.
I feel like a moron. You're correct of course...since I rarely ever use "normal" DVD players, I actually had never noticed that before. Thank you for correcting me.