J2ME or network programming or...what do you recommend?

Discussion in 'Java' started by rasputin16002002@yahoo.co.uk, Dec 20, 2007.

  1. Guest

    Hi

    I've been interested in programming for quite some time now and I
    finally decided to give it a try. I first learned a bit about network
    protocols and now I decided to learn Java and hopefully, if all goes
    well, I'd like to make a living with programming.

    But I have to be practical about this and go into programming areas
    where my chances are best to actually start to make a living out of it
    ( of course if you are a great programmer you can succeed almost
    everywhere, but I may very well become just an average one at best, or
    not even that ).

    And this is where I need you. As a beginner I'm a bit overwhelmed as
    to what to do next. I realize I must first learn the programming
    language itself, but then what?! My best guess would be to start
    learning how to program network apps, but that is just a guess. Or how
    about programming for mobile devices? Please do share your opinions.

    BTW - must one learn network programming prior to programming for
    mobile devices (J2ME)

    thank you
     
    , Dec 20, 2007
    #1
    1. Advertising

  2. Mark Space Guest

    wrote:

    > BTW - must one learn network programming prior to programming for
    > mobile devices (J2ME)


    I would personally recommend you learn the basics of network programming
    before taking on J2ME. Not that I think it would be espcially useful (I
    don't do J2ME myself) but becuase the concepts are so useful they'll be
    a big help no matter what you do.

    Basics:
    1. Java language first. At least a couple of months.
    2. Java API next. There's a lot to learn here.
    3. Spend some time practicing what you learned. Write a couple of medium
    sized apps. For networking, implement a couple of basic network
    programs, like telnet (no cheating, do the whole thing) and IRC (again,
    the whole protocol, client and server).

    Now you are ready to learn more. I think J2EE is more popular than
    J2ME, but J2ME tends to be more of a niche, and I would think less
    competition for jobs too.
     
    Mark Space, Dec 20, 2007
    #2
    1. Advertising

  3. Guest

    hiya

    On Dec 20, 4:09 am, Mark Space <> wrote:
    > wrote:
    > > BTW - must one learn network programming prior to programming for
    > > mobile devices (J2ME)

    >
    > I would personally recommend you learn the basics of network programming
    > before taking on J2ME. Not that I think it would be espcially useful (I
    > don't do J2ME myself) but becuase the concepts are so useful they'll be
    > a big help no matter what you do.
    >
    > Basics:
    > 1. Java language first. At least a couple of months.
    > 2. Java API next. There's a lot to learn here.
    > 3. Spend some time practicing what you learned. Write a couple of medium
    > sized apps. For networking, implement a couple of basic network
    > programs, like telnet (no cheating, do the whole thing) and IRC (again,
    > the whole protocol, client and server).
    >


    Is there a site where you can get free source code and learn from it?
    I assume you learn to program by first looking at other apps and
    perhaps implement their code but change few things?

    > Now you are ready to learn more. I think J2EE is more popular than
    > J2ME, but J2ME tends to be more of a niche, and I would think less
    > competition for jobs too.


    What do you mean by more?
     
    , Dec 20, 2007
    #3
  4. Guest

    On Dec 20, 3:25 pm, wrote:
    > hiya
    >
    > On Dec 20, 4:09 am, Mark Space <> wrote:
    >
    >
    >
    > > wrote:
    > > > BTW - must one learn network programming prior to programming for
    > > > mobile devices (J2ME)

    >
    > > I would personally recommend you learn the basics of network programming
    > > before taking on J2ME. Not that I think it would be espcially useful (I
    > > don't do J2ME myself) but becuase the concepts are so useful they'll be
    > > a big help no matter what you do.

    >
    > > Basics:
    > > 1. Java language first. At least a couple of months.
    > > 2. Java API next. There's a lot to learn here.
    > > 3. Spend some time practicing what you learned. Write a couple of medium
    > > sized apps. For networking, implement a couple of basic network
    > > programs, like telnet (no cheating, do the whole thing) and IRC (again,
    > > the whole protocol, client and server).

    >
    > Is there a site where you can get free source code and learn from it?
    > I assume you learn to program by first looking at other apps and
    > perhaps implement their code but change few things?


    Actually, I think when you're first getting started, it's best to do
    the whole thing on your own. You can look at other people's snippets,
    but I don't know how much you will learn by using available code and
    making small changes to it. Sure that approach might be easier, but I
    don't think you will learn as much than if you did it all the hard way
    first.

    > > Now you are ready to learn more. I think J2EE is more popular than
    > > J2ME, but J2ME tends to be more of a niche, and I would think less
    > > competition for jobs too.

    >
    > What do you mean by more?


    There's ALWAYS more to learn. ;)
     
    , Dec 20, 2007
    #4
  5. wrote:
    ...
    >> Now you are ready to learn more. I think J2EE is more popular than
    >> J2ME, but J2ME tends to be more of a niche, and I would think less
    >> competition for jobs too.

    >
    >What do you mean by more?


    Which of the three uses of more are you referring to?
    The general answer is that 'more' means 'bigger than'
    but its use might be modified by the context.
    - 'learn more' already covered, but to quote Edison
    "We don't know a millionth of one percent about anything"
    - 'more popular' - I suspect Mark meant more work/more
    projects, but also with more people vying for that work.
    - 'more of a niche' - smaller (I would say much smaller)
    market of work/projects & people going for them.

    All that aside, I recommend going for one of the
    'more popular' areas at this stage for a reason I
    have not seen mentioned yet. The more popular
    a technology is, the better help you are likely to
    get on public forums, when striking difficulties.

    For that reason, I think you should steer clear of
    J2ME - it is not widely used.

    OTOH - it pays to have a good grounding in J2SE
    'desktop' before proceeding to J2EE 'server'.

    Since you mentioned J2ME - which are apps. with a
    rich client GUI, it makes me think that using the J2SE's
    Swing GUI toolkit might be worth investigating.

    The 'popularity' of desktop apps. to server side apps.
    (about 1/20) suggests Swing rich client programming
    would not be 'very popular' (it is possible to use a rich
    client to connect to a web app. - but most web apps.
    are designed to work in a plain old browser). But many
    people have swung gradually from rich client GUI
    development to thin client server-side development
    (& can still remember Swing dev., and like to show
    off their skill in it/keep their hand in).

    --
    Andrew Thompson
    http://www.physci.org/

    Message posted via http://www.javakb.com
     
    Andrew Thompson, Dec 21, 2007
    #5
  6. Roedy Green Guest

    On Wed, 19 Dec 2007 17:33:20 -0800 (PST),
    wrote, quoted or indirectly quoted someone who said :

    >But I have to be practical about this and go into programming areas
    >where my chances are best to actually start to make a living out of it
    >( of course if you are a great programmer you can succeed almost
    >everywhere, but I may very well become just an average one at best, or
    >not even that ).


    I would say the next step is to get a copy of Marty Hall's book Core
    Web Programming.

    http://www.amazon.com/gp/product/01...mp=1789&creative=9325&creativeASIN=0130897930

    Then do some projects that automate things a browser does. I suggest
    the "version checker project at
    http://mindprod.com/project/versionchecker.html

    The learn JavaME.

    See http://mindprod.com/jgloss/javame.html
    --
    Roedy Green Canadian Mind Products
    The Java Glossary
    http://mindprod.com
     
    Roedy Green, Dec 21, 2007
    #6
  7. Guest

    hiya

    I know I've already taken lots of your time, but I would greatly
    appreciate it if you could help me once more, since I got a bit
    overwhelmed.


    1)
    Does word web programming mean programming network apps in general, or
    something more specific?



    2)
    Only now I realized how out of the loop I really am. All I know is
    that I'd like to do some network programming ( not so much graphic
    user interfaces, since I don't think I'm very good at making things
    visually appealing to end users. I'm much more interested doing
    interesting things "behind the curtain" and then some chap of mine or
    coworker would make pretty user interface, so that people could use my
    program ), but it seems some technologies are in while some are
    already out of date. So my fear is that I will be spending lots of
    time learning technology that will turn out to be obsolete. For this
    reason answering the following question would be of great help to me:

    a) So what are the technologies I should learn regardless of the kind
    of network apps I want to create ( should I learn servlets AND
    applets AND javascript AND XML and ...)?



    3)
    On Dec 21, 3:44 am, "Andrew Thompson" <u32984@uwe> wrote:
    > wrote:
    >
    > ..
    >
    > >> Now you are ready to learn more. I think J2EE is more popular than
    > >> J2ME, but J2ME tends to be more of a niche, and I would think less
    > >> competition for jobs too.

    >
    >I think you should steer clear of
    > J2ME - it is not widely used.
    >



    But I thought that since everyone owns a mobile phone, that J2ME would
    be the most popular thing happening at the moment, but it seems that
    is not the case. Why is that? Since mobile devices are so popular,
    one would assume that there would be huge market in making apps for
    mobile devices?!


    4)
    >
    > OTOH - it pays to have a good grounding in J2SE
    > 'desktop' before proceeding to J2EE 'server'.
    >


    I assumed J2EE simply extends J2SE with additional APIs.
    a) But from your reply it seems as J2SE is not generally used for
    server side apps?

    b) So after I read books Java Complete reference, Network programming
    with Java , then I must also read books specifically on J2SE and after
    a while on J2EE?




    5)
    >
    > The 'popularity' of desktop apps. to server side apps.
    > (about 1/20) suggests Swing rich client programming
    > would not be 'very popular' (it is possible to use a rich
    > client to connect to a web app. - but most web apps.
    > are designed to work in a plain old browser). But many
    > people have swung gradually from rich client GUI
    > development to thin client server-side development


    As I understood your answer, if one is interested in network apps,
    then they should instead of Swing choose thin-client development?
    Why?

    BTW - Since I'm not familiar with Swing - I assume it consists of APIs
    to create GUI on client side?


    thank you all for your input
     
    , Dec 21, 2007
    #7
  8. wrote:
    >hiya
    >
    >I know I've already taken lots of your time, but I would greatly
    >appreciate it if you could help me once more, since I got a bit
    >overwhelmed.


    I think a mention of 'networking' led to the suggestion
    of J2EE. It was more 'J2EE' I was thinking of in my
    first answer.

    >1)
    >Does word web programming mean programming network apps in general, or
    >something more specific?


    No. To me J2EE (or JEE as Sun might call it at this FAD),
    is 'server side'. Obviously a server has no point unless it
    offers network connections to other places, but networking
    itself is something built into the J2SE. AFAIU, two machines
    might connect using netwotking, without any 'server' being
    involved.

    >2)
    >Only now I realized how out of the loop I really am. All I know is
    >that I'd like to do some network programming ( not so much graphic
    >user interfaces, since I don't think I'm very good at making things
    >visually appealing to end users.


    OK - J2ME apps. all have a GUI, so stear clear of that.

    >..I'm much more interested doing
    >interesting things "behind the curtain" and then some chap of mine or
    >coworker would make pretty user interface, so that people could use my
    >program ),


    Yep. I'm the kind of chap that will throw together a GUI
    with a few buttons for that type of API, likes as in 'The Giffer'.
    <http://www.physci.org/jws/#giffer>

    Kevin Weiner wrote the API (to decode/encode GIFs),
    and I threw together a few buttons and things to make
    it easier for the user to encode GIFs.

    >...but it seems some technologies are in while some are
    >already out of date. So my fear is that I will be spending lots of
    >time learning technology that will turn out to be obsolete. For this
    >reason answering the following question would be of great help to me:
    >
    >a) So what are the technologies I should learn regardless of the kind
    >of network apps I want to create ( should I learn servlets


    No. (Not only is that J2EE, but ultimately, servlets
    make for an HTML based, thin client GUI - so there is
    still 'GUI coding' involved).

    >..AND
    >applets


    Avoid them like the plague.
    A plain deskop application, or one launched using Java Web
    Start *the same way 'The Giffer' is launched) is far easier
    to deploy and maintain.

    >...AND javascript ..


    Only relevant if you want the (D)HTML GUI.

    >..AND XML


    XML is handy for data storage & transmission,
    but not essantial.

    >..and ...)?
    >
    >3)
    >> wrote:
    >>

    >[quoted text clipped - 6 lines]
    >>I think you should steer clear of
    >> J2ME - it is not widely used.

    >
    >But I thought that since everyone owns a mobile phone, that J2ME would
    >be the most popular thing happening at the moment, but it seems that
    >is not the case. Why is that? Since mobile devices are so popular,
    >one would assume that there would be huge market in making apps for
    >mobile devices?!


    I can only comment on the amount of J2ME related
    questions we seem to get. Very few.

    >4)
    >
    >> OTOH - it pays to have a good grounding in J2SE
    >> 'desktop' before proceeding to J2EE 'server'.

    >
    >I assumed J2EE simply extends J2SE with additional APIs.
    >a) But from your reply it seems as J2SE is not generally used for
    >server side apps?


    Well, yes it is. A lot of the actual code written for
    servlets relates to classes that come straight out
    of the J2SE - things like Files and IO, networking,
    image or sound processing..

    >b) So after I read books Java Complete reference, Network programming
    >with Java , then I must also read books specifically on J2SE and after
    >a while on J2EE?
    >
    >5)
    >
    >> The 'popularity' of desktop apps. to server side apps.
    >> (about 1/20) suggests Swing rich client programming

    >[quoted text clipped - 3 lines]
    >> people have swung gradually from rich client GUI
    >> development to thin client server-side development

    >
    >As I understood your answer, if one is interested in network apps,
    >then they should instead of Swing choose thin-client development?


    No. But then, I think it's immportant if you want to devlop
    the type of APIs that other people want to use, to concentrate
    on running them from the command line, or a 'headless'
    environment.

    That way, when the API is written , people can use it for
    a servlet (off their J2EE based server) that churns the result
    out to HTML, or for a web start based 'rich client' Swing app.,
    or as a plain (not web start app.) or .. by some server that is
    running headless, taking streaming data from satellites, and
    using the API to detect sudden changes in ocean temperature
    which it raises as an SMS alert.

    >Why?
    >
    >BTW - Since I'm not familiar with Swing - I assume it consists of APIs
    >to create GUI on client side?


    Yes. Swing is used for the (rich client*) GUIs of
    'client side' apps (though those apps. can reach
    out 'anywhere' including to a J2EE based back end).
    * This includes applets, desktop applications (and
    webstart launched applets or applications).

    --
    Andrew Thompson
    http://www.physci.org/

    Message posted via http://www.javakb.com
     
    Andrew Thompson, Dec 21, 2007
    #8
  9. Lew Guest

    wrote:
    >> 2)
    >> Only now I realized how out of the loop I really am. All I know is
    >> that I'd like to do some network programming ( not so much graphic
    >> user interfaces, since I don't think I'm very good at making things
    >> visually appealing to end users.


    Andrew Thompson wrote:
    > OK - J2ME apps. all have a GUI, so stear clear of that.


    wrote:
    >> a) So what are the technologies I should learn regardless of the kind
    >> of network apps I want to create ( should I learn servlets


    Andrew Thompson wrote:
    > No. (Not only is that J2EE, but ultimately, servlets
    > make for an HTML based, thin client GUI - so there is
    > still 'GUI coding' involved).


    Never mind the 'G' for a moment - a developer must be competent to design a
    UI, because the UI is the whole reason for the program.

    This is a widely-overlooked point, leading to the common mistake of allowing
    programmers to design software.

    This is not to say every developer has to be a graphic genius - I freely admit
    to being of the "not a graphic genius" category, and have gladly paid someone
    to write a stylesheet for my JSP-based app.

    But the basic principles of great user-interface design are well-documented
    (/About Face/, by Alan Cooper, et al., is probably the best) and can be
    learned by a decent engineer.

    Make it useful - to the point where the user can ignore that there's a
    computer and just concentrate on their work. This has a lot to do with the
    behavior of the UI - when, where and how often you have to click, and do you
    need a popup just to see what already should have been in the dropdown? -
    whether the task flow via the program matches well with the cognitive and
    functional needs of the program's user. Put things near each other on the
    screen that work well together or need each other. Make big text boxes
    without too much background surround - enough to make it easy to see which is
    which, is all. And for Gosh' sake align the boxes. Everything you can do
    should be reachable somehow from the main menu; everything else is a shortcut.

    Don't make yellow-background text boxes against a purple-background dialog
    box. (I did not make that one up.)\

    For most applications, a good UI is self-effacing - the user should never
    consciously notice it. Now do that on a graphic screen and it's a GUI. Hire
    the graphics genius to give it polish, but you as a developer need to know how
    to implement what they suggest, and understand their explanations for what
    they do. Ultimately it's your responsibility to make sure the look doesn't
    interfere with the feel.

    --
    Lew
     
    Lew, Dec 21, 2007
    #9
  10. Wojtek Guest

    Lew wrote :
    > Don't make yellow-background text boxes against a purple-background dialog
    > box. (I did not make that one up.)


    Oh my, that brings back memories.

    I once saw a screen where different parts were "separated" by being
    different colours. Different primary colours. So a green background
    with a black foreground, blue background with a white foreground,
    yellow, red, magenta, etc

    It was horrendous.

    --
    Wojtek :)
     
    Wojtek, Dec 21, 2007
    #10
  11. Wojtek Guest

    wrote :
    > So what are the technologies I should learn regardless of the kind
    > of network apps I want to create ( should I learn servlets AND
    > applets AND javascript AND XML and ...)?


    How deep do you want to go? Are you doing the entire Web page, or are
    you simply supplying data which someone else will extract to the
    screen? Do you have a Database Administrator (DBA)?

    If you are doing it all then:

    Server side:
    Java - servlets, where all the real work is done
    SQL - for all the database work
    XML - for passing information around, and the application server
    web.xml file
    property files - for configuration
    I18N - internationalization (an I followed by 18 letters followed by an
    N) - This would be what the user sees.

    Client side:
    JSP - well OK, it is on the server, but given to the client.
    XHTML
    DHTML - for dynamic effects such as mouseover
    CSS - for layout, colours, fonts
    Javascript - for interactive support
    AJAX - not the entire set (though you can), but enough to be able to
    communicate in the background.

    There are third party Javascript tools for menus, rich text editors,
    spell checking (some dynamic), date pickers, pop-up boxes, and so on.

    You can also look at the Google Web Toolkit (
    http://code.google.com/webtoolkit/ ). You build up your screen in Java
    using the toolkit, then it is rendered at the client entirely using
    AJAX.

    --
    Wojtek :)
     
    Wojtek, Dec 21, 2007
    #11
  12. Guest

    hiya

    My head is spinning just from thinking how much I must learn. My
    biggest fear is that by the time I learn most of this stuff, it will
    already become obsolete ( I'm talking about XML, DHTML, XHTML, JSP )


    More of you guys answer my first three question, more I will be able
    to draw some conclusions about how and what :)

    1)
    a) Would you recommend learning as much different technologies as
    possible ( JavaScript, servlets, DHTML, XHTML ... ), or would you
    recommend more of specialization ( knowing less technologies, but can
    go deeply when trying to understand them ) ?

    b) Are you guys more of specialized type or do you know alot of
    different technologies ?

    c) what technologies do you use on regular basis when programming
    apps?


    2)
    Say you guys want to build Yahoo like chat server-client program. What
    technologies ( servlets etc ) would you use on:
    a) server side
    b) client side



    3)
    Uh, I have 1000 pages long Java book in pdf format, which includes
    chapter on servlets, but no mention of J2SE or J2EE. So will I have to
    buy a book about J2EE specifically, even if the book I have already
    explains Servlets?


    4) do you also recommend learning in addition to java some lover level
    language ( like C ), to provide additional functionality ( when
    needed ) to java server programs?


    On Dec 21, 7:01 pm, Wojtek <> wrote:
    > wrote :
    >
    > > So what are the technologies I should learn regardless of the kind
    > > of network apps I want to create ( should I learn servlets AND
    > > applets AND javascript AND XML and ...)?

    >
    > How deep do you want to go? Are you doing the entire Web page, or are
    > you simply supplying data which someone else will extract to the
    > screen?
    >


    Truth be told, I have no idea if doing entire Web page all by myself
    is even possible. Only thing I can do is ask all of you guys if that
    is even recommendable ( I thought that the more different technologies
    you know, less good you are at each of these technologies ) and if
    you're able to do entire Web pages by yourself and some time span of
    how long would it take for me to become somewhat proficient at this?


    > Client side:
    > JSP - well OK, it is on the server, but given to the client.
    > XHTML
    > DHTML - for dynamic effects such as mouseover
    > CSS - for layout, colours, fonts
    > Javascript - for interactive support
    > AJAX - not the entire set (though you can), but enough to be able to
    > communicate in the background.
    >


    If I am to do anything at client side then I should learn all of the
    above? *faints*


    >
    > >...AND javascript ..

    > Only relevant if you want the (D)HTML GUI.
    >

    So thin-client GUI ( made by servlets ) is not the same as (D)HTML
    GUI?


    thank you kindly for your input

    cheers
     
    , Dec 21, 2007
    #12
  13. Wojtek Guest

    wrote :
    > hiya
    >
    > My head is spinning just from thinking how much I must learn. My
    > biggest fear is that by the time I learn most of this stuff, it will
    > already become obsolete ( I'm talking about XML, DHTML, XHTML, JSP )


    Hmm, not obsolete for a long time, I would think.

    >
    > More of you guys answer my first three question, more I will be able
    > to draw some conclusions about how and what :)
    >
    > 1)
    > a) Would you recommend learning as much different technologies as
    > possible ( JavaScript, servlets, DHTML, XHTML ... ), or would you
    > recommend more of specialization ( knowing less technologies, but can
    > go deeply when trying to understand them ) ?


    I started doing the servlets along with the JSP. Once I got the
    communication working (user clicks a button, I read the data, I send
    back the result), then I started to do some fancier stuff. Bit by bit.
    For instance I know enough Javascript to be able to do some simple
    stuff. But not nearly enough to write a spell checker.

    > b) Are you guys more of specialized type or do you know alot of
    > different technologies ?


    Lots of different languges. The more you know...

    > c) what technologies do you use on regular basis when programming
    > apps?


    All that I mentioned :)

    > 2)
    > Say you guys want to build Yahoo like chat server-client program. What
    > technologies ( servlets etc ) would you use on:
    > a) server side
    > b) client side


    As I mentioned. Well depending on how dynamic you want the client to
    be.

    >
    > 3)
    > Uh, I have 1000 pages long Java book in pdf format, which includes
    > chapter on servlets, but no mention of J2SE or J2EE. So will I have to
    > buy a book about J2EE specifically, even if the book I have already
    > explains Servlets?


    Only if you want to use Enterprise Java Beans (EJB). But those are for
    really large scalable projects.

    Servlets are quite easy. You accept user input (get or post), parse the
    data, do something with it, place the result into a data object, then
    forward that to a JSP. The JSP retrieves the data object, fills in the
    HTML, then sends that back to the user.

    I have books, but they are mostly reference (ie cookbook style). I do
    not think I have ever read a tech book cover to cover.

    >
    > 4) do you also recommend learning in addition to java some lover level
    > language ( like C ), to provide additional functionality ( when
    > needed ) to java server programs?


    No not really. If you want portability, then never. I can do everything
    in Java, so do not need any other server side language (SQL excepted).

    >>> So what are the technologies I should learn regardless of the kind
    >>> of network apps I want to create ( should I learn servlets AND
    >>> applets AND javascript AND XML and ...)?

    >>
    >> How deep do you want to go? Are you doing the entire Web page, or are
    >> you simply supplying data which someone else will extract to the
    >> screen?
    >>

    >
    > Truth be told, I have no idea if doing entire Web page all by myself
    > is even possible. Only thing I can do is ask all of you guys if that
    > is even recommendable ( I thought that the more different technologies
    > you know, less good you are at each of these technologies ) and if
    > you're able to do entire Web pages by yourself and some time span of
    > how long would it take for me to become somewhat proficient at this?


    It depends. How quick do you learn? Again start small, then work your
    way up.

    >> Client side:
    >> JSP - well OK, it is on the server, but given to the client.
    >> XHTML
    >> DHTML - for dynamic effects such as mouseover
    >> CSS - for layout, colours, fonts
    >> Javascript - for interactive support
    >> AJAX - not the entire set (though you can), but enough to be able to
    >> communicate in the background.
    >>

    >
    > If I am to do anything at client side then I should learn all of the
    > above? *faints*


    Piece by piece. Start small, then learn what you need as you go. Read a
    lot. Google is your friend.

    For instance, at first do not use DHTML. Once you are comfortable usin
    HTML, then start adding the dynamic part (onmouseover, onmouseout,
    gotfocus, blur, etc).

    >>
    >>> ...AND javascript ..

    >> Only relevant if you want the (D)HTML GUI.
    >>

    > So thin-client GUI ( made by servlets ) is not the same as (D)HTML
    > GUI?


    Fat client - most if not all the work is done at the client. Requires
    large executables to be downloaded. Updates require another d/l. The
    server, if any, only provides a central storage place with very little
    business logic.

    Chubby client - all the grunt work (SQL etc) is done on the server
    along with all the business logic. However the client has a lot of code
    which runs to provide the user with a "rich experience". This code is
    loaded every time it changes (barring caching control) with no
    interaction by the user. AJAX etc falls into this category. And Web 2.0

    Thin client - Provides a user interface with no real dynamic
    interaction. This would be how most of the current Web pages work.

    --
    Wojtek :)
     
    Wojtek, Dec 21, 2007
    #13
  14. Guest

    On Dec 21, 9:47 pm, Wojtek <> wrote:
    > wrote :
    >
    > > hiya

    >
    > > My head is spinning just from thinking how much I must learn. My
    > > biggest fear is that by the time I learn most of this stuff, it will
    > > already become obsolete ( I'm talking about XML, DHTML, XHTML, JSP )

    >
    > Hmm, not obsolete for a long time, I would think.
    >
    >
    >
    > > More of you guys answer my first three question, more I will be able
    > > to draw some conclusions about how and what :)

    >
    > > 1)
    > > a) Would you recommend learning as much different technologies as
    > > possible ( JavaScript, servlets, DHTML, XHTML ... ), or would you
    > > recommend more of specialization ( knowing less technologies, but can
    > > go deeply when trying to understand them ) ?

    >
    > I started doing the servlets along with the JSP. Once I got the
    > communication working (user clicks a button, I read the data, I send
    > back the result), then I started to do some fancier stuff. Bit by bit.
    > For instance I know enough Javascript to be able to do some simple
    > stuff. But not nearly enough to write a spell checker.
    >
    > > b) Are you guys more of specialized type or do you know alot of
    > > different technologies ?

    >
    > Lots of different languges. The more you know...
    >
    > > c) what technologies do you use on regular basis when programming
    > > apps?

    >
    > All that I mentioned :)
    >
    > > 2)
    > > Say you guys want to build Yahoo like chat server-client program. What
    > > technologies ( servlets etc ) would you use on:
    > > a) server side
    > > b) client side

    >
    > As I mentioned. Well depending on how dynamic you want the client to
    > be.
    >
    >
    >
    > > 3)
    > > Uh, I have 1000 pages long Java book in pdf format, which includes
    > > chapter on servlets, but no mention of J2SE or J2EE. So will I have to
    > > buy a book about J2EE specifically, even if the book I have already
    > > explains Servlets?

    >
    > Only if you want to use Enterprise Java Beans (EJB). But those are for
    > really large scalable projects.
    >
    > Servlets are quite easy. You accept user input (get or post), parse the
    > data, do something with it, place the result into a data object, then
    > forward that to a JSP. The JSP retrieves the data object, fills in the
    > HTML, then sends that back to the user.
    >
    > I have books, but they are mostly reference (ie cookbook style). I do
    > not think I have ever read a tech book cover to cover.
    >
    >
    >
    > > 4) do you also recommend learning in addition to java some lover level
    > > language ( like C ), to provide additional functionality ( when
    > > needed ) to java server programs?

    >
    > No not really. If you want portability, then never. I can do everything
    > in Java, so do not need any other server side language (SQL excepted).
    >
    > >>> So what are the technologies I should learn regardless of the kind
    > >>> of network apps I want to create ( should I learn servlets AND
    > >>> applets AND javascript AND XML and ...)?

    >
    > >> How deep do you want to go? Are you doing the entire Web page, or are
    > >> you simply supplying data which someone else will extract to the
    > >> screen?

    >
    > > Truth be told, I have no idea if doing entire Web page all by myself
    > > is even possible. Only thing I can do is ask all of you guys if that
    > > is even recommendable ( I thought that the more different technologies
    > > you know, less good you are at each of these technologies ) and if
    > > you're able to do entire Web pages by yourself and some time span of
    > > how long would it take for me to become somewhat proficient at this?

    >
    > It depends. How quick do you learn? Again start small, then work your
    > way up.
    >
    > >> Client side:
    > >> JSP - well OK, it is on the server, but given to the client.
    > >> XHTML
    > >> DHTML - for dynamic effects such as mouseover
    > >> CSS - for layout, colours, fonts
    > >> Javascript - for interactive support
    > >> AJAX - not the entire set (though you can), but enough to be able to
    > >> communicate in the background.

    >
    > > If I am to do anything at client side then I should learn all of the
    > > above? *faints*

    >
    > Piece by piece. Start small, then learn what you need as you go. Read a
    > lot. Google is your friend.
    >
    > For instance, at first do not use DHTML. Once you are comfortable usin
    > HTML, then start adding the dynamic part (onmouseover, onmouseout,
    > gotfocus, blur, etc).
    >
    >
    >
    > >>> ...AND javascript ..
    > >> Only relevant if you want the (D)HTML GUI.

    >
    > > So thin-client GUI ( made by servlets ) is not the same as (D)HTML
    > > GUI?

    >
    > Fat client - most if not all the work is done at the client. Requires
    > large executables to be downloaded. Updates require another d/l. The
    > server, if any, only provides a central storage place with very little
    > business logic.
    >
    > Chubby client - all the grunt work (SQL etc) is done on the server
    > along with all the business logic. However the client has a lot of code
    > which runs to provide the user with a "rich experience". This code is
    > loaded every time it changes (barring caching control) with no
    > interaction by the user. AJAX etc falls into this category. And Web 2.0
    >
    > Thin client - Provides a user interface with no real dynamic
    > interaction. This would be how most of the current Web pages work.
    >
    > --
    > Wojtek :)


    Thanx mate. This really helped alot
     
    , Dec 23, 2007
    #14
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joel Finkel
    Replies:
    0
    Views:
    1,066
    Joel Finkel
    Aug 3, 2003
  2. Bill Volk
    Replies:
    1
    Views:
    3,153
    Bill Volk
    Jul 2, 2003
  3. omar khan

    Can you recommend any C programming books?

    omar khan, Oct 31, 2005, in forum: C Programming
    Replies:
    27
    Views:
    627
    Jordan Abel
    Nov 2, 2005
  4. Enteng
    Replies:
    111
    Views:
    2,099
    Christopher Layne
    Feb 2, 2007
  5. jmDesktop
    Replies:
    46
    Views:
    901
    Simon Brunning
    Mar 26, 2008
Loading...

Share This Page