Win a copy of Getting started with Java on the Raspberry Pi this week in the Raspberry Pi forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Tim Cooke
  • Jeanne Boyarsky
Sheriffs:
  • Rob Spoor
  • Devaka Cooray
  • Liutauras Vilda
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Piet Souris

Why and How Java is better than C#?

 
Java Cowboy
Posts: 16084
88
Android Scala IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Elchin Asgarli wrote:Are you sure that compiler does not perform any optimization thus does not decrease the number of actual instructions? I think more accurate measure would be to print the result of every addition, and then calculate separately how much does it take for the print operation itself by printing the same thing 10000000 amount of times, and then subtract numbers.


That's not a good benchmark, because printing ten million numbers to the console window is going to be thousands of times slower than adding them up. You'll not be measuring the time used to add the numbers, but the time needed to print the numbers.
 
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm a Java Developer who have a few months experience in .NET. Since everybody is pointing out that we can't compare Java and .NET (since C# is just a language) in one too simplistic statement, why don't we make the comparisons a little bit more nuanced? If the question is "which is better?" and the answer is "it depends on what you want to do?", why don't we make a list of which tool (platform) is better than the other for what purpose?

In my experience, C# language since it came later had the benefit of hindsight and so beats Java the language in almost every way
- Properties, Delegates, Virtual keyword since it implements tighter control for subclassing, implementation of Generics

If you're going to use Windows, Windows Forms definitely beat out Java Swing, if only for IDE support (drag and drop really makes for fast development). If not, then of course Swing beats out Windows Forms.

My main skills are primarily J2EE web development but the problem is I don't know ASP.NET so I can't really make a comparison

.NET produces added features and functionalities efficiently because Microsoft unilaterally makes the decision. On the Java side, there is a bit more mess with the Open Source Democracy going on. But I feel like the Open Source model produces more innovation. The problem for the Java Developer is you're on your own to assess the pros and cons of all the frameworks walking around while in Microsoft everything is delivered out of the box.

It would be great to hear other insights

 
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vishal Kashyap wrote:
But, ya one and only problem i think is NON-OPEN SOURCE property of C# makes it less popular with respect to Java.



I dont think thats a big deal. What good will a language being open source or not make for development in that language. Both java as well as c# support development of open source applications. The difference being Java applications run seamlessly on unix environments. C#..... well lets just say mono sux in running more complex stuff. And for developers running mac or unix, takes away the biggest advantage of development n c#, the Visual studio IDE.

Language being open source might be a good thing for researchers. But we recently saw that even if java was open source, it had a free package of lawsuits attached to it. So i can safely say, even if the language is open source, I cannot just use its features, edit them and come up with something. Again the legal issues apart,

99%(prolly even more) of the development doesnt need to edit any language features. So open source might not be the best point in favor of java.
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ronwaldo Cruz wrote:
In my experience, C# language since it came later had the benefit of hindsight and so beats Java the language in almost every way
- Properties, Delegates, Virtual keyword since it implements tighter control for subclassing, implementation of Generics



Ok I agree with properties, delegates and generics. But why Virtual Keyword. Even bjarne stroustrop once admitted virtual keyword is now an outdated concept. All methods are virtual in java and that seems to be the right thing. I doubt if there is any significant efficiency issues by doing so
 
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have got a wild thought after going to the posts.

Consider two hypothetical scenarios:

1) .NET (and hence C#) going "open source". That includes Microsoft saying that all the costly editions of very good Visual Studio are freely downloadable and can be used for developing all sorts of commercial and open-source applications.
a) In this case, will there be anybody left coding in Java

2) Java (under Oracle) going closed-source and tightly controlled by oracle.
a) Can Java (under Oracle) give us higher productivity tools than C#.

I know, both of these cases may not happen in future. However, it serves the purpose when deciding to take one path than the other.
For example, one can choose C#, because it has got good productivity tool called Visual Studio. However, if one wants to deploy the application on all platforms (Windows, Linux etc), it may not be a good option.

