hello gaurav each language has its own scope Well, you can always have your cake and eat it to – with a really good technology.
Even if you need to do something system specific, like control COM objects – Java programs can use open source tools like JACOB to talk to COM objects.
You can see a COM example in Java that is written to use JACOB.
The resulting code is not as simple as the equivalent solution written using PythonWin, however. If you already have a lot of Java code involved in your solution though, it is unlikely you would want to throw Python in as well. So JACOB could wind up ruling.
You could always write a more elegant high-level wrapper around any code you wrote that did JACOB calls too
Right, for instance, if you are going to write some code to automate MS-Word you might be well off to do that in C#. After all, Microsoft makes both products.
On the other hand, if you want your code to be portable and look at MS-Word as a sort of a word processing “device”, which in a sense it is, then you could writer a driver for it and do the bulk of your business logic and data-acess logic in Java. That would make your code portable and retargettable as well.
That might turn out to be more work than simply using C# and .NET to do the job. Depends on the immediate requirements and imminent future requirements.
Isolating peculiarities is a standard strategy of good architecture/design. However, keeping things as simple as possible is a hallmark of good coding tactics.
So the situation, and the relative skill of the programmer(s) in each technology will probably be the indicator of which is the best approach . Context is pretty important.
Java probably has a slight edge here.
Far more development work is being done in Java than C#.
This is not surprising, as Java runs on far more platforms (Mac, Unix, Linux, MS-Windows, etc.) than .NET and C# (MS-Windows only, and arguably Linux but with some major qualifications). The releases of new JDK’s on the different platforms is better coordinated too. These things help companies targeting enterprise and consumer end-user markets alike.
Microsoft’s technologies seem to have a “three year half-life”. What this means is that three years after a technology comes out, Microsoft’s own programmers are already kind of putting down the technology they were coaxing everyone to switch to three years earlier. Because now, they are using their “next big thing” which is incompatible with that and they want to set the mood for another “mass migration”.
Sadly, because of the compatibility gaps they keep encountering so frequently, companies trying to build a long term investment on these programming products get jolt after jolt of bad news from development teams.
Here are a few examples:
Win16=>Win32, Win32=>Win64, MFC=>?, C++=>C#, VB3/4=>VB5, VB5/6=>VB.Net, WFC=>nowhere!, MS-Java=>nowhere!
Since the class libraries and language syntax changes with every other release, and this i going on simultaneously in OS APIs, languages, and frameworks/libraries all the time, companies get bumped for expensive tools with great regularity. Thus, each programmer they hire is more expensive. Not to mention, their products are constantly obsoleted and need to be rewritten. Further, they can be fettered to inappropriate hardware or operating systems by the very language they programmed in.
This does not happen in Java. Java interpreters get ported quickly to each new version of an OS that Java supports. Java IDEs are free, so there is no IDE payroll tax on Java programmers. Further, the power of a Java IDE like Eclipse or NetBeans is unrivaled.
That said, if you want to write extensions to MS-Outlook or custom macros for MS-Word, you are going to have to involve a Microsoft language tool in some way. Though frankly, it is possible to write a
Answered by
raj u
, an ibibo Master,
at
12:23 PM on June 03, 2008