About Java , Good or Bad ?!

Hello !

I started to learn Java . Its just a hobby now , I'm not going to get myself a job like a Java Programmer .. I just want to see how is it . What can I do with this.

Many say that is : hard , complicated .. but I say : I have to try . P.S. : I saw , you can easily create network aplications in it , so I have to give it a try.

So , why do you think about Java , is good to know ? icon_eek.gif
Optimism is an occupational hazard of programming: feedback is the treament. (Kent Beck)

Comments

  • JDMurrayJDMurray Admin Posts: 13,023 Admin
    Java is a good language for learning what object-oriented programming is all about. It's also a good language for learning how to write a simple program from a single piece of source code that can run on several different operating systems (Windows, UNIX/Linux, Mac OS X, etc.). There are also many good Java libraries for writing networking and graphical applications. Java can also be a good choice for writing apps that run inside of Web browsers. It's also free to work in Java. Download and install Sun's Java Runtime Environment (JRE) and the Eclipse programming IDE and start coding.

    There are easier, less complex languages you could choose to learn programming. Many programmers started with FORTRAN, COBOL, C/C++, Java, or C# because it was what their college offered. The only criteria I would suggest is that the language you choose should be fully object-oriented (such as Java, C#, and VB.NET) and you should enjoy using it. You won't go very far in programming if you are forced to use a language that your brain doesn't like. And the only way you can become skilled at programming is practice, practice, practice. Pick small projects that are easy to finish to practice on. You are not going to write an MMORPG for your first app.

    If you find yourself interested in writing software for a living, the language(s) that you choose to specialize in will pretty much determine what operating systems you write for, and what industries that you will--and won't--work for. There are no iron-clan rules for what language to use with what type of application or component, but there are strong industry trends.

    For Java, you will find yourself writing a lot of server-side components for UNIX/Linux systems. If you write client-side apps, they will be largely Web-based and for financial companies. Many Windows companies ported their apps from C++ to Java to solve problems (architecture, library instability), and ended up with new problems (performance, memory issues). Now a lot of those companies are porting their Java apps to C#. You might also find a company is trying to port a very large, very complex Java application between several different OSes using a single piece of source code. Such projects are doomed from the beginning and should be avoided (IMHO).

    For an overwhelming helping of Java programming language information: http://en.wikipedia.org/wiki/Java_%28programming_language%29
  • bighornsheepbighornsheep Member Posts: 1,506
    jdmurray wrote:
    The only criteria I would suggest is that the language you choose should be fully object-oriented (such as Java, C#, and VB.NET) and you should enjoy using it.


    Depending on what your defintion of OOP is, Java may not fully object oriented.
    Jack of all trades, master of none
  • bighornsheepbighornsheep Member Posts: 1,506
    !30 wrote:
    Hello !

    I started to learn Java . Its just a hobby now , I'm not going to get myself a job like a Java Programmer .. I just want to see how is it . What can I do with this.

    Many say that is : hard , complicated .. but I say : I have to try . P.S. : I saw , you can easily create network aplications in it , so I have to give it a try.

    So , why do you think about Java , is good to know ? icon_eek.gif

    Apprently you have experience with C, so Java should not be at all a problem for you. If memory management was not a problem, how can Java Beans be?

    Anyway, of the numerous books I have read on Java, this is by far the best for beginning:
    http://www.amazon.com/Big-Java-Cay-S-Horstmann/dp/0471697036/sr=8-1/qid=1164323696/ref=pd_bbs_sr_1/103-1782623-2531068?ie=UTF8&s=books
    Jack of all trades, master of none
  • TeKniquesTeKniques Member Posts: 1,262 ■■■■□□□□□□
    jdmurray wrote:
    The only criteria I would suggest is that the language you choose should be fully object-oriented (such as Java, C#, and VB.NET) and you should enjoy using it.


    Depending on what your defintion of OOP is, Java may not fully object oriented.

    Uhhh ... All my Computer Science instructors in college said that Java was a full blown OO language. And since Java includes things such as inheritance, encapsulation, polymorphism, and many different interfaces capabilities then there should be no doubt that it is an OO language.

    http://www.javaranch.com for some good help learning Java.
  • bighornsheepbighornsheep Member Posts: 1,506
    TeKniques wrote:
    Uhhh ... All my Computer Science instructors in college said that Java was a full blown OO language. And since Java includes things such as inheritance, encapsulation, polymorphism, and many different interfaces capabilities then there should be no doubt that it is an OO language.

    Those are the major key aspects of OO which Java adopted. If you have heard of or used Ruby, SmallTalk, or LISP, you will know what I mean by fully object oriented. However, for all meaningful purposes, I dont think it's wrong to say Java is OOP, to say that it's fully OOP, or to teach OOP with it, is another story.

    Issues such as strong dynamic typing, and primitive variables make Java handicap in pure object orientation.

    You can verify with your instructors if you beg to think differently.
    Jack of all trades, master of none
  • sprkymrksprkymrk Member Posts: 4,884 ■■■□□□□□□□
    TeKniques wrote:
    Uhhh ... All my Computer Science instructors in college said that Java was a full blown OO language. And since Java includes things such as inheritance, encapsulation, polymorphism, and many different interfaces capabilities then there should be no doubt that it is an OO language.

    Those are the major key aspects of OO which Java adopted. If you have heard of or used Ruby, SmallTalk, or LISP, you will know what I mean by fully object oriented. However, for all meaningful purposes, I dont think it's wrong to say Java is OOP, to say that it's fully OOP, or to teach OOP with it, is another story.

    Issues such as strong dynamic typing, and primitive variables make Java handicap in pure object orientation.

    You can verify with your instructors if you beg to think differently.

    BHSheep, aren't you being a little too literal?

    Check out these definitions (excluding the ones referring to coffee):

    icon_arrow.gifhttp://www.google.com/search?hl=en&q=define%3Ajava

    However, to !30, it's a very popular and useful launguage to learn. If you have an interest, it certainly will not hurt you to persue it.
    All things are possible, only believe.
  • sir_creamy_sir_creamy_ Inactive Imported Users Posts: 298
    I love that fact that Java is high-level. I hate explicitly dealing with memory like in C++. Boo-urns.
    Bachelor of Computer Science

    [Forum moderators are my friends]
  • JDMurrayJDMurray Admin Posts: 13,023 Admin
    I love that fact that Java is high-level. I hate explicitly dealing with memory like in C++. Boo-urns.
    Memory management issues was a major reason I gave up C/C++ over ten years ago. The other edge of the sword, however, is that you allow the run-time environment (e.g., JRE, .NET Framework) to manage program memory for you (i.e., garbage collection), which itself is not the perfect solution in all cases, and you just end up trading one necessary evil for another.
    Issues such as strong dynamic typing, and primitive variables make Java handicap in pure object orientation.
    The phrase "pure object orientation" is an oxymoron. The term oriented is an indication that a language is oriented towards the ideals of pure object languages, such as Smalltalk. Supporting primitive (non-object) variables, or strong dynamic typing (like Smalltalk has) doesn't preclude a language from being object-oriented, and only very binary thinking would see this otherwise.

    Computer scientists routinely redefine what "object-oriented" means so they can elevate their favorite language to OO status, or exclude a language that they feel is politically or ideologically incorrect. All of the anti-Java people I have personally dealt with all derive a significant part of their income from an alliance with Microsoft or its products. This becomes elevated to a religious war of technologies, such as between C++ and Java, Windows and UNIX, or COM and CORBA. I, myself, specialize in writing software only for Microsoft Windows, but I feel no egotistical need to devalue non-Microsoft technologies in order to do so. Many other people people, unfortunately, do not feel the same way.
  • bighornsheepbighornsheep Member Posts: 1,506
    uh oh....did I just open the floodgates? me and my big mouth....
    sprkymrk wrote:
    Those are the major key aspects of OO which Java adopted. If you have heard of or used Ruby, SmallTalk, or LISP, you will know what I mean by fully object oriented. However, for all meaningful purposes, I dont think it's wrong to say Java is OOP, to say that it's fully OOP, or to teach OOP with it, is another story.

    BHSheep, aren't you being a little too literal?

    it's not about being literal or not, OOP is a paradigm, Java is a language which happens to follow that paradigm, fortunately and unfortunately it doesnt have all aspects of what OOP is (or suppose to be), again, that will depend on what family of thinking you come from, OOP comes from the idea of semantic networks from the field of psychology and cognitive science, it's not as simply as reference maps (inheritance), contextual association (polymorphism), and etc...Some languages will adopt certain aspects of OOP better than others, to say that a language is fully OO, is subjective, and apparently this blah-boy thinks otherwise.

    Java is OO, no doubt about that, pure OO, fully OO, high level OO, and all of these variants are not 100% correct.
    jdmurray wrote:
    The phrase "pure object orientation" is an oxymoron. The term oriented is an indication that a language is oriented towards the ideals of pure object languages, such as Smalltalk. Supporting primitive (non-object) variables, or strong dynamic typing (like Smalltalk has) doesn't preclude a language from being object-oriented, and only very binary thinking would see this otherwise.

    stubborn at best...binary thinking? hmmm...I dont disagree...see above, my argument here is that Java aint fully/pure OO, not trying to re-invent the wheel here nor am I saying Java is non-OO.
    jdmurray wrote:
    Computer scientists routinely redefine what "object-oriented" means so they can elevate their favorite language to OO status, or exclude a language that they feel is politically or ideologically incorrect. All of the anti-Java people I have personally dealt with all derive a significant part of their income from an alliance with Microsoft or its products. This becomes elevated to a religious war of technologies, such as between C++ and Java, Windows and UNIX, or COM and CORBA. I, myself, specialize in writing software only for Microsoft Windows, but I feel no egotistical need to devalue non-Microsoft technologies in order to do so. Many other people people, unfortunately, do not feel the same way.

    haha...I have quite many attacks this past week...(yes I had a bad week icon_cry.gif , perhaps that's why I said what I said) but calling me a CS person who is defending OO is quite harmfully funny....no, I'm not defending any language, if I was, I would talk about how much I love Pascal.

    I still stand that:
    Depending on what your defintion of OOP is, Java may not fully object oriented.

    Is it suffice to conclude OO based on the fact that it supports classes and objects and that you can have more than one main() and that there are all these serializable containers? Would that not be exactly binary thinking?
    Jack of all trades, master of none
  • !30!30 Member Posts: 356
    I saw that you guys offer me a lot of reply's. So I realize , Java is a common subject to.

    I have some experience with C and PHP ( just for hobby , wish to develop my own programs , network programs ) , but Java introduce this concept of objects OOP . I learn about this concept in PHP and C++ to , but I read that Java is specialized to be a pure OOP . All in Java is an object.

    I understand , that if you have a good fundation , you can use Java to easily create cool aplication with GUI. ( I like TUI mode , text mode interfaces , I tryed .. GTK on Linux , but I don't like that kind of programming in making interfaces GUI with GTK ). So I say , lets move to a programming languages which is : easy to learn ( for me ) , portable ( Write a program once , Run it everwhere .. ).

    Lets say , I code something in C ( I like C ) .. and I wish my client ( a chat client ) to be working on Linux and Windows to . It won't .. other system function , and a lot of other thing. But Java will work.

    So in my opinion its a cool programming language to learn. It's a kind new ( besided C/++ , Pascal , Ada ) and its nothing bad in knowking it.

    I only have to understand the concept of classes and object , that were in C and Pascal : structure , procedure , function , voids .. Same stuff .. in another manner ..


    icon_eek.gif
    Optimism is an occupational hazard of programming: feedback is the treament. (Kent Beck)
  • JDMurrayJDMurray Admin Posts: 13,023 Admin
    stubborn at best...binary thinking? hmmm...I dont disagree...see above, my argument here is that Java aint fully/pure OO, not trying to re-invent the wheel here nor am I saying Java is non-OO.
    No one has claimed that Java is a pure object language (once again, the term "pure OO" makes no sense). The word oriented in "object-oriented" is an indication that a language is not a pure objectified languages, but is merely oriented in that way. The argument is how closely does Java (or C++ or C#, etc.) follow the object language paradigm, not if it does. This arguments is purely academic and only useful to the language designers.
    haha...I have quite many attacks this past week...(yes I had a bad week icon_cry.gif , perhaps that's why I said what I said) but calling me a CS person who is defending OO is quite harmfully funny....no, I'm not defending any language, if I was, I would talk about how much I love Pascal.
    I was referring to the CS professors on "Microsoft" college campuses that feel the need to put down Sun Microsystem's Java, or visa versa for those professors on "Sun" campuses who belittle Microsoft's .NET.
    I still stand that: Depending on what your defintion of OOP is, Java may not fully object oriented.
    This is another double-edged sword. By this logic I could also say that Visual Basic 6 IS an OOL simply because it has a few OO features, such as classes. VB6 isn't close to being an OOL, just as putting wheels on my grandmother wouldn't make her a wagon.

    And there's no end to these technology religious wars. Mac vs. PC, Sony vs. Ninentdo vs. Microsoft, SNMP vs. CMIP, little-endian vs. big-endian vs. middle-endian, etc. It's all part of being opinionated humans. icon_wink.gif
  • JDMurrayJDMurray Admin Posts: 13,023 Admin
    !30 wrote:
    Lets say , I code something in C ( I like C ) .. and I wish my client ( a chat client ) to be working on Linux and Windows to . It won't .. other system function , and a lot of other thing. But Java will work.
    To write a single, non-trivial program in any portable language (C, C++, Java, Perl, PHP, etc.) that can run on multiple, different operating systems always takes extra planning, coding, and testing. For example, if you write a Java app on Windows, if won't automatically work on a Linux system unless you specifically designed and coded it to, and the same libraries it uses are available on both systems. The "write once, run everywhere" marketing tag line of Java isn't as easy as it sounds, so beware.
  • !30!30 Member Posts: 356
    jdmurray . I understand . Per example , if you want to code , I say a simple C code for a timer .. system function are just diferent from Linux to Windows . Just like in Java. Another planning , another system commands .. a lot of thinking and planning.

    I'm just curios , if your just like a lab-programmer rat , and no experience , but you can easily code in multiple programming languages , can you find a good job ? ( well-paied ) . Not to much , but I really need once a job .Exams are cheap , hardware and software are cheap to .. but : No experience ? No way .. we cannot hire you . Maybe some other guy with 4 years of experience .. who cabled networks and doesent's know more than you ..

    My point .. icon_cry.gif
    Optimism is an occupational hazard of programming: feedback is the treament. (Kent Beck)
  • JDMurrayJDMurray Admin Posts: 13,023 Admin
    !30 wrote:
    I'm just curios , if your just like a lab-programmer rat , and no experience , but you can easily code in multiple programming languages , can you find a good job ? ( well-paied ) .
    It depends on the demand for software developers in your area at the time you are looking for a job. If there are more programmers seeking work than there are jobs, a person with no actual programming work experience probably has little chance of finding work. However, if there are more jobs than programmers, such as the case back in 1999-2000 here in the USA, you will find businesses that will take a chance on hiring you because they perceive that they have no other choice.
  • WebmasterWebmaster Admin Posts: 10,292 Admin
    JD wrote:
    And there's no end to these technology religious wars. Mac vs. PC, Sony vs. Ninentdo vs. Microsoft, SNMP vs. CMIP, little-endian vs. big-endian vs. middle-endian, etc. It's all part of being opinionated humans. icon_wink.gif
    I'm going to save this one in my list of favorite JD quotes. :D Though obviously anyone would want an XBOX 360 over a PS3. icon_lol.gif (There's a rumor Google is interested in buying Nintendo...) Seriously, what I like about IT is you 'can' have an opinion and at the same time it doesn't matter much, or at least shouldn't have 'too' much influence.

    @!30, in my opinion, you should download Visual C# Express (and if you like games, download Game Studio Express which is C# for the XNA framework). I've been doing a lot more coding than in previous years, but I'm no expert. This actually reminds me of some PMs I exchanged with JD a while ago... although the language / architecture is obviously an important factor, if it's mainly about learning (though also being productive), I really think a Visual Studio Express edition is the best choice regardless of the langauge.
    if your just like a lab-programmer rat , and no experience , but you can easily code in multiple programming languages
    I can get good 'programmers' from all over the world in any common language for rates lower than one makes on call/helpdesk. And not just from asian countries, but through reverse auction sites such as elance.com and rentacoder.com. If you want to make a good living in programming, you need to be able to do a lot more than just write code. 'Develop' applications for example. 'Software engineer' for example, is a job that is and will continue to be in demand for a long time:
    http://online.onetcenter.org/find/indemand?i=IT&g=Go

    Also, instead of being able to 'easily code in multiple programming languages' I'd go for being an expert in one or two languages, and, be an expert in security, or networking, or internet applications, databases, for example.
  • !30!30 Member Posts: 356
    Interesting things what your saying here.

    @Webmaster , what do you mean by Visual C# Express . I have Netbeans , for Java projects and it's working just fine.
    P.S : I don't like games , I like network aplication and interconnecting terminals over the Internet ( and so on , so fort ).

    I've been learning for over 4 years procedural programming ( Pascal ) and C , thats why OOP seem a little strange for me . Sincerely , I want to become an expert in C & Java ( you have a lot of options with those ) , not for a potential job , just for helping me to better understand networks and some other stuff like that . And code myself useful aplication , in place to spend a lot of money with them.

    The thing I like in Java , is that you can use it on web pages to . You can code an useful program for many Operating systems , and for a HTML page to . It has a lot of useful classes and subrutines that C , per example lacks of it.That why Java is a hybrid programming language ( C/C++ .. ).

    Do you consider , that a network expert ( I wish to become once ) , must be a programmer expert ( in one or twho languages to ) ? I think there are many , many oprtunities .. for a very well payed job . icon_eek.gif
    Optimism is an occupational hazard of programming: feedback is the treament. (Kent Beck)
  • vegetaholicvegetaholic Member Posts: 38 ■■□□□□□□□□
    Yea Java is hybrid programming language.Java's father is c++ and the grand daddy is C. LOL

    As author told ,he don't want to work as java programmer he can learn j2se and he need not to learn servlet,jsp,Beans,Soap etc.

    if One is Java programmer then one should also know C++ because with combination of both language one can write jaw-dropping and breath-taking multi platform application.

    I think Java is Prince of Network programming because the King is C. :P
    You can't kill Java because he is sun of king C.
  • khuongtrankhuongtran Registered Users Posts: 1 ■□□□□□□□□□
    Computer scientists routinely redefine what "object-oriented" means so they can elevate their favorite language to OO status, or exclude a language that they feel is politically or ideologically incorrect. All of the anti-Java people I have personally dealt with all derive a significant part of their income from an alliance with Microsoft or its products. This becomes elevated to a religious war of technologies, such as between C++ and Java, Windows and UNIX, or COM and CORBA.
Sign In or Register to comment.