One chooses Java, because there are free IDEs (Eclipse, Netbeans). However application development is not that easy for those just starting out on Java. However, your completed web app or swing app can be deployed on Windows, Linux etc.

For a career point of view, C# is easier to learn than Java (Microsoft Certifications are easier than Java certs). If you are a programmer on a job, you can go home early.
If you are a Java programmer, things can get complicated and sometimes you may need to spend extra hours at work.
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jagadeeswara Yaramala wrote:I have got a wild thought after going to the posts.

For a career point of view, C# is easier to learn than Java (Microsoft Certifications are easier than Java certs). If you are a programmer on a job, you can go home early.
If you are a Java programmer, things can get complicated and sometimes you may need to spend extra hours at work.




Well well well....Thats one of the main reasons why i am concentrating on java. Who said Microsoft certifications are "easy"... firstly define easy..... in my opinioni java certifications are much much better. In microsoft, you end up doing a lot of unnecessary rubbish which you wouldnt in java.
1) For getting the simplest to get microsoft certification - MCTS, you have to give 2 exams. Instead of 1. Both may be simpler than SCJP(actually it should be compared with SCJA the simplest certification in java) but still i would pass this argument off.
You need to learn ASP .net and the C# code with a special focus on the API.

SCJP on the other hand focuses on the language waaaay more than the API.

2) consider the developer certification - SCJD and MCSD.
MCSD requires you to chose between exams on Web service deployment, biztalk or application servers, and the worst thing possible, TFS.
Why in the world would I want to do all this to become a developer?

SCJD focuses on design patterns, Object oriented programming. etc etc.

Even though single exams seem easier in microsoft, in order to get the certification, you end up doing a lot of stuff which youy would never want to do.

 
Bartender
Posts: 10336
Hibernate Eclipse IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Not sure what the open source or closed source nature of a language makes any difference in its success or otherwise.

 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Sturrock wrote:Not sure what the open source or closed source nature of a language makes any difference in its success or otherwise.



open source languages invite law suits on different implementations and forks courtesy of Mr Larry elison
 
Paul Sturrock
Bartender
Posts: 10336
Hibernate Eclipse IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
As would closed source languages. What's your point?
 
Jagadeeswara Yaramala
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Not sure what the open source or closed source nature of a language makes any difference in its success or otherwise.



By open source, I mean the eco-system of the language(not whether the language libraries are open sourced or not).

In case of Java, the IDEs(Eclipse, Netbeans etc), Frameworks(Swing, Struts, JSF, Spring, Hibernate, EJB), Containers (tomcat, jboss etc) are free for use.

In case of C#, Visual Studio Professional costs a lot. The web container (IIS) is bundled with Windows OS only. Most of the third party controls for UIs cost a lot.


 
Ranch Hand
Posts: 331
Python Ruby Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jagadeeswara Yaramala wrote:I have got a wild thought after going to the posts.

If you are a Java programmer, things can get complicated and sometimes you may need to spend extra hours at work.



Those extra hours can occur in .NET development too.

The issue of java being open source is also debatable as expressed by the above posters. Even C# has a community driven process.
It depends on how/which aspect you deem a software open source.
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
well agreed. But that is not a deterrant for quite a few companies.
1) If it is a start up. They want to find customers. Especially if they are a service providing company. They want customers who are deploying their product. It is difficult to dictate terms in such cases. Hence most of them will acquire .net licenses. If the client wants java, it is free and no need for any sort of new license acquisition.
On the other hand, if the client wants .NET deployment(For reasons ranging from managers feeling .NET is better to them having pre developed .NET libraries), a startup has to blindly follow, without haggling. In such cases, .NET licenses add to the client profile. Many .NET companies thus advertise that they have .NET development.


2) If its a larger company. the volume licensing costs will be the least of its concerns.
 
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The downfall of this post is an assumption withheld by enthymeme:

