Language Switch –Java or C++ & Perplexing: Unemployed Java Programmers
-
All, I would like to have some feedback on the following. Over the past years, I have roughly worked 5 years with Visual Basic, 2 years with Visual C++, 2 years with Java and 5 years OOD (OMT & UML). Additionally, I have a MCIS and MCSD. At this point, I feel I’ve arrived at an intersection in the road. It seems “classic” VB (VB 6) is all but dead. There are only 12 jobs listed on Dice in my city a “hotbed” for IT jobs. Yes, .NET will be here in February. However, how many .NET positions will there really be? It does not look like there will be too many. In the end, it seems like beefing up my C++ skills is the best long-term investment. It has the following advantages: 1. It is standardized. (It is not changed on the whim of a vendor.) 2. It is available on multiple platforms. (In theory, there are more job opportunities.) 3. It is flexible. (You can write 3-D games or business database applications.) 4. It seems to have a nice high end. (It seems the gurus get whatever hourly rate they want.) 5. It has a higher barrier of entry than Java. (It takes more time to really master.) However, Java also seems to have the following advantages: 1. It is available on multiple platforms. 2. It seems to have a nice high end. 3. It is easier to ramp up quickly. 4. The vendor certification tracks (WebGain, Sun, Oracle, etc.) seem to differentiate developers. I know some of the “advantages” seem to be contradictory. To me, the higher barrier of entry for C++ is good because it limits the number of people willing to put the time in to master it. Likewise, the low barrier of entry is good for Java because one can become an “expert” on the basics and look for employment. In the end, they are both advantages and disadvantages. The perplexing aspect of Java is the number of “unemployed” Java developers. Who are they? Are they individuals with a BSCS or MSCS and years of solid Java experience? Are they individuals who read a few Java books, maybe took the SCJP and rode the wave? These are perplexing questions. I would appreciate any comments. If someone has a crystal ball, I’d like to know which is the best route Java or C++. My crystal ball is not working. :) Thanks, Rich
I’d like to know which is the best route Java or C++. Learn both. I'm serious. :) Tomasz Sowinski -- http://www.shooltz.com
-
All, I would like to have some feedback on the following. Over the past years, I have roughly worked 5 years with Visual Basic, 2 years with Visual C++, 2 years with Java and 5 years OOD (OMT & UML). Additionally, I have a MCIS and MCSD. At this point, I feel I’ve arrived at an intersection in the road. It seems “classic” VB (VB 6) is all but dead. There are only 12 jobs listed on Dice in my city a “hotbed” for IT jobs. Yes, .NET will be here in February. However, how many .NET positions will there really be? It does not look like there will be too many. In the end, it seems like beefing up my C++ skills is the best long-term investment. It has the following advantages: 1. It is standardized. (It is not changed on the whim of a vendor.) 2. It is available on multiple platforms. (In theory, there are more job opportunities.) 3. It is flexible. (You can write 3-D games or business database applications.) 4. It seems to have a nice high end. (It seems the gurus get whatever hourly rate they want.) 5. It has a higher barrier of entry than Java. (It takes more time to really master.) However, Java also seems to have the following advantages: 1. It is available on multiple platforms. 2. It seems to have a nice high end. 3. It is easier to ramp up quickly. 4. The vendor certification tracks (WebGain, Sun, Oracle, etc.) seem to differentiate developers. I know some of the “advantages” seem to be contradictory. To me, the higher barrier of entry for C++ is good because it limits the number of people willing to put the time in to master it. Likewise, the low barrier of entry is good for Java because one can become an “expert” on the basics and look for employment. In the end, they are both advantages and disadvantages. The perplexing aspect of Java is the number of “unemployed” Java developers. Who are they? Are they individuals with a BSCS or MSCS and years of solid Java experience? Are they individuals who read a few Java books, maybe took the SCJP and rode the wave? These are perplexing questions. I would appreciate any comments. If someone has a crystal ball, I’d like to know which is the best route Java or C++. My crystal ball is not working. :) Thanks, Rich
I know a couple of months back IBM could not seem to get enough Java guys or C++ guys who they could train to Java. The only problem was long stints from home. I've found recently that there seems to be quite a bit of COM+, and MTS stuff with ATL about. The kind of place where J2EE should be, but quite a few companies are opting for MS stuff instead. Giles
-
If possible stay with both, but if you must choose, then go with C++. It's got features other languages can only dream about (templates, default parameters, real destructors, etc.) and it's complex enough that you'll probably never stop learning it. I think these days there are a lot unemployed "everythings", not just Java developers. I've worked with 5 "experienced" Java developers. Of those, only one really demonstrated his experience; the rest were mostly full of sh*t. If they had gotten where they had gotten (sorry Chris) it was thanks to Java being easy to learn. They couldn't come up with a decent class hierarchy if their life depended on it -- a lot like VB developers who are used to just using the available classes and not creating new ones. Regards, Alvaro
Alvaro, Thanks for the input. I agree with you many of the VB and Java programmers are clueless. I really do not think it is the language. Rather, it is the individuals. It seems like many of them jumped on the gravy train for the quick cash. How many of them really have a solid background? What I find perplexing is that some people lump developers together according to a language. All VB programmers are idiots because they learned VBA from a "21 Days" book and moved to VB. They have no formal education, training or software development skills. All C programmers are eccentric and naturally disorganized. These are not true. Each individual brings a different skill set, group of knowledge, and experience level. Rich
-
I know a couple of months back IBM could not seem to get enough Java guys or C++ guys who they could train to Java. The only problem was long stints from home. I've found recently that there seems to be quite a bit of COM+, and MTS stuff with ATL about. The kind of place where J2EE should be, but quite a few companies are opting for MS stuff instead. Giles
-
I’d like to know which is the best route Java or C++. Learn both. I'm serious. :) Tomasz Sowinski -- http://www.shooltz.com
-
Alvaro, Thanks for the input. I agree with you many of the VB and Java programmers are clueless. I really do not think it is the language. Rather, it is the individuals. It seems like many of them jumped on the gravy train for the quick cash. How many of them really have a solid background? What I find perplexing is that some people lump developers together according to a language. All VB programmers are idiots because they learned VBA from a "21 Days" book and moved to VB. They have no formal education, training or software development skills. All C programmers are eccentric and naturally disorganized. These are not true. Each individual brings a different skill set, group of knowledge, and experience level. Rich
Unfortunately that's just human nature - we label people according to any convenient criteria we can, and expect them to behave accordingly. Sad really. It's not right by any means - but we're all guilty of it at times. :( Andy Metcalfe - Sonardyne International Ltd
(andy.metcalfe@lineone.net)
http://www.resorg.co.uk"I'm just another 'S' bend in the internet. A ton of stuff goes through my system, and some of the hairer, stickier and lumpier stuff sticks." - Chris Maunder (I just couldn't let that one past ;))
-
You've mentioned that you have 2 years of experience in each. Do you feel that one of the languages just 'feels better'? Tomasz Sowinski -- http://www.shooltz.com
-
I know a couple of months back IBM could not seem to get enough Java guys or C++ guys who they could train to Java. The only problem was long stints from home. I've found recently that there seems to be quite a bit of COM+, and MTS stuff with ATL about. The kind of place where J2EE should be, but quite a few companies are opting for MS stuff instead. Giles
-
You've mentioned that you have 2 years of experience in each. Do you feel that one of the languages just 'feels better'? Tomasz Sowinski -- http://www.shooltz.com
Tomasz, That is difficult. I started programming in C++ in 1992. To me, it feels better. However, Java is so easy to use. Yet, it is so slow. I hate waiting for JBuilder 4 to hit the first break point on my PIII 800 with 256 MB. It takes several seconds. :| I feel like it makes everything take so much longer. Rich
-
Tomasz, That is difficult. I started programming in C++ in 1992. To me, it feels better. However, Java is so easy to use. Yet, it is so slow. I hate waiting for JBuilder 4 to hit the first break point on my PIII 800 with 256 MB. It takes several seconds. :| I feel like it makes everything take so much longer. Rich
However, Java is so easy to use. Just curious: what is so easy in Java? Tomasz Sowinski -- http://www.shooltz.com
-
However, Java is so easy to use. Just curious: what is so easy in Java? Tomasz Sowinski -- http://www.shooltz.com
what is so easy in Java? Hmmmm, I have a feeling you know the answer to this question. :) But in case you or anyone else does not, let me give you my answer: 1. No more dealing with how to pass arguments around -- by pointer, by value, or by reference. It's always by value. 2. No more code split in two files: the header and the .CPP. Everything's inside the same .JAVA file. This is especially evident for static members. 3. No more needing a constructor just to initialize member variables. You can initialize them where you declare them. 4. No more speculating whether a method will throw an exception. Exceptions that can be thrown are specified in the method's signature. 5. No more worrying about deleting memory allocated on the heap. In Java's case it applies to all objects, but still, it's something else that makes life easy. 6. No more needing a third-party library to account for multiple threads accross platforms. It's built in. 7. No more compiling the source code on each platform it runs. You compile it once and then move the .CLASS files to the various platforms. 8. No more having to decide which String class to use. Regards, Alvaro
-
However, Java is so easy to use. Just curious: what is so easy in Java? Tomasz Sowinski -- http://www.shooltz.com
To name a few - building UIs, string handling, sockets, threading, collection classes and JDBC. To me, everything is straightforward. Also, you do not have memory allocation issues. The intent of the designers was to make it user friendly. They did a good job. :) Rich
-
what is so easy in Java? Hmmmm, I have a feeling you know the answer to this question. :) But in case you or anyone else does not, let me give you my answer: 1. No more dealing with how to pass arguments around -- by pointer, by value, or by reference. It's always by value. 2. No more code split in two files: the header and the .CPP. Everything's inside the same .JAVA file. This is especially evident for static members. 3. No more needing a constructor just to initialize member variables. You can initialize them where you declare them. 4. No more speculating whether a method will throw an exception. Exceptions that can be thrown are specified in the method's signature. 5. No more worrying about deleting memory allocated on the heap. In Java's case it applies to all objects, but still, it's something else that makes life easy. 6. No more needing a third-party library to account for multiple threads accross platforms. It's built in. 7. No more compiling the source code on each platform it runs. You compile it once and then move the .CLASS files to the various platforms. 8. No more having to decide which String class to use. Regards, Alvaro
1. True 2. This is not easier at all. 3. True 4. True (this one is great) 5. Sometimes easier, sometimes not. 6. True, but I don't like Java threading model. 7. Java String sucks. But see the other way around: 1. Java containers are harder to use than STL containers (no type safety) 2. Java library is full of "depreciated" classes and methods. It is changing too quickly, and it is hard to find what you need. 3. Messing with CLASSPATH and all those files 4. No exe file after compilation 5. No decent IDE. I vote pro drink :beer:
-
To name a few - building UIs, string handling, sockets, threading, collection classes and JDBC. To me, everything is straightforward. Also, you do not have memory allocation issues. The intent of the designers was to make it user friendly. They did a good job. :) Rich
To name a few - building UIs, string handling, sockets, threading, collection classes and JDBC UI - easier with C++ if you have a good library sring handling - easier with C++ sockets - I agree here. threading - I disagree here collection classes - I STRONGLY disagree here. STL classes are far easier to use JDBC - what's so easy about JDBC? I vote pro drink :beer:
-
1. True 2. This is not easier at all. 3. True 4. True (this one is great) 5. Sometimes easier, sometimes not. 6. True, but I don't like Java threading model. 7. Java String sucks. But see the other way around: 1. Java containers are harder to use than STL containers (no type safety) 2. Java library is full of "depreciated" classes and methods. It is changing too quickly, and it is hard to find what you need. 3. Messing with CLASSPATH and all those files 4. No exe file after compilation 5. No decent IDE. I vote pro drink :beer:
Oh boy, I smell a language war here, but whataheck, I'm up for it :) 1. Java containers are harder to use than STL containers (no type safety) False. It's actually more a matter of opinion. Just because you have to cast does not mean that it's harder to use. Besides, it may not be type-safe at compile time but it is at run-time. If the cast is invalid, you get an exception. In C++, traditional casts are not checked at all. Also, STL's function names are not intuitive. I mean, what novice programmer would think that vector.push_back() would do the same as Vector.add()? 2. Java library is full of "depreciated" classes and methods. It is changing too quickly, and it is hard to find what you need. You mean "deprecated". Yep, that's a definite pain sometimes. The biggest offender I've found is the java.util.Date class, which I use a lot. 3. Messing with CLASSPATH and all those files I haven't experienced any issues with the CLASSPATH. You basically set it and forget it. Then you package your CLASS files inside JARs and everything's fine. 4. No exe file after compilation Yeah, on Windows I can see how someone may not like that. But remember EXE files are used only on Windows, which is just one of Java's platforms. You can always create a BAT file that runs the JVM on your CLASS file. Also, I believe there are Java compilers which will create platform-specific EXEs. 5. No decent IDE. Well, that's not Java's fault, is it? Microsoft had a nice one for a while: Visual J++. I'm using one called JCreator which is very similar to DevStudio (and written in C++ :-O). Again, this is a matter of opinion. Regards, Alvaro
-
All, I would like to have some feedback on the following. Over the past years, I have roughly worked 5 years with Visual Basic, 2 years with Visual C++, 2 years with Java and 5 years OOD (OMT & UML). Additionally, I have a MCIS and MCSD. At this point, I feel I’ve arrived at an intersection in the road. It seems “classic” VB (VB 6) is all but dead. There are only 12 jobs listed on Dice in my city a “hotbed” for IT jobs. Yes, .NET will be here in February. However, how many .NET positions will there really be? It does not look like there will be too many. In the end, it seems like beefing up my C++ skills is the best long-term investment. It has the following advantages: 1. It is standardized. (It is not changed on the whim of a vendor.) 2. It is available on multiple platforms. (In theory, there are more job opportunities.) 3. It is flexible. (You can write 3-D games or business database applications.) 4. It seems to have a nice high end. (It seems the gurus get whatever hourly rate they want.) 5. It has a higher barrier of entry than Java. (It takes more time to really master.) However, Java also seems to have the following advantages: 1. It is available on multiple platforms. 2. It seems to have a nice high end. 3. It is easier to ramp up quickly. 4. The vendor certification tracks (WebGain, Sun, Oracle, etc.) seem to differentiate developers. I know some of the “advantages” seem to be contradictory. To me, the higher barrier of entry for C++ is good because it limits the number of people willing to put the time in to master it. Likewise, the low barrier of entry is good for Java because one can become an “expert” on the basics and look for employment. In the end, they are both advantages and disadvantages. The perplexing aspect of Java is the number of “unemployed” Java developers. Who are they? Are they individuals with a BSCS or MSCS and years of solid Java experience? Are they individuals who read a few Java books, maybe took the SCJP and rode the wave? These are perplexing questions. I would appreciate any comments. If someone has a crystal ball, I’d like to know which is the best route Java or C++. My crystal ball is not working. :) Thanks, Rich
Rich, The market stinks everywhere. Here in Irvine, which is another hotbed of IT jobs (at one point, it was called The New Silicon Valley), there are very few jobs out there right now regardless of what language you use. I think that .NET will be pretty well received. I know of a few shops who are going to 100% .NET (Dundas is a good example of a commercial vendor who is moving to .NET). I wouldn't write it off. And if you're a java developer, C# will be a breeze for you to pick up. -Mike Stevenson God Bless America, God Bless the World News - Forum - Games - Comedy - Chat Click: http://www.USAvsAfghanistan.com
-
Alvaro, Thanks for the input. I agree with you many of the VB and Java programmers are clueless. I really do not think it is the language. Rather, it is the individuals. It seems like many of them jumped on the gravy train for the quick cash. How many of them really have a solid background? What I find perplexing is that some people lump developers together according to a language. All VB programmers are idiots because they learned VBA from a "21 Days" book and moved to VB. They have no formal education, training or software development skills. All C programmers are eccentric and naturally disorganized. These are not true. Each individual brings a different skill set, group of knowledge, and experience level. Rich
Yeah, but there has to be something to say about people who still use Cobol ;-) -Mike Stevenson God Bless America, God Bless the World News - Forum - Games - Comedy - Chat Click: http://www.USAvsAfghanistan.com
-
Oh boy, I smell a language war here, but whataheck, I'm up for it :) 1. Java containers are harder to use than STL containers (no type safety) False. It's actually more a matter of opinion. Just because you have to cast does not mean that it's harder to use. Besides, it may not be type-safe at compile time but it is at run-time. If the cast is invalid, you get an exception. In C++, traditional casts are not checked at all. Also, STL's function names are not intuitive. I mean, what novice programmer would think that vector.push_back() would do the same as Vector.add()? 2. Java library is full of "depreciated" classes and methods. It is changing too quickly, and it is hard to find what you need. You mean "deprecated". Yep, that's a definite pain sometimes. The biggest offender I've found is the java.util.Date class, which I use a lot. 3. Messing with CLASSPATH and all those files I haven't experienced any issues with the CLASSPATH. You basically set it and forget it. Then you package your CLASS files inside JARs and everything's fine. 4. No exe file after compilation Yeah, on Windows I can see how someone may not like that. But remember EXE files are used only on Windows, which is just one of Java's platforms. You can always create a BAT file that runs the JVM on your CLASS file. Also, I believe there are Java compilers which will create platform-specific EXEs. 5. No decent IDE. Well, that's not Java's fault, is it? Microsoft had a nice one for a while: Visual J++. I'm using one called JCreator which is very similar to DevStudio (and written in C++ :-O). Again, this is a matter of opinion. Regards, Alvaro
5. No decent IDE. That's not necessarilly true. I use Visual J++ for all my Java 1.1 development and Forte for Java (free from Sun) for all my Java 2 development. Forte is a great IDE if you have a decently fast machine -- PIII 800 or better. It will run on less, just a little slow. It's got most of the features of dev studio including intellisense popup and tooltip method info. And it's free. It will not make exes though. You need Visual J++ or Visual Cafe for that. I think JBuilder might make exes too. -Mike Stevenson God Bless America, God Bless the World News - Forum - Games - Comedy - Chat Click: http://www.USAvsAfghanistan.com
-
Oh boy, I smell a language war here, but whataheck, I'm up for it :) 1. Java containers are harder to use than STL containers (no type safety) False. It's actually more a matter of opinion. Just because you have to cast does not mean that it's harder to use. Besides, it may not be type-safe at compile time but it is at run-time. If the cast is invalid, you get an exception. In C++, traditional casts are not checked at all. Also, STL's function names are not intuitive. I mean, what novice programmer would think that vector.push_back() would do the same as Vector.add()? 2. Java library is full of "depreciated" classes and methods. It is changing too quickly, and it is hard to find what you need. You mean "deprecated". Yep, that's a definite pain sometimes. The biggest offender I've found is the java.util.Date class, which I use a lot. 3. Messing with CLASSPATH and all those files I haven't experienced any issues with the CLASSPATH. You basically set it and forget it. Then you package your CLASS files inside JARs and everything's fine. 4. No exe file after compilation Yeah, on Windows I can see how someone may not like that. But remember EXE files are used only on Windows, which is just one of Java's platforms. You can always create a BAT file that runs the JVM on your CLASS file. Also, I believe there are Java compilers which will create platform-specific EXEs. 5. No decent IDE. Well, that's not Java's fault, is it? Microsoft had a nice one for a while: Visual J++. I'm using one called JCreator which is very similar to DevStudio (and written in C++ :-O). Again, this is a matter of opinion. Regards, Alvaro
Oh boy, I smell a language war here, but whataheck, I'm up for it Not at all. In fact, I like Java (the language itself, not the libraries). 1. I still think STL containers are easier than Java containers, but it may be only my opinion. 2. We agree on this one. 3. O.K. if you say so. To be honest, I didn't have much problems either, however, I still don't like the concept. 4. No comments. 5. JCreator is my favourite too. However, it is still pretty far behind Microsoft VS (especially VS.NET) I vote pro drink :beer:
-
1. True 2. This is not easier at all. 3. True 4. True (this one is great) 5. Sometimes easier, sometimes not. 6. True, but I don't like Java threading model. 7. Java String sucks. But see the other way around: 1. Java containers are harder to use than STL containers (no type safety) 2. Java library is full of "depreciated" classes and methods. It is changing too quickly, and it is hard to find what you need. 3. Messing with CLASSPATH and all those files 4. No exe file after compilation 5. No decent IDE. I vote pro drink :beer: