Abuse (a great game) was written almost entirely in Lisp. I can't think of other examples, but there's no reason there couldn't be more games written in Lisp. As ancient as it is, Lisp (and a lot of the other functional languages he dismisses) has a lot of advantages over even his proprosed "C++ with templates done right." Like lambda expressions, which let you make up new functions on the fly (very handy for AI).
And what about Python? Why does everyone ignore Python for Java, when Python is such a cleaner design, and easier to use. And not subject to the whims of a single company.
Furthermore, Lisp and Python are interpreted, which means you can generate and load extra code at run-time. Data files can have program chunks, and it becomes easier not only to create new data packs, but to add new features into that data while still using the original engine. Plus advanced users can have scriptable config files and preferences, and have much better ability to do things like bind a key to a complex set of actions.
I think he ignores these, and other languages, because they are slow. But you don't need to write the whole application in these languages. If you code the graphics and other intense aspects of the game in C, you can make those into a module for your higher-level language of choice, thus getting the best of both speed and flexibility. This is the way things are done now, with most games being all C with optimized bits of assembly, just at a higher level. The logical progression is not to extend new ides to C, but to write a language that expresses those ideas truly naturally, and use that except where speed is important.
It seems that in his history of languages, Sweeney fell victim to his own observed inability to switch languages. He still thinks in terms of C. I would agree with the progression from circuits to assembly to C, but the next logical step is most certainly not C++. That's the equivalent of an assembly programmer realizing the concept of funtions and data types, and building a whole suite of assembly macros to implement this concept. It works, but it's a hack. And Java is a hack on a hack with many other problems as well (but that way lies religious issues). No, the succesor in this model to C would be Simula or Smalltalk. And these languages are already more powerful than his proposed next generation language. The object oriented concept supported parametric polymorphism and virtual classes from the start, and it just wasn't implemented properly in C++. If you really want to know what the next generation of languages is, you need to look outside the box, and think of something genuinely new, which is of course genuinely difficult. But I hope that whoever comes up with it first won't hack it onto the current most popular language, but will keep it pure.
-- foof - Lisper, Smalltalker, and all around poor speaker.
It encourages secrecy and non-cooperation between the various people working on projects like this. That transforms the usual model for OpenSource development from web-based cooperation into commercial competition.
This is a design competition. It's not an open source issue because there is no source involved until the competition is over. At that point the best design is chosen, and becomes an open source project. Since no code is ever hidden, I see no problem with the design being done in private, since most open source programs start out as personal projects, and are not designed from their conception in an open source process.
It doesn't encourage the best people to do the work because they'll say to themselves "I could work for six months on this - and then lose the competition and get nothing". Since they have already fostered a competitive model, that's a bad thing.
It might encourage the best people if, say, they were particularly annoyed with one of the current programs. I couldn't live without make, but partly because I find it so useful, I am especially aware of its limitations, and am tantalized by the idea of a better make.
Also, some people may be willing to take risks on this sort of thing, especially if companies start creating more competitions. I am leaving my current job as a programmer soon, and (for many reasons) will never again work on closed source software. But if there were enough projects of this kind available at differing levels, I could see myself as a sort of software bounty hunter.
The wording of the competition seems to prohibit developers from doing the rational thing which is to start with the best parts of the existing autoconf/make system and just fix whatever is perceived to be broken. Even worse, the people who might have been working on improving those projects are now dragged off to start again from scratch.
They're looking for new designs, which means they want you to look outside the box. Perhaps for one or all of these programs that doesn't need to be done, and the best solution is to improve the existing tool, but you can't know that ahead of time, and it would be hard to judge someone who created their own design against someone who modifed an existing design anyway.
Putting money into OpenSource teams has to be done with great care since it can often result in serious internal debates about who contributed most and who deserves what share of the money.
Putting money into anything has to be done with care, and people will always fight over it. But if you can't come to an agreement with the people you're working with, you probably shouldn't be working with them.
It would have been much better if this company had hired a good programmer for a year or two and had them work on 'fixing' whatever it is that they dislike in autoconf/make.
Apart from the fact that they're looking for new designs rather than just 'fixing' something, one of the points of open source is that hiring someone to do something doesn't always get the best results. Offering the money to anyone who's interested is more likely to attract someone who really is interested and get a great program.
Failing that, break the money up into $20k 'grants' and offer them to people who are already working in the right direction.
This is a good idea, but doesn't encourage people who aren't already involved in something to get into it.
This competition is A Bad Thing.
I think this competition is A Good Thing, and I hope there are more like it in the future.
But isn't the point of this to catch potentially violent kids before they do anything? It's not very clear what they plan to do with people once they've been branded.
I'm sorry Mr. Johnson, you're son has been labeled too violent. We'll have to give him a steady diet of soma, err... prozac to keep him normal. No, his grades shouldn't suffer, in fact the drugs will probably kill his creativity making him a better student than before.
Mrs. Smith, John has been categorized as
ultra-violent. It'll be nothing but Beethoven's 9th for him.
Abuse (a great game) was written almost entirely in Lisp. I can't think of other examples, but there's no reason there couldn't be more games written in Lisp. As ancient as it is, Lisp (and a lot of the other functional languages he dismisses) has a lot of advantages over even his proprosed "C++ with templates done right." Like lambda expressions, which let you make up new functions on the fly (very handy for AI).
And what about Python? Why does everyone ignore Python for Java, when Python is such a cleaner design, and easier to use. And not subject to the whims of a single company.
Furthermore, Lisp and Python are interpreted, which means you can generate and load extra code at run-time. Data files can have program chunks, and it becomes easier not only to create new data packs, but to add new features into that data while still using the original engine. Plus advanced users can have scriptable config files and preferences, and have much better ability to do things like bind a key to a complex set of actions.
I think he ignores these, and other languages, because they are slow. But you don't need to write the whole application in these languages. If you code the graphics and other intense aspects of the game in C, you can make those into a module for your higher-level language of choice, thus getting the best of both speed and flexibility. This is the way things are done now, with most games being all C with optimized bits of assembly, just at a higher level. The logical progression is not to extend new ides to C, but to write a language that expresses those ideas truly naturally, and use that except where speed is important.
It seems that in his history of languages, Sweeney fell victim to his own observed inability to switch languages. He still thinks in terms of C. I would agree with the progression from circuits to assembly to C, but the next logical step is most certainly not C++. That's the equivalent of an assembly programmer realizing the concept of funtions and data types, and building a whole suite of assembly macros to implement this concept. It works, but it's a hack. And Java is a hack on a hack with many other problems as well (but that way lies religious issues). No, the succesor in this model to C would be Simula or Smalltalk. And these languages are already more powerful than his proposed next generation language. The object oriented concept supported parametric polymorphism and virtual classes from the start, and it just wasn't implemented properly in C++. If you really want to know what the next generation of languages is, you need to look outside the box, and think of something genuinely new, which is of course genuinely difficult. But I hope that whoever comes up with it first won't hack it onto the current most popular language, but will keep it pure.
--
foof - Lisper, Smalltalker, and all around poor speaker.
So if Microsoft wins one of the Why the Hell Not's, is CowboyNeal really going to hug Bill Gates? Will there be a webcast we can watch? :)
--
foof
This is a design competition. It's not an open source issue because there is no source involved until the competition is over. At that point the best design is chosen, and becomes an open source project. Since no code is ever hidden, I see no problem with the design being done in private, since most open source programs start out as personal projects, and are not designed from their conception in an open source process.
It might encourage the best people if, say, they were particularly annoyed with one of the current programs. I couldn't live without make, but partly because I find it so useful, I am especially aware of its limitations, and am tantalized by the idea of a better make.
Also, some people may be willing to take risks on this sort of thing, especially if companies start creating more competitions. I am leaving my current job as a programmer soon, and (for many reasons) will never again work on closed source software. But if there were enough projects of this kind available at differing levels, I could see myself as a sort of software bounty hunter.
They're looking for new designs, which means they want you to look outside the box. Perhaps for one or all of these programs that doesn't need to be done, and the best solution is to improve the existing tool, but you can't know that ahead of time, and it would be hard to judge someone who created their own design against someone who modifed an existing design anyway.
Putting money into anything has to be done with care, and people will always fight over it. But if you can't come to an agreement with the people you're working with, you probably shouldn't be working with them.
Apart from the fact that they're looking for new designs rather than just 'fixing' something, one of the points of open source is that hiring someone to do something doesn't always get the best results. Offering the money to anyone who's interested is more likely to attract someone who really is interested and get a great program.
This is a good idea, but doesn't encourage people who aren't already involved in something to get into it.
I think this competition is A Good Thing, and I hope there are more like it in the future.--
foof
But isn't the point of this to catch potentially violent kids before they do anything? It's not very clear what they plan to do with people once they've been branded.