P: Usage of C# is mutually exclusive of usage of Java

Especially between these two C-based languages, there is absolutely no necessity to HAVE to choose. I work in C# for some projects. I work in Java for some other projects. Some projects I have C# talking to JEE web services. Some days I have Visual Studio's debugger trigger NetBeans' debugger (you learn quickly that you need 2 physical machines for that lol Both VS2008 and NB6.1 leak memory like a sieve. The memory leaks don't play nicely!

At any rate, the ONLY reason to choose one over the other is if you seriously are a big enough tool to be involved in the "Free Software: as in Free Speech vs Free Beer" argument.

Me? I'm a straight up mercenary. Flash enough cash and I'll write in Visual Basic (note: I absolutely DESPISE (extra emphasis on DESPISE!!!) Visual Basic. All permutations of it. I loathe it and that crippled horse it rode in on)
 
Ranch Hand
Posts: 73
BSD C++ Fedora
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ha....Ha....Ha....
much of this discussion covers most of the point and features of Java and C# here. But, non of them pointed out WRITE ONCE, USE ANYWHERE feature of Java which is one step ahead with respect to C# in development. :) this is the point which makes crowd in favor of Java than C#. I agree all the fact presented earlier, i.e. easy to learn and all of C#. But, in my opinion; this feature is a mascot gem for Java, which is not available in C#. :jumpingjoy:

:wink: Here, question is WHY AND HOW JAVA IS BETTER THAN C#?

Why most of us get diverted and arguing on different or similar points like SUN or Microsoft's Certification issue?

Please Come to the point and help us to make a genuine decision in this regard. :thumbup:
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vishal Kashyap wrote:Ha....Ha....Ha....
much of this discussion covers most of the point and features of Java and C# here. But, non of them pointed out WRITE ONCE, USE ANYWHERE feature of Java which is one step ahead with respect to C# in development. :) :jumpingjoy:



this is what we call platform independance covered by every post in this topic... do you think anyone would ever forget this :shock: point?
 
Marshal
Posts: 78427
374
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Vishal Kashyap, please avoid UPPERCASE writing.

I disagree with you about the way this thread is going; the comments about certification make interesting reading, even though they might be different from the original title.
 
Jagadeeswara Yaramala
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Please Come to the point and help us to make a genuine decision in this regard.



This, I am afraid, will NOT take giving a contract to a consultancy firm and asking them to submit a document on C# vs. Java in 15 days !!!

One can decide on their own by the following:

1) Do a small project (let us say, a small banking application [not the big one for one of your multinational clients] with some 10 classes, 15 tables and 10 UI screens) in both Java and C#.

2) While doing the above small project, note down the person hours of effort, problems faced during development, cost involved (if any), number of bugs existing in the application etc.... for both Java and C# developments.

3) Have a score card for the above parameters and rate Java and C# accordingly. And that is it....one can decide on what to do next !!!


 
Rancher
Posts: 1337
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Neither Java nor C# has a COME FROM statement, a point the Wikipedia comparison completely (and bafflingly) ignores.
 
Vishal Kashyap
Ranch Hand
Posts: 73
BSD C++ Fedora
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ok Gaurav,
if you say this as platform independence; then will you please confirm it regarding C#. i.e. whether C# is a platform independent or not?

and then,
Asking to all members here,

A language supporting all platforms for development is known as? i.e. you can easily develop your code on any platform for any platform.
Isn't it known as platform independence of any language?

agreed with certification discussion, lets continue. anyone can share their thoughts here, no limitation .
 
Campbell Ritchie
Marshal
Posts: 78427
374
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vishal Kashyap wrote: . . . no limitation .

Not at all. We impose limitations on what is discussed, as you will find in our FAQ. Note also the "how to answer" link on that page. We expect politeness, for example.
 
