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.
no subject
Date: 2008-04-29 10:16 pm (UTC)Bad though the Linux situation is, it and BSD are the only real hope we have as far as I can see... unless some other open platform contender comes out of left field.
Interesting what you said about some of the game software being developed for OSX and MSWindows though. My nephew (who is a big game
fanaddict has told me that development for some MMORPG games is actually done on Linux. I can't remember which ones... the only game that has held my interest for more than a few minutes is "Portal" with its mind-bending puzzles, relative lack of violence, and its wicked sense of humor.no subject
Date: 2008-04-30 02:41 am (UTC)Apple, IMHO, have a firm eye on maintaining a certain level of quality and adherence to humanistic design. That alone advances them above M$oft in my condieration. How much of that is inherent in the company and how much is niche market strategy is anyone's guess.
I don't see Linux or BSD as serious contenders in their current states. It's become clear to me over the years that neither community are seriously committed to adhering to the kind of ease-of-use required for truly average people to be willing to use them. There was a burst of advancement on this front a while back, but it's stalled. I think it's an artifact of the generally atypical technical focus of adherents.
What might happen is that OSX, Linux and BSD can weaken the hold M$osft has on the market enough that a new contender can rise. But that's a long way off.
no subject
Date: 2008-04-30 10:57 pm (UTC)You are absolutely right about the perceived lack of consequences leading to bad things. I'm pretty sure we can set up the rules for capitalism to operate in a healthy way. At the moment it is designed to go wrong; there is pressure on companies to grow without limit, and rape (of resources, of culture, of minds) is seen as a right. We should be able to work out better rules for economics to favor small, efficient organisations. Money and economics are man-made. We've simply made a mistake in how we designed the guidelines.
Apple use a consistent set of guidelines. That is not necessarily a good thing. Their insistence that everything must be done with a GUI and their complete rejection (until recently) of a command line is pigheaded, misapplied philosophy. Their insistence that a single mouse button is enough is a worthless straightjacket. For a long, long time they didn't even see the use of pre-emptive multitasking and refused to accept it. Apple are excellent propagandists. Appearance reigns supreme. They have somehow convinced everyone that they are the outsiders, the rebels, the artistes, the innovators, but it isn't true. They are conservative monopolists of the worst kind. They maintain absolute dictatorial control over their machines' hardware and software.
You may be right about Linux and BSD. [sigh] Puppy Linux goes some way towards fighting the slowing and bloating of modern OSes. I don't think it goes far enough, but I've read criticisms from others who despise it for being an "incomplete" Linux... so I can see how it is a difficult job.
I want to build myself an ultra low power computer for myself this year so I've been thinking more about operating systems and computer programming lately. I can't help thinking that a number of our unquestioned assumptions cause a lot of our problems.
- separation of source from binary makes it difficult, and in some cases impossible, to fix or improve stuff
- the hierarchical filing system was a great improvement over the previous flat filing systems, but storage has become so vast now we need a better way. I have been thinking about how an associative filing system would work with us instead of against us.
- libraries originally developed to make programming easier and lessen duplication of code, but it has begun to work the other way. This is partly (but not entirely) a result of libraries not being self-documenting. I have some thoughts on how this could be fixed.
- we still rely heavily upon centralised systems when it is obvious now the benefits that come from distributed efforts.
- datatypes are one of the major obstacles to efficient programming. They force the human to think like a computer and service its needs rather than the other way around.
...I could go on... :/
no subject
Date: 2008-05-04 08:45 pm (UTC)no subject
Date: 2008-05-07 12:40 am (UTC)no subject
Date: 2008-05-04 08:25 pm (UTC)Did I tell you that in downtown Decatur there's an Enrichment Center? God knows what goes on there, but I didn't see any cake.
BTW our current favorite "nonviolent" game is Grand Theft Auto 4. Robert got it and I'm watching him play. Kelly was a stone Oblivion fan -- hacking monsters to bits and interior decorating!
no subject
Date: 2008-05-07 12:47 am (UTC)People watching others play games is a different thing. I don't just piss on that, I vomit on it. :) That seems to me the pits of utter time-wasting futility. (How very intolerant of me. heheheh)
I've lately been thinking more and more about what kind of game I actually would play. It doesn't exist, as far as I know. I'm sure I'm not the only person with my mindset, so it seems to me that there is an untapped user-base out there for such a game.
Stay tuned for more developments....