There is a product by a company called Xamarin that lets you write C# and compile it for many platforms - iOS, Android, Mac, and Windows. You can either develop in their IDE, or treat their product as a plugin to Studio.
There's also Mono. The ServiceStack web services framework is completely portable between windows and mono on linux.
Or you can use PyTools (http://pytools.codeplex.com/) to write python.
It's still predominantly used for Windows. But the other opportunities are much more than they used to be.
Not mentioned in the other responses is the opportunity to use the "resource acquisition is initialization" or "lazy loading" pattern. You may have a field that gets populated by a relatively expensive operation like a database query. So your options are to fill it in during the object initialization. Or to have a get method that will check whether the private variable it exposes has a value yet. If not it goes and fills it in and then returns it. If you access that field in ~50% of your uses of the object you've saved a ton of database queries. The the calling code just uses CompanyConfig.AllowSomeOption freely.
That requires you to actually code that of course. The automatic get/set is just giving you the opportunity to do stuff like that. Once your class has exposed a public int MyField; you really can't come back later and change that. But exposing a public int MyField {get; set;} lets you come back and fill in the get/set logic when needed
The automated get/set provides the ability to come back later and add your own custom get/set functions. Knowing that 90% of the time you never will. But if you do come back and do it, you have to do the whole shebang - declare your private variable and have the get and set operate on that variable. I believe the need for an explicit common private variable to use in both of them is why you can't leave one as automatic
"One full-time Java programmer told me that he hasn’t had to manually type in any setters and getters in years, and he has a template from which all his objects are typed in automatically, thanks to the code snippet tools in his favorite editor (which isn’t Eclipse—he uses IntelliJ). Clearly, methods of automated typing seem to be a favorite among a lot of programmers. So why did Visual Studio remove a feature that facilitated this? Who knows."
Let's not mention the fact that in C# you don't need to manually type in all the getter/setter junk, just public int MyField {get; set;}
Are you kidding? It takes a screwdriver and 5 minutes. Pull up next to an innocent car. Swap it's plates with the plates on your stolen car. Now the innocent car sets off the camera warnings. Repeat daily.
You have to ask yourself if you really want 100% automated, ubiquitous enforcement of every law in existence. How many laws apply to you right now? You really have no way of knowing.
I've had my plates stolen before. If someone was tracking the criminal who stole my plates and thought they were tracking me, that would be bad for me.
There is a Constitutional right to privacy that extends beyond the 4th Amendment. If it covers having an abortion, wouldn't it cover something that is actually your right to privacy?
I will bet that the information in these database is used to obtain search warrants, and used in criminal prosecutions. And I will bet that the security measures on these insular, home grown database systems is woefully insufficient to ensure that it is real data, and not someone just editing the database to get a bogus warrant.
It is easy for someone who works on a cash register to turn a fraudulent card into cash. They just need to ring up a bogus charge, put that receipt in the cash register, and take out the corresponding amount of cash. How are you going to prove what happened?
I am so tired of having all that money taken from my paycheck so the elderly can live it up with their extravagant Social Security lifestyles! I can't afford to pay a nurse to wipe my bottom, why should grampa get all the fun?
And yet if you sell the work of art for far less than you paid for it, the artist doesn't owe you anything. Nice gig. As we all know artists are the only real people, and their work is so much more necessary for society than the work of brickmakers, car manufacturers, home builders, baseball card printers, etc. Imagine that - a brickmaker will sell you a brick without coming back later and demanding a share of the resale price. What idiots brickmakers are!
If you're looking at performance a lot, declaring your loop variable outside of the loop helps. Which makes sense, why declare it every time you loop, but doesn't match any of the normal code you see out there.
My favorite use for the squiggly brace object declaration is to use it to pass a variable number of parameters to a function. Just define the function to take one object, and load that object up with whatever data is relevant. Easy way to future proof functions when you know you'll probably be adding more parameters in the future.
I've used Crimson Editor for years and I never noticed it had spell check. Wouldn't be much use with my code though, I just checked it out and it just tells me that everything other than function, var, and if is spelled wrong:)
I've always wondered why a group just doesn't rent like 30 cement trucks and dump a huge pile of cement in front of each on ramp to the Beltway around Washington. No deaths, but you do get to inconvenience like 3 million people that way and prevent gov't employees from going to work.
There is a product by a company called Xamarin that lets you write C# and compile it for many platforms - iOS, Android, Mac, and Windows. You can either develop in their IDE, or treat their product as a plugin to Studio.
There's also Mono. The ServiceStack web services framework is completely portable between windows and mono on linux.
Or you can use PyTools (http://pytools.codeplex.com/) to write python.
It's still predominantly used for Windows. But the other opportunities are much more than they used to be.
Not mentioned in the other responses is the opportunity to use the "resource acquisition is initialization" or "lazy loading" pattern. You may have a field that gets populated by a relatively expensive operation like a database query. So your options are to fill it in during the object initialization. Or to have a get method that will check whether the private variable it exposes has a value yet. If not it goes and fills it in and then returns it. If you access that field in ~50% of your uses of the object you've saved a ton of database queries. The the calling code just uses CompanyConfig.AllowSomeOption freely.
That requires you to actually code that of course. The automatic get/set is just giving you the opportunity to do stuff like that. Once your class has exposed a public int MyField; you really can't come back later and change that. But exposing a public int MyField {get; set;} lets you come back and fill in the get/set logic when needed
The automated get/set provides the ability to come back later and add your own custom get/set functions. Knowing that 90% of the time you never will. But if you do come back and do it, you have to do the whole shebang - declare your private variable and have the get and set operate on that variable. I believe the need for an explicit common private variable to use in both of them is why you can't leave one as automatic
"One full-time Java programmer told me that he hasn’t had to manually type in any setters and getters in years, and he has a template from which all his objects are typed in automatically, thanks to the code snippet tools in his favorite editor (which isn’t Eclipse—he uses IntelliJ). Clearly, methods of automated typing seem to be a favorite among a lot of programmers. So why did Visual Studio remove a feature that facilitated this? Who knows."
Let's not mention the fact that in C# you don't need to manually type in all the getter/setter junk, just public int MyField {get; set;}
Yes. I have a set of very clever glasses with strips of duct tape over them that block out all the ads while I read magazines.
I prefer to keep my electronics out of the bathroom though, where all of my quality magazine reading happens.
Are you kidding? It takes a screwdriver and 5 minutes. Pull up next to an innocent car. Swap it's plates with the plates on your stolen car. Now the innocent car sets off the camera warnings. Repeat daily.
You have to ask yourself if you really want 100% automated, ubiquitous enforcement of every law in existence. How many laws apply to you right now? You really have no way of knowing.
I've had my plates stolen before. If someone was tracking the criminal who stole my plates and thought they were tracking me, that would be bad for me.
There is a Constitutional right to privacy that extends beyond the 4th Amendment. If it covers having an abortion, wouldn't it cover something that is actually your right to privacy?
I will bet that the information in these database is used to obtain search warrants, and used in criminal prosecutions. And I will bet that the security measures on these insular, home grown database systems is woefully insufficient to ensure that it is real data, and not someone just editing the database to get a bogus warrant.
It is easy for someone who works on a cash register to turn a fraudulent card into cash. They just need to ring up a bogus charge, put that receipt in the cash register, and take out the corresponding amount of cash. How are you going to prove what happened?
Oh come on now.
No
I am so tired of having all that money taken from my paycheck so the elderly can live it up with their extravagant Social Security lifestyles! I can't afford to pay a nurse to wipe my bottom, why should grampa get all the fun?
And yet if you sell the work of art for far less than you paid for it, the artist doesn't owe you anything. Nice gig. As we all know artists are the only real people, and their work is so much more necessary for society than the work of brickmakers, car manufacturers, home builders, baseball card printers, etc. Imagine that - a brickmaker will sell you a brick without coming back later and demanding a share of the resale price. What idiots brickmakers are!
Pages are data, not programs? That's a fine attitude for plain text content sites. Not very good for web applications though.
If you're looking at performance a lot, declaring your loop variable outside of the loop helps. Which makes sense, why declare it every time you loop, but doesn't match any of the normal code you see out there.
My favorite use for the squiggly brace object declaration is to use it to pass a variable number of parameters to a function. Just define the function to take one object, and load that object up with whatever data is relevant. Easy way to future proof functions when you know you'll probably be adding more parameters in the future.
This was filed in September of 1995. You'll need prior art from then or earlier to invalidate this, a protocol from 1996 is no help.
I'll bet they both speed on an almost daily basis. Everyone is a criminal nowadays.
I've used Crimson Editor for years and I never noticed it had spell check. Wouldn't be much use with my code though, I just checked it out and it just tells me that everything other than function, var, and if is spelled wrong :)
You get the gold star for most random capitalization.
Also you get the award for the best fake number. BEELIONS? Is it a number, or is it some obscene hybrid between a bee and lion?
I've always wondered why a group just doesn't rent like 30 cement trucks and dump a huge pile of cement in front of each on ramp to the Beltway around Washington. No deaths, but you do get to inconvenience like 3 million people that way and prevent gov't employees from going to work.
That's not flamebait at all. It's a very good description.
I think I'll make it my new sig actually.