You are presuming that the script will be badly made, which isn't the case. Look at Python, it is built with the intention of making code not only easy to write, but easy to read and understand. There are a host of tools, features and guidelines to ensure that code you write using it is incredibly maintainable and easy to work with. The higher-level methodologies and massive standard library mean simpler code reusing more parts, meaning less potential errors and less code to get used to coming into a project.
What I described isn't short-term thinking - it's just utilizing the resources effectively. Yes, bad programmers can write bad scripts that are hard to maintain, but that isn't specific to scripts. A good programmer can use a high-level language for the valuable tool it is.
What promises were broken? The Notch hate just seems to be people who imagined a minecraft where you could do literally anything, and were never going to be pleased unless he worked 24/7 on it forever.
The Rock Band titles have insane achievements - completing all of them doesn't mean you have completed the game, it means you have mastered it entirely. Completely different.
I'm upset at Nintendo for Super Paper Mario, and apparently Paper Mario: Sticker Star too. I *loved* Paper Mario and Thousand Year Door - I own an original PM cart and am actually doing a play-through on my N64 right now with friends. I think it's the best example of how to do turn-based combat ever made, with witty story, great characters and just well done in general.
SPM's combat was uninteresting by comparison, and from what I hear, PM:SS gets it wrong on both combat and story, cutting out the elements that made PM great. I was going to buy a 3DS just for it, but given what I have heard and the fact it isn't even coming out here in the UK until well into next year (late feb, IIRC) despite the fact it's already out in the states, it isn't going to happen.
Interestingly, I heard that Sony suggest that, as an anti-piracy measure, devs put all their audio on completely uncompressed in order to fill the blu-ray discs - downloading 50GB is a lot less appealing than 4.7GB.
It's also all too easy to find programmers who don't recognize the value of not giving a damn in situations where it truly doesn't matter. If I can save a ton of cost by using a higher level language and having no-effort cross-platform compatibility, better maintainability and faster development, then it's often very worthwhile. Yes, in some situations (rare, and getting rarer as we have more and more resources to play with) it is necessary to do this kind of low-level work and be careful about memory use (or performance, or whatever), but that is the only time you should be doing it. Premature optimization is a waste of time and effort.
Not to mention that I disagree strongly with the idea that high-level equates to memory inefficient. I've seen beautiful Python code that uses it's built in generators to work with massive files without reading them all into memory - something that can be horribly awkward to do in other languages. While yes, this isn't dealing with the case of the 'I am running on a chip with 4kb of RAM', it is the much more common case today. It's about using the tool for the job. Sure I could buy some little chip to do that job and write some masterpiece of optimized code (which will require a lot of effort to maintain), or I could pick up a Raspberry Pi and bash it out in a 10-line script.
I think you are confusing 'journalism' with 'good journalism'. Journalism is the investigation into, and reporting of, events. Wikileaks fits into that definition.
I have honestly had more issue under Windows with drivers than I have in Linux. Everything I use these days I just plug in and the kernel has the driver ready.
Really? How many people have an iPhone where they can only install software from the app store? How is it any different (besides the fact that you actually can install what you want besides, it's just not simple). People get package managers now, because most people use them all the time. Either they'll be happy with what's on offer, or they'll be a power user who can at least google how to deal with it.
Watson is actually already cooler than that, you just give it the patient records, and results from the exam you just did, for example (all in natural language, no special inputting with confidence or anything like that), and Watson will take everything into account (from symptoms, environmental stuff, existing medication, patient history, family history, etc...) and give causes, treatments, etc... - it's really awesome.
Just as a note, you wouldn't need another Watson, just run it again, and train it on different data. It could (in theory) apply it's 'learning' skills to anything.
I know it's just a joke, but just to clarify: the big difference here is the scope of what Watson does. Websites generally take one symptom and list off all possible causes (so naturally people focus on the worst ones). Watson takes (in natural language) patient history, symptoms, environmental factors, current medication, etc... - everything a doctor has access to (and a doctor would have to perform the exam to make this worthwhile), and then cross references with a huge amount of knowledge from papers, classes like this, 'experience', etc... this is then used to give an idea of what the patient has, how to treat, etc... It's really cool.
Watson actually does some really cool stuff with respect to not just being 'do this' - it tells you what it 'thinks', but also tells you why it thinks those things, and how sure it is of that. So it will say 'I think it's likely the patient has Y because of family history, environmental factors, this symptom and these studies', etc... It's more giving the doctor all the (relevant) information possible than telling the doctor what to do.
And that's why you still have actual doctors - this is simply a way to get doctors information quickly and filter the relevant stuff down, not make decisions for them.
I recently worked at IBM and this is one of the things they really love to showcase - I think primarily because it's really cool, but also has really useful end results - exactly the kind of thing you want to be working on.
The first thing I said was that IDEs are not a bad thing, just that a language relying on an IDE is.
By all means, separating related content into a single file makes complete sense, but one class a file? Why? If I have a group of small, related classes, why not put them in a single file? That helps the organisation of the code. Java enforces one class a file for no good reason.
As to code readability, Python allows you to write code that is far less verbose and yet massively descriptive and easy to read/maintain (that is in fact, a core goal of the language), without the *need* for an IDE.
I disagree, I think there is more danger in letting a language stagnate. I get that not every feature can be implemented, but there is a middle ground.
That hasn't been my experience - try PyCharm, it's my personal choice and it does extremely well with inspections and analysis. That said, I generally find that due to the nature of it's dynamic style (and other language design choices), Python tends to encourage a better coding style to begin with, which helps you to avoid needing such tools (obviously, nothing could negate them entirely, but it's surprising how well one can do without them).
Not at all, my point was that when a standard library function returns null on an error, that error then shows up as a null pointer exception later in the code, which means either debugging or searching through code to find the cause, rather than just reading the exception. By changing this behavior, we could reduce the need to debug.
Because you can have a language feature like a property (see C#, Python, D, etc...) which allows you to produce getters and setters that act like an attribute, meaning you don't have to pre-generate them to ensure your interface remains the same when you decide you need your attribute to do something.
I just never see those. I don't have dragons in a place to be impersonating ducks in my code. I mean, how often, when you are sitting with a static language, do you start doing something with the wrong type? Hardly ever, and when you do, it's generally just because the type needs to implement an interface, for example, and would work if you did. Given that, why would you suddenly start doing it in a dynamic language?
You are presuming that the script will be badly made, which isn't the case. Look at Python, it is built with the intention of making code not only easy to write, but easy to read and understand. There are a host of tools, features and guidelines to ensure that code you write using it is incredibly maintainable and easy to work with. The higher-level methodologies and massive standard library mean simpler code reusing more parts, meaning less potential errors and less code to get used to coming into a project.
What I described isn't short-term thinking - it's just utilizing the resources effectively. Yes, bad programmers can write bad scripts that are hard to maintain, but that isn't specific to scripts. A good programmer can use a high-level language for the valuable tool it is.
What promises were broken? The Notch hate just seems to be people who imagined a minecraft where you could do literally anything, and were never going to be pleased unless he worked 24/7 on it forever.
The Rock Band titles have insane achievements - completing all of them doesn't mean you have completed the game, it means you have mastered it entirely. Completely different.
I'm upset at Nintendo for Super Paper Mario, and apparently Paper Mario: Sticker Star too. I *loved* Paper Mario and Thousand Year Door - I own an original PM cart and am actually doing a play-through on my N64 right now with friends. I think it's the best example of how to do turn-based combat ever made, with witty story, great characters and just well done in general.
SPM's combat was uninteresting by comparison, and from what I hear, PM:SS gets it wrong on both combat and story, cutting out the elements that made PM great. I was going to buy a 3DS just for it, but given what I have heard and the fact it isn't even coming out here in the UK until well into next year (late feb, IIRC) despite the fact it's already out in the states, it isn't going to happen.
Interestingly, I heard that Sony suggest that, as an anti-piracy measure, devs put all their audio on completely uncompressed in order to fill the blu-ray discs - downloading 50GB is a lot less appealing than 4.7GB.
It's also all too easy to find programmers who don't recognize the value of not giving a damn in situations where it truly doesn't matter. If I can save a ton of cost by using a higher level language and having no-effort cross-platform compatibility, better maintainability and faster development, then it's often very worthwhile. Yes, in some situations (rare, and getting rarer as we have more and more resources to play with) it is necessary to do this kind of low-level work and be careful about memory use (or performance, or whatever), but that is the only time you should be doing it. Premature optimization is a waste of time and effort.
Not to mention that I disagree strongly with the idea that high-level equates to memory inefficient. I've seen beautiful Python code that uses it's built in generators to work with massive files without reading them all into memory - something that can be horribly awkward to do in other languages. While yes, this isn't dealing with the case of the 'I am running on a chip with 4kb of RAM', it is the much more common case today. It's about using the tool for the job. Sure I could buy some little chip to do that job and write some masterpiece of optimized code (which will require a lot of effort to maintain), or I could pick up a Raspberry Pi and bash it out in a 10-line script.
I think you are confusing 'journalism' with 'good journalism'. Journalism is the investigation into, and reporting of, events. Wikileaks fits into that definition.
I have honestly had more issue under Windows with drivers than I have in Linux. Everything I use these days I just plug in and the kernel has the driver ready.
Right? This is just... It sounds like a joke. How does this kind of thing actually happen in the modern world?
Qt, GTK+, Python, Java+Swing/SWT, TCL/TK - off the top of my head.
Really? How many people have an iPhone where they can only install software from the app store? How is it any different (besides the fact that you actually can install what you want besides, it's just not simple). People get package managers now, because most people use them all the time. Either they'll be happy with what's on offer, or they'll be a power user who can at least google how to deal with it.
Try using Python - it's about as close to writing down what you mean, rather than telling the computer what to do, that we have.
I couldn't help but think of this: http://www.youtube.com/watch?v=U4oB28ksiIo
Watson is actually already cooler than that, you just give it the patient records, and results from the exam you just did, for example (all in natural language, no special inputting with confidence or anything like that), and Watson will take everything into account (from symptoms, environmental stuff, existing medication, patient history, family history, etc...) and give causes, treatments, etc... - it's really awesome.
Just as a note, you wouldn't need another Watson, just run it again, and train it on different data. It could (in theory) apply it's 'learning' skills to anything.
I know it's just a joke, but just to clarify: the big difference here is the scope of what Watson does. Websites generally take one symptom and list off all possible causes (so naturally people focus on the worst ones). Watson takes (in natural language) patient history, symptoms, environmental factors, current medication, etc... - everything a doctor has access to (and a doctor would have to perform the exam to make this worthwhile), and then cross references with a huge amount of knowledge from papers, classes like this, 'experience', etc... this is then used to give an idea of what the patient has, how to treat, etc... It's really cool.
Watson actually does some really cool stuff with respect to not just being 'do this' - it tells you what it 'thinks', but also tells you why it thinks those things, and how sure it is of that. So it will say 'I think it's likely the patient has Y because of family history, environmental factors, this symptom and these studies', etc... It's more giving the doctor all the (relevant) information possible than telling the doctor what to do.
And that's why you still have actual doctors - this is simply a way to get doctors information quickly and filter the relevant stuff down, not make decisions for them.
I recently worked at IBM and this is one of the things they really love to showcase - I think primarily because it's really cool, but also has really useful end results - exactly the kind of thing you want to be working on.
The first thing I said was that IDEs are not a bad thing, just that a language relying on an IDE is.
By all means, separating related content into a single file makes complete sense, but one class a file? Why? If I have a group of small, related classes, why not put them in a single file? That helps the organisation of the code. Java enforces one class a file for no good reason.
As to code readability, Python allows you to write code that is far less verbose and yet massively descriptive and easy to read/maintain (that is in fact, a core goal of the language), without the *need* for an IDE.
I disagree, I think there is more danger in letting a language stagnate. I get that not every feature can be implemented, but there is a middle ground.
That hasn't been my experience - try PyCharm, it's my personal choice and it does extremely well with inspections and analysis. That said, I generally find that due to the nature of it's dynamic style (and other language design choices), Python tends to encourage a better coding style to begin with, which helps you to avoid needing such tools (obviously, nothing could negate them entirely, but it's surprising how well one can do without them).
Not at all, my point was that when a standard library function returns null on an error, that error then shows up as a null pointer exception later in the code, which means either debugging or searching through code to find the cause, rather than just reading the exception. By changing this behavior, we could reduce the need to debug.
Because you can have a language feature like a property (see C#, Python, D, etc...) which allows you to produce getters and setters that act like an attribute, meaning you don't have to pre-generate them to ensure your interface remains the same when you decide you need your attribute to do something.
I just never see those. I don't have dragons in a place to be impersonating ducks in my code. I mean, how often, when you are sitting with a static language, do you start doing something with the wrong type? Hardly ever, and when you do, it's generally just because the type needs to implement an interface, for example, and would work if you did. Given that, why would you suddenly start doing it in a dynamic language?