Installing Windows 7 on a Modbook / Macbook

The Webmechs Editor on Jun 21st 2009


My Modbook from OCW took less than five days to arrive.  Less than five days after receiving it, it also saw a ~USD100 price drop.  Lol!  Can’t win ‘em all.

So anyway, one of the priorities was to get Windows working on this machine.  Since the Modbook has 4GB on it, I elected to install a 64-bit Windows OS on it to make full use of the RAM.  Even though some of the info out there may lead you to think that only 64-bit Vista is supported, it turns out that Windows 7 x64 RC installs and works great on the Modbook (and of course on the Macbook as well).

Just so we’re clear on the hardware environment, the Macbook base for this machine I have is the 2Ghz Core 2 Duo with the Nvidia 9400M graphics chipset and it comes with the Leopard OS X 10.5.6 DVD.  Following are the steps I took to get things working.  Steps 1-3 are covered in the Boot Camp Setup and Install Guide although Step 3 will be a bit different.

Step 1. Use Boot Camp Assistant to create the partition for Windows 7

Step 2. Boot from the Windows 7 DVD and install Windows 7 in the usual manner

At this point, after the stock Windows 7 install, the modbook’s digitizer and WiFi actually work without worrying about drivers, a very pleasant surprise!  However, there are certain glitches you may encounter.  The optical out on the left side of the modbook will turn on which may be a battery drain.  No sound even if sound drivers seem to be installed already.  These two are easily fixed it turns out by installing the drivers from the Mac OS X Install DVD - Step 3.

Step 3. At this point, if you were installing one of the “supported” OSes (e.g. Vista or XP), you just have to click on Boot Camp\setup.exe in the Install DVD.  Under Windows 7 however, the setup.exe refuses to run complaining about incompatibility.  You can be sneaky about it and just directly run \Boot Camp\Drivers\Apple\BootCamp64.msi which will work.

Step 4. For my particular Modbook model, I also had to separately run \Boot Camp\Drivers\NVidia\NvidiaMobileSetup64.exe and \Boot Camp\Drivers\NVidia\NvidiaChipset64.exe to get the graphics and chipset drivers installed.  If you want even newer graphics drivers, you can download the latest Nvidia mobile drivers from nvidia.com itself.

At this stage, everything should be pretty much working except in my case, I had one additional important hurdle to overcome.  By clicking on the Boot Camp icon in the notification tray, you will be able to boot back to OS X from Windows 7.  The reverse was, however,  sadly not possible.

You are supposed to boot back to Windows 7 from OS X by clicking on System Preferences | Startup Disk, but in this case, the Windows partition wouldn’t show up there.  You can still choose which OS to boot by plugging in a USB keyboard and holding down the Option key (equivalent to Alt on a PC keyboard) or using rEFIt, but these are very suboptimal solutions for a keyboard-less tablet.  It turns out the way to get around this and have essentially the same function as Startup Disk is to manually bless the Windows partition instead via the command line:

sudo bless --mount /Volumes/NameOfWindowsHD --setBoot --legacy

You should be able to put this in a clickable script (haven’t figured out how to do that in OS X yet).  Now we are in computing nirvana.


Gout Herbal Treatment



Tags: , , , ,

Filed in OS, OS X | No responses yet

Setting up Slackware on a VPS (Part 2, using installpkg and getting packages)

The Webmechs Editor on Jun 1st 2009


The most basic thing one needs to learn when setting up Slackware (on a VPS, especially) is how to get various packages and install them.  This is most easily done via the wget and installpkg commands.

http://slackware.com/getslack has a list of mirrors where you can get slackware packages. Packages will be found within a directory named slackware-VV/slackware/X where VV is the Slackware distribution version and X specifies the package category.

The relevant package categories for VPS hosting are as follows:

a - base packages (VPS templates will already have installed most of the needed packages here)
ap - common applications
d - development (gcc, python, perl, ruby, etc…)
f - faqs and how-tos
l - libraries
n - networking (includes networking utilities and daemons such as Apache)

