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.
