Articles from Java

2008: Year of the Cloud

2008: Year of the Cloud

Every year, there's one underlying theme that seems to be pushed in the technology arena more than anything. This year, I feel like it's the year of the cloud. The last time I did this was five years ago, so I'll have to back-fill a few years, but here are the themes I've noticed over the past 11 years.

  • 2008: Year of the Cloud
  • 2007: Year of User Experience
  • 2006: Year of AJAX/Web 2.0
  • 2005: Year of SaaS
  • 2004: Year of Offshore Outsourcing
  • 2003: Year of the Architect
  • 2002: Year of Web Services
  • 2001: Year of XML/.NET
  • 2000: Year of Enterprise Java
  • 1999: Year of Linux
  • 1998: Year of the Web

We've been approaching "the year of the cloud" for a while, now. You can actually look back to 1998, when the web started to really catch on. A few years later, as Java started to build momentum and then .NET hit the scenes, which is when XML as a standard communication language started to catch on. Also tied to the .NET release was a huge push for web services. As this was more and more successful, service-oriented architecture (SOA) started to boom. In my mind, that was a big boon to the outsourcing trends, which have seemingly quieted down a bit, but not completely. SOA also led to the software as a service (SaaS) trend, which triggered Microsoft's software plus services (S+S) push, but that was more of a side story. With everything moving to the web, backed by [typically open] services, asynchronous Javascript and XML (AJAX) was the next big push. This was tied to the "Web 2.0" moniker, which I'd argue wasn't quite what Tim Berners-Lee intended. Either way, this led to the big push for better user experiences, which many people confuse with user interface design. The Web 2.0 push also kept the industry on its web focus, which is where we are left today.

It's easy to look back and see how we got here. Trends show that architectural changes typically take two or three years to gain momentum in the community, so we'll probably have a couple of years before the next major architecture peaks. The trend towards distributed computing has grown more and more, but I have a feeling things are going to start coming back a little. We've been pushing out to the web for a lot of reasons; one of which is the rise of the Mac. What we've been losing out on, however, is the power of the desktop. I see the S+S push to continue, but more as an underlying theme than a strong focus. Services will continue to be the foundation, maintaining the importance of cloud computing, but the desktop will be where the processing occurs. I see Silverlight proving a huge success, which will eventually bring .NET to the Mac. This will probably bring Novell and Microsoft a little closer together, with respect to Microsoft's relationship with Mono, but this may simply be a change in focus for Mono. Oh, and when I say, "bring .NET to the Mac," I'm not talking about the scaled-down version in Silverlight. I'm talking about the real deal. I see WPF and Silverlight merging along with the smart client architecture built into .NET today. This will take more than a few years, but it seems to be inevitable. Most likely, by the time all this happens, multi-core will be a way of life, as opposed to the we-should-be-thinking-about-threading thoughts most developers have today. Armed with a strong multi-threaded foundation, which is easy to use, the combined WPF/Silverlight presentation tier will quickly overtake Flash and Air. By this time, we should also start to see more integration into our everyday lives...

Okay, I'm probably getting a little out of hand here. If I go much further, we're going to be on the USS Enterprise, so I'll stop while I'm ahead. I'll just leave it at, it'll be interesting to see what's next. My money's on the power of the desktop, which we've lost over the past 10 years.

Install Java with Microsoft Product???

By Michael Flanakin @ 4:29 PM :: 1973 Views :: Java, Technology :: Digg it!


Apparently, Sun has switched from bundling the Google Toolbar with their releases to bundling the MSN Toolbar. I'm kind of surprised they aren't using the Windows Live Toolbar, but at the same time, the MSN Toolbar has a much better experience. Whether this was sparked by Google dropping StarOffice like a bad habit or not, it's a win for Microsoft. The toolbar comes with Windows Live Search integration (duh) and, even better, uses Silverlight. There must have been some pretty high-level talks to get this approved because Silverlight is a competitor to the yet-to-be-released JavaFX, so I can't see this going thru just because Google pissed someone off. I have a feeling Sun was just trying to whore themselves out as much as possible. The MSN Toolbar deal only applies to Java downloaded by IE on Windows. Everyone else will keep the Google Toolbar based installer. I know Sun is hurting, so this probably just gives them a chance to pad their slowly declining product line.

Aside from all this, I have to say I hate these things. I wish there weren't deals like this. If you do feel the need to whore yourself out, make it disabled by default. I get aggravated when I see these things as opt-out inclusions. I don't want your crappy toolbar, I don't want an icon on my desktop, I don't want to change my homepage. Get off my freakin' back!!! Bad installer, bad!!!

Mix or SD West: The Decision

In early December, I asked myself whether I'd rather go to Mix or SD West this year. I haven't been to either, but have wanted to go to Mix since its inception. After some thought, I've decided to go to SD West. The main reason for that is because I feel like it'll have better content given my focus. The first year of Mix was all about the web and the second year was a mixed designer+developer event, but still heavily rooted in the web world. I definitely feel at home with that mix, but things seem to be changing again. This year, it sounds like there's going to be even more focus on designer content, so I'll let Mix shake itself out one more year and check out SD West. I look forward to it.