The file slackware-VV/Slackware-HOWTO will have more comprehensive info on this.  What I recommend doing is to create a directory downloaded-packages/ under /root where you store all your downloaded packages.  Once in there you can execute wget to fetch the packages you want.  For example, if you choose to download the mysql package from the pair.com mirror listed at http://www.slackware.com/getslack/list.php?country=USA, you can type:

wget http://slackware.mirrors.pair.com/slackware-12.2/slackware/ap/mysql-5.0.67-i486-1.tgz

Installing the package is as easy as:

installpkg mysql-5.0.67-i486-1.tgz

It just unpacks the .tgz file and puts the package’s files in the correct directory locations.  It doesn’t check for dependencies and generally doesn’t whine or try to be smarter about it than you.  Just the way the gods intended it to be.

Two additional files you should know about are slackware-VV/slackware/PACKAGES.TXT and slackware-VV/slackware/MANIFEST.bz2. PACKAGES.TXT contains a description of the each package you might be looking for together with the directory it is under.  MANIFEST.bz2 is a complete list of every single file in every single package.

Possibly the most important Slackware tip to know is: If you see an error message complaining that so-and-so file is missing or cannot be found, you can search for it in MANIFEST.bz2 to know which package you need to install. *This* is *the* most educational and satisfying way to learn about what packages depend on which other ones, and in practice it has yet to fail me. The catch here is that you should be able to know where such error messages may be found (which will be dealt with in a later post of this blog series).

A quick way to search inside MANIFEST.bz2 is to do: bzcat MANIFEST.bz2 | less or bzcat MANIFEST2.bz2 | grep xxx.   See this for a walkthrough on the process.



Tags:

Filed in Hosting, Linux, OS, VPS | No responses yet

Setting up Slackware - Server OS Field Stripping (Part 1, intro)

The Webmechs Editor on Jun 1st 2009


On VPS hosting, using an administration panel (e.g. cPanel, Plesk, Interworx, DirectAdmin, etc…) together with a distro such as CentOS/Debian/Ubuntu is the popular choice.  This is the conservative decision, but sometimes this just hampers flexibility to an unacceptable degree.  You are often tightly constrained regarding the versions of software you can use.  In my present case, something as fundamental as using Python 2.5 was not really a viable option under such setups.  I could try to install a second instance of Python but this is a very unwise thing to do imo and runs the risk of major breakage.  For example, I really hate to think of the things that could happen when the panel tries to update itself.

For the ultimate in flexibility, nothing comes close to Slackware.  People often shy away from setting up a server with Slackware on it because it requires doing a lot of things from scratch and might seem to be too much work.  But the advantages *are* there.  For one thing, admin panels impose serious version constraints on the software installed on your OS.  Even if you do not use a panel however, the package dependency structure of all other distros - with the exception of Slackware - can still make mixing/matching different software versions an exercise in futility.

The one thing I realized is that while Slackware does require you to setup many things from scratch, once you get the hang of it, it is essentially like field-stripping, can be done very very quickly, and largely the same process even from one version to another.  The quote in the link reads “… people were impressed many years ago with how easy it is to tear down a Model 1911 Colt pistol, they are smitten with the elegant simplicity of the M1 Garand…” and the same feeling applies once you are familiar with the elegant simplicity of Slackware.

Outlined below are the basic skills you need to master.  Once you get the hang of them, you will come to know the bliss of not relying on the slow bloat of a panel like Plesk and the untrammeled freedom to deploy pretty much whatever technologies you like on your server.

Skill #1 Using installpkg

Skill #2 Info and download location of packages and files

Skill #3 Common packages and their dependencies (easier than you think with Slackware) (article to follow)

Skill #4 Location of error and status logs (article to follow)

Skill #5 Package specific knowledge (e.g. Apache, PHP, MySQL, Python) (article to follow)

Skill #6 Setting up networking (article to follow)




