Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

The answer is, it depends. What sort of software do you WANT to write? After all, if you are learning a language to stay employed and not because you want to use it and enjoy what you are writing, you are either using the wrong language or are in the wrong field.

If you want to move towards applications that get closer to the hardware, or even perhaps driver land, you must learn C. Learning C is a good bridge towards C++, but it is possible to learn C++ before C. C++ is essentially a superset of C, but it encourages some new idioms, some of which are good, some of which are not. In many ways, C++ trys to tack on OO in an ugly way (kinda like Perl but not really), and has some really braindead constructs like cout << setiosflags instead of fprintf. C libraries are plentiful and can bring you immense power, but it's not highly elegant. But what is... Java? Nah. Anyhow C++ OO is cludgy, but sometimes it's better than nothing.

Java, IMHO, gets too much press. Yes, it is multiplatform, it's painful to write GUI apps in Swing, but they are shiny and get the job done. It is a very bad language to use for writing services (daemons) in, but it has a lot of usage for JSP and Servlets (web stuff) in Industry. It's a mixed bag, I tend to dislike it because it feels like I am programming in handcuffs, and a lot of stuff is not doable without JNI (the XS equivalent) -- plus, not a good selection of modules as CPAN either. I recommend reading some nice Paul Graham Java Bashing.

Mono or no Mono, I would not consider C# unless you want to sell your soul to Microsoft. It copies Java (bad idea since Java ain't great anyway) and doesn't really do much but try to subvert it.

So some other non-mainstream languages were mentioned (Ruby), but are there many jobs in that? No. Personally I don't like ruby, but that's beside the point. If you want a language industry wants badly, Ruby ain't it.

Personally I am not officially a professional Perl developer, I use Perl whenever I can for build systems, command lines, etc -- often without asking management :) -- anyhow, keep Perl on your resume, as Perl is seldom the first language you are hired for, but it tends to be a huge plus. I wish I could find a mostly Perl (some C/C++) position myself, but there are hard to come by (especially in NC, USA). Most jobs on jobs.perl.org tend to be sysadmin related and/or in CA/WA/DC/NY. Or requiring massive LAMP experience.

So that's a long answer and not much good. I'll sumarize. If I were you, and I'm not, I'd learn C/C++. C is not dying. Learn C++ after C, and if you like it, there will be positions in that for a long long time. Someone said C++ is for GUI apps, and they were probably thinking VC++. Quite widely used. Not going anywhere, and not losing share. In the interest of full disclosure, in order of favorites, my languages are Perl, C, and C++. Java comes in about 8th.

My next language is going to be something like Haskell, Scheme (yeah, I know Lisp sort of), or Erlang -- something highly functional, borderline insane for industry usage, but screams 'this kid isn't a drone, we want him'. I'm also considering dropping a few languages from my resume just because. Yes, I know Python, but I don't want to look like I list every language I have ever used, and I don't want to land a job playing with it!


In reply to Re: C++, C# or Java by flyingmoose
in thread C++, C# or Java by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (5)
As of 2024-04-20 16:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found