Re:It's fine that the source is closed, for them..
on
Spore Hands-On Preview
·
· Score: 2, Informative
I'm sorry, I didn't mean that you yourself were a greedy crybaby. I appreciate your attitude, and that you're willing to pay for products that take time and money to produce. It's the grandparent article that you were indirectly replying to that I was insinuating about:
This game is only being released to run on closed source, propietary operating systems, so I for one am not interested. Not only that, but the game itself is closed source. If they had written it for Linux, and made the code open source, it would not only be more secure and elegant, but it would probably be more efficient too. When will developers learn? OH well, their loss.
Now that's a whiny crybaby, who bitches about how hard it is for poor old him, because of the decision he chose to made of his own free will, then he throws out a bunch of ridiculous claims about how superior Spore would be if only it had been developed on Linux. More secure, elegant, and efficient, ehe? It's people who bull shit like that out of their ass who give Linux and Open Source Software a bad name.
-Don
Re:It's fine that the source is closed, for them..
on
Spore Hands-On Preview
·
· Score: 4, Informative
Yes, I worked for Maxis and EA, with Will Wright on The Sims, and also on porting SimCity to various platforms.
I developed a commercial game (SimCity) for Unix, and promoted and distributed it over the internet 16 years ago, and there is still no viable market for games on Linux. Look what happened to Loki. And look at the sad shape of the modern Linux desktop: Lots of easy eye candy and useless transparency, but absolutely no crucial usability nor simple consistency.
I have done a lot of cross platform development and porting (I also ported The Sims Online server to Linux, and I'm currently developing TomTom Home on Mac and Windows using xulrunner and XPCOM), so I'm painfully aware of how much harder it is and longer it takes than developing for one or a few platforms. It's not easy, it's not fast, and it doesn't come for free.
I've also put a lot of time and effort into writing code, proposals, and working with people at EA and other companies, to convince them to make some of their existing products open source, many years after their release, like Micropolis (SimCity). But I never made the argument that it was worth their development effort for an initial release of a game to support the Linux desktop.
Developing cross platform code and porting games to Linux is not nearly as easy as you make it out to be. It took me many years of work to port SimCity to all the different flavors of Unix, Linux, OLPC, and other X-Windows platforms like Quarterdeck DESQview/X, NCD X terminals, Windows, Mac, etc.
Don't act like nobody at EA ever heard of Linux, and it's up to you to evangelize to them about it and make them see the light, and support it as if it were a mainstream desktop platform. They run it on their servers, and many people at EA use Linux all the time, are experts at it, and understand its problems and limitations.
Trying to argue that EA should release mainstream games on Linux will get you absolutely nowhere. It wastes their time, makes you look like an idiot, and they will never take you seriously again. And representing the Linux community as a bunch of greedy crybabies who just want everything right now and for free, reduces the chances that they will eventually release other games as open source or port them to Linux later.
-Don
Re:It's fine that the source is closed, for them..
on
Spore Hands-On Preview
·
· Score: 4, Insightful
There is absolutely no way to justify the millions of dollars EA would have lost if they delayed the release of Spore for another year, just to port it to Linux, so that they could sell a few hundred more copies of it.
If you really want to play Spore, then you probably can find a Windows or Mac to play it on. If you really can't find a Windows or Mac or game console to play Spore on, then you have much bigger problems, and probably should not be wasting your time playing games, because you should be working on solving your bigger problems instead.
If you've decided never to touch a Windows or Mac box, then that's your decision you made with your eyes wide open, and one of the consequences is that there are many pieces of software you will never be able to use, like Spore. If you made that decision yourself without being forced into it, then you made your own bed and now you must sleep in it, so shut up and stop complaining. If you're disappointed or surprised about the consequences of your own decision to boycot Windows and Mac, then you obviously made the wrong decision, so don't blame EA for not supporting you. You have no right to complain about the consequences of your own decision not to use Windows or Mac.
My logic isn't flawed, I'm simply reporting the flawed logic and lies that the Discovery Institute themselves perpetuate, but don't tell the general public. They were very upset that the Wedge Document leaked, but it tells it like it really is. The Discovery Institute says one thing in private to their superstitious religious whack-job supporters who believe in the fairy tale of Creationism, and they say something totally different in public. That IS their Wedge Strategy. That's just what the Wedge Document says. They are totally disingenuous liars. They know the Supreme Court struck down teaching Creationism in schools, so they're taking old books on Creationism, crossing out Creationism and writing in Intelligent Design, and doing a global replace of God with Designers. Well guess what: the courts resolutely struck down teaching Intelligent Design in schools, because it's exactly the same bullshit as Creationism.
The fact that you misunderstand Creationism and Intelligent Design enough to think they're different, or that you're gullible, superstitious, and don't believe in science that you believe in the Creationism fairy tale, doesn't change the hard cold facts of life or the laws of physics.
If you don't think those darn secular scientists are competent enough to know what they're talking about, and that the Pope understands science better, then why don't you give up using cell phones and computers and airplanes and electricity, and move to am Amish community?
In addition, Wright also was inspired by reading , a short story by Stanislaw Lem, in which an engineer encounters a deposed tyrant, and creates a miniature city with artificial citizens for the tyrant to oppress. [1]
"And how do you know there aren't civilizations a hundred million times larger than our own? And if there were, would ours then be a model? And what importance do dimensions have anyway? In that box kingdom, doesn't a journey from the capital to one of the corners take months-for those inhabitants? And don't they suffer, don't they know the burden of labor, don't they die?"
"No, Trurl, a sufferer is not one who hands you his suffering, that you may touch it, weigh it, bite it like a coin; a sufferer is one who behaves like a sufferer!"
Sorry to burst your bubble, but Intelligent Design IS Creationism, just renamed to fool people on purpose. I'm sorry you fell for the Dicovery Institute's trick.
Read about the Wedge Strategy and the accidentally leaked Wedge Document.
This is the prototype for the soul of The Sims, which Will Wright wrote on January 23, 1997.
I had just started working at the Maxis Core Technology Group on "Project X" aka "Dollhouse", and Will Wright brought this code in one morning, to demonstrate his design for the motives, feedback loop and failure conditions of the simulated people. While going through old papers, I ran across this print-out that I had saved, so I scanned it and cleaned the images up, and got permission from Will to publish it.
This code is a interesting example of game design, programming and prototyping techniques. The Sims code has certainly changed a lot since Will wrote this original prototype code. For example, there is no longer any "stress" motive. And the game doesn't store motives in global variables, of course.
My hope is that this code will give you a glimpse of how Will Wright designs games, and what was going on in his head at the time!
The rest of the Republican candidates sure have a lot more screws loose than Ron Paul.
Not that Ron Paul isn't a nut job, but anybody who can go on national television and seriously deny they believe in Evolution is a total whack job religious nut case.
Oh but it's OK for Republican candidates to say they believe in silly ridiculous fantasies like Creationism, because the sheepeople who elect them believe in that bullshit, so the politicians are only pandering to their base -- they don't actually believe what they say.
No, Republicans wouldn't want to elect anybody who was remotely in touch with reality or who knew anything about science. Republicans live in a religious fantasy world, and their belief systems are such delicate houses of cards, that they can't tolerate evolution being taught in schools, otherwise their children will figure out their parents and churches have been feeding them bullshit, and they'll loose their faith. And wouldn't that be too bad.
Every Republican running for president is a TOTAL NUT CASE! So why is that a liability for Ron Paul?
Let's put it this way: typing "yum install foobar" or even "./configure ; make ; sudo make install" is NOT hacking.
I assume it took considerably more cleverness to get Linux running on the XBox, so that's probably hacking, if it required some kind of cleverness. Simply doing something you weren't intended to do, but that that doesn't require any cleverness, is not hacking.
Jonathan Mayo: get your facts straight, and work on your reading comprehension.
I never recommended you rewrite anything in Forth. I just mentioned OpenFirmware, which you mentioned on your resume, and that I worked with 20 years ago. I think it's interesting that we both know Forth. (forth ?know if honk else forth learn then). But I never suggested rewriting Micropolis in it!
You're really flying off the handle, accusing me of stalking: You wouldn't answer any of my questions on Slashdot, and you kept attacking me with bullshit, so I contacted you privately via email, where you kept on attacking me. What's so hard about punching "OrangeTide" into google? Your web site, www.orangetide.com: OrangeTide's Home Page is the first result. Your resume is the first link on that page. Your name, Jonathan Mayo, is written in big header text on that page, along with your home address in lovely San Jose, and your home and cell phone number and email address: jon.mayo@gmail.com. Your resume says you work for VMWare, and have worked for Cisco, Agami, Pillar Data Systems, Pioneer Research of America, DirectTV and Sparta Area School Systems. Did you publish all that information yourself, or did somebody else put up a fake resume under your name?
Why do you presume to act like you expect to be anonymous, if you use the exact same handle of slashdot as the name of your web page, and you publish your real name, address, email, and phone numbers on your resume on that web site?
You're the one who chose the name of your slashdot user to be the same as the name as your web site, and put all that personal information up on your web site.
If you're trying to be anonymous on slashdot, and offended that I sent your personal email asking "What's your problem on slashdot?", then you've totally failed, and you're a complete idiot. Haven't you ever heard of google? Are you surprised it was so easy for me to look up all that personal information about you that YOU yourself publicly published, simply by typing "OrangeTide" into google?
Why did you publish all that personal information, if you don't want anyone knowing it or contacting you? You have pretty thin skin! Your slashdot profile doesn't say "Don't contact me" -- it just says "I hate slashdot". What's wrong with me sending you email to the address you published on your web site with the same name as your slashdot handle? You're the one acting like a nutjob for all to see, so I contacted you about it, to ask what your problem was. Do you really want me to discuss your behavioral problems in front of everyone instead of sending you personal email? Apparently so, therefore that's what I'm doing now, instead of keeping it private!
If it was so easy for me to punch your slashdot handle into Google, and get your real name, email address, home address and phone number, do you really think potential employers won't google for your name and read what you've written on slashdot? You should be more careful about making a total fool out of yourself on slashdot, because it might come up in a job interview (or you might never get that job interview in the first place, with anyone who's read what you've posted, because your postings are extremely foolish). Anyone can read your posting history to see what a frustrated dork you are.
I'd like to make a couple more remarks to clear up some of the misinformation that OrangeTide is spreading. (Not addressed to OrangeTide, but anyone else who's read the hillarious stuff he's been posting).
Haskell is a wonderful language. Just because OrangeTide says he likes it doesn't mean it sucks. I would love for somebody to rewrite Micropolis in Haskell. I just don't think OrangeTide is capable of doing it himself let alone understanding how much work it would be.
Rewriting Micropolis in C++ is the first step towards rewriting it in other better languages. There is only one thing worse than C++, and that's C. And it just happens to be quite easy to translate C to C++, without heavily modifying it or changing its meaning, because "this" is implicit. And it also makes it very easy to use SWIG to integrate the code with many different scripting languages. That's why I used C++ instead of a vastly superior and DIFFERENT language like Haskell. I would rather open Micropolis up to many different scripting languages, than locking it into one esoteric one that doesn't have industrial quality tools and support. (This is not a slam on Haskell -- it's just that the reality is that C++ is so much more widely supported and universal, at this point in history.) Eventually we can rewrite all of Micropolis in an easier to understand and maintain language like Python, and put a high-level kid-friendly visual programming language interface over it, but the first step is to clean up and rationalize the existing code base.
OrangeTide said "Not sure why you insist I rewrite it in C++", but I'm not asking him to help, because he hasn't offered any useful criticism or suggestions. But I would certainly like other people to help! I already did the first cut of cleaning up and C++-ifying the code, but there is lots more work that needs to be done before the new MicropolisCore code is a playable game.
You're never going to annoy me until I see you actually write some code. So far all you've done is talk, and your talk isn't impressive nor coherent. You can't hold up your side of the argument, nor address any of the points I've raised. I hope your code isn't as bad as your rhetoric. So how's your project rewriting Micropolis in Objective C going? Or have you finished that, and started rewriting it in Haskell? (Have you ever written a line of Haskell in your life? Show me!)
How much respect do you think you've earned from me or anyone else, by all your talking and complaining and trolling, without having produced any code? Talk is cheap, kiddo. And your cheap talk isn't even interesting nor realistic. You sound like you have a broomstick up your butt, but you haven't ever gotten laid and really need it bad. Your profile says you hate slashdot, but you yourself are the epitomy of what's so horrible about it. You ARE slashdot!
Because you complained that I already translated it to C++, and said you wanted to rewrite it in Objective C to waste my time and annoy me. Don't let me stop you! How's the rewrite going?
And Lisp is like Lisp, except that it uses S-expressions for code instead of code, S-expressions for data instead of data, and S-expressions for macros instead of macros.
Of course it's possible to rewrite the simulator in any other language. It's just a question of how much work would it be, and how sure you would be that it did the same thing.
It was comparatively little work to rewrite C code in C++, because that's exactly what C++ was designed to do: take old C code with global variables and functions, and encapsulate it in a class with a well defined interface. Because C++ has the implicit this parameter to each member function, and it's not necessary to explicitly specify this when accessing member variables and methods, you don't have to change C code very much to translate it to C++. A different language with explicit this (or self) would require meticulously changing every line of code, and that would be orders of magnitude more work.
The first step to translating a big pile of C code to another higher level language is understanding and strictly defining what it does. Translating it to C++ is the first step in that process. That gives the code a lot more structure and coherence, without disrupting how it works.
The next step is to clean it up and toss out everything that isn't relevent -- all the old user interface and operating system hacks that no longer are necessary and have nothing to do with the simulator.
Once you have a clean core of code that verifyable works with well defined interfaces and without any irrelavent crap in it, it's much easier to start rewriting it in other languages like Python or Lua. (I would NOT suggest using Perl, though. That is a horrible, dead end language, antithetical to teaching kids how to program.)
Alan Kay and I have been having an interesting discussion about how to rewrite SimCity in much higher level languages than Python and Perl, specifically visual programming languages like eToys, Star Logo, Max/MSP, KidSim (Stagecraft Creator), Bounce (Body Electric), SimAntics, etc, along the lines of Robot Odyssey.
What we want to do is to open up SimCity to the Python scripting language as a first step, and then write a high level visual programming language in Python, easy enough for kids to use, but powerful enough for real programming.
I was using the Aztex Manx C compiler on the Apple ][ back around 1982 or so, but I don't know which C compiler Will Wright used on the C64. I will ask him some time. Manx C did produce really bloated code (it had to -- the 6502 has 8 bit registers, and adding two shorts took 7 instructions: CLC LDA ADC STA LDA ADC STA), but back then people wrote C code very differently than they do today with optimizing compilers.
Every line of code you write, you had to understand and think about how the compiler was going to translate it into machine language, and write it as efficient as possible, readability be damned. SimCity had a bunch of code that went like "register z = 0; foo = z; bar = z; baz = z; z++; one = z; z++; two = z;".
Nobody writes like that any more (for a good reason: maintainability is much more important than hand coded optimization, which has hit the point of diminishing returns because the optimizers are so smart now). There is no advantage to programming that way any more, because now days the compiler deconstructs your code and applies all the optimizations automatically, using as many registers and optimization tricks as possible. Modern compilers won't let you declare a register variable with no type, and there is no longer any advantage to declaring register variables, or initializing variables from other variables instead of constants.
Designing good efficient algorithms is what's important, not typing them in so as to spoon feed a stupid compiler that can't figure out how to use registers or initialize variables efficiently. And good efficient algorithms should be written in clean maintainable readable code, so people can understand them, and bugs are easy to fix.
To paraphrase the introduction to Abelson Sussman and Sussman's "Structure and Interpretation of Computer Programs": Computer programs should be written first and foremost for people to read, and only incidentally for computers to execute.
I'm so glad to hear you mean what you say!
So when should I expect you to post the Micropolis source code rewritten in Objective C?
How is that work going? What's your "lines of code written" / "words spoken" ratio so far?
I'm sorry, I didn't mean that you yourself were a greedy crybaby. I appreciate your attitude, and that you're willing to pay for products that take time and money to produce. It's the grandparent article that you were indirectly replying to that I was insinuating about:
Now that's a whiny crybaby, who bitches about how hard it is for poor old him, because of the decision he chose to made of his own free will, then he throws out a bunch of ridiculous claims about how superior Spore would be if only it had been developed on Linux. More secure, elegant, and efficient, ehe? It's people who bull shit like that out of their ass who give Linux and Open Source Software a bad name.
-Don
Yes, I worked for Maxis and EA, with Will Wright on The Sims, and also on porting SimCity to various platforms.
I developed a commercial game (SimCity) for Unix, and promoted and distributed it over the internet 16 years ago, and there is still no viable market for games on Linux. Look what happened to Loki. And look at the sad shape of the modern Linux desktop: Lots of easy eye candy and useless transparency, but absolutely no crucial usability nor simple consistency.
I have done a lot of cross platform development and porting (I also ported The Sims Online server to Linux, and I'm currently developing TomTom Home on Mac and Windows using xulrunner and XPCOM), so I'm painfully aware of how much harder it is and longer it takes than developing for one or a few platforms. It's not easy, it's not fast, and it doesn't come for free.
I've also put a lot of time and effort into writing code, proposals, and working with people at EA and other companies, to convince them to make some of their existing products open source, many years after their release, like Micropolis (SimCity). But I never made the argument that it was worth their development effort for an initial release of a game to support the Linux desktop.
Developing cross platform code and porting games to Linux is not nearly as easy as you make it out to be. It took me many years of work to port SimCity to all the different flavors of Unix, Linux, OLPC, and other X-Windows platforms like Quarterdeck DESQview/X, NCD X terminals, Windows, Mac, etc.
Don't act like nobody at EA ever heard of Linux, and it's up to you to evangelize to them about it and make them see the light, and support it as if it were a mainstream desktop platform. They run it on their servers, and many people at EA use Linux all the time, are experts at it, and understand its problems and limitations.
Trying to argue that EA should release mainstream games on Linux will get you absolutely nowhere. It wastes their time, makes you look like an idiot, and they will never take you seriously again. And representing the Linux community as a bunch of greedy crybabies who just want everything right now and for free, reduces the chances that they will eventually release other games as open source or port them to Linux later.
-Don
There is absolutely no way to justify the millions of dollars EA would have lost if they delayed the release of Spore for another year, just to port it to Linux, so that they could sell a few hundred more copies of it.
If you really want to play Spore, then you probably can find a Windows or Mac to play it on. If you really can't find a Windows or Mac or game console to play Spore on, then you have much bigger problems, and probably should not be wasting your time playing games, because you should be working on solving your bigger problems instead.
If you've decided never to touch a Windows or Mac box, then that's your decision you made with your eyes wide open, and one of the consequences is that there are many pieces of software you will never be able to use, like Spore. If you made that decision yourself without being forced into it, then you made your own bed and now you must sleep in it, so shut up and stop complaining. If you're disappointed or surprised about the consequences of your own decision to boycot Windows and Mac, then you obviously made the wrong decision, so don't blame EA for not supporting you. You have no right to complain about the consequences of your own decision not to use Windows or Mac.
-Don
Shut the fuck up until you've invested your own time in developing (and FINSHING) an open source game of this magnitude.
Linux is only free if your time is worthless.
-Don
You can't fool all of the people all of the time, but apparently you're one of the people they can fool 100% of the time.
-Don
I think he meant he released spoor (poopy, #2, doodoo, etc), not spore. I have bad news for you: that's NOT the same as getting laid.
-Don
My logic isn't flawed, I'm simply reporting the flawed logic and lies that the Discovery Institute themselves perpetuate, but don't tell the general public. They were very upset that the Wedge Document leaked, but it tells it like it really is. The Discovery Institute says one thing in private to their superstitious religious whack-job supporters who believe in the fairy tale of Creationism, and they say something totally different in public. That IS their Wedge Strategy. That's just what the Wedge Document says. They are totally disingenuous liars. They know the Supreme Court struck down teaching Creationism in schools, so they're taking old books on Creationism, crossing out Creationism and writing in Intelligent Design, and doing a global replace of God with Designers. Well guess what: the courts resolutely struck down teaching Intelligent Design in schools, because it's exactly the same bullshit as Creationism.
The fact that you misunderstand Creationism and Intelligent Design enough to think they're different, or that you're gullible, superstitious, and don't believe in science that you believe in the Creationism fairy tale, doesn't change the hard cold facts of life or the laws of physics.
If you don't think those darn secular scientists are competent enough to know what they're talking about, and that the Pope understands science better, then why don't you give up using cell phones and computers and airplanes and electricity, and move to am Amish community?
-Don
You have just perfectly summarized the point of Stanislaw Lem's short story, "The Seventh Sally" in his excellent book "The Cyberiad" (also reprinted in DugHof's "The Mind's I"), which inspired SimCity.
From Wikipedia's SimCity article:
-Don
Sorry to burst your bubble, but Intelligent Design IS Creationism, just renamed to fool people on purpose. I'm sorry you fell for the Dicovery Institute's trick. Read about the Wedge Strategy and the accidentally leaked Wedge Document.
-Don
The Soul of The Sims, by Will Wright
Macintosh HD:XmotiveHarness:src/Motive.c
Tuesday, January 28, 1997 / 9:25 AM
This is the prototype for the soul of The Sims, which Will Wright wrote on January 23, 1997.
I had just started working at the Maxis Core Technology Group on "Project X" aka "Dollhouse", and Will Wright brought this code in one morning, to demonstrate his design for the motives, feedback loop and failure conditions of the simulated people. While going through old papers, I ran across this print-out that I had saved, so I scanned it and cleaned the images up, and got permission from Will to publish it.
This code is a interesting example of game design, programming and prototyping techniques. The Sims code has certainly changed a lot since Will wrote this original prototype code. For example, there is no longer any "stress" motive. And the game doesn't store motives in global variables, of course.
My hope is that this code will give you a glimpse of how Will Wright designs games, and what was going on in his head at the time!
Read The Soul of The Sims code here...
-Don
The rest of the Republican candidates sure have a lot more screws loose than Ron Paul.
Not that Ron Paul isn't a nut job, but anybody who can go on national television and seriously deny they believe in Evolution is a total whack job religious nut case.
Oh but it's OK for Republican candidates to say they believe in silly ridiculous fantasies like Creationism, because the sheepeople who elect them believe in that bullshit, so the politicians are only pandering to their base -- they don't actually believe what they say.
No, Republicans wouldn't want to elect anybody who was remotely in touch with reality or who knew anything about science. Republicans live in a religious fantasy world, and their belief systems are such delicate houses of cards, that they can't tolerate evolution being taught in schools, otherwise their children will figure out their parents and churches have been feeding them bullshit, and they'll loose their faith. And wouldn't that be too bad.
Every Republican running for president is a TOTAL NUT CASE! So why is that a liability for Ron Paul?
-Don
Let's put it this way: typing "yum install foobar" or even "./configure ; make ; sudo make install" is NOT hacking. I assume it took considerably more cleverness to get Linux running on the XBox, so that's probably hacking, if it required some kind of cleverness. Simply doing something you weren't intended to do, but that that doesn't require any cleverness, is not hacking.
-Don
Porting Linux to the XBox was a hack, but just installing something that somebody else created isn't a hack.
Just as writing and performing music is creative, but simply pressing the play button on an iPod isn't creative.
-Don
Installing software is only considered hacking if you wrote the software you installed.
-Don
Who trolled who?
You're nowhere near getting on my shit list. But you bozo bit is certainly set.
-Don
Apparently Jonathan Mayo can dish it out, but he can't take it. :)
-Don
Jonathan Mayo: get your facts straight, and work on your reading comprehension. I never recommended you rewrite anything in Forth. I just mentioned OpenFirmware, which you mentioned on your resume, and that I worked with 20 years ago. I think it's interesting that we both know Forth. (forth ?know if honk else forth learn then). But I never suggested rewriting Micropolis in it!
You're really flying off the handle, accusing me of stalking: You wouldn't answer any of my questions on Slashdot, and you kept attacking me with bullshit, so I contacted you privately via email, where you kept on attacking me. What's so hard about punching "OrangeTide" into google? Your web site, www.orangetide.com: OrangeTide's Home Page is the first result. Your resume is the first link on that page. Your name, Jonathan Mayo, is written in big header text on that page, along with your home address in lovely San Jose, and your home and cell phone number and email address: jon.mayo@gmail.com. Your resume says you work for VMWare, and have worked for Cisco, Agami, Pillar Data Systems, Pioneer Research of America, DirectTV and Sparta Area School Systems. Did you publish all that information yourself, or did somebody else put up a fake resume under your name?
Why do you presume to act like you expect to be anonymous, if you use the exact same handle of slashdot as the name of your web page, and you publish your real name, address, email, and phone numbers on your resume on that web site? You're the one who chose the name of your slashdot user to be the same as the name as your web site, and put all that personal information up on your web site.
If you're trying to be anonymous on slashdot, and offended that I sent your personal email asking "What's your problem on slashdot?", then you've totally failed, and you're a complete idiot. Haven't you ever heard of google? Are you surprised it was so easy for me to look up all that personal information about you that YOU yourself publicly published, simply by typing "OrangeTide" into google?
Why did you publish all that personal information, if you don't want anyone knowing it or contacting you? You have pretty thin skin! Your slashdot profile doesn't say "Don't contact me" -- it just says "I hate slashdot". What's wrong with me sending you email to the address you published on your web site with the same name as your slashdot handle? You're the one acting like a nutjob for all to see, so I contacted you about it, to ask what your problem was. Do you really want me to discuss your behavioral problems in front of everyone instead of sending you personal email? Apparently so, therefore that's what I'm doing now, instead of keeping it private!
If it was so easy for me to punch your slashdot handle into Google, and get your real name, email address, home address and phone number, do you really think potential employers won't google for your name and read what you've written on slashdot? You should be more careful about making a total fool out of yourself on slashdot, because it might come up in a job interview (or you might never get that job interview in the first place, with anyone who's read what you've posted, because your postings are extremely foolish). Anyone can read your posting history to see what a frustrated dork you are.
-Don
Hey, how's that Objective C and Haskell code going?
-Don
I'd like to make a couple more remarks to clear up some of the misinformation that OrangeTide is spreading. (Not addressed to OrangeTide, but anyone else who's read the hillarious stuff he's been posting).
Haskell is a wonderful language. Just because OrangeTide says he likes it doesn't mean it sucks. I would love for somebody to rewrite Micropolis in Haskell. I just don't think OrangeTide is capable of doing it himself let alone understanding how much work it would be.
Rewriting Micropolis in C++ is the first step towards rewriting it in other better languages. There is only one thing worse than C++, and that's C. And it just happens to be quite easy to translate C to C++, without heavily modifying it or changing its meaning, because "this" is implicit. And it also makes it very easy to use SWIG to integrate the code with many different scripting languages. That's why I used C++ instead of a vastly superior and DIFFERENT language like Haskell. I would rather open Micropolis up to many different scripting languages, than locking it into one esoteric one that doesn't have industrial quality tools and support. (This is not a slam on Haskell -- it's just that the reality is that C++ is so much more widely supported and universal, at this point in history.) Eventually we can rewrite all of Micropolis in an easier to understand and maintain language like Python, and put a high-level kid-friendly visual programming language interface over it, but the first step is to clean up and rationalize the existing code base.
OrangeTide said "Not sure why you insist I rewrite it in C++", but I'm not asking him to help, because he hasn't offered any useful criticism or suggestions. But I would certainly like other people to help! I already did the first cut of cleaning up and C++-ifying the code, but there is lots more work that needs to be done before the new MicropolisCore code is a playable game.
-Don
You're never going to annoy me until I see you actually write some code. So far all you've done is talk, and your talk isn't impressive nor coherent. You can't hold up your side of the argument, nor address any of the points I've raised. I hope your code isn't as bad as your rhetoric. So how's your project rewriting Micropolis in Objective C going? Or have you finished that, and started rewriting it in Haskell? (Have you ever written a line of Haskell in your life? Show me!)
How much respect do you think you've earned from me or anyone else, by all your talking and complaining and trolling, without having produced any code? Talk is cheap, kiddo. And your cheap talk isn't even interesting nor realistic. You sound like you have a broomstick up your butt, but you haven't ever gotten laid and really need it bad. Your profile says you hate slashdot, but you yourself are the epitomy of what's so horrible about it. You ARE slashdot!
I'm not annoyed, but quite amused. :)
-Don
Because you complained that I already translated it to C++, and said you wanted to rewrite it in Objective C to waste my time and annoy me. Don't let me stop you! How's the rewrite going?
Have you been following the discussion I've been having with Alan Kay?
-Don
And Lisp is like Lisp, except that it uses S-expressions for code instead of code, S-expressions for data instead of data, and S-expressions for macros instead of macros.
Q: What's the difference between a duck?
A: One of its legs are the same!
-Don
Of course it's possible to rewrite the simulator in any other language. It's just a question of how much work would it be, and how sure you would be that it did the same thing.
It was comparatively little work to rewrite C code in C++, because that's exactly what C++ was designed to do: take old C code with global variables and functions, and encapsulate it in a class with a well defined interface. Because C++ has the implicit this parameter to each member function, and it's not necessary to explicitly specify this when accessing member variables and methods, you don't have to change C code very much to translate it to C++. A different language with explicit this (or self) would require meticulously changing every line of code, and that would be orders of magnitude more work.
The first step to translating a big pile of C code to another higher level language is understanding and strictly defining what it does. Translating it to C++ is the first step in that process. That gives the code a lot more structure and coherence, without disrupting how it works.
The next step is to clean it up and toss out everything that isn't relevent -- all the old user interface and operating system hacks that no longer are necessary and have nothing to do with the simulator.
Once you have a clean core of code that verifyable works with well defined interfaces and without any irrelavent crap in it, it's much easier to start rewriting it in other languages like Python or Lua. (I would NOT suggest using Perl, though. That is a horrible, dead end language, antithetical to teaching kids how to program.)
Alan Kay and I have been having an interesting discussion about how to rewrite SimCity in much higher level languages than Python and Perl, specifically visual programming languages like eToys, Star Logo, Max/MSP, KidSim (Stagecraft Creator), Bounce (Body Electric), SimAntics, etc, along the lines of Robot Odyssey.
What we want to do is to open up SimCity to the Python scripting language as a first step, and then write a high level visual programming language in Python, easy enough for kids to use, but powerful enough for real programming.
Here are some references: ;-) at Apple wrote "A Taxonomy of Simulation Software"
Ideas for Sugar development environment from HyperLook SimCity
OLPC Visual Programming Languages for Education
Discussion with Alan Kay about Visual Programming
Discussion with Alan Kay about Robot Odyssey
OLPC Visual Programming Language Discussion with Guido van Rossum and Alan Kay
Alan Kay on Programming Languages
The Shape of PSIBER Space: PostScript Interactive Bug Eradication Routines
Kurt Schmucker (inventor of the C++ Barf Bag
Tim Smith at Anglia Polytechnic University in Essex wrote "A review of simulated and micro-world environments"
Brad Myers: Taxonomies of Visual Programming and Program Visualization
-Don
I was using the Aztex Manx C compiler on the Apple ][ back around 1982 or so, but I don't know which C compiler Will Wright used on the C64. I will ask him some time. Manx C did produce really bloated code (it had to -- the 6502 has 8 bit registers, and adding two shorts took 7 instructions: CLC LDA ADC STA LDA ADC STA), but back then people wrote C code very differently than they do today with optimizing compilers.
Every line of code you write, you had to understand and think about how the compiler was going to translate it into machine language, and write it as efficient as possible, readability be damned. SimCity had a bunch of code that went like "register z = 0; foo = z; bar = z; baz = z; z++; one = z; z++; two = z;".
Nobody writes like that any more (for a good reason: maintainability is much more important than hand coded optimization, which has hit the point of diminishing returns because the optimizers are so smart now). There is no advantage to programming that way any more, because now days the compiler deconstructs your code and applies all the optimizations automatically, using as many registers and optimization tricks as possible. Modern compilers won't let you declare a register variable with no type, and there is no longer any advantage to declaring register variables, or initializing variables from other variables instead of constants.
Designing good efficient algorithms is what's important, not typing them in so as to spoon feed a stupid compiler that can't figure out how to use registers or initialize variables efficiently. And good efficient algorithms should be written in clean maintainable readable code, so people can understand them, and bugs are easy to fix.
To paraphrase the introduction to Abelson Sussman and Sussman's "Structure and Interpretation of Computer Programs": Computer programs should be written first and foremost for people to read, and only incidentally for computers to execute.
-Don
I'm so glad to hear you mean what you say! So when should I expect you to post the Micropolis source code rewritten in Objective C? How is that work going? What's your "lines of code written" / "words spoken" ratio so far?
-Don