Tags:

Filed in Hosting, Linux, OS, VPS | No responses yet

IE8’s Compatibility Mode - when to use it

The Webmechs Editor on Apr 10th 2009


After studiously (yes - studiously - considering how often you get bugged by the OS) avoiding upgrading my IE6 installation to anything newer, I finally heeded the update call and upgraded to IE8.  I think Microsoft has finally done something right with IE8 because it supports web standards much better in its default state.  The other side of this coin, however, is that many, many websites which explicitly detect for IE and emit code (whether HTML or CSS or Javascript) specifically for dealing IE bugs and idiosyncrasies are now going to break, sometimes very badly.  Thus, IE8 has a “Compatibility View” button that reverts IE8 to behaving like earlier, less standards-compliant versions of IE, complete with all the quirks.

I’ve already noticed one particularly important instance where IE8’s Compatibility View is essential:  the Plesk 8.x management console.  If you do not turn on IE8’s Compatibility View, Plesk won’t work.

If there is a moral lesson to learn here, it was to avoid browser specific code at [nearly] all costs.  In other words, make it a point to NEVER detect for different browsers and put the onus on the browser creators to render standards compliant pages correctly.

In practice, avoiding browser detection is not possible 100% of the time, but because we make it a point to reduce the amount of browser specific code as much as possible, we are able to avoid having to detect for the browser in 99.99% of cases.  One best practice we adopt is to just rely on CSS quirks to get a page to render the way we want on IE.  In this case, the page would (theoretically) work on IE8 correctly because IE8 would, like any other standards compliant browser, ignore the IE5/IE6/IE7 specific quirks.  Even for complex javascript-driven pages, we have been able to reduce browser specific DOM code to only a line or two in the past (with the advent of AJAX libraries like jQuery, this should no longer be something to worry about).  It is actually very tough work to figure out how to do this reduction, but it was worth it because the resulting code is much easier to maintain.

Those developers who thought they were doing the right thing by detecting for IE and having their websites behave, serve content and run JS code differently are now faced with the prospect of seeing their pages break on IE8.  Tsk, tsk, tsk.

The good news is that going forward, you should not have to worry about browser specific coding anymore (or at least worry much much less) which should have always been the case from the beginning anyway.




Tags: ,

Filed in Web | One response so far

Microsoft’s 3-front War, Part 1: The Battle for the Operating System - Windows vs. OS X

The Webmechs Editor on Mar 17th 2009


This is the first of a multi-part blog series where I discuss Microsoft’s battle on 3 fronts with 3 of its most important strategic competitors.  I believe everyone knows which 2 companies Microsoft are competing against on the first two fronts, but very few pundits seem to have caught on as to how important, strategic and exciting the the 3rd front is going to be and who Microsoft is competing against there.

I exclude Linux from this discussion, not because it hasn’t made important inroads, but because I’d like to focus on the competition between mega-corporations shepherding the development of technologies with the purpose of dominating market share for a particular niche, rather than “headless” guerilla movements which are more about individuals banding together for the sake of fun and art.

The first front has been with us for the longest time and is the most obvious of them all.  It is, of course, the battle for who gets to supply or control the operating sytem that the world uses.  Microsoft’s success and dominance in this area with Windows(tm) has arguably set a standard for which to measure complete victory for any kind of endeavour.

As of late though, Apple has been challenging that victory.  With OS X and Intel-based Macs, Apple has taken more market share in the operating system space from Microsoft than any company has ever done in history.  Still, that market share is a single digit one.

Its puerile ad campaigns notwithstanding, Apple does not really seem serious about so-called world domination.  Steve Ballmer made an interview comment about how “Apple has its niche, and we have ours”, and he seems to be implying here that Apple, with their appeal to elitism, will always be confined to a minority niche.  Looking at Apple’s outrageous pricing for their machines, I can’t help but agree with his observation, and if OS X market share even cracks 10% (figures which do not factor in Mac users dual booting into Microsoft Windows should be adjusted downwards, just to be wonkish), I will be extremely impressed.

