On Thu, Apr 15, 2010 at 13:11, Casper Bang <[email protected]> wrote:
> Applet's
> were terrible, then came the underachieving Swing, then everything
> moved over to EE, then back to Swing a little again and now JavaFX -
> which is hurting vanilla Java.

OK, I was not following Java those initial times. So I didn't face that hassle.


> I also run Linux at home and at work, that has nothing to do with the
> language C# though - which this thread is about. You can very well run
> C# on non-Windows, in fact some of the most popular applications I use
> daily are C# applications using GTK as a UI toolkit.

Yes, of course, you are right, C# is not bound to Windows. But I would
say, the majority of C#-Developers is doing on Windows as the market
share of Windows is by far higher. - But sure, this is just my guess.


>> So bringing it to the point: Java had a vision that only NOWADAYS
>> begins to get REALLY important!
> In the sense that only now, is the network the computer. Yes I agree
> with that. But Sun's vision with Java was to identify and encapsulate
> the world and have it would run anywhere. That also meant they made it
> very hard to step out of this world. Most every complex application in
> Java that I use today (not many) rely on JNI to actually get the job
> done. And the cross-platform UI has proven, for all practical
> purposes, to be a pipe dream. This is essentially what Steve Jobs
> latest rants are about.

Don't know what Steve Jobs thinks, but I do not agree with what you
wrote here: With the SOA movement coupling parts together written in
different languages became easier. And sure, JNI is the door you
should pay attention when opening because it affects portability. But
the same applies for the whole .NET and COM - many .NET-programs have
COM-dependencies. - Some same issue there.


> You make it a little hard to respond to your points specifically,
> since "bad", "disappointed", "annoyance" are without substance.

It was just a summary of my feeling I had while doing this. I think it
is out of scope for this thread going into detail. One thing was
unstable Visual Studio either crashing or code not working until I
restared the IDE. Missing Javadoc-Features, Missing Support of
Test-driven development (OK, the latter is now available as far as I
read somewhere, but who nows if also for the Express version). For the
case you are refering to Mono: The IDEs for Mono on Windows are
missing a lot of important things from my point of view. The time I
was evaluating C# for future development I was still using Windows on
my devloper machine. I could now give MonoDevelop a try, but I do not
really care at the moment as I am very satisfied with Java (at least
for now ;-) ).


> Implementing a project in back around 2000 was far easier to do in C#
> than Java. For one thing, IDE's were lacking horribly until not too
> long ago.

Yep, the IDE is a very important tool - I had IDEs either in the
ninetees on MS-DOS, so I am definitely not going to return to
stone-age when writing code. In 2000 I was using VB5 and that was a
very stable IDE. Muuuch more stable than first Visual Studio.NET
versions.

When talking about Java-IDEs I can only refer to the Eclipse- and
NetBeans versions of the past 2 years or so. My experience was, that
NetBeans is a little slower but more stable. So I am using that.

When you are talking about C# - what are you talking about in
particular? What IDE did/do you use and what tools?


> And even with todays tools, you suffer the problems inherent
> to the language i.e. missing properties and events making it almost
> impossible for tools to reason about the code.

I had properties all the time in VB and worried about that when moving
to Java. But actually I do now prefer the Java way. Most people
missing properties have lived less time with them than I have. I find,
that properties introduce something unnecessary that can be perfectly
achieved also without and even brings more flexibility. Java is maybe
a little more "RISC"-like but I prefer that along with the coding
conventions. But this is for sure also something that is just a
personal opinion and others might prefer other.


> NetBeans tries to lock down parts of the code and maintain a separate XML 
> layout file,

I know, but as long as I don't get negatively affected by this I don't
care much. I find the Matisse outstanding for GUI development - but I
know that earlier versions (before 6.1 or so - don't remember well)
sucked (layout got often destroyed during design and when switching
back and forth from coding and so on).


> What does MS SQL Server have to do with C#? I could tell you a story
> about Oracle table spaces here but it would be equally irrelevant.

I know, not tightly related, but when it comes to "embedded"
databases, on Windows many use the MS SQL Express then. And that is
where - again - one application can destroy another - which IMHO is an
important consideration when chosing the language and/or the libraries
and dependencies that are in use then.


> Ahead of Java in that almost all of the new stuff for JDK7, is already
> in C#. Ahead of Java in bringing former patterns into first class
> language constructs.

Not sure about what you are meaning here.


> Ahead of Java, as in having chosen superior
> solutions to problems (i.e. generics, co/contravariance etc.).

You may be right on this being the better implementation, but I
personally do consider this a minor thing - I have in Java already
more flexibility and options than I ever need (I think). And I find it
better in Java that inheritance is limited to one class (rather than
more like in C++).

> As to
> checked exceptions, most major recent frameworks choses not to use
> these as they pollute the method signatures and harms versioning.

The harm to versioning depends on the way how you implement the
checked exceptions. Not sure if I read this in "Effective Java" or
somewhere else, but I catch and rethrow them by defined exceptions -
sure, I need to think well when planning the interfaces. But again: I
have the choice and I could also use runtime exceptions only.


> In .NET this can be handled through code contracts, a far more
> versatile approach to defensive programming - but without tying the
> developers hands. In fact, I regularly build with my own JDK just so I
> can avoid the draconian rules around checked exceptions.

Why did you do that, I can't see necessity for this? OK, this is
out-of-scope in this thread - maybe we should generate a new one on
this.

Anyway - even if there are some language constructs, that are better
in C#, the language itself is just one part of the whole story when
choosing a language. Choosing the language also somehow defines the
rest of available options, like libraries, IDE, Tools etc.

Best regards,

Martin.
-- 
Martin Wildam

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to