Mix o SD West: La Decisión

En Español

En Diciembre, me pregunté si debo ir a Mix o SD West este año. No he estado a tampoco, pero tengo quise ir a Mix puesto que comenzó. Después de pensar en él, decidía ir a SD West. La razón principal es porque pienso tendrá mejor contenido, basado en mi foco. El primer año de Mix estaba todo sobre la web y el segundo año estaba un acontecimiento para los diseñadores y desarrolladores, pero todavía basado pesadamente en la web. Soy cómodo con los dos, pero el acontecimiento está cambiando otra vez. Este año, pienso que habrá más foco en contenido del diseñador. Dejaré Mix solidificar uno año más y iré al SD West.

More Versioning BS

By Michael Flanakin @ 5:26 PM :: 2329 Views :: .NET, Java, Development, Configuration Mgmt, Microsoft :: Digg it!

It's been a while since I've complained about version numbers, but Rocky Lhotka's Syndicated feed latest post about his versioning scheme for CSLA has sparked another bout. What Rocky is doing is retarded. He's dumbing down version numbers for those who fine versioning difficult. When .NET was first released, this is something I knew was coming. Look at Java, where developers deal with a dozen different frameworks and tools just to work on their project and guess what... they're all different version numbers! Hell, even the desktop and server frameworks are different. Ok, so the latter is a tad ridiculous, but the former makes complete sense. Every tool should have its own version number which accurately depicts its version. Major version numbers only change when there's a major change in the code -- typically a breaking change. Sure, this might include .NET 2.0 vs 3.0, but it doesn't have to. Don't blame Microsoft's stupid version numbers on yours. If your users don't understand proper versioning, why the hell are you listening to them!?

I still have to say .NET 3.0 isn't necessarily wrong. WPF was a major change that should've been introduced as a major upgrade. I'd say that all four parts of .NET 3.0 are major updates. The real problem I see with .NET 3.0 has nothing to do with the version number, but the lack of any other improvements, which would've further justified the version number. Honestly, I would've been fine with 2.1 or 3.0. The real butcher of a job Microsoft did on version numbers was 3.5. What the hell was that!? There were no, nor were there ever planned to be any intermediate versions. Again, I'd have been fine with 2.2 or 3.1, but 3.5 was just stupid. I had hoped this wouldn't turn out to be the next version, but no such luck.

On the lighter side of things, the big improvement for Silverlight will now be Silverlight 2.0. I imagine this had something to do with the .NET 3.x version issues. Either way, it's nice to see.

.NET-Java Interop via JMS and WCF/BizTalk

By Michael Flanakin @ 6:39 PM :: 2448 Views :: .NET, Java, Development, Tools/Utilities :: Digg it!
Well, there's one more way to connect Java and .NET systems, now: Java Message Service (JMS). For the uninitiated, JMS is similar to Windows Communication Foundation (WCF) on the .NET side only not quite as simple to implement or complex in its operation. JMS did come first, however, and was undoubtedly reviewed during the initial design phases for WCF. Either way, JNBridge has built JMS adapters to communicate with .NET and with BizTalk. As a matter of fact, the .NET adapter was built with WCF, which should work very well with .NET apps willing to upgrade to .NET 3.0. It'll also be good when BizTalk finally makes use of .NET 3.0. I haven't heard anything definite, but I'm assuming that'll be in the next major release. That release should also include support for Windows Workflow Foundation (WF).

File Names for Generic Classes

By Michael Flanakin @ 4:34 AM :: 2257 Views :: .NET, Java, Development, Patterns & Practices :: Digg it!

I'm pretty big on the practice of naming a file after the class it contains. And, yes, I follow the one class per file practice. Ever since .NET 2.0, tho, generics have thrown a kink in the system. We can't have file names with angle brackets (< and >). So, what is the best practice for naming generic class files? Java has the same problem -- perhaps more so since their file names have to be the same as their classes (a restriction I wish .NET had). I haven't touched Java since before generics were introduced, so I'm not sure how it implements that. I'd be interested in seeing, tho. I may have to give that a look at some point. Until then, I started using brackets ([ and ]) to represent generic class file names. For instance, I created a model-view-presenter (MVP) class that extends Control with a signature of Control<TView,TPresenter> and a filename of Control[TView,TPresenter]. That works, of course, but I'm wondering if there's a better way.

On a side, but perhaps related note, GhostDoc will document a generic class/member by HTML encoding the angle brackets; however, Resharper replaces them with curly braces ({ and }). I'm curious as to which is the "right" approach. If it's the latter or both, I might opt to name files with curly braces rather than brackets.

.NET-Cold Fusion Interop, Revisited

By Michael Flanakin @ 1:40 PM :: 1916 Views :: .NET, Java, Tools/Utilities :: Digg it!