Since all we read in the press as of late is about how Apple ads trounce Windows ads for being hipper, I would like to conclude here that the OS battle has obviously degenerated into boring and meaningless fanboy smearfest trivialities.  Until Apple halves the price of its machines and/or lets OS X run on commodity hardware, it will always be the case that Apple’s market share remains an elite niche garnered and maintained mainly through marketing smoke and mirrors.

To conclude, I just find it unimaginable that Apple or anyone else will ever really claim victory over Microsoft. In fact, it is quite plausible that the whole idea of fighting for OS market share will become irrelevant before anyone can “take over” from Microsoft, which is a key point I will be trying to make later on in this series.



Tags: , , ,

Filed in OS | One response so far

Low image quality when browsing via Globe 3G / Globe Visibility / Globe HSDPA

The Webmechs Editor on Dec 18th 2008


When using Globe 3G to view websites, I was disturbed to find that so many web pages had very low image quality.  Upon closer inspection, I was alarmed to see that the images were being loaded in from a numeric IP address (usually 62.0.5.135 62.0.5.133 or 62.0.5.134 ) rather than the website itself, and I thought that my computer had been infiltrated by spyware or or a trojan!! After further investigation, I realized that this was actually the ISP’s handiwork >:-( .

Apparently, Globe 3G passes all images (e.g. jpg, png or gif) through a compressing proxy first before serving it back to the visitor.  This is apparently done to greatly minimize bandwidth consumption by visitors.

On the surface, one might be able to understand Globe’s justifications for such a scheme.  The lower quality of images will not be that noticeable when browsing via tiny mobile phone screens and secondly, I have to say that Globe 3G is fairly consistently speedy whenever I use it so their bandwidth miserliness has at least some redeeming factors.

On the other hand, you should be aware that if you use Globe 3G as your primary internet connection on a notebook or desktop (as opposed to just using it for quick browsing on a mobile device) then this kind of proxying is non-transparent and will result in breakage of many sites.  For instance, I have discovered that it breaks image handling via AJAX.  An example would be when trying to upload images for your ad in Classifieds PH, which will not work for those who visit the site via Globe 3G.

If it were true that internet access quality via Globe 3G would be greatly slowed down if they did not use this image compression scheme, then this is a somewhat reasonable tradeoff for those who use Globe 3G as a backup form of internet access.

On the other hand, if Globe really intended for people to adopt their 3G service en masse, then this method of conserving bandwidth is terribly flawed both from a technical and end-user point of view.  I think Globe is shooting themselves in the foot with this one.




Tags: , , , , , , ,

Filed in Web | No responses yet

Google Chrome’s architecture explained in comics

The Webmechs Editor on Nov 6th 2008


URL at http://www.google.com/googlebooks/chrome/big_00.html

Since today’s browser environment is rapidly becoming the equivalent of an OS, the innovations in Chrome seem to be ideas whose time has come.  One of the central ideas behind Chrome’s architecture is to assign a different process (not thread) to each tab and the strip explains why.  The section on how they test the browser is also great propaganda that pretty much portrays Google as omnipotent in terms of technical resources. ;-)  Even though it is in comics format, the pages on Chrome’s V8 Javascript engine can get technical (and thus fun to read…).

One interesting revelation found in http://www.google.com/googlebooks/chrome/big_28.html is how existing plugins have to be allowed to get around the sandbox security restrictions built into Chrome, and how Chrome’s architecture still tries to minimize the ill effects of such a requirement. All in all the comic strip has sold me to the idea of adopting Chrome (one day, when it gets out of beta I suppose). We just have to remember to watch out for the privacy issues,  as Google has far greater potential to own us in this regard than Microsoft ever could. See http://www.srware.net/en/software_srware_iron_chrome_vs_iron.php

 

