So true. So if you use C, what does that make you? Some kind of overlord?![]()
No, it probably makes you overlord.
So true. So if you use C, what does that make you? Some kind of overlord?![]()
But it's HOW you do those things that makes a difference. Say you wanted to pick a DAL/ORM. Your main choice for Java is Hibernate, which is quite good. A lot of Java lovers ported it to .NET, called NHibernate. Then Microsoft really polished up Entity Framework. It's very nicely integrated with Visual Studio, so development is super duper easy. Using it is super duper easy. Start with code, a db schema, or diagrams/design first.
Entity Framework is just one example in particular, but you get the point. Overall, C# and the whole .NET platform has been polished and improved one step ahead of Java. Last time I checked, Java still doesn't have class properties, when even the crappy Objective-C does.
I can guarantee you that task for task, I can shorten an 8 hour day to 7 or less if I get to use Visual Studio over other IDE's. I feel like I get pretty much double the throughput versus Xcode, and probably 1.5x of Eclipse. Spend more time developing and less time fiddling around with the stupid IDE.
I should probably also point out how much easier it is to deploy an ASP .Net web app than it is to deploy a Java web app using your IDE of choice.
This link is an example. It takes this guy 150+ steps and over 8 hours to do a "Hello World" web app in Java. That is probably a bit exaggerated, but the underlying point is true. It is much easier to get up and running with ASP .Net than it is with Java. The flexibility of Java also adds layers of complexity that most people just don't want to deal with when the .Net equivalent "just works" right out of the box.
This properties thing is mentioned everywhere and it is a non-issue. You can generate getters and setter either by IDE or use a 3rd party tool like lombok. The latter requires 1 class level annotation to auto-generate getters and setters for all fields in the class.
Yes but its still irritating and much slower to do. And all those getters and setters end up bloating your code unnecessarily.
Think about it - to add a variable with getters and setters in Java, I need to add the variable, then right click on the class file and navigate to the getters and setters thing. Then select the variable and if I want getters and setters, and where I want them to be inserted. Then click OK.
With C#, I type
public String MyProperty {get;set;}
Takes about 2 seconds.
Its a small thing, but it adds up. C# is just far more polished than Java, and VS is far more polished than any other IDE. VS is renowned as the best for a reason.
You don't need any plugins for Netbeans. Full featured installer comes with everything. It is obvious that you haven't used it for a more than few minutes, if even that. Actually I need a plugin for VS because version I got do not support SVN out of the box.But thats the point, like someone said earlier. Out the box, VS is the best. I dont need to install a single plugin.
Netbeans or Eclipse and Java require plugins to get anywhere near that good.
Where is Java with lambda expressions?
When will I be able to write:
var users = Users.Where(x => x.FirstName == "Joe");
?
Its about saving the programmers time, and MS does that very well.
EDIT:
Lombok is a step in the right direction, but compare this:
User.Age = 13;
with
User.setAge(13);
Everywhere I want to use a User's age, whether it is to set it or get it, I just use User.Age. Thats it! So much cleaner!
While VS will let me see reference list of all functions of the same name, even if they don't belong to right class, which then takes time on my part to find which ones matter.
It should be noted that Visual Studio isn't free, as Netbeans, Eclipse and most everything else is. Express versions are neutered, you'll need the full version eventually. Unless you get it from work you'll eventually have to shell out the $500 to start and every year if you want to upgrade. Not bad if you're making a lot of money off of it, but with the decline of Windows-specific code it doesn't make sense today.
Don't forget Xcode IDE. If you have a Mac, Xcode is free as well. 1 purchase.
To get VIM, Eclipse, Netbeans, Emacs you need a computer. 1 purchase.
To get VS you need a computer with Windows7, then VS itself. 2 purchases.
If you want VS2012 and you aren't using Windows7, you'll need your computer, a copy of Windows 7, and then VS itself. 3 purchases.
You can see where this is going ($$$). And it's not like it gets any cheaper down the road. Not to mention it's usually cheaper to host on *nix servers than Windows, even 3rd party.
While C#/.Net/VS has its perks.. I'd go with Java unless you have some sort of business critical reason to require the MS stack. Jumping into it in this market at this point seems silly to me.
Don't forget Xcode IDE. If you have a Mac, Xcode is free as well. 1 purchase.
To get VIM, Eclipse, Netbeans, Emacs you need a computer. 1 purchase.
To get VS you need a computer with Windows7, then VS itself. 2 purchases.
If you want VS2012 and you aren't using Windows7, you'll need your computer, a copy of Windows 7, and then VS itself. 3 purchases.
You can see where this is going. And it's not like it gets any cheaper down the road. Not to mention it's usually cheaper to host on *nix servers than Windows, even 3rd party.
While C#/.Net/VS has its perks.. I'd go with Java unless you have some sort of business critical reason to require the MS stack. Jumping into it in this market at this point seems silly to me.
You don't need any plugins for Netbeans. Full featured installer comes with everything. It is obvious that you haven't used it for a more than few minutes, if even that. Actually I need a plugin for VS because version I got do not support SVN out of the box.
If you think that setting the property of object is the best feature of the programming language, let it be. Be happy in your ignorant world.
I can give you many many counter examples how Netbeans/Eclipse are better IDEs, in things that they excel at. Truth is that both have advantages, and you are better off if you know both & know what they are. VS advantage is tight integration of things that it support, and debuggers are great. Disadvantage is limited number of things it can do. Open source IDEs thrive on ideas of contributors, which are often great, innovative, cutting edge and not found elsewhere. Disadvantage of them is some cutting edge features may be buggy.
For example, Netbeans C++ support lets me see a call graph of object-oriented function:
http://programmers.stackexchange.com/questions/33365/on-the-fly-graphical-representation-of-code
While VS will let me see reference list of all functions of the same name, even if they don't belong to right class, which then takes time on my part to find which ones matter.