Alan Bates
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
...this literally is the computing equivalent of "Judean Peoples Front vs Peoples' Front of Judea" argument. Both Java and C# are C derivatives. They both have equal advantage over the other in separate space. Everyone that actually takes a C# > Java or Java > C# stance is really missing out because (Java + C#) > (Java | C#) ...technologically speaking and opportunistically speaking. Most shops are NOT agnostic, and it's fairly split between "Java Shop" vs ".NET shop"s in our market (and most that I look at)

Being positioned as a Java/C# agnostic (and even treating the technologies as collaborative) makes one extremely valuable. Learn both. Learn the strengths of both. Learn the weaknesses of both. Leverage both of them and you will be a superstar....and it is NOT difficult to use both. You seriously only have to spend a little bit of time switching syntax, a little more time learning a different IDE, and a LOTTA more time discovering where the Learning Communities are located (This being an example of a Java learning community)

 
Paul Sturrock
Bartender
Posts: 10336
Hibernate Eclipse IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well said Alan
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vishal Kashyap wrote:Ok Gaurav,
if you say this as platform independence; then will you please confirm it regarding C#. i.e. whether C# is a platform independent or not?


Microsoft says C# is. Its upto you to decide whether it is or not (I strongly believe it is not).

Microsoft says, once compiled, the same file runs on Windows XP, ME, 2000, etc etc.

Clearly it is not
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vishal Kashyap wrote:
A language supporting all platforms for development is known as? i.e. you can easily develop your code on any platform for any platform.
Isn't it known as platform independence of any language?



I believe you are a lil off the definiton. If that is the case, every language in this world is platform independant, right from C/C++. Source code is never a requirement to be distributed. You can distribute the binaries or any product of the osurce code. In case of java as you pointed out, you need not compile it for use over different environments. Hence it is platform independant. In case of C/C++ even though you can code in linux as well as windows, if you want to distribute your compiled code, the linux binaries are different and the windows exes are different. hence it is not platform independant.

Always remember, if a language has to flourish in this world(Microsoft languages being an exception to this rule). Languages have to have compilers on every platform.

Java is a platform independent language becoz of the bytecode magic of java. In java when we execute the source code...it generates the .class file comprising the bytecodes. Bytecodes are easily interpreted by JVM which is available with every type of OS we install.

Whereas C and C++ are complied languages which makes them platform dependent. The source code written in C / C++ gets transformed into an object code which is machine and OS dependent. That's the reason why C and C++ languages are termed as Platform Dependent.

Reference
 
Vishal Kashyap
Ranch Hand
Posts: 73
BSD C++ Fedora
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Gaurav,
For such a nice sharing of information.
thanks a lot.
 
Ranch Hand
Posts: 362
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jagadeeswara Yaramala wrote:
For a career point of view, C# is easier to learn than Java (Microsoft Certifications are easier than Java certs). If you are a programmer on a job, you can go home early.
If you are a Java programmer, things can get complicated and sometimes you may need to spend extra hours at work.



There is no free lunch. How can a certification in a language that has more features be easier than one that has less?

That's like claiming our army is better trained, but our bootcamp is easier to complete. Mhhhh, doesn't quite make sense.
 
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Gerardo Tasistro wrote:How can a certification in a language that has more features be easier than one that has less?


Because certification tests != the language: it doesn't take much imagination to see how this might be true, whether or not it actually *is*.

Even the most complex subject can have an easy test.
 
Ranch Hand
Posts: 210
Eclipse IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Java has to be better than C# because i am learning Java now and haven't learned c#, so.....It better be!!

 
Gerardo Tasistro
Ranch Hand
Posts: 362
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A few points why I prefer Java over C#

- it's outdated compared to C#, making it a more stable language over time so I can concentrate on getting my apps done rather than learning new features
- a great deal of the new stuff is supported by third parties or "Java superset languages" (see Groovy for example)
- there are great frameworks for Java (which have also been ported to .NET btw)
- a great deal many things in .NET are nice, but not killer differences. For example moving away from the getter/setter paradigm is not an convincing argument. Yes it makes coding easier, but in Java I just declare the variable and then rightclick, "Source", "Add getters and setters". And that's if I even need to do that (see Groovy above and things like Roo)