UPDATE: I tried Chrome out using the portable build from SRware and I have to say I’m impressed.  It really does seem to be crash-proof!  The acid test in my case is to view dozens and dozens of Youtube videos in a single session.  Firefox v3 in fact was more crash prone than v2 in this case, although v2 would also crash eventually.  Chrome was completely stable all the way up to the end of my session.




Tags:

Filed in Programming, Web | One response so far

Google vs. Microsoft - who’s the evil empire now?

The Webmechs Editor on Jul 11th 2008


This blog article by Dare Obasanjo purports to give an insider’s view of how Microsoft might be a more desirable workplace environment than Google, in contrast to all the media portrayals about how working at Google is like being in a playground. In my own blog essay here, I would like to offer the view from the customer/pundit’s side about how Google compares to Microsoft in terms of their technology, marketing and business directions.

While I still overwhelmingly use open source technologies (primarily LAMP), changes in the way Microsoft presents its technologies mean that I no longer find myself averse to integrating with or adopting them in the near future. Gone is most of the closed, proprietary mindset which used to characterize Microsoft technologies and make them wholly unattractive to hardcore developers. Perhaps changes of such nature in the way MS is driving forward their technologies also reflects changes in their corporate culture, hence the reason behind Dare’s observations.

The biggest obstacle Microsoft faces however, is that it is saddled with so much ill will and baggage accumulated over the years, that many technically savvy people just take it for granted that they cannot come up with anything worthy - technologically speaking. The reality on the ground today is pretty different from that old stereotype. Technologies like IronPython and the DLR (both open sourced, by the way), now make .NET a very interesting and capable environment to operate in, certainly superior to Java [grudgingly open sourced very late in the game as an act of near desperation, by the way...] in many ways. Mono, despite heavy initial pessimism, actually saw the light of day and is now a useful, working, somewhat mature platform.

Other Microsoft technologies like Powershell (formerly codenamed Monad) just do not reap the mindshare they deserve. Powershell is MS’ answer to criticisms that the Windows command line is anemic compared to Unix shells, which _was_ most certainly true. Now however, the Windows command line arguably leapfrogs over current Unix shells’ functionality. Moreover, it manages to do so by adopting the most common Unix shell-isms (a sign that the Microsoft engineers involved in this effort are not afflicted with the NIH syndrome), preserving the familiarity of tried and tested conventions but supercharging them with a pipe-based paradigm that operates on .NET objects/properties instead of just plain text.  This sort of innovation is on such a fundamental level that Powershell can be rightfully called a revolutionary advance for the command line interface / paradigm.

I have tried out Powershell and I have to say, that contrary to what one would usually expect from Microsoft and despite my own heavy bias against the OO paradigm, it is _not_ lame. We have heard talk of “[pervasively] Object Oriented OSes” ever since the 90s, back when Taligent and similar initiatives (both coporate and hobbyist) were being touted as the future. Now that .NET is increasingly being overlaid on top of Windows and other Microsoft technologies and having a tool like Powershell give immediate command line access to (more or less) uniformly inspect and manipulate a whole array of .NET objects in the environment, we are effectively there today.

On the hardware front, MS again suffers from lackluster marketing, Microsoft’s multi-touch vision is far more comprehensive than Apple’s and yet it is Apple’s piddling iPhone that reaps disproportionate media coverage. Sigh…

Google’s Android, a Frankenstein-ish stack made up of a deliberately incomplete, incompatible Java implementation running on top of the Linux kernel is the media darling of the moment (scaring Symbian into open sourcing their C++-based mobile device OS, hehe), while MS seems to be doing precious little to let people know of how Mobile Windows can leverage off of the now thriving .NET ecosystem.

Even as MS fails to score points on the marketing side despite what I would consider are far more enlightened efforts today compared to those of yesteryears (karmic retribution, perhaps?), I would say that they have definitely learned real lessons from their open source competition. Many of today’s MS initiatives have genuinely picked up the good traits of the OSS philosophy and should convince those with a more pragmatic bent (e.g. those who do not possess ideological or sentimental attachments to labels and ‘movements’) - to at least reconsider their alienation to MS-originated stuff, if not consider moving to it.


