thoughts on programming
Apr. 29th, 2008 10:18 amI'm a bit bummed that I can't view my VRML worlds properly on my Puppy Linux machine. I've spent a couple of days trying everything I can think of, to no avail. It is no secret that I think Linux has become the major alternative now that Microsoft looks like it is about to go the way that the once arrogant and world-dominating IBM did. Microsoft's Vista has been a dismal marketplace failure. Many people attribute it to Vista's technical shortcomings, but I think Microsoft's deeply overdrawn account at the karma bank shouldn't be overlooked. They bring new meaning to the term "morally bankrupt". Few people trust them or their notoriously insecure operating systems.
So, installing Windows on a partition just so that I can use VRML -- something I'd been considering -- seems a bit silly and wasteful.
I sat down last night and wrote a long piece for myself on the state of computing in general and 3d in particular. I won't bore you with the details here, but one thing I stumbled across was the surprising realisation that a very large part the computing grief we endure is a result of the separation between source code and binary. One of the problems it causes is the way library code is constructed. If libraries were self-documenting then many of the problems of modern computing would simply evaporate. (If anybody is interested I'll enlarge on this.)
It also occurred to me that the whole free and open source software (FOSS) movement has been based on the idea that we must put up with the inconvenience of source code in order to retain freedom, but that is a mistake and is doomed to always fail. Most users, given the choice between convenience or freedom will choose convenience. The separation between source and binary is the major cause of loss of software freedom.
Compiled code brings about a number of other major problems too.
But, you might answer, programs must be compiled into machine readable code which is unreadable to humans in order to give us high performance. That's not necessarily true. FORTH is one of the fastest and most efficient languages ever designed and it always remains human readable -- even the code directly executed in silicon by one of the FORTH chips. FORTH runs at almost the speed of hand crafted assembler and its programs have absurdly small file sizes. The core language is just 4k and the central execution routine is a few bytes in size. Compare this with Java, which compiles to code unreadable by humans and is renowned for being sluggish and bloated. I'm not suggesting we all switch over to using FORTH, but it does show that our assumptions are not necessarily correct.
I've been thinking more and more about the 3d language I started designing some years ago... will I waste more years if I work on that? I already wasted years on VRML. The current crop of 3d games like World of Warcraft and the less violent 3d worlds like SecondLife are all built on Microsoft's operating systems. If Microsoft lose their footing then so do all those other things. A depressing thought.
So, installing Windows on a partition just so that I can use VRML -- something I'd been considering -- seems a bit silly and wasteful.
I sat down last night and wrote a long piece for myself on the state of computing in general and 3d in particular. I won't bore you with the details here, but one thing I stumbled across was the surprising realisation that a very large part the computing grief we endure is a result of the separation between source code and binary. One of the problems it causes is the way library code is constructed. If libraries were self-documenting then many of the problems of modern computing would simply evaporate. (If anybody is interested I'll enlarge on this.)
It also occurred to me that the whole free and open source software (FOSS) movement has been based on the idea that we must put up with the inconvenience of source code in order to retain freedom, but that is a mistake and is doomed to always fail. Most users, given the choice between convenience or freedom will choose convenience. The separation between source and binary is the major cause of loss of software freedom.
Compiled code brings about a number of other major problems too.
But, you might answer, programs must be compiled into machine readable code which is unreadable to humans in order to give us high performance. That's not necessarily true. FORTH is one of the fastest and most efficient languages ever designed and it always remains human readable -- even the code directly executed in silicon by one of the FORTH chips. FORTH runs at almost the speed of hand crafted assembler and its programs have absurdly small file sizes. The core language is just 4k and the central execution routine is a few bytes in size. Compare this with Java, which compiles to code unreadable by humans and is renowned for being sluggish and bloated. I'm not suggesting we all switch over to using FORTH, but it does show that our assumptions are not necessarily correct.
I've been thinking more and more about the 3d language I started designing some years ago... will I waste more years if I work on that? I already wasted years on VRML. The current crop of 3d games like World of Warcraft and the less violent 3d worlds like SecondLife are all built on Microsoft's operating systems. If Microsoft lose their footing then so do all those other things. A depressing thought.
Re: Xj3D
Date: 2008-04-29 11:34 pm (UTC)I'm downloading it now... erk... nearly one and a half hours on my oh-so-slow dialup.
Hmmm... A 13MB download is surprisingly big. Blender is an open source GUI-based 3d modeller/animator/real-time viewer, with python scripting, IK, bones, cloth, and physics capability, but at 7MB is about half the size of Xj3D.
I didn't realise Xj3D now included physics through ODE. I'd enjoyed experimenting with ODE a little while ago, using it with python under MSWindows, but more recently in my move to Linux I've had no luck in recompiling the ODE libraries. Interestingly Blender uses Bullet, another open source physics library.