The relevance of Java

brandotheninjamasterbrandotheninjamaster Registered User regular
edited November 2007 in Help / Advice Forum
So I'm looking down the list of my classes for my BS in IS (I like saying that), and noticed that I am going to have 2 Java programming classes (Java Programming 1 and Java Programming 2, duh). I was just curious where does Java fit into today's world? By that I mean:
Are Java Programmers high in demand?
Is this still a popular programming language?
Will I see some awesome benefits by learning this language?

Thanks in advance.

brandotheninjamaster on

Posts

  • LewishamLewisham Registered User regular
    edited October 2007
    1. Yes
    2. It used to be more popular, but programmers are getting a bit tired of the large amount of syntactic sugar necessary, and have been going to Ruby and Python to escape it. However, in the corporate world, it's as popular as ever.
    3. You will learn a great deal about how to use object-orientated programming, how to make a great API, and how not to make a GUI interface system.

    Java is the staple of almost all computer science courses.

    Lewisham on
  • brandotheninjamasterbrandotheninjamaster Registered User regular
    edited October 2007
    awesome. thanks for the post.

    brandotheninjamaster on
  • brandotheninjamasterbrandotheninjamaster Registered User regular
    edited October 2007
    I have another question; I am relatively new to the programming scene. How hard is Java to learn? If its tough is something I can do beforehand to make it less difficult?

    brandotheninjamaster on
  • XaevXaev Registered User regular
    edited October 2007
    I have another question; I am relatively new to the programming scene. How hard is Java to learn? If its tough is something I can do beforehand to make it less difficult?

    I have taken several Java courses in the past (though I am no longer a CS major) and I never had any problems at all learning it. C++ was more difficult for me despite me already knowing many of the basics it shares with Java.

    However, I can't speak for everyone and I usually pick up on these kinds of things very quickly. Your mileage may vary.

    Xaev on
    Steam - Lysus || XBL - Veax || PSN - Lysus || WoW - Lysus (Korgath - US) || Guild Wars - Lysus Yjirkar || Starcraft II - Lysus.781 || League of Legends - Lysus
    Feel free to add me on whatever network, it's always more fun to play with people than alone
  • Nova_CNova_C I have the need The need for speedRegistered User regular
    edited October 2007
    If you've never done any programming before the learning curve is pretty similar across languages - the hard part is understanding how it works. I would imagine, though, that the first course will take you through that, so don't worry.

    Once you get past that, languages are separated by purpose and syntax, but programming is programming regardless of what language you work on. Java is very forgiving and is a good one to start with.

    Nova_C on
  • snarkssnarks Registered User regular
    edited October 2007
    Java isn't as popular as it once was, but as Lewisham mentioned, I imagine there will still be plenty of demand for it in the years to come, particularly in enterprises. And even if you can't find a Java job, you can always move on to C#, which is an OO language experiencing good growth.

    Learning an object-oriented programming language (or at least your first OO language) will most likely be fairly difficult; just take your time, don't try to glaze over any concepts you don't fully understand and make sure you have a good reference book or site.

    snarks on
  • flatlinegraphicsflatlinegraphics Registered User regular
    edited October 2007
    java is still used on enterprise class servers and apps. there are currently 17112 jobs on dice with the keyword 'java', so it can't be that useless.

    flatlinegraphics on
  • mastmanmastman Registered User regular
    edited October 2007
    Download an IDE and get to screwing around. I am positive you can find examples on the internets. The two most popular IDEs are eclipse and netBeans, and both free. I prefer eclipse. Netbeans is the one from Sun.

    And java as it pertains to java isn't as important-- once you pick up programming it is easy as pie to switch to others. Syntax isn't the hard part, programming well is. And good programming traverses languages.

    mastman on
    ByalIX8.png
    B.net: Kusanku
  • Steel AngelSteel Angel Registered User regular
    edited October 2007
    I have another question; I am relatively new to the programming scene. How hard is Java to learn? If its tough is something I can do beforehand to make it less difficult?

    If it's your first language, it won't be hard at all. Java syntax can be more "wordier" than other programming languages so it can be a pain to adapt to having to type out more than in say, C. On the other hand, you don't deal with as many possible ways to shoot yourself in the foot as in C.

    Steel Angel on
    Big Dookie wrote: »
    I found that tilting it doesn't work very well, and once I started jerking it, I got much better results.

    Steam Profile
    3DS: 3454-0268-5595 Battle.net: SteelAngel#1772
  • DavodDavod Registered User new member
    edited October 2007
    My first Java unit used "Objects First With Java" http://www.amazon.co.uk/exec/obidos/ASIN/013197629X/interactiveda3322-21

    The book gives you a great intro to Java and OO programming using BlueJ and later weans you off blueJ and onto building your own GUIs although your course likely has a recomended text book anyway and an extra £34 maybe isnt worth it!

    BlueJ even on its own is great for beginners to play around and learn in although you would never use it for anything more than that. Its especially great for helping with the concepts of OO.

    Java is nice language to learn and it was great for me as my first language, the only thing to watch out for is that it handles a lot of things for you in the background (pointers etc.) which languages like C wont.

    Davod on
    CAPS LOCK IS CRUISE CONTROL FOR COOL!
  • falsedeffalsedef Registered User regular
    edited October 2007
    Java is the most popular IT language. I don't know where these rumors about Java are coming from, but in terms of jobs and popularity, Java is still king. Java's also one of the most popular languages on the cellphone (there's also Java->BREW).

    C# might be having a lot of hype and growth in some regions, but it's share is no where close to Java. The same goes for Ruby and Python -- they're no where close to Java in popularity, but you should learn one of them anyways (they're support languages). C and C++ are more popular combined, but they are different languages. Being a C++ expert will not make someone a C expert and vice versa.

    Java's syntax is very nice, and you should also learn the Java style conventions ( http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html ). As a starter language, it's better than other C style languages, but I don't think it's the best for it. It's not easier or anything, but the libraries are fairly comprehensive. You'll see a lot of benefits from learning it though, since the documentation and support are excellent.

    A lot of gripes of Java is perception of speed. With the latest Just-In-Time compilers, it'll never be an issue for your programs, even including startup time (unless your program sucks, which will happen). The latest hotspot JVM is faster than C/C++ in some areas, and has fast allocation (and garbage collection is now on par with manual memory deallocation). If you don't understand what that means, don't worry about it; just know that overall Java's going to run marginally slower for most apps, but that gap is slowly closing as run-time optimization makes headway.

    Don't let the rumor mills about Java get you down, and good luck with it.

    falsedef on
  • brandotheninjamasterbrandotheninjamaster Registered User regular
    edited October 2007
    Just wanted to say thanks for all posts guys. I'm not too nervous about this. I'm gonna look around and learn some code and begin to play around before my class starts (couldn't hurt right?).

    brandotheninjamaster on
  • DrFrylockDrFrylock Registered User regular
    edited October 2007
    Java is a fine language. As you gain more experience, however, you'll find that your question really isn't that important in the long run. Knowledge of any particular programming language doesn't matter quite as much as you think it does. Some people will tell you that "an experienced programmer doesn't care what language he's writing in since he can just learn a new one in a couple of days," but this isn't quite true either. "Knowing" a language means knowing three things:

    1. The programming language syntax,
    2. The programming paradigms and semantics implemented by the language, and
    3. The libraries (e.g., pre-built components and functionality) that people use when writing software in the language.

    You can more-or-less learn the syntax of a programming language in a couple of days, but that doesn't tell you anything. As for concepts and paradigms, there are a swath of them to learn, and you really want to learn them all at some point. A good programmer will be well-versed in basic control constructs, procedural/imperative programming, object-oriented programming, event-based and asynchronous programming, concurrent programming, reflection, dynamic programming, functional programming, static typing, dynamic typing, managing your own memory, using garbage collection, logic programming, and so on.

    Programming languages are largely differentiated by 1) which of these concepts they use and 2) how they use them. For example, C is imperative, uses static typing, and makes you manage your own memory. Java is OO, sort of supports event based programming, has good support for thread-based concurrency, has decent support for reflection, is statically typed and uses garbage collection. Python is usually programmed as imperative + OO, has a gimpy concurrency model, is generally poor with asynchrony, has excellent reflection and dynamic programming features, and is dynamically typed.

    The good news is that if you understand how to write multithreaded code in Language A, then writing it in Language B is going to be pretty easy. OO is OO in just about every language, with small differences, mostly in the inheritance and information hiding models. If you've never managed your own memory before, then writing code in a language like C or C++ (where you have to do that) is going to be painful for you.

    "Similarity" between programming languages is really defined in these terms. Java and C# are not "similar" because they share similar syntax (although they do), they're similar because they picked similar concepts off that list above. Same with Python and Ruby.

    Libraries are the main reason why you can't become proficient in a language in a couple of days. Every programming language has its own set of thousands of library calls that do things for you. Everything from String manipulation to XML parsing to thread management, etc. You have to know which of these to call and where to look to find what you're looking for. An experienced programmer in a language has these libraries mostly memorized. For example, I have the Java library, large as it is, basically memorized since I have used it almost daily for 10 years. When I don't remember exactly what I need I at least know what package it's in and where to go look it up, but I don't spend a lot of time looking things up.

    For example, the Java libraries are documented here. The Python libraries are documented here, and so on.

    So, if you learn Java, it won't be a waste. You'll still be missing out on fundamental concepts, since no programming language implements them all. No matter how good you are with Java you will not, for example, have expertise in memory management, functional programming, dynamic programming, or dynamic typing. You'll find it very easy to learn C# afterwards, however, because C# and Java use the same basic concepts and paradigms, with minor syntactic and semantic differences. You will have to re-learn the C# libraries, though, although if you are familiar with the Java libraries you'll be looking for analogs of things you already understand rather than looking at the language completely afresh.

    DrFrylock on
  • ZeonZeon Registered User regular
    edited November 2007
    java is still used on enterprise class servers and apps. there are currently 17112 jobs on dice with the keyword 'java', so it can't be that useless.

    Yeah. My company is hiring people with java experience almost every other week. Big money too.

    Zeon on
    btworbanner.jpg
    Check out my band, click the banner.
  • brandotheninjamasterbrandotheninjamaster Registered User regular
    edited November 2007
    wow, I'm sure glad its not just another pointless class with information that I'm never going to use and that when all is said and done with my degree I'll have another possible career path to choose from. I'm pretty excited.

    P.S. Just wanted to thank all the people that posted, I appreciate the info!

    brandotheninjamaster on
  • an_altan_alt Registered User regular
    edited November 2007
    ... and the good Doctor Frylock nails another CS thread.

    I just want to add that any programming class really is about what you make of it, more so than other classes. You will miss out on a lot of the stuff that DrF mentioned if you're only taking the two classes. To spin an analogy, in CS you build things and you'll probably learn how to use a nail, screwdriver, and sketch a simple blueprint. If it's something you enjoy, try to put more effort into making detailed blueprints and sound construction methodology. The rest will come. If you just want to pass the courses, work the screwdriver.

    Also, I'll echo the other posters and say that Java is a useful language to know and a pleasure to work with. About 1% of my job involves Java, but I do relish that time.

    an_alt on
    Pony wrote:
    I think that the internet has been for years on the path to creating what is essentially an electronic Necronomicon: A collection of blasphemous unrealities so perverse that to even glimpse at its contents, if but for a moment, is to irrevocably forfeit a portion of your sanity.
    Xbox - PearlBlueS0ul, Steam
    If you ever need to talk to someone, feel free to message me. Yes, that includes you.
  • SageinaRageSageinaRage Registered User regular
    edited November 2007
    Yeah, Java is still obscenely popular. I don't know what you'd rather be learning that you think is more popular, but there's not a whole lot else, other than c++, and maybe perl I guess? Be glad you're getting java, as opposed to some classes I had in Scheme (a nice enough language, but very obscure), and Squeak (EXTREMELY obscure, and also terrible).

    SageinaRage on
    sig.gif
  • GanluanGanluan Registered User regular
    edited November 2007
    Yeah, Java is still obscenely popular. I don't know what you'd rather be learning that you think is more popular, but there's not a whole lot else, other than c++, and maybe perl I guess? Be glad you're getting java, as opposed to some classes I had in Scheme (a nice enough language, but very obscure), and Squeak (EXTREMELY obscure, and also terrible).

    Speaking of that, I had classes in LISP, Scheme, and even Prolog... LISP I can understand, but the others were somewhat out there.

    .NET has become very popular, especially in business application development. I do all of my work in .NET and have grown to prefer C# over Java personally.

    I learned Java in school though (and my first 5-6 classes were all in it), and it worked out well. You learn good tenets of OO design without having to worry about things like allocating your own memory and pointer manipulation in a language like C++. If you ever want to get into game development or embedded systems, you'll definitely need to learn C/C++ at some point. My main complaint with Java compared to .NET is how much more of a pain in the ass it is to build rich user interfaces.

    The university I went to has since switched to teaching .NET (probably C#) as the first language for students, but it's still fairly similar to Java - and I'm sure many other schools are doing something similar to yours.

    So to answer your question, even if you never professionally work with Java, you will still learn a lot from it.

    Ganluan on
  • .:Orion.:Orion Registered User regular
    edited November 2007
    Squeak is awesome :P

    .:Orion on
  • SageinaRageSageinaRage Registered User regular
    edited November 2007
    .:Orion wrote: »
    Squeak is awesome :P

    Die in a fire. That's all I'll say, because I don't want to be infracted for going off topic.

    SageinaRage on
    sig.gif
  • ege02ege02 __BANNED USERS regular
    edited November 2007
    Also, most cellphone applications are written in Java.

    ege02 on
Sign In or Register to comment.