All the flak and lost market share Microsoft has had to [deservedly] endure over the years seems to have changed the company. What is ironic is that while many people still have the narrow-minded view that “MS is evil”, they fail to see that Google, due to its enormous success, is in fact starting to become like MS during the latter’s heydays. We justifiably loathe MS’ former business practices and the parade of lame-ass technologies they used to introduce by the score, but Google isn’t immune to this:

When it comes to online advertising, Google, like any business with a competent, capable CEO at the helm is clearly aiming to achieve as dominant a market share as it can (aka a “monopoly”), which, to lefties, would certainly count as “evil” behaviour.

Another similarity too is that Google, having a cash cow in the form of Adsense, as MS did in the form of MS-DOS, uses it to fund as many throw-it-on-the-wall-and-see-what-sticks projects as it can, and a lot of those projects are insipid indeed. [ Google Base?!? My god, could anything be more uninspired? Fire the guy who "conceptualized" it already! Gmail is ok, but you'd think with all the initial hype, it'd have at least come close to giving Yahoo Mail a run for its money, but up to now I don't think Gmail has even a tenth of the market share Yahoo Mail does. ]

Finally, there are significant numbers of people who blindly adopt and/or defend their technologies simply because of the brand name. Whereas you had “MS zombies” before, you’ve now got uncritical, raving, Google fanboys who think the “Google” name is a rubber-stamp for cool technology. MS was obviously unable to topple Google the way it did Netscape, and now when it comes to the new frontiers of cyberspace such as online advertising, MS is clearly the underdog, while Google, the 500-pound gorilla. Still, I don’t see MS going down that easily. In the face of truly stubborn competition like was the case with Linux, Microsoft has proven quite willing to redefine itself in major ways to stay relevant (but not necessarily dominate).




Tags:

Filed in Programming, Web | One response so far

Solaris and OpenSolaris - do they still have a viable future?

The Webmechs Editor on May 30th 2008


The latest buzz around Solaris has whet my appetite for a Sun technology again. With the massive mind and market share that Linux - now virtually mainstream - enjoys, OpenSolaris’ seemingly hopeless position as being #3 behind an already distant second placer (BSD) on the open source OS front made me think that Sun might eventually just decide to throw in the towel. This is not to say that the ubercool technologies in Solaris like ZFS would vanish - heaven forbid - but that Solaris the OS would slowly be left to fade into oblivion. It seems however that Sun has a lot of fight left in them whether it be Java versus .NET or Solaris versus Linux/BSD.

In the “What’s New in OpenSolaris ?” podcast referred to above, I find Dan Roberts summary of exactly what is lacking in the way OpenSolaris is distributed and how it needs to improved to be by far the most amazingly honest and straightforward presentation I have yet heard coming from a corporate person. In the past, I have always found Sun’s marketing and positioning of its technologies (I have Java foremost in mind here) to be done rather halfheartedly and less than 100% forthright.

For example, many years ago, even while trumpeting Java as a write-once-run-anywhere technology, Sun was obviously wary of Linux cannibalizing Solaris sales and totally dragged their feet when it came to making Java (Swing in particular) run well on Linux (or Windows for that matter). Hence, Java-based client computing never really took off. Now that Eclipse, .NET, Mono, Flash and a host of other competitors have arisen, Sun has belatedly seen the light. But of course, they had essentially already shot themselves in the foot. Java never took hold of the desktop (still trying though, bravo…) and handed Microsoft a golden chance to catch up with .NET.

We have historical reasons for worrying that Sun might get cold feet again, but the uniquely cool features found in OpenSolaris are compelling enough, at least on paper, for me to invest time learning a Sun technology again. I’m looking forward to downloading OpenSolaris and trying it out on a spare machine soon. And finally, with the way they have been going at it lately, it seems that Sun’s marketing have finally started waking up and doing (or at least realizing and saying) the right things. Whether they can sustain this or fall back into their old habits of growing complacent after a taste of initial success remains to be seen.

Interesting Solaris related stuff:

Solaris engineers offer personal source-code tours





Tags: , ,

Filed in OS, Solaris | One response so far

Java’s Da Vinci Machine … and other platforms

The Webmechs Editor on Apr 29th 2008


After having read about the “Da Vinci Machine”,

http://www.infoworld.com/article/08/01/31/davinci-machine_1.html
http://openjdk.java.net/projects/mlvm/

it struck me that Sun/the Java people have finally seen the wisdom of supporting other languages (esp. dynamic ones) on the JVM and have decided to play catch up with the CLR. The closest CLR analog to the Da Vinci Machine would be .NET’s DLR (dynamic language runtime) which got started much earlier. While Java is clearly entrenched and has a lot of momentum behind it, I think that right now the .NET CLR’s design is the one to beat and has had the benefit of being designed from the ground up rather than being retrofitted. Moreover, while such new JVM enhancements cater to dynamic languages, it does not necessarily mean that they address the issue of inter-language operability.

As you know, in the CLR, components written in different languages can call each other very easily and it is quite clear that a lot of design attention has been made by the CLR designers to making this work cleanly from the start.

Could we expect to see languages besides Javascript/Actionscript running on top of AVM2 in the near future? As Flash is actually a far more widely deployed runtime than J2SE, this would be a very welcome and interesting development.


We see today that the OS wars have taken an interesting twist. The former clear winner - Windows - is facing stiff competition on frontiers beyond the desktop, such as mobile. On the server end, what gains Windows NT/Server had earlier made over a fragmented Unix opposition it now cedes to Linux. Because no single OS can stake a total claim over all the various hardware incarnations we have today, the battleground has instead shifted to runtimes. From where I’m standing, it is starting to look like a 3-way fight between:

A. .Net/CLR - MS .NET, Mono, Silverlight, etc…
B. Java - JVM, Google Android, JavaFx, etc…
C. Flash - Flex, AVM2/Tamarin, …

I have come to appreciate A. for its well-defined API choices. For 3D, You can use OpenGL if you want to do cross platform graphics or DirectX if you only intend to run under Windows. For client UIs, WinForms/Gtk is available cross-platform, whereas you can use the [presumably] more advanced WPF for Windows-exclusive clients. And of course, you’ve got Silverlight/Moonlight for browser hosted RIAs under Windows, Linux or OS X.

B. on the other hand is composed of a mishmash of balkanized, bastardized standards. These have sprung around Java due to Sun’s lukewarm leadership efforts and less than forthright licensing tactics and strategy. They compete directly with each other instead of offering clear differentiating strengths. It is Eclipse vs. Swing, Android/Dalvik vs. J2ME, JavaFX vs. Processing, etc… But, on the other hand, is such competition merely an indicator of a healthy, thriving ecosystem?

With Java, there certainly is *more* stuff - technologies, standards, APIs, frameworks - numerically speaking, built on top of it than for .NET, although the latter is catching up and with quality ones too (e.g. F#, IronPython, LINQ…)

C. is the least confusing runtime platform since you only get one language choice - Actionscript - and essentially a single API framework and another advantage is that Flash deployment is far more ubiquitous than either .NET or Java. One thing to note though regarding Flash is that it targets only half of the equation - client development - leaving you to deploy whatever server side technology you choose.

Licensing-wise, all three are roughly comparable with a mix of open and closed source components.

Since all 3 platforms will - ultimately, is the expectation - run more or less equally well under Windows, OS X, Linux and BSD, developers* now have the freedom to not worry about which OS they target. But… they now have to choose which runtime platform to target!

*with the exception of primitives who still insist on using C/C++ and the respective OS-specific APIs such as Win32 and POSIX/Unix





Tags: , ,

Filed in Java, Programming, Virtual machines | No responses yet