Only 32% of Java developers really know Java
prostoalex writes "Research firm Gartner draws attention to the fact that less than a third of people who put Java on their resume actually know their stuff. The knowledge gap between someone who can successfully write a System.out.println() and someone capable of designing and implementing a complex Java system brings to companies being back-logged with pending projects."
How shocking this news is to me, because it confirmed a survey report I just read yesterday: that 68,015% people lie in their resumes!
Actually, the report is wrong. They just don't read the resumes carefully. The other 68% actually know *Javanese* Java, not Sun Java.
"The knowledge gap between someone who can successfully write a System.out.println() and someone capable of designing and implementing a complex Java system brings to companies being back-logged with pending projects."
We also would have accepted: Only 26% of submitters to Slashdot can create proper sentences.
Also "99% of researchers and statisticians have no idea what they are talking about and don't know what research means"
Joe Llywelyn Griffith Blakesley
[This post is in the public domain (copyright-free) unless otherwise stated]
It really is sad.. I've been dealing with Java for years, and I know that I couldn't bring myself to bother messing with a 'complex' project... Of course, I'm not going to be putting 'Java' on my resume anytime soon, either...
Java was the popular thing of it's time. If you didn't know it at the apogee of the internet bubble, you didn't get a job in the computer idustry; it's a lot easier to say that you know it, and hope that you never have to use it. I for one hope that I don't have to write Java code again...
.NET - buzzwords rule the market from the big business' point of view.
Now things are pointing similarly towards C# and
However, those who really know their stuff normally stick to the older languages... hype is good in some ways, but in the grand scheme of things, it's the older, better stuff that will prevail.
I see that I'm not the only one!
"Send an Instant Karma to me" - Yes
For the record I do NOT ask those boring certification style questions that you'd only know the answer to by memorizing the spec. All the questions we ask start with "here's a problem, now solve it with real Java code, please." If I've learned one thing, it's if somebody groans and complains that writing code is so trivial you shouldn't even ask it, then sit there and force them to write code because chances are they can't.
www.HearMySoulSpeak.com
My real world experience tells me it is much less than 32%. 15% at best (though another 15% THINK they know java - this is where the real danger lies).
If you require knowledge of complex topics like sensible J2EE architecture or multi-threading it falls into the single digits.
The second half of the article recommends Model Driven Architecture for the masses as the solution. This amounts to putting complex tools into the hands of idiots. Tools that go out of their way to keep people ignorant, while simultaneously giving them the power to commit their sins on a grand scale. Brilliant.
dhk
"Only 32% of Java developers really know Java."
An old Digital Equipment Company manual for technical writers said that only a small percentage of people really know English. And here is an example of not knowing English, in the Slashdot story:
"The knowledge gap between someone who can successfully write a System.out.println() and someone capable of designing and implementing a complex Java system brings to companies being back-logged with pending projects."
Knowing Java is very different from knowing programming. If you can't do a complex project in Java you can't do a complex project in any language. If you can do it in any language, you can do it in Java. The first step might be learning Java, but any good programmer can handle that in a short time. Now granted I'd want someone who knows all the tricks on the team so I don't re-implement the wheel, but a complex project by definition requires many people so that isn't an issue.
HR is far too hung up on what you have already done, not realizing that the data structures and algorithms are what counts, and they are the same in any language.
could code their way out of a paper bag in any language.
11*43+456^2
On the other hand, most of us mortals don't store all the details of API's in our heads. Back in the Stone Age we used manuals and in the Information Age we use the SUN Web site. If your interview objective is to see how someone would get the information to solve the problem, that is fine, but if your objective is to see if that person already has some narrow set of information, you are going to exclude some capable people.
I am mainly a Delphi developer (I should say a Delphi component developer), and my Java experience is only 4 months old, and gee, my Java experience is limited to using JNI to allow a Delphi ActiveX component to invoke an extension module written in Java and using a class loader so that extension module can be reloaded while the ActiveX component is still running.
I don't know the answer to your question about Java collection objects without looking it up, although I have enough sense to know that you have to use Object wrappers for value types in collections and then have to cast those objects back to their original types when you pull Object references out of collections -- I know that from "wasting" time reading Slashdot.
I guess I would fail your interview.
I've dealt with java on dozens of project. I've never claimed once to know it, nor will I ever.
I've never seen a situation where java was a good solution. I've seen plenty of places where java could be used.. but with the very very few people who are good with it (even fewer than those that "know" it) it's just inviting bugs and an ongoing project.
And just because they may know the syntax, that does not mean they can write code worth a crap. I took over a project where a guy wrote his own xml parser while there were tons of free ones on the market. That was a disgusting mess the ended up being easier to convert to real parser rather than fix some parsing problems. He also used count to 1 billion loops when spawning external processes because he didn't know about waitFor(). At first we could not figure out why his code was so slow. Add on top this was all done in static void main, which no other methods or calls.
He has moved on to writing web application in RPG for another department, where every new group of pages gets deployed on a new port...they seem lost on the whole url concept
Knowing Java is like knowing English (or any language.) Just because you know the language does not mean you are any good at writing poetry.
Soccer Goal Plans
where "MDA" is Compuware's acronym for "buy our software and generate all your code". And since "highly skilled developers recognise the value", anyone who doesn't "recognise the value" and buy their product is an unskilled dolt.
The Army reading list
This brings up the point:
What do you have to know to put a computer language on your resume? Let's say that I put "Java" on my list. Am I expected to, say, know all of the built-in functions for a vector, or string, during my interview? If I put Python down on my resume, am I expected to know the names of built-in function overloaders for classes or the functions and parameters for the re module?
Basically what I'm asking is, if I put a computer language down on my resume, should I be expected to code something at an interview immediately without looking at any references? This doesn't seem unreasonable, if the program were simple, but I could imagine employers asking for more complex things. How complex is too complex and how much specific information should a computer programmer retain about a certain language, say, after not using it for 3 years (he was doing VBScript just until he could pay off his debt, I swear)?
I think it's more important to know "how to program" rather than "how to program in X" because the skills you learn in one language are usually easily transferrable to another, as long as you have lots of experience in different kinds of languages: functional, procedural, OO, assembly language, etc.
As a side-note, it looks in the article like by saying that 68% of employees don't understand Java, he really means that 68% of employees have never heard of MDA and have no idea what the hell it is, or don't quickly "recognise the value of MDA," since, of course, all highly-skilled Java programmers do.
--Stephen
Did you ever notice that *nix doesn't even cover Linux?
Ok so most of this article looks like marketing for Compuware's OptimaJ product.
I recently had an interview at Compuware in Canada. I have only done one Java application so that's about 3 months of Java on my resume but I have 3 years of OO development experience in C++... and I was not hired.
Compuware are looking to hire only senior level programmers and when they say there's a lack of Java programmers, they actually mean "5 years of J2EE, knowledge of WebSphere, BEA and a load of other stuff".
Big development houses like them no longer invest in hireing people who know the technology but are not seniors. It's a catch 22 IMO. If no one wants to hire a J2EE developer that doesn't have at least 5 years of experience, then they shouldn't lament that "Java developers" become hader and harder to find as time advances.
This is exactly my experience. I've been developing in Java for about 8 years and I think I met just 10 other people who really know their Java. And of those 10 people just about 2 or 3 are able to design an enterprise class application.
:-(
It's not just Java developers, in the booming years a lot of people were hired by IT consulting firms here (NL) that shouldn't be near any computer at all. I've seen system engineers who studied politicology and got an MCSE who don't know the most basic thing about Windows and are not able to solve any problem at all. I've met tens of 'project managers' who don't know anything about IT and even less about software development and are too stubborn to listen to people who do know their shit.
The worst of all are VB 'programmers' who are just able to point and click a basic application, but don't have any feeling for what a programmer should be able to do.
The worst is title inflation. Every donkey is a 'software engineer' these days, and if you are able to actually design a piece of software you should call yourself 'architect', otherwise people won't take you seriously.
Because 'programmers' are seen as monkeys that type and are doing a trick that every other monkey can do.
I mean, let's be honest. If you write JSPs, you think of yourself as a java programmer; if you go to university and take a Java 101 course, you think of yourself as a java programmer.
The first time you end up in a real project, you're doomed. The idea that 68% of the people who identify themselves as java programmers either wrote a bunch of JSPs, or took a few java courses and did the coursework for it, isn't exactly shocking.
And given that it's Gartner we're talking about, a group of people who, throughout the dot com boom, exaggerated in the *extreme* the potential markets of a broad range of subjects, I wouldn't be surprised to find that the numbers are actually not as pessimistic as those made out; but that's just the nature of reports like this and those of other research groups - they're research. They represent reality in the same way as every other abstraction: they're a generalisation.
The truth is probably more complicated and interesting.
-- A mind is a terrible thing.
The studies I'm familiar with showed that it took 5 years to become competent in C++, and that was before they added STL. So I suspect the statistics for the number of alleged C++ programmers who actually know the language would be even worse.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
I don't really know what it means to "know" java. The language's entire approach is to be an object zoo rather than using a few elegant commands to do most anything. Therefore, most of Java programming is looking things up in the docs. That my friend, is the most important skill.
There's a few main types of programming styles: Object Oriented (Java), Functionally Oriented (C), Procedurally Oriented (LISP), and hybrids (C++, Perl). Once you learn how to think in the way required by each of these styles, all that's left is memorizing syntax and commands. And that's what man pages are for.
-- Political fascism requires a Fuhrer.
It doesn't work well for an applet in a browser, and it doesn't work well for stand alone apps.
Yes, and those are not the areas where Java has been very successful. However there are others, like server programming where Java is clearly the best choce.
I think most Java programmers are like me, they played with it enough to find out it's not worth the trouble.
I hope so. That will make it easier for those of us who actually understand Java and where it is appropriate to charge high hourly consulting rates.
From my experiences with the resume and hiring process I would put the number at more like 2%.
And that applies not to just Java, but ANY programming language or computer skill. After all, how many people who put HTML on their resume can actually code clean standards compliant HTML 4.01? How many know when CSS layout is appropriate, and when it is not, and can successfully blend table and CSS layout in an optimal fashion?
Basically I set up a situation where I want to create a hashmap of numeric counters such that I am going to increment a million times, but only store 100k keys into the table, and ask people to write me the structure to do it.
I have [or have had] a fairly extensive knowledge of the J2EE Collections Framework, and I don't have a clue what that "sentence" is supposed to say. In fact, screw the "sentence"; let's concentrate on the clause create a hashmap of numeric counters such that I am going to increment a million times, but only store 100k keys into the table. What does this mean? "Numeric counters" of what? "Increment" what? "Keys" into whose "table" of what?
If I were the interviewee, and my prospective boss couldn't explain himself any better than that, then I'd give some serious thought to alternatives such as bagging groceries, hanging drywall, or pushing a mop.
PS: You can make upwards of $20/hr hanging drywall; of course, if you don't wear a mask, the dust might take its toll on your lungs, but hey, we're young and we're gonna live forever, right?
It is possible to program functionally in C, just avoid side-effects like you would in Lisp.
I logged on this morning and discovered that my brief reign as a moderator had come to a screeching halt, but if I still had the points I had yesterday, I'd be in a real dilemma as to whether I'd call you Informative, Insightful, Funny, or what.
They need to invent some uber-Adjective that means "All of the above."
But it is mind-boggling what people can get away with on their resumes. Knew a guy who claimed to have graduate degrees from schools whose names he couldn't spell. You'd think employers would spot that, but no -- he actually held a couple of director-level jobs at the height of the bubble.
I really should get a little more creative with my resume. People who see it always ask why I don't mention where I got my 4-year degree. Answer: I don't have one. Which is a pain -- some companies won't even talk to me because of it. I could fudge up a degree from Whatsamatter U (double major, computer engineering and journalism). I'm sure nobody'd check. But I'm too much of a coward to pull off that kind of fib!
Oops. Just had a thought. I know Java. My credentials are impeccable: I wrote the JDK release notes for almost a year, and I once played a video game with James Gosling! But I've never worked as a Java programmer, being absolutely the worst coder on the planet. But if the shortage of Java programmers is that bad, maybe that's not such a problem!
I list Java among my skills, even though I cannot write Java code worth a damn. And I'm not lying to the resume reader.
I know what Java is, I know how to use the Java commandline to turn on Debugging, manage memory usage, turn off GC, etc. I know more about idiosyncracies in Java VM versions on 6 different platforms then most programmers.
I never said I knew how to program Java.
buzzwords rule the market from the big business' point of view.
.NET implementations they don't control), it is an open standard, it has excellent facilities for interfacing efficiently with native code, and it addresses some serious limitations of the Java language. This is progress. However, even C# is still years behind the state of the art in programming language technologies.
Java did represent an important step for industry beyond C++: it was the first widely accepted language with runtime safety, garbage collection, and reflection. Those aren't just buzzwords, they make a real difference.
On the other hand, Java has failed to keep up: Sun's irrational insistence on insulating programmers from the underlying platform, their intellectual property claims and licensing strategy over Java, and their failure to evolve the language mean that Java has remained a poor choice for many applications.
C# improves over Java in several of these areas: it is "just" a language (Microsoft actually doesn't seem to want you to use third party
However, those who really know their stuff normally stick to the older languages... hype is good in some ways, but in the grand scheme of things, it's the older, better stuff that will prevail.
You mean, older languages like Lisp, Modula-3, CLU, Smalltalk-80, Algol-68, Prolog, and Scheme?
Or do you mean older languages like Visual Basic, C, and Fortran?
There are good, well-designed older languages, and there are poorly designed older languages. Many people seem to stick with poorly designed older languages out of habit and because they don't know any better.
If you are referring to C and C++, they are, in fact, relative newcomers as far as languages go, and they represent a significant step back over the languages that preceded them. And both C and C++ were enormously overhyped at their time.
Knowing Java is very different from knowing programming. If you can't do a complex project in Java you can't do a complex project in any language
This "languages don't matter" argument comes up again and again, and it is bogus. Yes, you do need to know programming in order to do well at programming, but that is not sufficient. You also need to know a language and its libraries inside and out in order to be able to design and implement large projects in it effectively.
HR is far too hung up on what you have already done, not realizing that the data structures and algorithms are what counts, and they are the same in any language.
In most real-world applications, algorithms and data structures are irrelevant: all the algorithms and data structures needed are implemented either in the standard library or the underlying database. The time isn't far off in which knowledge of algorithms and data structures will be about as relevant to 99% of the programmers as knowledge of VLSI design. That may be sad, but it is the way things are going.
OO design is all over the map. It is all based on opinions and different "gurus" have different opinions. I find very little consistency in OO designs. You might as well just slap classes and objects together until it works. Perhaps this is why Extremem Programming is becomming popular: it at least formalizes the trial-and-error incremental hacking process needed to get OO to work.
On the other hand procedural + a big database is a lot more consistent. You group code mostly by tasks or events, and a normalized relational database becomes the river that connects all the individual tasks/events. The size of a given task/event stays relatively the same regardless of "system size". However, OO just turns into a big sea of speghetti classes interlinked in a pointer-like mesh such that you have to grok the entire system to know how any one peice works. Relational is more logical and refined than pointers. (Past bad procedural code was often caused by limited languages and/or lack of a database.)
If there is a consistency to OO design, I have not seen it and/or OO fans don't agree on what it is. It just turns into an endless buzzword contest. OO has been the biggest boon for buzzword snakeoil salesmen in decades. Some say OO design is about modeling human interaction/resposibility, others say it models "little machines that interact" (Simula-style), and other say OO is something else altogether.
The problem is not Java, but OO design. It is bankrupt. It has no center, no solid rules, and no consistency from guru to guru. Mod me down if you must, but it is the ugly truth.
Table-ized A.I.
Java is a very strict OO language. You cannot get anything done in Java without a myrid of class extensions and "implementations." This has the great benefit of allowing lots of developers to work on very specific parts of a project and not run into eachother very often. This has the very negative effect of discouraging creativity in the individual programmers work since so much is set in stone.
...Yes, that was two rants in one. It's twofor day here on /.
Most Java programmers end up as class monkeys, taking very specific directions from a select few who determined the entire arcitecture of the system. This is not programming as an art. This is monkey work. Put them in a position where they need to use Java (or any language) to solve a real problem and they will fail.
Java has had the misfortune of a gigantic hype machine pushing it. Because it could not live up to the hype in some areas a lot of people have dismissed it. This is probably less Java's fault and more the fault of those who consider it "dead." For they should look at the language and realize where it's strengths are.
Java in the browser - DOA. It sucked. Still sucks. And nobody uses it anymore (or nobody SHOULD...)
Java as an App - So it turns out that the whole "corss-platform" thing was a joke. Multiple JVMs across multiple OSes made for far too many variables. Write-once, run-anywhere it most certainly is not. And these days you have multiple GUI implementations and their VM/OS-specific quirks.
Java on the Server - Ok, this has a future. Cross platform doesn't matter. Speed isn't an issue nearly as much. And there are a slew of components already available (J2EE) that do the hard part for you.
All I can say is...
Amen.
Bot Assisted Blogging
A better middle ground perhaps is like what the Mozilla folks have done - adopt C++ but make it understood that only a subset would be used.
As for the anything-goes C++ approach...I advocate this strongly, for my competitors.
... or an advertisement for OptimalJ?
This has resulted in a tremendous backlog of projects," says Aad Van Schetsen, Compuware sales director for application development and integration solutions in the Europe, Middle East, Africa region.
Ben van Niekerk, Compuware SA product manager, says locally the backlog is mainly in projects to integrate new applications into Java legacy code.
Van Schetsen says the key to the success of tools such as Compuware's OptimalJ is their use of a model-driven architecture
Tools like OptimalJ ensure best practices and standards as well as enable companies to leverage the core capabilities of their developers by allowing them to focus on applications and not the underlying technologies.
"Although we are still in the education phase, particularly with less experienced Java developers and development companies, momentum is gradually growing with OptimalJ sales increasing threefold in the past financial year."
One of the reason there's so many people claiming to know java is because it's being widely taught in schools. They can write a rolling dice program, have the user prompt how many dice they want rolled, format results double spaced, and other practice problems from their book, but that's not real programming. When it comes to programming in school, almost nothing you learn applies to the real world. Taking a semester of java and then not programming in it again for 4 years doesn't make you a java programmer.
The other problem is, java's been such a damn hype language. A lot of companies want java programmers, but they don't know _why_ they want java programmers. In reality, java isn't a good language and it's rarely the right tool for the job. It's marginally faster than Perl/Python (in real world applications, not looping benchmarks) and MUCH slower than c or c++. Swing is so slow it's almost useless, JSP lacks the rich text processing it needs to actually be a safe/useful cgi langauge, it's still relativly immature and incomplete, I could go on all day.
But that's what the business world feeds off of, hype. So that's exactly what they get, vaporware applicants.
In college when they were trying to teach me Java, I wiggled my way out by proving I knew both C++ and pascal really well. I'm also allergic to C++, and will use it happily only if the API is QT (not MFC).
I played with QBASIC for many years, made many little pascal apps, did quite a bit of Visual Basic, but was always a little allergic to C++. There were too many things I couldnt even conceptualize. C is so clean and easy, you can make tiny C programs, then read the assembly language and you understand everything. C++ seperates you from the hardware.
Now Java takes that to another limit. Everything is in nicely packed boxes, you program and end up with something thats relatively slow. I know portability is a bid deal, which is why I'm a big fan of making sure my code is ANSI C 89 or 99 with no warnings, and I test it with gcc, borland c, visualc, forte, and intel compilers. Heck gcc compatibility alone will guarantee portability to Java's extent.
Java does allow larger projects, but with too many developers who dont have a clear larger picture in their heads, the project will have the quality of Windows95 and changing the whole model becomes increasing difficult (think of how easily a new linux kernel version is released with everything rewritten, now think of the same in windows). I'm not bashing OO programming, I just think it has its place and that place is not EVERYWHERE.
Java has really become a way to put the half-a-techies colleges are spewing like theres no tommorw to work. You put 20 of them in cubicles and give them parts of the project and they'll deliver. But is it the same as a good C/C++ developer who will understand everything in the project?
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Java is excellent in the server arena, especially with the (fairly) recent addition of the NIO package for high scalability IO.
I think it also has a place for certain types of cross-platform GUI utilities. Swing ain't half bad now once you know some tricks, and IBM's SWT is looking even better. You exaggerate VM differences.. they're pretty consistent in their adherence to the Java Lang Spec. And I'm sorry but the statement "The entire VM concept is flawed." is just ridiculous.
78% of all statistics are made up. //smirk
- Satisfying constantly changing business requirements.
-
Hooking up legacy systems, data feeds, user supplied data in the form of spreadsheets, FilerMaker db's, etc and linking that crap into your system and then spitting out the data in a variety of forms.
than any pure, stand-alone coding (in any language). I have never found any of these java programmers to step up and bring creative, out of the box solutions for any business need beyond displaying vailla web pages and even then there was non-stop bitching about how much work that was.Java was generally never the best tool to solve sticky problems, in part because the spectacular inertia associated with doing anything in Java (in my experience caused by the programmers and the language/libraries, even Java apologists admit that the JDBC libraries are a giant mess), we used sh, cgi, sql, perl and db utilities like bcp/sql-loader to build anything complex, needing non-http connectivity to something or needing timely implementation and we used Java for simply displaying things from the db usually in predigested form from tables denormalized by non-Java processes. Weblogic sucked, waddling along like some 400 lb sloth trying to make their way down the aisle of an econo class airliner. It did exactly two things, session ids and db connection pooling - and we paid dearly for those two things, we didn't need any of the other crap, but got it anyway.
Whenever there was a pressing need for something that worked, and needed to be done fast, I wrote some cgi's that ran on thttpd. The business users in most places quickly figure out who to go to for real help getting things done, if they have a choice and if the "rules" don't prevent them from accessing those people.
I am glad to see that there are still some people who haven't drown themselves in the OOD/P KoolAid (tm). I foresee a resurgence of simple paradigms, simple programming, and hopefully simple protocols and standards that can actually work rather than crap like UDDI and other new standards that are impossible to comprehend, much less implement. I think Aspect Oriented (AOP) will probably become more popular but I think its only a bandaid.
...more specifically, I blame my school and schools like it.
Right now I'm attending a large university (formerly an "institute of technology") for a degree in Computer Information Systems, the main programming language they teach is Java (we also have to take classes on VB, PHP and COBOL, no C or C++ though)
I like to think that I have a pretty solid understanding of programming (I had 5 years experience with C++ before I started school), but I had never used Java before, I am probably about average in it now (average for the people who actually know the language anyway). The quality of the classes at my school (and I suspect other similar types of school) is absolutely horrid, I mean I know a guy who got an A in the first level java class and was unable to write a console application to convert between farenheit and celcius, even when he was given a class to read input from the keyboard so he didn't have to use BufferedReaders or anything like that. I know people who are graduating this term, have 3.5s and 4.0s and were absolutely amazed at a simple app I hacked together in a couple hours to allow me to remotely manage the MySQL database that runs behind my website (yeah I know I could have done that in PHP, but I'd never had java connect to a database before and I thought it would be fun to write a java app to do so).
What it comes down to is that there are a lot of degree factories that let people leave honestly thinking they know something about $subject when in reality they only know enough to be able to use a few of the right keywords in their resume.
I don't know how many of these people I've just looked at square in the eye and informed them that they need to do some heavy personal-time learning or they might as well just quit, because with their knowledge the only thing they will be doing is getting outsourced to india 6months after they find a job. And yes, I realize that ALL of our jobs are in danger of being outsourced, but I would like to think that it is the clueless code-monkies (people who's entire skill set involves turning a comprehensive UML diagram into really shitty code) who are really in danger of losing their jobs, and not the serious programmers (people who understand how to actually solve problems, how to write good code, understand the subtle nuances of the various languages, etc).
Famous Last Words: "hmm...wikipedia says it's edible"
I got my first Java job without any knowledge of Java at all!! chock!. Only after several days working with Java did I understand the basic packages java.lang, awt, applet, net and text!!
Turns out a lot of the "very experienced/but selftaught java programmers" in that company didnt really understand object orientation and still wrote code that was completely unmaintanable even after several years!! but on their resume they can truthfully state that they know most of the language and api.
As long as there are people putting "I know CHMOD and Upload/Download" on their resumes, I guess anything is possible....
At what point does a person *know* java? I graduated a few years ago, and I listed Java on my resume. I had taken two semesters (Introduction and Client/Server) and felt like I should list it. I would venture a guess that no project done for a class rivals the complexity of a real world project, but are college students supposed to leave their resumes blank? Naturally I didn't list Java under the experienced listings,but under languages known. Maybe there should be industry standardized tests for each language, not unlike A+ certifications or Redhat Linux Certifications.
#) Isn't this true for every langauage....
#) Building complex systems requires experience(on large projects and exp in a particular domain),no matter which language you are using....
#) One good way to identify someone's love for a langauge or platform is to check for his participation and contribution to FLOSS. that loves ensures his personal interest and can be a pointer to the fact S/he is inquizitive and likes exploring more (not just learning the basic sytax required to do the job).
Linux: Self-mutilation is a snap.Be a geek!!!
Monkey-work is why Java is so big. It's designed to allow a select few [Sun...architects...32% who know Java] to dictate to the monkeys.
So who cares if only 32% know Java. We 32% need the monkeys to do the work. That's why Java has so many restrictions and safety-catches on shotguns.
Programming *shouldn't* be an art! Not if you're being paid to do it. The last thing I want on my projects is individual programmers getting creative. All that unmanaged creativity does is screw up the design we've spent hundreds of man-hours writing the spec for, testing the requirements of, and documenting in painful detail.
"Monkey work" is the bread and butter that makes real applications happen. "Monkey work" is what we need to keep large projects managable. "Monkey work" is what can turn software development from a craft into engineering. If the design is good then it works damn well.
/rant over
Forget thrust, drag, lift and weight. Airplanes fly because of money.
Remember the Matrix, when Keanu says "I know Kung Fu"? It's like that, only with Java. It doesn't mean you can puddle your way through a toy app, it means you make the language your bitch. It does what you want, when you want it, how you want it. Maybe you don't remember all the classes and their methods, but you know the common ones, and you can find the rest from the API in a flash.
Forget thrust, drag, lift and weight. Airplanes fly because of money.
I think you need to examine your logic a bit here. Just using an OO language to accomplish a task does not make you an OO programmer, even if the language or compiler imposes some OO onto your fundamentally non-OO code. OO isn't about a language, or what a compiler does with the language. It's a way of deconstructing problems into objects and the way they interact. If you aren't doing that, you're not doing OO programming.
You can program "object oriented" in almost any language. You can program "functional" in almost any language. You can even program "declarative" in many languages. For some real abuse see Meta programming in C++ templates -- using compiler constraints to do calculations and actually making it halfway readable! Another similar abuse are programs written entirely in C preprocessor directives.
And don't assume it is always ugiler. It may be a little akward sometimes but I've seen some nicely object oriented C programs.
The indonesians renamed their islands (or various portions of them) from what we normally call them. So Java = Jawa, Sumatra = Sumatera New Guinea = Irian Jaya etc. But the main tragedy is we can no longer make puns about procreation in the Celebes Sea, as that island is now Sulawesi. Sincerely, the wild man of Kulimantan.
"Waste not one watt!" - CZ
I remember reading postings on Monster, Dice, and Careerbuilder that asked for something like three years of C# experiance when it had just come out.
Bahasa Jawa tidak sama Bahasa Indonesia.
:)
Give me job.
I agree that Java could be considered DOA on the browser because no one wants to deal with AWT classes.
However checkout Thinlets , if this ever got widespread adoption I think we would start seeing more and more applets popping up. Being able to define interfaces with using xml allows people to just rip through and create interfaces likity-split, and the speed amazing.
I guess the need for applets isn't as important anymore for rich-client applications due to the ease and success of Java Web Start.
"It takes many nails to build a crib, but one screw to fill it."
The language is straightforward enough. But I tried to do a few things in the early days, and between the AWT/Swing transition, discontinued development products, and Sun's annoying tendency to releaase huge half-implemented class libraries (remember Java 3D?), and the general realization that you don't write applications in Java, I got fed up and left.
'wreak' to cause destruction, as in to wreak havoc
'reek' to smell of, stink of, as in to reek of vested interests.
You wanted the second spelling, I think.
This article is an advertorial, I am in the development industry in south africa and itweb.co.za is often used to dispense stuff like this. In fact some software products I have written myself were paid for and featured on itweb.
I think Java GUI's will make a huge resurgence now that SWT is gaining popularity.
provide a development platform by which developers could do applications applications that would run either on the client or the server. The big problem is that Java never really delivered on the client end. Applets run, but they are so poorly engineered, in the words of Marc Andreeson "client side java is dead'--and Javascript has take much of the role it was anticipated that Java would take on the client.
I previous poster made legitimate points that Java brought garbage collection, reflection and runtime safety into the popular eye. However, there are other widely used, well-standardized languages with those same features, namely Javascript.
C# may be better in key respects than Java, but I have trouble conceiving of C# as a really open standard. The ECMA standard for Javascript is already supported by a variety of companies(i.e. IBM, Lotus, Microsoft, AOL/Time/Warner/Netscape) in a variety of products.
The folks at have shown that they can extend Javascript quite a bit-even in browser implementations.For all of the talk of C#, one thing that is interesting about
I'm a DBA and Perl/Python programmer. I've used Java for class projects at CMU. Java and C# both strike me as overly complicate for most of the work I do on a day by day basis. Javscript isn't there yet-but I can see that it might get there. There is a real niche for a well standardized, universally available scripting language that just hasn't been filled yet. If a small fraction of the engineering effort applied to Java were applied in this direction, I'd expect big benefits.
Your version of "knowing" java is like saying that the ability to hook up a power supply, motherboard, processor, and hard drive and install Windows on it makes you a system administrator.
You know how to administer a Java app, but you don't know Java. If that's not what it says on your resume then you are lying. Your skills are needed and they're non-trivial - i'm Sun certified in Java programming and i don't know all the stuff you know - but if an employer says they want someone who knows Java then you're just wasting their time.
The only thing necessary for the triumph of evil is that good men do nothing.