lambda's and maps != functional programming
The main aspect of functional programming is functions without side-effects. Lambdas are one way of achieving this, but not the only way.
Here I'd respond that Ruby provides much more natural support for higher-order functions (because of blocks), its libraries are designed around them. It's actualy hard to avoid using them any time you program in Ruby.
I think you'll find there's not too much difference between Python and Ruby in this respect. In Ruby, code such as this:
method(method_args) { |yield_args| code }
is just about equivalent to this in Python:
for yield_args in method(method_args): code
Ruby and Python take different approaches to the same problem, but I'd hesitate in saying one was clearly superior to another.
This is not so with Python, whose design is in fact evolving to discourage a functional programming style (Guido has repeatedly rejected adding anonymous closures to the language, and is planning to get rid of built-in functional combinators like map and reduce).
That's because list comprehensions, generators, and inner functions do the same thing in a more Pythonic way. No functionality will be lost with the disappearance of lambda, map, filter, etc.
The errors in/. are beside the point; they're obviously not caused by any bugs in the language, but in the code itself. As for caching, if it's transparent to the user, than what's the difference? I don't think that Amazon or a large site such as that is going to get by without some form of caching.
The performance of mod_* and J2EE aren't so different.
Yeah, that's the part that gets me wondering. People keep talking about hiding away the SQL. But if they don't want SQL, then why are they using an SQL RDBMS in the first place?
In one word: abstraction.
With most web applications, one often finds oneself executing many similar SQL queries. The Rails and SQLObject frameworks attempt to take some of the work out of this. For instance, using Python's standard MySQL interface, one might write something like:
cursor.execute("SELECT p.id, p.subject FROM users u LEFT JOIN posts p ON (u.id = p.user_id) WHERE u.name = %s", (username)) for i in range(cursor.rowcount): #### do something
Whilst using a database abstraction layer, your code could look something like:
for post in User.selectBy(name = username).posts: #### do something
Which is rather neater. Generally, you can also use inheritance to customise the database classes. However, if your program relies on a lot of complex SQL code, and very little formulaic SQL, a jack-of-all-trades database abstraction layer can just mean more work.
Slashdot itself uses Apache/mod_perl/MySQL, and there's little between mod_perl and mod_python in terms of performance. Slashdot handles 3 million pages per day without any trouble. Does Slashdot not count as a 'large site'?
The idea that J2EE is the only system that can handle high traffic sites is a myth.
To me it seems like a silly exercise to replicate rails in python or what have you. Ruby is easy to pick up and a nice language to boot. Why bother really? Just learn ruby and get on board.
Whilst Rails is an excellent framework for web applications, I've found that it gets exponentially more difficult to work with when your database structures grow more complex than interconnected lists. I recently designed a double-booked accounts program in Rails, and whilst most of the code was simple to design, I quickly got bogged down in handling the accounts-tree and the double-booking of financial records. Here the documentation ran out, and I was forced to go through the Rails source to discover a solution to my problem, which turned out to be less than optimum.
Secondly, whilst I have done a fair bit of work in Ruby, I can't help but prefer Python. If there's little difference between Rails and, say, Turbogears, Django or Subway, then surely it comes down to personal preference. Python web frameworks appear to take a more piecemeal approach than Rail, which can provide a more flexible solution in certain situations.
Can't say I much like SQLObject's syntax, though; but CherryPy seems rather elegant.
Except DRM, both in theory and in practise, doesn't work. Once information is in the public domain, it can never be completely removed. All DRM can be broken, and therefore all DRMed information will eventually wind up in the public domain.
Your assertion that a DRM-based society "has to happen" is flawed, because DRM cannot guarentee that a piece of information cannot be copied.
In a way, it is. Using your neocortex more leaves you more "intelligent" than using it less.
Assuming that by 'lazy', one means a tendency to avoid work, then being lazy requires one to use their mind more, not less.
A truly lazy person will work out how to achieve the same results with less effort. Necessity being the mother of invention, most innovations come about from people trying to reduce the work they have to do.
Except that, unlike normal encryption, DRM can only make it a little more difficult to copy an item; it cannot prevent an item being copied if the user is persistant enough. And once an item has been copied once, the DRM on the original ceases to be an issue (laws like the DMCA aside).
Then all I would need to do is set up a shared drive on the windows machine that I could access across my home network. Am I right to assume that Linux can read NTFS but not write?
Yes, that's correct. Though you can read and write to an NTFS drive across a Windows network using Linux.
This system seems more aimed at a niche market, so they're not directly competing with the PSP. Also, it appears that their previous product, the GP32 was profitable enough.
Personally, I'm more interested in this console than a PSP. An affordable handhold Linux system with USB and twin 200MHz processors does sound tempting. Shouldn't be too hard to get a terminal on this thing, and the USB connection opens up the possibility of buying a small keyboard for it.
Perhaps the statement is a logical fallacy when it comes down to it, but my experience has been that most people who go through the trial by fire to become bona fide authors are pretty firm when it comes to intellectual rights. In fact, I don't think I've met a single pro author who isn't. For that matter, part of being a professional author is understanding that you make your living through your royalties, and it is therefore very important to protect them.
Cory Doctorow might disagree with you. Much of his success is arguably down to releasing his books under a creative commons license for free online.
In his speech Ebooks: Neither E, Nor Books he points out that releasing free electronic copies of books has been shown to increase sales dramatically. In other articles he's written on BoingBoing, he argues that the best thing an author can get is exposure and word-of-mouth advertising; and releasing your books free online is a very good way of achieving that.
Cory Doctorow is also a representative of the EFF, if memory serves, and is certainly very critical of the RIAA. Nor is he alone in his views. Protecting your rights is all very well, but if giving up some rights means that more people know of your works, you'll make more money in the long run.
A solution to immortality could be enforced sterility. Just combine the immortality treatment with a sterility drug of some description; all those who wish to live forever cannot have offspring without a license. This would keep population growth to a minimum.
I suspect that the engineers involved in Vigin Galactic are not complete morons, and might possibly know a little bit about high altitude flight and rocket engines. Perhaps even more than you do, surprising as that may seem.
If they set about designing an orbital craft, I'd hazard a guess and say that they wouldn't use an engine design that is known not to work. Likely as not, they'd use a different engine design that is known to work.
Britain has far more people per square mile than the US. Even when you factor out all the deserts, mountains, and generally uninhabitable places, the UK still comes up as more crowded than the US.
What the GP was asking is why, when you have so much space, do you feel the need to cram everything into compact urban areas like New York or LA.
However, I personally don't believe the UK is any better, really. London's a pretty large city, and many, many people commute and live there.
Both Perl and Python can use the GTK, Qt and Tk GUI toolkits. Perl and Python only have support for Qt3, so there's no GPLed Windows version of Qt for these languages. Tk's always struck me as ugly, so GTK seems the best choice. It's what Bittorrent uses.
Bittorrent used to use wxPython, a python wrapper around wxWindows, another GUI toolkit. Though wxWindows has always seemed a bit flaky to me.
Both Perl and Python have ODBC modules, which I believe allows a program to interface with MS Access.
Perl has native regular expressions, whilst Python supplies a regular expression module in the standard Python download. If you're using a lot of regular expressions, Perl's syntax is more concise than Python's.
Personally, I tend to prefer Python to program in. It seems cleaner, neater, and easier to remember than Perl. I almost always choose Python over Perl in any project.
That said, a lot depends on your personal preference. Perl seem more 'hacky' than Python (I leave it up to the reader whether that is a good or bad thing), but both languages will do exactly what you want, so there's little to choose between them.
Anyways, Python is a cool language. I'm helping out with a Python-derivative language called Boo, check it out here. Better work on something useful.
Geez, why do people feel they have to be such jerks when talking online?
Firstly, designing a language and programming a VM are two completely different things. Secondly, who are you to tell someone how to spend their free time? Boo looks quite interesting, especially its macro features; I'm unaware of any other imperative language which has this.
You might as well tell the Parrot programmers to work on X.org instead, as that's more 'useful' to the average Linux/BSD user.
I respectfully disagree with you about the speed issue. Modern day PCs are pretty fast, and in my experience Python's speed, or lack of it, simply isn't an issue for a good majority of software development. Programs like Photoshop, Office and Firefox might be a little out of Python's scope, but anything short of that should be fine. If you wanted to create an RSS Reader, or a P2P application, or a IRC client, or a piece of accounting software, then you could do worse than Python. Python's even fast enough to program OpenGL demo programs in, so long as you don't want bleeding-edge graphics.
Thanks for the link to Boo, though. I'll swap you it for a link to Nice, which I'm not sure if you've heard of. It's like Groovy, but there's a more formal 'correctness' to it. Whilst Groovy has Ruby elements in it, Nice seems more akin to something like Haskell. Nice has value dispatching for one, which I find pretty cool, since I'm not familiar with any other imperitive languages which have that.
Feel free to place any limits on the IDer, so long as you can support that with at least a shread of evidence. I agree with you that saying that the IDer is omnipotent and playing tricks on us has no scientific basis, but I do not see how the fact that ID allows the IDer to be omnipotent would somehow make it unscientific -- any evidence that a non-omnipotent IDer leaves behind could also be left behind by an omnipotent IDer.
First remember that scientific theories are never proven, only disproven. Secondly, perhaps I can illustrate my point with an example...
With a theory that excludes omnipotent beings from its equations, a scientist can say, "Well, according to this theory, the chance of these results occuring is 1 in a billion. Beyond reasonable doubt, this theory has been proven incorrect."
With a theory that includes omnipotent and omniscient beings, a scientist can only say, "Well, the chance of these results occuring is 1 in a billion, unless entity X is messing about with us. So they may be right or might be wrong; as I cannot guess entity X's motivations, I cannot accurately draw any conclusion from the results of this experiment."
Feel free to tell me any theory which does exclude omnipotent beings. Last I checked general relativity does not exclude omnipotent beings. Nor does it assume them.
Check again. All scientific theories, by definition, discount the existance of omnipotent and omniscient beings. General Relativity is very precise; it says things like "Given this mass, and this density, space will always curve like so." Note the 'always'. If general relativity allowed for the possibility of omnipotent beings, then it wouldn't say 'always', it would say, 'maybe, if entity X feels like it, but maybe not'.
Einstein may have believed in God, but for the purposes of Einstein's equations, God is assumed not to exist. Or, rather, God is assumed never to affect the curvature and shape of space and time.
ID is different. In relativity, the base assumption, one of the prime axioms, is that omnipotent and omniscient beings aren't screwing with the fabric of the Universe. Relativity wouldn't be able to predict squat if it didn't assume this. ID, on the other hand, accepts the possibility of God screwing with the Universe (as the Designer), and that ensures that it is not a scientific theory.
I am not claiming that the IDer cannot be omnipotent/omniscient
Unless ID places limits on the Designer in ID it is not scientific.
I'm not saying that it's wrong. I'm not saying that some things aren't best explained by an intelligent designer. I'm not even saying that the creation of humanity by a intelligent designer is unscientific. What I am saying is that any theory that has an omnipotent being in, or any theory that allows for an omnipotent being, is not a scientific theory.
Consider; Einstein's theory of General Relativity explains gravity very well and is generally very clever. And most importantly for our purposes, it assumes that there are no omnipotent beings to monkey around with the orbits of planets and such. That's not to say there isn't any omnipotent beings, just that it's beyond the scope of a scientific theory.
A scientific theory has to be disprovable by observational evidence. An omnipotent being can fake any observational evidence. Therefore any theory that does not exclude omnipotent beings cannot be disproven. Ergo, it's not science.
That doesn't mean that it's not true. Just that it isn't science.
Now, about the fact that some things are best explained by an intelligent designer I offer as an example this here arrowhead. Now you could tell me my arrowhead is actually a rock that got chipped into this shape by falling down a cliff, and everyone would laugh at you. In theory, one could find proof that we were designed as well.
Your example gives weight to my point; archeologists say "Oh, look at this arrow-head, I suspect it was made by some tribe of humans", not, "Oh, look at this arrow-head, I suspect it was made by a godlike omnipotence".
A silly and unlikely, I admit, but my point is that one can disprove things about mortals, but not about gods. Our hypothetical archeologist could suspect it was made by a tribe of humans, and then be disproven when evidence comes to light that the arrowhead was actually created by a new species of intelligent ape. But you cannot disprove a theory that proclaims the arrowhead was made by god.
In addition, god-including theories are worthless as predictive devices, as they depend on the whim of an intelligent being, not a set of intricate, but fixed, rules.
Intelligent Design (or ID) is the controversial assertion which states that certain features of the universe and of living things are best explained by positing an intelligent designer. The majority of ID advocates state that their focus is on detecting evidence of design in nature, without regard to who or what the designer might be. However, ID advocate William Dembski in his book "The Design Inference"[1] lists God or an alien life force as two possible options.
Are you saying that this is incorrect? Are you claiming that ID states that the Designer cannot be omnipotent or omniscient?
How am I setting up a straw man? I assert that ID isn't a scientific theory, and then demonstrated why it was so. I take it you didn't understand?
Intelligent Design says that the idea that chemical soup naturally turned into life is so unlikely that life must have been designed by an intelligent designer, rather in the same way an archeologist would argue that his artifact was made by an intelligent designer (a human). Yea, they make use of Occam's Razor. As a side note, Intelligent Design is pretty much impossible to prove true, but you can prove it false by showing that evolution and abiogenesis are true or possible.
You're incorrect. A scientific theory must be disprovable by observational evidence. An omnipotent and omniscient Designer (ie. God), can fake any evidence such that it is impossible to tell from the real article. Because of this, there can be no valid observational evidence against ID. Hence, ID is not disprovable. Hence, ID is not scientific. QED.
Any theory with an omnipotent intelligence in is not science, because there are no limits, no rules that cannot be broken if required.
MS Visual Studio is Microsoft's ultimate killer app. It's just the single best tool for software development
As far as I know, MS VS can only be used to develop software that use Microsoft support languages and tools, such as ASP, C#, C++ and VB. This rather limits its usefulness in quite a few areas of software development.
This is slightly different. For instance, the proposition, "Unicorns exist", is not a theory, because one cannot prove that unicorns don't. If there are actually unicorns munching on your lawn, then it is still not a theory, but merely an observation.
Scientists don't say, "Particle X exists". They say, "Particle X exists with these properties", and can infer from this that there is a certain chance that it will occur in a particle collider. If it doesn't occur after many, many experiments, and the chance of it actually existing is statistically very, very small, then the theory can be considered to be disproved.
To put it another way, it's impossible to disprove that unicorns exist. However, it would be possible to disprove that monsters will eat anyone in Scotland that says "There's no monsters in Scotland".
lambda's and maps != functional programming The main aspect of functional programming is functions without side-effects. Lambdas are one way of achieving this, but not the only way.
I think you'll find there's not too much difference between Python and Ruby in this respect. In Ruby, code such as this:
is just about equivalent to this in Python:
Ruby and Python take different approaches to the same problem, but I'd hesitate in saying one was clearly superior to another.
That's because list comprehensions, generators, and inner functions do the same thing in a more Pythonic way. No functionality will be lost with the disappearance of lambda, map, filter, etc.
The errors in /. are beside the point; they're obviously not caused by any bugs in the language, but in the code itself. As for caching, if it's transparent to the user, than what's the difference? I don't think that Amazon or a large site such as that is going to get by without some form of caching.
The performance of mod_* and J2EE aren't so different.
In one word: abstraction.
With most web applications, one often finds oneself executing many similar SQL queries. The Rails and SQLObject frameworks attempt to take some of the work out of this. For instance, using Python's standard MySQL interface, one might write something like:
Whilst using a database abstraction layer, your code could look something like:
Which is rather neater. Generally, you can also use inheritance to customise the database classes. However, if your program relies on a lot of complex SQL code, and very little formulaic SQL, a jack-of-all-trades database abstraction layer can just mean more work.
Slashdot itself uses Apache/mod_perl/MySQL, and there's little between mod_perl and mod_python in terms of performance. Slashdot handles 3 million pages per day without any trouble. Does Slashdot not count as a 'large site'?
The idea that J2EE is the only system that can handle high traffic sites is a myth.
Whilst Rails is an excellent framework for web applications, I've found that it gets exponentially more difficult to work with when your database structures grow more complex than interconnected lists. I recently designed a double-booked accounts program in Rails, and whilst most of the code was simple to design, I quickly got bogged down in handling the accounts-tree and the double-booking of financial records. Here the documentation ran out, and I was forced to go through the Rails source to discover a solution to my problem, which turned out to be less than optimum.
Secondly, whilst I have done a fair bit of work in Ruby, I can't help but prefer Python. If there's little difference between Rails and, say, Turbogears, Django or Subway, then surely it comes down to personal preference. Python web frameworks appear to take a more piecemeal approach than Rail, which can provide a more flexible solution in certain situations.
Can't say I much like SQLObject's syntax, though; but CherryPy seems rather elegant.
Except DRM, both in theory and in practise, doesn't work. Once information is in the public domain, it can never be completely removed. All DRM can be broken, and therefore all DRMed information will eventually wind up in the public domain.
Your assertion that a DRM-based society "has to happen" is flawed, because DRM cannot guarentee that a piece of information cannot be copied.
In a way, it is. Using your neocortex more leaves you more "intelligent" than using it less.
Assuming that by 'lazy', one means a tendency to avoid work, then being lazy requires one to use their mind more, not less.
A truly lazy person will work out how to achieve the same results with less effort. Necessity being the mother of invention, most innovations come about from people trying to reduce the work they have to do.
Except that, unlike normal encryption, DRM can only make it a little more difficult to copy an item; it cannot prevent an item being copied if the user is persistant enough. And once an item has been copied once, the DRM on the original ceases to be an issue (laws like the DMCA aside).
Then all I would need to do is set up a shared drive on the windows machine that I could access across my home network. Am I right to assume that Linux can read NTFS but not write?
Yes, that's correct. Though you can read and write to an NTFS drive across a Windows network using Linux.
This system seems more aimed at a niche market, so they're not directly competing with the PSP. Also, it appears that their previous product, the GP32 was profitable enough.
Personally, I'm more interested in this console than a PSP. An affordable handhold Linux system with USB and twin 200MHz processors does sound tempting. Shouldn't be too hard to get a terminal on this thing, and the USB connection opens up the possibility of buying a small keyboard for it.
Cory Doctorow might disagree with you. Much of his success is arguably down to releasing his books under a creative commons license for free online.
In his speech Ebooks: Neither E, Nor Books he points out that releasing free electronic copies of books has been shown to increase sales dramatically. In other articles he's written on BoingBoing, he argues that the best thing an author can get is exposure and word-of-mouth advertising; and releasing your books free online is a very good way of achieving that.
Cory Doctorow is also a representative of the EFF, if memory serves, and is certainly very critical of the RIAA. Nor is he alone in his views. Protecting your rights is all very well, but if giving up some rights means that more people know of your works, you'll make more money in the long run.
A solution to immortality could be enforced sterility. Just combine the immortality treatment with a sterility drug of some description; all those who wish to live forever cannot have offspring without a license. This would keep population growth to a minimum.
I suspect that the engineers involved in Vigin Galactic are not complete morons, and might possibly know a little bit about high altitude flight and rocket engines. Perhaps even more than you do, surprising as that may seem.
If they set about designing an orbital craft, I'd hazard a guess and say that they wouldn't use an engine design that is known not to work. Likely as not, they'd use a different engine design that is known to work.
Britain has far more people per square mile than the US. Even when you factor out all the deserts, mountains, and generally uninhabitable places, the UK still comes up as more crowded than the US.
What the GP was asking is why, when you have so much space, do you feel the need to cram everything into compact urban areas like New York or LA.
However, I personally don't believe the UK is any better, really. London's a pretty large city, and many, many people commute and live there.
Well, as with everything, it depends :)
Both Perl and Python are multiplatform.
Both Perl and Python can use the GTK, Qt and Tk GUI toolkits. Perl and Python only have support for Qt3, so there's no GPLed Windows version of Qt for these languages. Tk's always struck me as ugly, so GTK seems the best choice. It's what Bittorrent uses.
Bittorrent used to use wxPython, a python wrapper around wxWindows, another GUI toolkit. Though wxWindows has always seemed a bit flaky to me.
Both Perl and Python have ODBC modules, which I believe allows a program to interface with MS Access.
Perl has native regular expressions, whilst Python supplies a regular expression module in the standard Python download. If you're using a lot of regular expressions, Perl's syntax is more concise than Python's.
Personally, I tend to prefer Python to program in. It seems cleaner, neater, and easier to remember than Perl. I almost always choose Python over Perl in any project.
That said, a lot depends on your personal preference. Perl seem more 'hacky' than Python (I leave it up to the reader whether that is a good or bad thing), but both languages will do exactly what you want, so there's little to choose between them.
Firstly, designing a language and programming a VM are two completely different things. Secondly, who are you to tell someone how to spend their free time? Boo looks quite interesting, especially its macro features; I'm unaware of any other imperative language which has this.
You might as well tell the Parrot programmers to work on X.org instead, as that's more 'useful' to the average Linux/BSD user.
I suggest you "from politeness include manners".
I'd heard that ST doesn't have a multiple inheritance mechanism. Is this correct, and if so doesn't it pose a problem?
Thanks for the link to Boo, though. I'll swap you it for a link to Nice, which I'm not sure if you've heard of. It's like Groovy, but there's a more formal 'correctness' to it. Whilst Groovy has Ruby elements in it, Nice seems more akin to something like Haskell. Nice has value dispatching for one, which I find pretty cool, since I'm not familiar with any other imperitive languages which have that.
For instance, in Nice, one can do:Instead of:I'm also very beginning to get pretty impressed by Boo's macroing capability. Mmm... Lispish
With a theory that excludes omnipotent beings from its equations, a scientist can say, "Well, according to this theory, the chance of these results occuring is 1 in a billion. Beyond reasonable doubt, this theory has been proven incorrect."
With a theory that includes omnipotent and omniscient beings, a scientist can only say, "Well, the chance of these results occuring is 1 in a billion, unless entity X is messing about with us. So they may be right or might be wrong; as I cannot guess entity X's motivations, I cannot accurately draw any conclusion from the results of this experiment."
Check again. All scientific theories, by definition, discount the existance of omnipotent and omniscient beings. General Relativity is very precise; it says things like "Given this mass, and this density, space will always curve like so." Note the 'always'. If general relativity allowed for the possibility of omnipotent beings, then it wouldn't say 'always', it would say, 'maybe, if entity X feels like it, but maybe not'.
Einstein may have believed in God, but for the purposes of Einstein's equations, God is assumed not to exist. Or, rather, God is assumed never to affect the curvature and shape of space and time.
ID is different. In relativity, the base assumption, one of the prime axioms, is that omnipotent and omniscient beings aren't screwing with the fabric of the Universe. Relativity wouldn't be able to predict squat if it didn't assume this. ID, on the other hand, accepts the possibility of God screwing with the Universe (as the Designer), and that ensures that it is not a scientific theory.
Do you grok my argument?
I'm not saying that it's wrong. I'm not saying that some things aren't best explained by an intelligent designer. I'm not even saying that the creation of humanity by a intelligent designer is unscientific. What I am saying is that any theory that has an omnipotent being in, or any theory that allows for an omnipotent being, is not a scientific theory.
Consider; Einstein's theory of General Relativity explains gravity very well and is generally very clever. And most importantly for our purposes, it assumes that there are no omnipotent beings to monkey around with the orbits of planets and such. That's not to say there isn't any omnipotent beings, just that it's beyond the scope of a scientific theory.
A scientific theory has to be disprovable by observational evidence. An omnipotent being can fake any observational evidence. Therefore any theory that does not exclude omnipotent beings cannot be disproven. Ergo, it's not science.
That doesn't mean that it's not true. Just that it isn't science.
Your example gives weight to my point; archeologists say "Oh, look at this arrow-head, I suspect it was made by some tribe of humans", not, "Oh, look at this arrow-head, I suspect it was made by a godlike omnipotence".
A silly and unlikely, I admit, but my point is that one can disprove things about mortals, but not about gods. Our hypothetical archeologist could suspect it was made by a tribe of humans, and then be disproven when evidence comes to light that the arrowhead was actually created by a new species of intelligent ape. But you cannot disprove a theory that proclaims the arrowhead was made by god.
In addition, god-including theories are worthless as predictive devices, as they depend on the whim of an intelligent being, not a set of intricate, but fixed, rules.
According to Wikipedia:
Are you saying that this is incorrect? Are you claiming that ID states that the Designer cannot be omnipotent or omniscient?
How am I setting up a straw man? I assert that ID isn't a scientific theory, and then demonstrated why it was so. I take it you didn't understand?
You're incorrect. A scientific theory must be disprovable by observational evidence. An omnipotent and omniscient Designer (ie. God), can fake any evidence such that it is impossible to tell from the real article. Because of this, there can be no valid observational evidence against ID. Hence, ID is not disprovable. Hence, ID is not scientific. QED.
Any theory with an omnipotent intelligence in is not science, because there are no limits, no rules that cannot be broken if required.
As far as I know, MS VS can only be used to develop software that use Microsoft support languages and tools, such as ASP, C#, C++ and VB. This rather limits its usefulness in quite a few areas of software development.
This is slightly different. For instance, the proposition, "Unicorns exist", is not a theory, because one cannot prove that unicorns don't. If there are actually unicorns munching on your lawn, then it is still not a theory, but merely an observation.
Scientists don't say, "Particle X exists". They say, "Particle X exists with these properties", and can infer from this that there is a certain chance that it will occur in a particle collider. If it doesn't occur after many, many experiments, and the chance of it actually existing is statistically very, very small, then the theory can be considered to be disproved.
To put it another way, it's impossible to disprove that unicorns exist. However, it would be possible to disprove that monsters will eat anyone in Scotland that says "There's no monsters in Scotland".