I very much like the ease of use of struts (yes it need some
improvements still) and everytime I encounter a lack of functionality
building my JSP I will have to ask myself if this is lack of
functionality or simply an attempt of me to put too much logic into the
JSP...
Sofar I could handle all issues with the bean,logic ad html taglibs. All
other problems are solved in small almost atomic actions that do the
real task and prepare the bojects for viewing.. 

regards

Jacob

-----Original Message-----
From: Mark Galbreath [mailto:[EMAIL PROTECTED] 
Sent: donderdag 30 juni 2005 13:55
To: Struts Users Mailing List
Subject: RE: [OT] Stinking IDEs


Amen, brother!  Like I said when I began this thread...Struts is dead
and Java is a C# wannabie.

~mark

-----Original Message-----
From: Gregory Seidman [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 29, 2005 7:17 PM
To: user@struts.apache.org
Subject: Re: [OT] Stinking IDEs


So I hate to feed the trolls, but...

On Wed, Jun 29, 2005 at 02:35:50PM -0700, Yan Hu wrote:
} Look at the job market for the server side now. 3 years ago, .Net took
} only 20% of the server side market. Now it is creeping up to 40%. .Net
is
} better or faster than Java?  Nah.. Some .Net zealots otained some
} benchmarks on Tiger and .Net1.1 using linPack.  Tiger outperformed
.Net.
} But why is .NET creeping up so fast?  VS.net contributes to a great
} portion of its success. One of my friends is a NET develepor. I envy
his
} speed of rolling out (small to medium sized) web applications like
they
} were egg rolls. Only the market tells what is good nor not..... You
have
} one thousand sound reasons to back up what you claim. If the market
says
} "no", then it is garbage........

I have never liked IDEs. I have never used an IDE that didn't get in my
way
more than it helped. VS.NET is no exception. Below I'll give you some
reasons why .NET is popular that have nothing to do with the quality, or
lack thereof, of VS.NET as an IDE.

I recently developed an ASP.NET web app. This involved writing in the
following languages: ASP.NET (JSP-ish), C#, CSS, and JavaScript. It was
only because I could convince VS.NET to let me edit these files with Vim
that I did not tear out all my hair.

That said, ASP.NET beats the pants off JSP. I can tell you definitively
that ASP.NET's custom web control stuff (both ascx files and just plain
class instances) beats hell out of JSP's tag libraries. The EL is not a
big
enough plus to make up for the difficulty of wrapping functionality in a
custom tag. I haven't done anything significant with Struts, but I
didn't
have any trouble separating model, view, and controller in ASP.NET.

In addition, C# is what Java always should have been. Here are a few
Java
mistakes that are done right in C#:

1. The language and virtual machine are internationally standardized.

2. JavaBeans use a naming convention (get/set methods), rather than
   first-class, syntactically clear, reflectable properties. (Yes, you
find
   the methods by reflection, but they are "properties" because of the
   naming convention, not because the reflection API knows anything
about
   properties.)

3. Namespaces (packages) are hierarchical in name, but not in scope.

4. The source filename must match the (public) class defined in it.

5. The source file must be located in a directory hierarchy that matches
   the package hierarchy to which it belongs.

6. C/C++ precompiler directives were simply dropped, rather than fixed
to
   be less prone to misuse.

7. Receiving an event requires implementing an interface, with its
   associated method(s), and calling a method on the event producer to
   register the handler; producing an event requires writing add and
remove
   handler methods, as well as writing a loop to invoke the appropriate
   method on each registered handler.
   
   What makes this wrong can be seen by comparing it to the C# event
   handling mechanism: a delegate type (essentially an OO function
pointer,
   which includes the object reference almost exactly like Obj-C's
   selectors) is declared to handle a particular event, an event is
   declared in the producer class of the delegate type, a method with
the
   appropriate signature can be registered with the event using += and
   unregistered using -=, and the handlers are invoked by the producer
   class by calling the event like a method. Oh, yeah, and a class's
events
   are available through the reflection API.

8. Special casing value types (e.g. int, char, etc.), rather than either
   making everything a proper object (like SmallTalk) or making it
possible
   for developers to define value types.

I'll admit that Java has gotten better with the release of 1.5, and
about
damn time. It has generics, which are not yet available in C# (currently
in
beta). It also has anonymous classes, which are primarily valuable for
event handling. Java now has the enhanced for loop (C#'s foreach),
automatic
un-/boxing (C# has it), and typesafe enums (C# has it). There is also
the
metadata facility, which is similar to C#'s attributes. In some ways,
Java
has caught up with C# (though I'm not likely to forgive Sun for the
unpleasantness that is the JavaBean convention).

Of course, C# is moving forward as well. (See
http://www.ondotnet.com/pub/a/dotnet/2004/04/05/csharpwhidbeypt1.html
and
http://www.ondotnet.com/pub/a/dotnet/2004/04/12/csharpwhidbeypt2.html
for a
rundown of its coming features.) It's getting generics. It's also
getting
anonymous methods (a lot like anonymous classes, and intended for the
same
sort of use, i.e. event handling, but see mistake #7 above). It's also
getting an absolutely brilliant way of expressing iteration, using the
"yield return" construct. Basically, all the bookkeeping you have to do
in
an iterator is done for you, and you just write a loop (or whatever
other
traversal) around your data, executing yield return on each element.
Also
coming is partial classes; not only are you not required to define one
and
only one (public) class in a source file, you are no longer required to
define an entire class in a source file. (At first blush, this sounds
terrible; it makes more sense when you take into account its purpose,
which
is to allow developer code and generated code to reside in separate
files
without being forced to subclass.) And one more thing: nullable value
types. That means that you can have an int variable that acts just like
an
int, unless you need it to be null.

There are other things I haven't mentioned. C# and .NET and ASP.NET have
their warts, like anything else (the largest being Microsoft itself). As
a
developer, however, I have to say that it was a pleasure developing in
ASP.NET/C# as it never was in Java.

--Greg


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






************************************************************************
*******************************************
This email and any file transmitted with it may be confidential and is
intended solely for the use of the individual or entity to whom it is
addressed.  If you received this email in error please notify the DBM
Service Desk by forwarding this message to [EMAIL PROTECTED]


This email has been scanned by networkMaryland Antivirus Service for the
presence of computer viruses.






************************************************************************
********************************************
This email and any file transmitted with it may be confidential and is
intended solely for the use of the individual or entity to whom it is
addressed.  If you received this email in error please notify the DBM
Service Desk by forwarding this message to [EMAIL PROTECTED]


This email has been scanned by networkMaryland Antivirus Service for the
presence of computer viruses.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-----------------------------------------------------------------
ATTENTION:
The information in this electronic mail message is private and
confidential, and only intended for the addressee. Should you
receive this message by mistake, you are hereby notified that
any disclosure, reproduction, distribution or use of this
message is strictly prohibited. Please inform the sender by
reply transmission and delete the message without copying or
opening it.

Messages and attachments are scanned for all viruses known.
If this message contains password-protected attachments, the
files have NOT been scanned for viruses by the ING mail domain.
Always scan attachments before opening them.
-----------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to