- Java IS multiplatform contrary to C#. Sure C# code will run on Linux, but VS2008 won't. Eclipse on the other hand will run on Windows, Linux and Mac. So will other IDE's. Having to limit my IDE's based on the underlying OS is a serious limitation for me.
- Java IS multiplatform contrary to C#. Sure C# code will run on Linux, but you'll leverage a great deal of the platform's benefits if you stick to Windows. .NET best features are available when you utilize the full Microsoft software stack. Java might be more "vanilla" than C# in that case, but you won't have to recode because you just changed MS SQL Server for Oracle and realized you don't have two nice features you relied on. Same can apply to other tools such as reporting aspects of your application.
- I have been using the same IDE (Eclipse) for years. Moving projects from one version to the other is transparent. I understand it isn't so easy in the world of VS. For example from VS2005 to VS2008.

- A great deal many "features" in Java are third party frameworks. For example Spring MVC, Spring WebFlow, Hibernate etc. That same functionality is bundled in C#. It makes getting up to speed in C# much easier. Thus we can crank out stuff faster and that pleases management. On the other hand when a project's feature is no longer supported in the next language release (typically: "Hey the new Microsoft web framework xyz now replaces the old abc framework and is uber cool") then your old projects just ran out of luck.
- BTW, as a side note. There are excellent GUI drag and drop tools for Java. I do a great deal of GUI development as well as web development and I find it no different from the days I worked with VB.

- Costs. Lets take for example a cloud server from a renown hosting company. I can setup an instance of one type using Linux and 256 MB RAM and run my simple Java web application (it will fit tightly, but it will run). The same hosting company's entry level Windows 2003 server is a 1GB server. That means my hourly costs increase considerably for an entry level application. My development, testing and staging costs also increase. I might be able to run my C# web application on Linux, but that depends on how Microsoft centric it is (see above mentioned issues).
- If I use Tomcat or Jetty to deploy it to I can pretty much backup the server install directory and restore it or replicate it to any other machine. I've got no idea how hard that would be perform on Windows, but given prior experience with registry values and normal desktop application installation I'm inclined to believe it isn't so easy.

So overall while C# is a nice feature rich language with a flashy and catchy IDE I value Java better for its long term stability. Maybe it's just me and my interests, but what I read and find more on the internet is C# new features and Java's new development and project management tools. On the average C# blogs and posts are all over LINQ and Parallels threading and what not. I find a lot of recent articles covering Java ORM or Spring or Grails or other languages for the JVM. I don't seem to stumble upon a great deal of Maven or Grails equivalents for .NET. .NET seems to spin around the "feature rich environment that allows you to generate cutting edge applications in half the time you used to and empower you to stay ahead of the competition in todays competitive software environment, bla bla bla line". But I get this "vacuum" feeling when the application gets rolled out and I ask, "now what?".

I worked a lot in VB from 4x to 6x. Saw it's demise to .NET (and didn't like it one bit). Saw orphaned projects of Microsoft's tools (among them Microsoft's own Java). Seeing how projects seem to outlive the most optimistic life expectancies I feel more confident using a more stable if less innovative Java than a more flashy, but volatile C#.
 
Jagadeeswara Yaramala
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

How can a certification in a language that has more features be easier than one that has less?



With Microsoft certifications, all one has to do is to go through the relevant certification book of Microsoft Publications, once or twice.
Those books even provide step-by-step procedure to complete a coding assignment
One can expect similar questions in the exam, as the one that are there in the certification guide.
Getting > 90% score in Microsoft certifications is not that hard.

Compare that to SCJP. One needs to go through a couple of books more than 3 times and the preparation time may be more than two months.
One has to do lot of mock tests.
The questions on the exam are more twisted in logic and one needs to be a "human java compiler" to answer the questions.

