IDE are important, especially for the Java community. Didn't you notice that there are hardly any Swing applications real people actually use other than IDEs with Swing GUI builders?
It still sucks that OOo (like KOffice, by the way) doesn't use XML files for documents, but a zip file containing a collection of XML and possibly non-XML files. It makes sense for storage efficiency, but sucks for usefullness, you have to preprocess OOo files before you can use you generic XML tools on them.
Re:time to tax artists, typists and other humans t
on
DMCA, Auf Deutsch
·
· Score: 1
You missed one:
A brain
I can remember lots of books, songs and films I've only payed at most once to read, listen, or see, without paying any further royalties to the IP owners. If that doesn't make me an IP pirate, what else should?
Die Frage ist doch eher, ob die Möglichkeit des Kopierens ein finanzieller Verlust für die Content-Produzenten ist. Ich muss ja z.B. auch Mehrabgaben für Drucker bezahlen, wenn ich nur meine eigenen Urlaubsfotos drucke, genau wie ich jetzt schon GEZ-Gebühren bezahlen muss, weil ich einen Fernseher habe, auch wenn ich keine Antenne habe und nur Videos gucke.
Re:Printers == copyright circumvention device?
on
DMCA, Auf Deutsch
·
· Score: 1
Wasn't it that printer and copier prices included some amount for the VG Wort anyway? So that you now have to pay two times for the possibility to perhaps print texts written by professional writers?
I don't think I need bother to defend Java against these accusations except to say that Java is a to-the-point OO language with which it is possible to create vastly complex OO structures in a very readable manner.
Well, I guess that depends on what you compare it to. Java doesn't look that much as an "to-the-point OO language" when you know Smalltalk or CLOS or Self, but certainly when you compare it to C++. Same for readability.
As far as the Java culture, there is an enormous Java culture producing an enormous amount of code.
Maybe they wouldn't have to produce these enourmous amounts of code if they used a language better at supporting high-level abstractions.;-)
The Java culture is full of serious and brilliant developers.
Java culture as practiced is also full of hordes of mediocre library-shopping code monkeys without passion for or deep understanding of programming. That is good to get stuff done, and I'm fine with (most of) those people, but this as opposed to being a "Hacker" as it gets.
Of course there are brilliant things going on in the Java world (after all, it's basically the default language for a lot of kinds of project now, it would be a tragedy if it wouldn't be), but also consider that Graham's article is old, written before all the cool Jakarta stuff has been popular, for example. But after the Java creators said that they wanted to create a language where individual mediocre coders couldn't do as much harm in big projects as in other languages.
Then again, I consider that article rather weak too. But there is a core of truth hidden in it.
If you want to build complex systems fast, nobody is going to turn to LISP for a solution. There isn't one. LISP is a beautiful language which I think any programmer would benefit to learn, but its not a language to get things done with.
I guess Graham would disagree, since he got rich by getting stuff done in Lisp faster and better than most others at the time with Viaweb.;-)
It probably depends on what kind of complexity you are talking of. I completly agree that Java wins hands down when it comes to library availability (about every language wins over CL there. Except Scheme, maybe;-), and that can be a show-stopper. If most of what your app needs is available as a ready-to-use Java library, definitly use Java. But when it comes to creating the new stuff that makes your app unique, when you try to boldly implement what no one has implemented before, extending the state of the art, learning more and more about the problem as you try to solve it, Lisp will offer more.
Write enterprise portals in Java. Write intelligent search agents in Lisp. If in doubt, integrate them with Corba, SOAP, or one of the specific Java-Lisp-interfaces.
It's no surprise that he feels future languages 'will be list-based' and 'arrays will be obsolete'.
You do realize that Lisp has arrays just as it has lists, structures, objects etc?
He wrote another
article in 2001 which declared Java a 'bad technology,' and not because he knew Java or had ever used it, but because his 'Hacker's radar' detected it.
No he did not. He wrote an essay about why Java has no appeal to (a certain kind of) hackers. He wrote about the Java culture, not the Java[TM] Programming Language, explicitly saying so.
Believe it or not, but there is a reason why Lisp users are more often also Lisp lovers than Java users are Java lovers: Lisp has very few primitives, and very many high-level tools built upon it. While you have a productive toolset from the beginning, you are always able ot change everything if it doesn't happen to fit your problem exactly, using the more basic tools.
For example, Lisp object systems are implemented in Lisp itself. Take that together with Lisps ability to redefine programs at runtime, you get something way more powerful that Java's object system. If you don't like an object system, change it until you do, or write your own. Everything in the language not only makes this approach of programming by language-tweaking possible, but encourages it - don't like the default way multiple inheritance is done in CLOS, the standard Lisp object system? Use the meta-object protocol to implement a metaclass that implements your weirdo inheritance rules.
Conventional languages like Java don't allow you to do this, instead they force you to think the way it's invetors wanted you to (which is not neccessarily the way they like to think themselves, as in the case of COBOL or Java). Lisp is not a single language - it is a toolkit to easily build a language that is perfect for your task.
The biggest thing I would miss if I went back to a text editor would me the auto-completion.... I'm sorry, notepad just doesn't have it.
Use a better Editor, then. Emacs can auto-complete both based on tags (i.e. it understands you source code), and even without it, for every kind of text format you happen to write: it just looks in all the open buffers for possible completions.
I write Common Lisp using the Ilisp package mostly, and with that you also get hints about the arguments a function wants etc. I'm sure something like that is available for other languages, too.
There seems to be a Lisp plugin for Eclipse, but frankly, I doubt that it will be too successful. It is hard to beat the productivity of Emacs, Ilisp and CL.
But the XSLT is a part of your application. You don't have to go through a complete edit-compile-link circle that way, but you can have that with a lot of other programming languages, too. (Yes, XSLT is a programming language, just a rather specialized one, with very verbose syntax and not too much helpful tools like debuggers or profilers).
This isn't about strictly separating code and data, it's about using different tools for different layers of your app to blur this distinction, which is a good thing. You can build really flexible apps with it. Think ~/.emacs - is it a config file (data), or a programm?
Here is your fundamental mistake: Sendmail is not indented to be configured by humans. The format of sendmail.cf is optimized for bored ancient nordic gods that love puzzles, not for people trying to get a job done.
ad 1: Don't. First explain the easy way, then explain what goes on under the hood. Users don't read READMEs anyway, so if you are lucky and have one that does, at least don't assume that he will read all of it.
ad 2: The primary font end for the ports collection on FreeBSD is "portinstall", which is hardly any harder to grasp than rpm or apt. Of course, if you use another BSD or don't want to wait for your software compiling, there's always pkg_add, which will be happy to download the package from a well-known FTP server, including dependencies.
Impressive. Even if I hear lots of people cry "operator abuse", in this case the result (or you example anyway) looks quite OK, given that C++ was so not designed to embed DSLs without a preprocessor. It raises the question, however, is there a sane way to debug this?
It's really an exciting time for users of computer languages.
If you like that kind of stuff, you should check out Lisp macros in a spare minute. Lispers basically build DSLs all the time - the usual way of programming is to modify the language until it is exactly the right tool for the job. (And, like you example, this is completly portable). Some examples are various Prolog implementations, or CL-XML that compiles its parser directly from eBNF. You can completly redefine the Syntax, things like implementing control structures (like "while" or loops, for example) are trivial.
A very good (free) book on this topic, although not dealing too much with custom syntax, is On Lisp by Paul Graham, the Bayesian spam-filter guy.
That study is off-topic, it doesn't even mention BSD. Here there are also objective comparisons between Linux and BSD that you should consider before setting up your next server.
You loose a lot of flexibility. For example, consider a list where you put all kinds of stuff in, and dynamically dispatch on the type of whatever you fetch from it.
Sure, you can create a union type for that in ML, and use pattern matching for the dispatch. But what happens if you want to handle unknown types of data, with some default behaviour? Or if you just want to add some new kind of stuff? You'd have to modify the type definition and the dispatching function for every type you add. Eww.
That said, don't take the Gabriel quote too serious. I do agree that static typing has it's places - I just like to choose myself which approach is better for a given problem. Common Lisp allows me to do that; neither ML nor Scheme do, AFAIK.
Re:Does anyone else get the feeling
on
Opencroquet
·
· Score: 1
Except for the 3D part - and I'm not convinced that it is a good idea - this sounds a lot like the Symbolics LispMachine OS, Genera. Which was really, really cool.
However, I wonder if the "no boundaries" way of things is still a good idea, given a machine connected to the hostile Internet. I wouldn't want a cracker end up in an "everything can be modified" environment.
lispers have transcended need for physical "containers" in this universe, and instead exist as pure energy...
Not at all. I don't know about Scheme, but there has been a movement to form "user groups" by Common Lisp people around the world (see this list of local lispnik groups and check if there are some people in your area).
In most cases those meetings turned out to happen in nice bars and involved both talking Lisp and drinking beer, which IMHO clearly qualifies as physical.
IDE are important, especially for the Java community. Didn't you notice that there are hardly any Swing applications real people actually use other than IDEs with Swing GUI builders?
Please don't ask Novell of all companies to work on desktop usability. If you would ever have had to use Groupwise, you would understand.
But what if OSS doesn't want to play in that world, but rather to build stuff that works?
It still sucks that OOo (like KOffice, by the way) doesn't use XML files for documents, but a zip file containing a collection of XML and possibly non-XML files. It makes sense for storage efficiency, but sucks for usefullness, you have to preprocess OOo files before you can use you generic XML tools on them.
- A brain
I can remember lots of books, songs and films I've only payed at most once to read, listen, or see, without paying any further royalties to the IP owners. If that doesn't make me an IP pirate, what else should?Die Frage ist doch eher, ob die Möglichkeit des Kopierens ein finanzieller Verlust für die Content-Produzenten ist. Ich muss ja z.B. auch Mehrabgaben für Drucker bezahlen, wenn ich nur meine eigenen Urlaubsfotos drucke, genau wie ich jetzt schon GEZ-Gebühren bezahlen muss, weil ich einen Fernseher habe, auch wenn ich keine Antenne habe und nur Videos gucke.
Wasn't it that printer and copier prices included some amount for the VG Wort anyway? So that you now have to pay two times for the possibility to perhaps print texts written by professional writers?
Of course there are brilliant things going on in the Java world (after all, it's basically the default language for a lot of kinds of project now, it would be a tragedy if it wouldn't be), but also consider that Graham's article is old, written before all the cool Jakarta stuff has been popular, for example. But after the Java creators said that they wanted to create a language where individual mediocre coders couldn't do as much harm in big projects as in other languages.
Then again, I consider that article rather weak too. But there is a core of truth hidden in it.
I guess Graham would disagree, since he got rich by getting stuff done in Lisp faster and better than most others at the time with Viaweb.It probably depends on what kind of complexity you are talking of. I completly agree that Java wins hands down when it comes to library availability (about every language wins over CL there. Except Scheme, maybe ;-), and that can be a show-stopper. If most of what your app needs is available as a ready-to-use Java library, definitly use Java. But when it comes to creating the new stuff that makes your app unique, when you try to boldly implement what no one has implemented before, extending the state of the art, learning more and more about the problem as you try to solve it, Lisp will offer more.
Write enterprise portals in Java. Write intelligent search agents in Lisp. If in doubt, integrate them with Corba, SOAP, or one of the specific Java-Lisp-interfaces.
Still trying to get the same old program to run without coredumps, probably.
Believe it or not, but there is a reason why Lisp users are more often also Lisp lovers than Java users are Java lovers: Lisp has very few primitives, and very many high-level tools built upon it. While you have a productive toolset from the beginning, you are always able ot change everything if it doesn't happen to fit your problem exactly, using the more basic tools.
For example, Lisp object systems are implemented in Lisp itself. Take that together with Lisps ability to redefine programs at runtime, you get something way more powerful that Java's object system. If you don't like an object system, change it until you do, or write your own. Everything in the language not only makes this approach of programming by language-tweaking possible, but encourages it - don't like the default way multiple inheritance is done in CLOS, the standard Lisp object system? Use the meta-object protocol to implement a metaclass that implements your weirdo inheritance rules.
Conventional languages like Java don't allow you to do this, instead they force you to think the way it's invetors wanted you to (which is not neccessarily the way they like to think themselves, as in the case of COBOL or Java). Lisp is not a single language - it is a toolkit to easily build a language that is perfect for your task.
I write Common Lisp using the Ilisp package mostly, and with that you also get hints about the arguments a function wants etc. I'm sure something like that is available for other languages, too.
There seems to be a Lisp plugin for Eclipse, but frankly, I doubt that it will be too successful. It is hard to beat the productivity of Emacs, Ilisp and CL.
This isn't about strictly separating code and data, it's about using different tools for different layers of your app to blur this distinction, which is a good thing. You can build really flexible apps with it. Think ~/.emacs - is it a config file (data), or a programm?
ad 2: The primary font end for the ports collection on FreeBSD is "portinstall", which is hardly any harder to grasp than rpm or apt. Of course, if you use another BSD or don't want to wait for your software compiling, there's always pkg_add, which will be happy to download the package from a well-known FTP server, including dependencies.
ad 3: I completly agree.
A very good (free) book on this topic, although not dealing too much with custom syntax, is On Lisp by Paul Graham, the Bayesian spam-filter guy.
That study is off-topic, it doesn't even mention BSD. Here there are also objective comparisons between Linux and BSD that you should consider before setting up your next server.
You have just invented the serial terminal. Maybe you should apply for a patent.
Most elevators could be more friendly, too.
No.
Sure, you can create a union type for that in ML, and use pattern matching for the dispatch. But what happens if you want to handle unknown types of data, with some default behaviour? Or if you just want to add some new kind of stuff? You'd have to modify the type definition and the dispatching function for every type you add. Eww.
That said, don't take the Gabriel quote too serious. I do agree that static typing has it's places - I just like to choose myself which approach is better for a given problem. Common Lisp allows me to do that; neither ML nor Scheme do, AFAIK.
However, I wonder if the "no boundaries" way of things is still a good idea, given a machine connected to the hostile Internet. I wouldn't want a cracker end up in an "everything can be modified" environment.
"Strong typing is for weak minds." -- R. Gabriel
In most cases those meetings turned out to happen in nice bars and involved both talking Lisp and drinking beer, which IMHO clearly qualifies as physical.