IIRC STLPort is built without exception handling, or even if it doesn't, there are implementations designed for embedded systems that are a bit more embedded-friendly.
BTW, new should return std::bad_alloc, 'cos you can't new an exception structure if you've got no memory left that caused the initial new to fail.
as for subsets - c'mon, you get holy wars over bracket placement and whitespace. Arguing over language features is a strawman given that.
ok, so scrap a load fo useful stuff becuase.... well, I'm not sure why not. Just because you don't use algorithms doesn;t mean no-one else does.
As for diamond inheritance - I guess you're referring to the diamond 'problem' of multiple inheritance (where your class derives from 2 base classes, each of which derive from a common base class themselves - in such cases, you have to put the virtual keyword in to tell the compiler to take it into account, or you get 2 distinct instances of each base class... which might be what's needed, which is why it's not automatically dealt with by the compiler by default).
It sounds like you want to just dumb down the language to the point where it's called C#. I think most of your arguments aren't really arguments at all, and you could do a lot better if you really wanted to criticise the language.
I don;t like a lot of the template complexity now, but then... and this is the big deal, I don't have to use them (and I don't - I feel they don't make for maintainable code) but that doesn't mean they don't have their place in some specialist areas. Of course, if you don;t use a feature, that feature doesn't get in your code - so the only thing that gets bloated is the compiler, and that's hardly a problem.
perhaps modularised installs is the way for Google to go (the build time for android is something like all day?) but then you'd have even more fragmentation with different handsets having different features.... except, this is the way of the world: different handsets do have different features anyway, like NFC chips or cameras.
I don't think that helps when you come to do some development though - you still have to choose which version of the sdk you'll target, and until that changes to a much more "android + all the following features" system, people will stay developing for gingerbread (for the next 2 years)
The biggest problem for end-users is the fact that companies do not want to do updates for already-released products
not necessarily so - I have a bodged-up version of ICS running on my Samsung Galaxy S1, so kudos to them for taking the effort. But I can imagine I won't get a JB upgrade, only partly because of the time pressure to fit it in, but mainly because my device will not have enough RAM to run it acceptably (ICS isn't as good a user experience as GB on my device, its nowhere near as fast). So its not so much manufacturers conspiring to prevent you from getting upgrades to firce you to buy a new phone, its more that the OS requires more power than the old phones have.
This is true of my Galaxy, what of the more budget phones that are still out there? Don't forget that I'm locked into my phone contract until February. I won't be upgrading until then, and I expect a lot more people will be in the same boat. 2 years is a very long time when it comes to new devices and OS upgrades.
So maybe Google needs to stop releasing OSs so quickly, which would give them more time to add better features and improve the quality, then realise that a everyone will be running the old stuff for 2 years at least before the next version becomes the majority version.
BTW, people will buy the latest shiny no matter what - your contract ends, you get a new one and the carrier will offer you shiny shiny for the same price. Everyone takes the offer, though sure, some people will sell the new rather than the old ones on ebay. Of course, that means the old ones still have a long life when they're used by their new owners....
what you have does certainly sound similar to Alistair Cockburn's Crystal Clear methodology, in particular his ShuHaRi" system of determining the appropriate level of expertise/handoff required:
One member in the Crystal family of methodologies is Crystal Clear. Crystal Clear can be described to a Level 3 listener in the following words:
"Put 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone."
I did, in fact, describe Crystal Clear in those words to a savvy project sponsor. He followed those instructions and reported five months later, âoeWe did what you said, and it worked!â
you see, if you have good developers you can do this. If you have crap one, you can't. That's pretty much what it all comes down to.
whjat you have does certainly sound similat to Alistair Cockburn's Crystal Clear methodology, in particular his ShuRaRi system of determining the appropriate level of expertise/handoff required:
One member in the Crystal family of methodologies is Crystal Clear. Crystal Clear can be described to a Level 3 listener in the following words:
âoePut 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone.â
I did, in fact, describe Crystal Clear in those words to a savvy project sponsor. He followed those instructions and reported five months later, âoeWe did what you said, and it worked!â
you see, if you have good developers you can do this. If you have crap one, you can't. That's pretty much what it all comes down to.
Re:Missing the forest for the trees
on
The PHP Singularity
·
· Score: 3, Interesting
so PHP is like English with its mess of irregular verbs and pronouns. I guess the 'best' language is Smalltalk... the Latin of the computing world.
amen to this - the reason (listen up other language guys) is that it's just there, ready to go. Want to write an app, just drop a php file in a directory on your webserver and... well, that's it.
PHP is like the old personal computers of yesteryear, the ones that booted into a BASIC prompt.
My experiences with Ruby and Python have been quite less than satisfactory, ruby required a hell of a lot of hassle to get going, installing passenger, making a symlink in the apache vhost directory to the ruby code files, setting up the right directives, finding various cutting-edge gems that weren't in any repository and then I couldn't really do much in the way of debugging.
Python was the same - first I had to install the correct version for the app I was working with, then play hunt-the-eggs.
The whole reason PHP is so popular is because it is the only real "just works" environment. If anything, all the other languages need to understand this - its not the language syntax (they all have niggles) or the performance (the other script ones are just as bad, the JIT ones suck up resources), its the ease of getting it going.
Everything else is launched by opening a document, so I can see how MS would get such data.
This still doesn't mean that the start menu isn't useful - like a first-aid kit you keep in the cupboard, you never use it so therefore its not useful to have. Its that kind of thinking that's also given us full-screen metro apps.
so would a Cordova-based approach (where the html 'server' is located locally) make a much better user experience? ie, write a 'thick client' app using HTML technologies rather than a traditional web page that is squeezed into iOS size.
I can't remember the article where I read it, but if you go over your CPU allocation, the cost becomes extortionate. You might say, that's fine - I pay for what I get, but you only need 1 program to go into a 100% CPU cycle for a short while to hurt your wallet.
They also charge you for stopped applications, which is not clear, so you might want to be aware of that.
I'd say the thing about XP was that it became the OS that "did enough", before then we always lapped up every upgrade, every time. There were always good reasons to upgrade. When XP came out, there suddenly wasn't much of a reason, computing had grown up somewhat and had become mature enough to start using it for real-world work, rather than have one around almost as an end in itself.
what you really need is something like Stardock's WindowBlinds. they were fantastic in the days of OS/2. I remember that, when there was a consistency everywhere - if you could see a filename, you could right click it and rename it because it was the same code object underneath it. That's the kind of thing we want from a Linux desktop.
Users wishing to undo the change can do so by clicking on the "about" link in their profile and then clicking the "edit" button next to their contact information.
They then need to click make their Facebook email address "hidden from timeline" and then - if they wish - make one or more of their other preferred addresses visible.
I think that's pretty obvious... by facebook standards.
Amazon is actually cheaper than Azure, especially if you don't have CPU spikes - Azure used to be exceptionally expensive if it went past your CPU usage plan.
unfortunately its not a Nvidia v Linux thing, Nvidia *doesn't* have to release anything for Linux. They can ignore the platform completely, which in turn means consumers ignore the platform too (because it has shitty graphics) and then Nvidia has no reason to work with Linux because it has no customers demanding Nvidia support...
but its not just Nvidia, if there was a stable ABI, any hardware manufacturer could bundle a CD with Linux driver software (and a little "works with" penguin icon) with their kit and anyone buying it would know it worked with their Linux install. Today, that's not the case, so the manufacturers standard mechanism of releasing software to consumers fails. They might know to rerlease the source and let the Linux guys recompile it and (hopefully) fix it for new versions, but that's not the way its done (and it puts an increasingly large burden on the distro compilers, wouldn't it be better if all these driver modules didn't need touching between versions?)
I like to think of this problem as a classic business v technical one, where the techs are not providing the business what it needs. Unfortunately, I think it really is a big part of the reason Linux is not more popular as a consumer OS.
nonsense, otherwise Windows would have to be re-released with a new ABI everytime too. If MS can have a stable binary driver model, there's nothing stopping Linux from doing the same.
you mean something like NDISWrapper that lets you run Windows binary drivers for network devices. We need something similar for Windows graphics drivers... well, if it won't be done natively, then yes, this is probably exactly what is needed/
how often does an ABI of something as mature as Linux need to be changed? Microsoft manages quite well, and only changed their driver model when the big media firms persuaded them to put DRM into it for Vista. I should imagine stabilising the Linux ABI today would not change for the next 20 years.
I'd say you are.. apparently the drivers contain much of the magic that makes their cards word well, so opening up the source to the drivers would hand all their competitors a ton of advantage. Sure, I'd like to see that;) but it isn't going to happen.
So start thinking how to address the issue that allows Nvidia to release a single binary that works across all Linux platforms and versions, then I can download the driver from their website, bundled CD, or have it packaged with their own repo and you'd get super fast graphics without any hassle.
you don't quite understand the problem here - the HW manufacturer can offer a single Windows binary (or 2 or 3 at worst). But with Linux, they have to recompile a version for every (well...) version of the kernel that's out there. If the driver system had a stable ABI that never changed, then the HW manufacturers could deliver a single binary built "for linux" and would expect it to work. Currently, they have no such guarantee.
You wonder why Linux on the desktop never took off? There's no business benefit to the manufacturers to support it. Sure, its technically better, but that means diddly squat in the real world especially when the answer is to recompile from source. You're never going to get Nvidia's source code, so accept that and start to deal with it with a technical solution rather than an idealistic one.
Telling people which versions of Linux they can use the video cards with
or guess what, we could create a stable ABI and then a single blob would work with (gosh) all versions of Linux.
The other benefit is that all other bits of hardware would work with all versions of Linux and could they start to be sold with shrink-wrapped drivers in the shops.
Can you imagine channel surfing and all the channels which would be playing commercials are instead playing the SAME commercials in PERFECT SYNCHRONIZATION!
I think an advertising executive just wet his pants.
IIRC STLPort is built without exception handling, or even if it doesn't, there are implementations designed for embedded systems that are a bit more embedded-friendly.
BTW, new should return std::bad_alloc, 'cos you can't new an exception structure if you've got no memory left that caused the initial new to fail.
as for subsets - c'mon, you get holy wars over bracket placement and whitespace. Arguing over language features is a strawman given that.
ok, so scrap a load fo useful stuff becuase.... well, I'm not sure why not. Just because you don't use algorithms doesn;t mean no-one else does.
As for diamond inheritance - I guess you're referring to the diamond 'problem' of multiple inheritance (where your class derives from 2 base classes, each of which derive from a common base class themselves - in such cases, you have to put the virtual keyword in to tell the compiler to take it into account, or you get 2 distinct instances of each base class... which might be what's needed, which is why it's not automatically dealt with by the compiler by default).
It sounds like you want to just dumb down the language to the point where it's called C#. I think most of your arguments aren't really arguments at all, and you could do a lot better if you really wanted to criticise the language.
I don;t like a lot of the template complexity now, but then... and this is the big deal, I don't have to use them (and I don't - I feel they don't make for maintainable code) but that doesn't mean they don't have their place in some specialist areas. Of course, if you don;t use a feature, that feature doesn't get in your code - so the only thing that gets bloated is the compiler, and that's hardly a problem.
perhaps modularised installs is the way for Google to go (the build time for android is something like all day?) but then you'd have even more fragmentation with different handsets having different features.... except, this is the way of the world: different handsets do have different features anyway, like NFC chips or cameras.
I don't think that helps when you come to do some development though - you still have to choose which version of the sdk you'll target, and until that changes to a much more "android + all the following features" system, people will stay developing for gingerbread (for the next 2 years)
The biggest problem for end-users is the fact that companies do not want to do updates for already-released products
not necessarily so - I have a bodged-up version of ICS running on my Samsung Galaxy S1, so kudos to them for taking the effort. But I can imagine I won't get a JB upgrade, only partly because of the time pressure to fit it in, but mainly because my device will not have enough RAM to run it acceptably (ICS isn't as good a user experience as GB on my device, its nowhere near as fast). So its not so much manufacturers conspiring to prevent you from getting upgrades to firce you to buy a new phone, its more that the OS requires more power than the old phones have.
This is true of my Galaxy, what of the more budget phones that are still out there? Don't forget that I'm locked into my phone contract until February. I won't be upgrading until then, and I expect a lot more people will be in the same boat. 2 years is a very long time when it comes to new devices and OS upgrades.
So maybe Google needs to stop releasing OSs so quickly, which would give them more time to add better features and improve the quality, then realise that a everyone will be running the old stuff for 2 years at least before the next version becomes the majority version.
BTW, people will buy the latest shiny no matter what - your contract ends, you get a new one and the carrier will offer you shiny shiny for the same price. Everyone takes the offer, though sure, some people will sell the new rather than the old ones on ebay. Of course, that means the old ones still have a long life when they're used by their new owners....
what you have does certainly sound similar to Alistair Cockburn's Crystal Clear methodology, in particular his ShuHaRi" system of determining the appropriate level of expertise/handoff required:
One member in the Crystal family of methodologies is Crystal Clear. Crystal Clear can be described to a Level 3 listener in the following words:
"Put 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone."
I did, in fact, describe Crystal Clear in those words to a savvy project sponsor. He followed those instructions and reported five months later, âoeWe did what you said, and it worked!â
you see, if you have good developers you can do this. If you have crap one, you can't. That's pretty much what it all comes down to.
whjat you have does certainly sound similat to Alistair Cockburn's Crystal Clear methodology, in particular his ShuRaRi system of determining the appropriate level of expertise/handoff required:
One member in the Crystal family of methodologies is Crystal Clear. Crystal Clear can be described to a Level 3 listener in the following words:
âoePut 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the users every one or two months, and otherwise leave them alone.â
I did, in fact, describe Crystal Clear in those words to a savvy project sponsor. He followed those instructions and reported five months later, âoeWe did what you said, and it worked!â
you see, if you have good developers you can do this. If you have crap one, you can't. That's pretty much what it all comes down to.
so PHP is like English with its mess of irregular verbs and pronouns. I guess the 'best' language is Smalltalk... the Latin of the computing world.
amen to this - the reason (listen up other language guys) is that it's just there, ready to go. Want to write an app, just drop a php file in a directory on your webserver and ... well, that's it.
PHP is like the old personal computers of yesteryear, the ones that booted into a BASIC prompt.
My experiences with Ruby and Python have been quite less than satisfactory, ruby required a hell of a lot of hassle to get going, installing passenger, making a symlink in the apache vhost directory to the ruby code files, setting up the right directives, finding various cutting-edge gems that weren't in any repository and then I couldn't really do much in the way of debugging.
Python was the same - first I had to install the correct version for the app I was working with, then play hunt-the-eggs.
The whole reason PHP is so popular is because it is the only real "just works" environment. If anything, all the other languages need to understand this - its not the language syntax (they all have niggles) or the performance (the other script ones are just as bad, the JIT ones suck up resources), its the ease of getting it going.
I can only imagine its people who:
use 2 apps on their task bar: "web" and "mail".
Everything else is launched by opening a document, so I can see how MS would get such data.
This still doesn't mean that the start menu isn't useful - like a first-aid kit you keep in the cupboard, you never use it so therefore its not useful to have. Its that kind of thinking that's also given us full-screen metro apps.
so would a Cordova-based approach (where the html 'server' is located locally) make a much better user experience? ie, write a 'thick client' app using HTML technologies rather than a traditional web page that is squeezed into iOS size.
I can't remember the article where I read it, but if you go over your CPU allocation, the cost becomes extortionate. You might say, that's fine - I pay for what I get, but you only need 1 program to go into a 100% CPU cycle for a short while to hurt your wallet.
They also charge you for stopped applications, which is not clear, so you might want to be aware of that.
I'd say the thing about XP was that it became the OS that "did enough", before then we always lapped up every upgrade, every time. There were always good reasons to upgrade. When XP came out, there suddenly wasn't much of a reason, computing had grown up somewhat and had become mature enough to start using it for real-world work, rather than have one around almost as an end in itself.
... forgetting they are there to interact with other humans?
like girls? c'mon, I think we both know the answer to your question.
what you really need is something like Stardock's WindowBlinds. they were fantastic in the days of OS/2. I remember that, when there was a consistency everywhere - if you could see a filename, you could right click it and rename it because it was the same code object underneath it. That's the kind of thing we want from a Linux desktop.
from the BBC's article:
Users wishing to undo the change can do so by clicking on the "about" link in their profile and then clicking the "edit" button next to their contact information.
They then need to click make their Facebook email address "hidden from timeline" and then - if they wish - make one or more of their other preferred addresses visible.
I think that's pretty obvious... by facebook standards.
Amazon is actually cheaper than Azure, especially if you don't have CPU spikes - Azure used to be exceptionally expensive if it went past your CPU usage plan.
unfortunately its not a Nvidia v Linux thing, Nvidia *doesn't* have to release anything for Linux. They can ignore the platform completely, which in turn means consumers ignore the platform too (because it has shitty graphics) and then Nvidia has no reason to work with Linux because it has no customers demanding Nvidia support...
but its not just Nvidia, if there was a stable ABI, any hardware manufacturer could bundle a CD with Linux driver software (and a little "works with" penguin icon) with their kit and anyone buying it would know it worked with their Linux install. Today, that's not the case, so the manufacturers standard mechanism of releasing software to consumers fails. They might know to rerlease the source and let the Linux guys recompile it and (hopefully) fix it for new versions, but that's not the way its done (and it puts an increasingly large burden on the distro compilers, wouldn't it be better if all these driver modules didn't need touching between versions?)
I like to think of this problem as a classic business v technical one, where the techs are not providing the business what it needs. Unfortunately, I think it really is a big part of the reason Linux is not more popular as a consumer OS.
nonsense, otherwise Windows would have to be re-released with a new ABI everytime too. If MS can have a stable binary driver model, there's nothing stopping Linux from doing the same.
you mean something like NDISWrapper that lets you run Windows binary drivers for network devices. We need something similar for Windows graphics drivers... well, if it won't be done natively, then yes, this is probably exactly what is needed/
how often does an ABI of something as mature as Linux need to be changed? Microsoft manages quite well, and only changed their driver model when the big media firms persuaded them to put DRM into it for Vista. I should imagine stabilising the Linux ABI today would not change for the next 20 years.
I'd say you are.. apparently the drivers contain much of the magic that makes their cards word well, so opening up the source to the drivers would hand all their competitors a ton of advantage. Sure, I'd like to see that ;) but it isn't going to happen.
So start thinking how to address the issue that allows Nvidia to release a single binary that works across all Linux platforms and versions, then I can download the driver from their website, bundled CD, or have it packaged with their own repo and you'd get super fast graphics without any hassle.
you don't quite understand the problem here - the HW manufacturer can offer a single Windows binary (or 2 or 3 at worst). But with Linux, they have to recompile a version for every (well...) version of the kernel that's out there. If the driver system had a stable ABI that never changed, then the HW manufacturers could deliver a single binary built "for linux" and would expect it to work. Currently, they have no such guarantee.
You wonder why Linux on the desktop never took off? There's no business benefit to the manufacturers to support it. Sure, its technically better, but that means diddly squat in the real world especially when the answer is to recompile from source. You're never going to get Nvidia's source code, so accept that and start to deal with it with a technical solution rather than an idealistic one.
Telling people which versions of Linux they can use the video cards with
or guess what, we could create a stable ABI and then a single blob would work with (gosh) all versions of Linux.
The other benefit is that all other bits of hardware would work with all versions of Linux and could they start to be sold with shrink-wrapped drivers in the shops.
yeah, they should sue microsoft for defamation and ... effectively get a large donation.
Can you imagine channel surfing and all the channels which would be playing commercials are instead playing the SAME commercials in PERFECT SYNCHRONIZATION!
I think an advertising executive just wet his pants.