> I am quite new to Java, but I looked at different languages for quite > a while before I have definitely decided to switch to Java (despite > the fact that most people in my near want to convince me to .NET) for > new projects.
Hmm time for the Matrix mantra "Welcome to the real world"? ;) > 1. The language itself is just one part that is important, but there > are other major "players" here: The IDE and it's stability, the core > libraries, other 3rd-party libraries available and the community to > name a few. For me NetBeans was the clear winner here over the MS > Visual Studio for example. Especially to Windows people, the .NET experience is a big temptation for the works-out-of-the-box experience. Java and the support ecosystem has come a long way since the first measly IDE's (Forte, JBuilder... ) but it was Visual Studio that really started that race back around 97'. No other editor had integrated debugger and code completion at the time. I think it still pushes the envelope in a lot of places, for instance no Java IDE I am aware of offer backwards stepping of the call stack during a debug session thus making it less important to have placed the break-point at the exact place. Edit-n- continue is also a rather nice feature just as being able to see the generated byte-code while stepping can be very handy. Re-factoring options and plugins for VS are fewer though. > 2. Introducing too many different idioms to the language itself makes > it more difficult to learn and creates boilerplate thinking when > writing and reviewing code. So I can understand if people think many > times before adding some new stuff to the Java core language. Having > said that I don't understand why I can't do a switch on strings - this > is something really missing (was one of the first things I noticed > really, really missing). Not sure I agree with that. Without idioms, your brain is still going to read, parse and map it as one at a conceptional level - that's not something you avoid by simply leaving out syntactical support. Sure the syntax appear simpler with fewer keywords, but it's now harder for tools to reason about your intent. Java only recently got support for enums and foreach, I have yet to meet someone who dislike those idioms. > 3. The .NET introduced the option to write in any language - although > basically just VB.NET and C# is around. Whenever I attended .NET > events at Microsoft everybody told me that I should use C# over VB.NET > because that is also where Microsoft is focusing. And I could > understand this very well because having different components written > in different languages makes it harder to read through the whole > project - it is good to have one standard. Software development is not > fashion industry. Different styles are more annoying than nice here. > In the extremer cases a developer needs to be familiar with at least 3 > languages when joining a project. With the rising of so many different > languages for the Java platform I worry about a jungle of different > languages that will be around in a few years. True, C# is their lingo franca, but Python, Ruby and F# are gaining growth on the .NET platform. The interoperability and component boundaries in .NET are quite well thought out. This is a major difference to Java, where there's a very weak component model and talking to the native platform is painful, slow and discouraged. While .NET is centered around language interoperability, Java is centered around platform interoperability. > 6. The importance of good GUI design tools for me seem to be somehow > forgotten sometimes. For me it is a mission critical thing because > without a good GUI design tool a very lot of effort goes in the GUI > design/development. This is something why I love Swing and Matisse - > that seems to work good (at least until now) and it even produces > clean code (even configurable). My experience with Eclipse, SWT and > Visual Editor was awful on the other hand. Talking about all the web > development frameworks the availablility of GUI design tools is > sometimes forgotten. If you notice, Matisse also creates an XML file so it's not true round- trip engineering around the source. It's a good example of the lack of idioms in the language, Matisse can not rely on just the code itself to deduce the layout. It beats all the rest (perhaps apart from MigLayout) but just don't think you can create a project in NetBeans and work on it in Eclipse or JDeveloper. And because Java does not support partial classes, you have to get used to NetBeans locking a lot of generated/managed lines which you can not touch in any way except by going behind NetBeans back. > 7. I don't think that Java should be considered as "dead" because not > evolving any more / so much. One of the reasons I switched to Java was > my impression that this is a mature thing. I am working at a small > company and we don't have the time and money to struggle around with > things being the early adopter. So I do consider Java as being good > and mature. From what I have seen so far from C# is that Microsoft has > just (again) copied something that has been invented by others and > knowing to be successful. Yes they did, that is how most new languages are created - thankfully we don't reinvent the wheel constantly. They have since moved on and if anything, Java is now copying C#. The successor to Java will likely copy C# (i.e. attributes). Having said all that. Java ain't bad, it takes a bit more work (i.e. lots of choices to be made) but you gain your platform freedom. /Casper --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