Overall, I like microsoft certifications. They "focus" on things that one need to know.
On the job, coding to microsoft C# is not that tough given Visual Studio and vast (and excellent) help documentation provided by Microsoft.


P.S: I dropped my idea of getting SCJP certififed, because it is a lot difficult to prepare for. Instead, I am doing some mock project to use my java skills and I want eclipse to do the "human compiler job" !!!
 
Gerardo Tasistro
Ranch Hand
Posts: 362
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jagadeeswara Yaramala wrote:The questions on the exam are more twisted in logic and one needs to be a "human java compiler" to answer the questions.


Agreed, now why do you think they do that and Microsoft doesn't? Why is "human assisted compilation" important for one and irrelevant for the other?
 
Jagadeeswara Yaramala
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

now why do you think they do that and Microsoft doesn't? Why is "human assisted compilation" important for one and irrelevant for the other?



That goes to core philosophy of the exam creators. I think, Microsoft exam creators think that testing a person's familiarity to basic level is sufficient and their productivity tool (Visual Studio) and documentation will do the rest.(Separation of concerns, may be!!)

I am not sure why Sun(and now Oracle) think that intricate features, compilation related questions and twisting of logic in questions is good for their exam.
If a snippet of code does not compile, the tool (eclipse or visual studio) should know it first and not the developer.
Also, I am not sure, how(or whether) a java certification makes a developer more productive and efficient than a Microsoft C# certified developer.

 
Gerardo Tasistro
Ranch Hand
Posts: 362
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jagadeeswara Yaramala wrote:
Also, I am not sure, how(or whether) a java certification makes a developer more productive and efficient than a Microsoft C# certified developer.



It doesn't. The SCJP exam doesn't make you more productive and efficient. That's your and your boss' job.

Think of it this way:

English teacher - training
TOEFL - certification
Word Processor - efficiency

 
author
Posts: 23939
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Gerardo Tasistro wrote:
Agreed, now why do you think they do that and Microsoft doesn't? Why is "human assisted compilation" important for one and irrelevant for the other?



This is purely opinion, so take with a grain of salt. Personally, I think the audience changed for the SCJP. I thought it was originally for the developers that had a few years of experience. After a few years of coding, you naturally become a human compiler. The chances of the compiler actually catching something should be less and less as you get more and more experienced -- it's just natural, after a few compiles flagging silly syntax errors, you stop doing it.

Unfortunately, the target and where the most customers are, are not the same thing. While important, programmers had jobs, and worked long hours. And what was the incentive of getting the cert? Maybe a raise?

There was a larger incentive for those who were unemployed. And the biggest target of unemployed were the freshly minted grads. So... you have this test, which for someone who had a few years, should actually not be that hard. But the main audience wasn't the developers that had years of experience.

Henry
 
Jagadeeswara Yaramala
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

It doesn't. The SCJP exam doesn't make you more productive and efficient. That's your and your boss' job.



This is the precise reason why I am not taking the SCJP exam.

If an exam's objective is to enhance the skills of people who are preparing the questions of SCJP and support a lot of people who are preparing mock exam questions....then better avoid that exam/certification. It has only got paper (or score sheet) value and can not be a even a support document to show one's suitability for a programming job. My boss will simply ignore the SCJP !!!

The kind of code being given in some mock exams looks like "find the bug if you can" types.

Any boss will look for productive and efficient people !! And not "human compilers". I am not saying Microsoft certifications enable one to be productive and efficient. But, at the least, they do not attempt to test much of "abnormal or extra human" skills of "compilation fails/succeeds".

Few days back, I was reading K&B SCJP Guide. It is said that one need to look for closing and opening braces in the code snippets of the program in exam. Also one needs to be prepared for horrible code indentation. I thought, those things are better left to IDE

P.S: All are my opinions !!!

 
Henry Wong
author
Posts: 23939
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jagadeeswara Yaramala wrote:
This is the precise reason why I am not taking the SCJP exam.

