views:

343

answers:

4

Hi All,

i am new to the web development environment, having came from a unix/c environment. i've been recently asked to create a web app, which i thought would require postgresql, java/j2ee, and javascript for the client interface. as i had wanted a nicer gui, i've been reading up on extjs, which looks really nice to me.

a colleague mentioned that the time needed time needed to learn all these various pieces is time consuming, and Jdeveloper seems to provide most of what we'd need (i was shown a demo, which appears to be able to generate some nice web interfaces).

what are the pros and cons with the different approaches ?

some i can think of: - jdeveloper is an integrated ide, which creates UI easily, tightly integrated with database. (pro) - jdeveloper will be heavier? (con) - wizard generated code may be harder to refactor ? (con) - java/j2ee/js+extjs needs to develop things from ground up (con)

thanks in advance for sharing your experiences and thoughts ... sam

+1  A: 

While this is very subjective topic, I still strongly advise against "integrated IDEs". Be it IDEA, Netbeans, JDeveloper, Eclipse, you name it: don't overdo it, and don't over-rely on them. They tend to cover a good part of the development, but the moment where you want to get outside their "integrated" technologies, you are in trouble. As you also mentioned, generated code is also much harder to maintain.

I have been doing 2 commercial project with ExtJS. Pros are: (1) Much easier to start and do quickly a working application, (2) most of the logic of things like, say, pagination of large number of records on the client side (keeping only 3-4 pages in memory for example) is already done for you, and (3) working with a bit of lower level abstractions is much nicer and feels more rewarding and productive, instead of the J2EE approach "we have a model to develop a process to create a framework", which is intimidating even to developers with 10+ years experience.

Cons: not everything you want, will be there. For example, if the management (or the customer) gets on your head for that tricky round corners on certain sections in the Web page, then it's good luck -- you have to Google it, find CSS wrapping libraries written on JS, etc. The 2nd project I did with ExtJS ended up consuming 40% of its schedule to small GUI tweaks.

In spite of that, I still strongly advocate technologies which are easier to comprehend right away, and give faster results initially. Nobody is well motivated if they have 6 months schedule and they got to see their first real result at the end of the 2nd month.

Hope this helps.

dimitko
A: 

Why does it matter if JDeveloper is heavier. Its not gonna be the part of web application anyway.

Now few suggestions. I would like to suggest you to go with the development, meanwhile try understanding the underlying technologies, namely, JSP, Servlet, Servlet Filters etc.

It doesn't matter what IDE you use. I prefer IntelliJ and Netbeans. IntelliJ is commercial, by the way there is a community version available though but that misses some really powerful tools/features required in web development. So, you are left with JDeveloper, Netbeans and Eclipse. Choose whatever you like to.

You should employ some rapid web development framework, for that I would like you to look into Wicket or Stripes. Heard good things about Play framework as well. For JavaScript part, I would suggest you to look at JQuery and JQuery UI, its a very powerful framework with a very good community support.

Another alternative can be Spring. Grab a Pro Spring book, and start developing your app with this all-in-one powerful framework. Even the official documentation is awesome. Spring IoC, Spring MVC, with the good Spring JDBC API. In the former option JDBC API is missing you need to grab some kinda ORM for that, or come up with your own code. Here you will get the benefit of easy maintenance and you would be able to add new features quite easily.

But let me say it again. You must know underlying technologies. Because what you don't know may hurt.

Adeel Ansari
+1  A: 

If you're looking into JDeveloper, I assume you are considering Oracle Application Development Framework? My experience with this framework is that it makes some simple development tasks very easy, and some hideously hard. In particular, customizing the look and feel extensively can be time consuming.

If you are happy with the look and feel of basic ADF, and your needs are met by the components provided, the framework can save you some time. If you need full control over the appearance of your application, or your use cases do not match the predefined components, I would recommend looking into other frameworks.

One benefit of using ADF or similar frameworks is that you can quickly produce basic web applications without extensive knowledge of HTML, CSS, or Javascript. Whether this is important depends on the skill set of your development team.

markusk
A: 

One part that people are missing in the answers is that what JDeveloper and more specifically ADF gives you is an end-to-end solution that covers not just the UI part but also how you bind it to the business services, and also a simpler solution for building the business services.

gevatron