I've sent a proposal off to a guy who was recommended by a friend... though it bothers me a little that if this person is such a guru why is their website non-existent -- just an "under construction" placeholder. Even worse, the placeholder is put there by the company he bought the site from, so he owns a domain with no content.
The end of the week I'll give an improved version of the proposal to someone else who has a pretty good track record in the community. So we'll see what happens.
I hope I can actually do this. If my programming skills aren't up to the challenge I'll have to get others to help. I hope there will be enough funds to see this through. [gulp]
I'm obliged to say that if you're doing a project that's getting close to 100,000 lines of code, you've probably reached the tipping point where the advantages of strongly typed languages outweigh their aggravations. OK, as a real, live software engineer, I had to say that. But while there are software engineers who build elaborate cathedral-like structures in C++ for a project that'd be a 1,000 line hack in C, I think that's just stupid.
For general purpose hacking, it's C. No contest. But I'm afraid my time writing C++ has spoiled the hackish character of my C. I find myself writing the equivalent of enums and constructors and accessors and all that stuff. And where I formerly wouldn't hesitate to plunge right in to a big text manipulation job with strtok(), any more I'm tempted to do jobs like that in a scripting language.
The only thing that's keeping me from jumping ship altogether (and remember, just about all the scripting languages I use a lot look like C, so it's not that big a jump) is that it's really easy to slap a quick and dirty Windows interface onto a C program. I have no idea how you'd do that with a perl script.
For script hacks in your web browser, client side, it's JavaScript. And if you want to do something quick and dirty on a Windows box (e.g., firing off an XML parser on a document), Windows Scripting Host supports JavaScript, so why not?
Server side, I like PHP and, if you need a database, MySQL. I've done enough PHP that I'm not put off by PHP's miserable support for debugging.
XSLT is my tool of choice if XML appears anywhere in the project, and I'd almost want to put XML into the project just because I adore hacking XSLT so much.
I like perl and can basioally get around in it, but I prefer stealing code snippets from CPAN and gluing them together rather than doing a big perl development.
I've always wanted to learn python and ruby, but haven't yet. I used to know quite a bit of Forth (I even wrote a pretty elaborate Forth compiler and development system for the Radio Shack Color Computer -- remember that?), and I can write "hello world" in lisp (actually CLIPS).
And, of course, when you want the real truth, you can't get more loosely typed than assembler.
Do I get the job? :)
Actually, if you're trying to figure out what language to learn first, you'll never be sorry for taking a course in C.
I might enlarge upon this when I get back tonight, but I'm waiting for my first cup of tea of the morning to infuse at the moment...
Bob, you'd instantly have any job it was in my power to give. And I know your humor and knowledge would make you perfect for a project such as this one. You will always be at the top of any such list.
Like you, I've learned quite a number of languages... well, perhaps not as many as you. I used to use FORTH quite a lot way in the dim, distant past too, and on the CoCo also! That was one cute computer. The 6809 was perfect for FORTH with its two stack registers. FORTH has an incredible lot going for it -- fast, economical, can be realised directly in hardware (there are FORTH chips!!) and it is infinitely extensible. But it is a bugger to learn and hard to debug.
BASIC is the easiest language to learn and use and that counts for an awful lot. Just most versions are impossible to use for big projects. And it is impossible to extend.
I was interested if there was some language that would work well for this project that I didn't know about. I don't like C++ or most of the object oriented languages -- they seem to be too verbose and it always seems to take too long to do the simplest things. I used to enjoy C, though it has been a long time now. I dabbled briefly in LISP, but never liked it. Javascript is pretty neat because of the ease of actually getting results some time soon after writing the program. Java stinks (my opinion). Java might have been a cool language if... well... I've heard recently a number of people say that python rocks, and these are people who were previously C++ and Java gurus (like Bruce Eckle), but I haven't learned it yet... though I want to make time for it. Lua has recently come to my attention with Chris Marrin using it for scripting in Emma and one of the big VR gaming systems (Halflife? not sure) scripted in Lua. Perl is OK for short things, but is too hard to read for big projects -- I think it would become mired too quickly. I recently read an intriguing article about using AWK/GAWK (remember that?!) for AI programming and although I haven't learned that one I must admit he made an interesting case. A while ago Niclas Olafsson suggested Elang from Ericsson labs. I have to say its capabilities sound very cool... another language to look into one day.
I'm a big fan of typeless languages (why force the human to keep track of types when you have a computer?) and I'm very much in favor of heightened interactivity, so needless to say I never did like the non-interpreted languages. Compiling is OK, but I figure leave that till the debugging is done.
I'd love to use an existing language, but nothing seems to be perfectly suited to the job. POV-Ray scene description language is great because you can mix models and mathematical programming right there in the same file, but it would be hell to program an interpreter/compiler for it and specialised animation commands still need to be added to it.
VRML/X3D have a number of technical deficiences that make what could have been a brilliant scene description language unusable for anything complex.
Waaaahh!
I think I still have to write my own language -- it will probably hybridise with POV-Ray to make available much of those libraries and code.
Re: Welcome back!
Date: 2006-02-01 02:08 am (UTC)I've got my fingers and toes crossed. You deserve every good thing in the world.
Oh. I was the huggies guy. Sorry, I still can't figure out how to work this Intarnets thingy.
Re: Welcome back!
Date: 2006-02-01 02:24 am (UTC)Not a done deal yet.
I've sent a proposal off to a guy who was recommended by a friend... though it bothers me a little that if this person is such a guru why is their website non-existent -- just an "under construction" placeholder. Even worse, the placeholder is put there by the company he bought the site from, so he owns a domain with no content.
The end of the week I'll give an improved version of the proposal to someone else who has a pretty good track record in the community. So we'll see what happens.
I hope I can actually do this. If my programming skills aren't up to the challenge I'll have to get others to help. I hope there will be enough funds to see this through. [gulp]
Re: Welcome back!
Date: 2006-02-01 02:27 am (UTC)Strong typing (when the keys stick)
Date: 2006-02-01 07:31 pm (UTC)I'm obliged to say that if you're doing a project that's getting close to 100,000 lines of code, you've probably reached the tipping point where the advantages of strongly typed languages outweigh their aggravations. OK, as a real, live software engineer, I had to say that. But while there are software engineers who build elaborate cathedral-like structures in C++ for a project that'd be a 1,000 line hack in C, I think that's just stupid.
For general purpose hacking, it's C. No contest. But I'm afraid my time writing C++ has spoiled the hackish character of my C. I find myself writing the equivalent of enums and constructors and accessors and all that stuff. And where I formerly wouldn't hesitate to plunge right in to a big text manipulation job with strtok(), any more I'm tempted to do jobs like that in a scripting language.
The only thing that's keeping me from jumping ship altogether (and remember, just about all the scripting languages I use a lot look like C, so it's not that big a jump) is that it's really easy to slap a quick and dirty Windows interface onto a C program. I have no idea how you'd do that with a perl script.
For script hacks in your web browser, client side, it's JavaScript. And if you want to do something quick and dirty on a Windows box (e.g., firing off an XML parser on a document), Windows Scripting Host supports JavaScript, so why not?
Server side, I like PHP and, if you need a database, MySQL. I've done enough PHP that I'm not put off by PHP's miserable support for debugging.
XSLT is my tool of choice if XML appears anywhere in the project, and I'd almost want to put XML into the project just because I adore hacking XSLT so much.
I like perl and can basioally get around in it, but I prefer stealing code snippets from CPAN and gluing them together rather than doing a big perl development.
I've always wanted to learn python and ruby, but haven't yet. I used to know quite a bit of Forth (I even wrote a pretty elaborate Forth compiler and development system for the Radio Shack Color Computer -- remember that?), and I can write "hello world" in lisp (actually CLIPS).
And, of course, when you want the real truth, you can't get more loosely typed than assembler.
Do I get the job? :)
Actually, if you're trying to figure out what language to learn first, you'll never be sorry for taking a course in C.
Re: Strong typing (when the keys stick)
Date: 2006-02-01 08:46 pm (UTC)Bob, you'd instantly have any job it was in my power to give. And I know your humor and knowledge would make you perfect for a project such as this one. You will always be at the top of any such list.
Like you, I've learned quite a number of languages... well, perhaps not as many as you. I used to use FORTH quite a lot way in the dim, distant past too, and on the CoCo also! That was one cute computer. The 6809 was perfect for FORTH with its two stack registers. FORTH has an incredible lot going for it -- fast, economical, can be realised directly in hardware (there are FORTH chips!!) and it is infinitely extensible. But it is a bugger to learn and hard to debug.
BASIC is the easiest language to learn and use and that counts for an awful lot. Just most versions are impossible to use for big projects. And it is impossible to extend.
I was interested if there was some language that would work well for this project that I didn't know about. I don't like C++ or most of the object oriented languages -- they seem to be too verbose and it always seems to take too long to do the simplest things. I used to enjoy C, though it has been a long time now. I dabbled briefly in LISP, but never liked it. Javascript is pretty neat because of the ease of actually getting results some time soon after writing the program. Java stinks (my opinion). Java might have been a cool language if... well... I've heard recently a number of people say that python rocks, and these are people who were previously C++ and Java gurus (like Bruce Eckle), but I haven't learned it yet... though I want to make time for it. Lua has recently come to my attention with Chris Marrin using it for scripting in Emma and one of the big VR gaming systems (Halflife? not sure) scripted in Lua. Perl is OK for short things, but is too hard to read for big projects -- I think it would become mired too quickly. I recently read an intriguing article about using AWK/GAWK (remember that?!) for AI programming and although I haven't learned that one I must admit he made an interesting case. A while ago Niclas Olafsson suggested Elang from Ericsson labs. I have to say its capabilities sound very cool... another language to look into one day.
I'm a big fan of typeless languages (why force the human to keep track of types when you have a computer?) and I'm very much in favor of heightened interactivity, so needless to say I never did like the non-interpreted languages. Compiling is OK, but I figure leave that till the debugging is done.
I'd love to use an existing language, but nothing seems to be perfectly suited to the job. POV-Ray scene description language is great because you can mix models and mathematical programming right there in the same file, but it would be hell to program an interpreter/compiler for it and specialised animation commands still need to be added to it.
VRML/X3D have a number of technical deficiences that make what could have been a brilliant scene description language unusable for anything complex.
Waaaahh!
I think I still have to write my own language -- it will probably hybridise with POV-Ray to make available much of those libraries and code.