If an exam's objective is to enhance the skills of people who are preparing the questions of SCJP and support a lot of people who are preparing mock exam questions....then better avoid that exam/certification. It has only got paper (or score sheet) value and can not be a even a support document to show one's suitability for a programming job. My boss will simply ignore the SCJP !!!

The kind of code being given in some mock exams looks like "find the bug if you can" types.

Any boss will look for productive and efficient people !! And not "human compilers". I am not saying Microsoft certifications enable one to be productive and efficient. But, at the least, they do not attempt to test much of "abnormal or extra human" skills of "compilation fails/succeeds".

Few days back, I was reading K&B SCJP Guide. It is said that one need to look for closing and opening braces in the code snippets of the program in exam. Also one needs to be prepared for horrible code indentation. I thought, those things are better left to IDE




While an interesting argument, it's a bit complex. IMHO, either you believe in the value of the cert or you don't. Generally, the value of the cert is for the first round, for the HR people to decide to give you an interview based on reading your CV for a whopping 10 seconds. These people don't really have an idea of one cert over another.

The technical people who will interview you, will interview you to see if you know your stuff. They might initially like you better if you have a cert, but in the end, it will depend on how you do during the interview. And it won't really matter what cert you have, if you know (or don't know) your stuff.


So... IMHO, either you believe in certs or you don't. And whether a cert is more valuable over another cert is more dependent on how well know it is, over the details of what it tests....... and quite frankly, if the HR person is looking for a SCJP, it doesn't matter if you have a CCIE (one of the hardest cert to get), you are not going to get picked.

Henry
 
Gaurav Raje
Ranch Hand
Posts: 136
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
i think you have mistaken the contents and the objectives of the exam. Some part of it might look like a human compiler to you but classifying SCJP as a human compailer is quite not true.

Most of the SCJP code revolves around the principles of threading, inheritance principles, looping, etc. Sure the GUI will help you wherever required, but it will surely not tell you and teach you the principles.
As for doing projects,
I am sure even after doing my MS in computer science with a thesis, a few international publications, i wasnt exposed to a lot of concepts which I learned through the exam. The language is a different thing altogether. Having an scjp might not be the thing which will make you a better programmer, but it will definitely prove your caliber as a minimum. Your boss or future recruiter knows that you know the basics. He can be assured. projects can be deceptive in terms of the amount of effort put in by you and the amount of emphasis on third party libraries.

I dont mean to discourage you, but even the masters thesis which a lot of people have done have sometimes failed to impress employers. SCJP is a minimum which can at least prove that you are not as low as the crowd of housewives who have learnt java from their husbands.

Also scjp is just the start. there is scjd which is really the true test
 
David Newton
Author
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
An SCJP shows that you are competent in language syntax. It is a completely useless measure when it comes to actually being able to *code*. While I don't *completely* ignore the fact that someone I'm considering hiring has an SCJP, it is so far down on my list of priorities as to be irrelevant.
 
Gerardo Tasistro
Ranch Hand
Posts: 362
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

David Newton wrote:An SCJP shows that you are competent in language syntax. It is a completely useless measure when it comes to actually being able to *code*. While I don't *completely* ignore the fact that someone I'm considering hiring has an SCJP, it is so far down on my list of priorities as to be irrelevant.



I agree to a point. I don't have an SCJP, but I've won my fair share of bets against SCJP holders. Particularly in the call by value or reference arena. While some of the exam questions concentrate on actual syntax quite a few others do so in regards to inheritance and threading. Which I believe are important topics to understand well. I'm surprised at the amount of developers that still have issues with variable scope and thread safety in servlets.
 
It runs on an internal combustion engine. This ad does not:
Low Tech Laboratory
https://www.kickstarter.com/projects/paulwheaton/low-tech-0
reply
    Bookmark Topic Watch Topic
  • New Topic