A while ago, I mentioned the next version of Cold Fusion will be able to interact with .NET code Mobile-ready link. I found out a tad bit more about this and thought it was interesting enough to post. Apparently, this interop will be care of a tool that's been around for around 4 or so years, if memory serves me. I want to say this was the first tool to come on the scene and provide true Java-.NET interop: JNBridge Mobile-ready link, which I mentioned last week Mobile-ready link. As I said before, I've never used JNBridge, but it's always the first thing that comes to mind when Java-.NET interop comes up.

JSR 168 and WSRP

By Michael Flanakin @ 4:29 AM :: 3379 Views :: .NET, Java, Architecture, Open Source/Standards, Tools/Utilities :: Digg it!

Someone briefly mentioned Java Specification Request (JSR) 168 Mobile-ready link to me a little over a month ago. As most would, I asked what the heck it was about. I know what JSRs are, but I don't make a habit of knowing each one. JSR 168 turns out to be all about portal applications and, specifically, calls out a Java-specific way to implement Web Services for Remote Portlets (WSRP) Mobile-ready link. Any time I'm asked about integrating Java and .NET, two things come to mind -- and, no, one is not replace the Java with .NET... although, that is a good idea  Those things are JNBridge Mobile-ready link and Mainsoft Mobile-ready link. I don't know much about these tools besides their existence and high-level goals. After talking to Simon Guest a month and a half ago about user experience Mobile-ready link, he mentioned how JNBridge works. I'm going to liken it to how Visual Studio allows us to easily consume web services. JNBridge creates a proxy class on the target platform that hooks into their system, which wraps the original code, be it .NET or Java, if I understood it correctly. I'm not sure how MainSoft does the job, but I wouldn't be surprised if it's a somewhat similar method.

Of course, anyone who paid attention to the fourth sentence above will notice I said JSR 168 is about web services, so you might ask why one would need to integrate Java and .NET at a component level. I'm going to chalk this one up to a mild case of stupidity. I say mild because there is some logic here, but not enough. Being the brilliant person that he is, an "architect" at a client's site determined that web services were too slow to accomplish what they needed. At first, I started to accept that. Then, I thought about how web services can be streamlined and asked what numbers they had to back up that claim. Apparently, there aren't and never have been any benchmark tests. People: If you're going to claim something is too slow, at least have some numbers to prove it. Later, I found out JNBridge was mentioned to this person before, but was shrugged off. I don't know if it's the presence of Microsoft that made him change his tone, but he was very accepting of the idea. To me, this guy is one of those zealots we run into occasionally. They always have something hateful to say about the competition, but rarely add to the conversation. In this case, he was (and still is) trying to push Microsoft solutions out of the conversation. I find that funny because... well, let me just say Microsoft has brought a lot of value to the client in the past year. We're not alone, by any means -- we work with some really good... and, with any project, some not-so-good people. I guess one of the key differentiators is our extensive training mantra along with our connections and resources back in Redmond and abroad.

Amusing Thought for the Day: Windows on Linux

By Michael Flanakin @ 3:40 PM :: 2278 Views :: .NET, Java, Technology, Microsoft :: Digg it!

Don't ask why or how this came up, but with the talk about Windows redux (1 Mobile-ready link, 2 Mobile-ready link3 Mobile-ready link), I had an interesting thought: imagine Windows being rewritten to run on the Linux kernel. Don't get me wrong, I don't think this would ever happen, but could you imagine? The OS wars would almost be completely naught. You'd have the Linux family, which are all having their own internal battles today; Mac, which is based on Unix; and Windows, the mack-daddy (based on usage), would take the same approach Mac did with OSX, whether based on Linux or Unix, the results would be the same.

Linux advocates would feel like they've won, in a sense, because Linux would then become the most used kernel by far; however, we all know the cost model wouldn't change, so then the only difference would be between the user experience and proprietary software. With this, Microsoft would have to bring .NET to the Linux world, which would completely consume the major portion of Mono. By this time, I imagine the majority of the Windows-specific features and core applications (i.e. Office) would be implemented in .NET, which is what I believe they're moving towards, anyway -- not 100% of the code, but as much as makes sense at whatever pace makes sense. Java would see an even more drastic decrease in usage because .NET would see more "multiplatform" benefits. Honestly, there's so much you could speculate with such an extreme move. All you can really do is laugh at the idea.

Java on Vista

By Michael Flanakin @ 10:43 PM :: 1994 Views :: Java, Technology :: Digg it!
I'm sure this is no surprise to anyone out there, but you can expect any Java-based tools and utilities to downgrade your Vista experience. Of course, I'm currently running Java SE 5.0, so the 6.0 beta may provide better support. We'll see in time. Of course, websites run on Java servers won't affect your experience, but if you ever get one of those pesky applets, you'll notice your screen will blink a few times as it removes the Aero Glass look and feel along with some of its features (i.e. the 3D task switcher). No need to fret, tho -- you'll be able to do all the work you did before... it just won't look as pretty. I have a feeling there won't be too many upset Java developers because they typically don't care for such frills. However, I can guarrantee you that end users who will be ooh-ing and aah-ing at the nifty UI will not like the fact that Java is dragging Windows down. Hmm... now that's an interesting topic. Perhaps I'll save that one for another day :-P