Programming Languages come in all tastes, shapes and sizes with their pros and cons. If you are a windows/web developer you are likely to say Microsoft.Net and if you are an open source inclined (I seriously don’t know why that would be) lolz you might have other opinion. For the sake of simplicity I would discuss the non Web development (server and client side scripting) here and would add on to my discussion in the next article. In the desktop i.e. windows and dos world having worked with C++ , VC++,VB , VB.Net , Java and C#.Net my personal favorite is definitely C#.Net. Definitely its not the best.Let me elaborate it in detail. Microsoft .Net does provide what most of the developers want. An easy way to make/change a clean UI with a great set of controls , a great collection of base classes making the day to day tasks ( File Handling , Database Handling , Exception Handling , Threads and Network programming) very easy , the scalability factor on the existing API and third party controls available , the extensive documentation and working examples that can be found everywhere , isn’t it like a dream come true .
I worked with java for some while and figured that the language is really neat , and was programming in the real sense all the way. Many people do argue that C# is more like Visual Basic with more RAD features and drag and drop support. I would say “Yes” it is but what is wrong with that? After all with all the slipping deadlines and nonexistent frameworks that’s what we are looking for. RAD features with great object oriented programming model, easy to implement the design and clean backup implementation. The problem with that however are the Portability/Compatibility issues.E.g. Whenever you want to make a product for the everyday user and publish it on the internet you have to specify that the user has to install X.X version of the framework or else your product wont work . Yes it’s a huge put off for the user and that’s one thing I don’t like about the .Net technologies. I think Microsoft can make it part of windows i.e. all standard Operating Systems by Microsoft should make sure that all the releases of .Net framework available then are installed with the operating systems. That would make the life of routine application software developers extremely easy and without having to give a link for Microsoft website to download the framework it would be simply awesome. The two problems which I find difficult when working with JAVA are the UI support and the integrated development Environment. With UI support I mean there are base classes available SWING and supporting wrapper classes but “Are they really as easy to use as the C# counterparts? No they are not!! At least to me“Now the Java lovers would argue here that there are some good and super cool IDES available like JBuilder, JCreator and Eclipse and specify the fact that they are simply great to implement Software patterns with struts and installing X.XX plug-ins on your specific IDE. What happens with that is you tend to be very specific, away from the general JAVA developer and there is not a huge community to support for your specific programming or development related issues.Same is the case when you talk about JSP and beans. Configuring the web server (Web Logic in my experience) seems to be difficult in itself and there are so many formalities to it which the new developer find difficult to adopt.With that said I would still believe that java has more pros than cons and is undoubtedly more powerful than any other programming language for application software development. It is extremely powerful and with a existing framework of UI and some good utility wrappers you just can’t beat it and Java developers are “No Wannabes”!! . They mean serious business. As far as the support and help from the existing communities are concerned try to Google a specific topic or an exact working example on C# and 8 times out of 10 you find someone in a similar situation discussing the whole issue in a forum, this is highly unlikely with C/C++ or Visual C++ and Java for that matter. Long story short I guess it’s the requirements which influence the developers or architects to opt for a particular programming language. Factors affecting the choice are usually Client requirements, hardware interfacing, operating environment, available developer’s expertise, ease of use, development costs, maintenance costs and portability. Anyways these were my views and my opinion totally off course doesn’t make things right or wrong. So if you are an active developer I would love to have your opinion on the comparison and the things on which you might agree or not? What are your views? What is your opinion? What are some of the best technologies, programming languages, development methods or sdks you have worked on ??