At runtime, Java has to look up the method based on the target type and the signature(method name, method parameter types). I'm suggesting they could have used the target type and the signature(method name, the real types of the parameters (or super classes)). I also think it would be too slow. My example is confusing in its simplicity. Write a parser. Those huge case statements could be processed by the runtime system instead of explicite switches.
So how do you instantiate a subclass of Thinger? You write another create method. Wouldn't it be nice of ThingerSubclass.create(String s) called Thinger.create(String s) and assigned this to ThingerSubclass.class so you didn't have to copy and paste the factory method? What is so hidious about that?
Did you not understand my post? There is nothing to a Java server. Why use JBoss if all you need is those code snipets that I posted?
We had a home grown web server that was extremely secure because we hard coded the only two files it would serve. It was small and fast. It was less than 100 lines of code. Management required that we junk it and install Apache. Apache's configuration file is over 600 lines! I have the same problem with the rest of the J2EE server infrastructure. Normally what comes prepackaged as 10,000s of LOC can be written from scratch for my specific domain in a couple dozen LOC. I can completely understand those couple dozen LOC, where as I have a rough time understanding just the configuration of Apache, WebSphere, JBoss, etc.
you just want int and the other primitives to be fully privileged objects Yes, but most people don't understand that so I worded it the other way.
it's a little shorter than Method m = Object.class.getMethod("toString", new Class[0]) It is also compile time, not run time.
Because that's a pretty wacky idea. Using the types of the arguements for the method lookup is not wacky. Haskell does it. I don't know the right words to use, but it is like polymorphism including the arguments, not just the target. I would save using lots of switch statements that just switch on the type of the argument. I suppose in most cases you wouldn't need it and it would unecessarily significantly slow down the method look up. Not wacky, just dumb.
Because it poses tremendous potential namespace conflict problems with little clear benefit. If I could use patterns for imports than we would put fewer classes in packages and have a bit more organization to the packages. With more packages I could be more selective about what I want to import instead of exact match or package.*.
Because that's an absolutely hideous idea. Static methods aren't part of the signature matching that underlies the type system, and don't participate in polymorphism; they are semantically equivalent to methods on the class, not the object (which is how Smalltalk does it).
OK. I guess I just have problems with static methods. This goes back to implementing alloc().init(). You can't do it with static methods. If I could use a subclass of Class then I could add the methods there and be happy (is that the way to do it in smalltalk?).
I use arrays in cases where I need type safety, though generics would be better. I just hacked up something that is close to generics with Proxy. You still have to specify the interface to the resulting class, but you don't have to write it. This would solve some problems I had with clients that really needed the type safety and needed more complexity than just arrays.
I don't like the language, but it is better than anything else out there.
- why are packages and classes treated differently? They are both just namespaces. - Why can't I 'Object i = 5;'? There should be a 'void*' type. - Why can't I 'Method m = Object.toString;' - Why can't I
Object f(String s) {something(s);}
Object f(List l) {somethingelse(l);}
void main(String [] a) {
f(a.length == 1
? a[0]
: Arrays.asList(a));
}
and get the right method called!? - Why can't I 'import java.util.*String*;' or 'import java.*.*;' ? - Why do we have 'new' instead of alloc and init? ObjC/NeXTSTEP used '[[MyClass alloc] init]' seperating the process of allocation from initialization. It would even allow MyClass to return an instance of a different class, so if you need to make a short term change to the system (ie. replace all occurances of MyClass with MyClass2), just change MyClass.alloc to return a new instance of MyClass2 instead. - Why aren't static methods inherited?
public class MyClass1 {
static MyClass1 alloc() {}
}
public class MyClass2 extends MyClass1 {}
public class Main {
public void main(String [] a) {
MyClass1 arg. And these are just off the top of my head.
Actually, with the size of J2EE, the cost of figuring it out is greater than the cost of implementing your own services from scratch.
I've found that building my own server, but using some of the simpler protocols like JMS, JDBC, the whole XML set is easier than trying to fit my logic into a J2EE server.
You need a server to answer JMS requests?
while (true) {
process(queue.receive()); }
You need to to answer multiple messages in parallel?
while (true) {
final Message message = queue.receive();
new Thread(){
public void run() {
process(message);
}
}.start(); }
What is hard about that? Why do I need a billion dollar copy of WebSphere for that? And that is what I have seen companies using WebSphere for, because that is what IBM is seller J2EE for.
I think that the important technology is the low level APIs, not the server chunk of J2EE. And MS does have good APIs that perform the same function.
Yes, when I exit VMWare and write a big honkin' suspend file, my machine hangs up until it is done, but my real problems are disk corruption with my HPT370 controller that everyone on lk list ignores and run on sentences.
It would be a much more interesting read if someone setup a linux (or any other OS) box with a wifi card in it and a wired nic that feeds a hub/switch and NAT'd a bridge.
I've been doing that, but this is much cooler. I can stick these in friends houses or in a box on a mast on a roof, etc. The PC in my mother in law's garage is not cool.
I was trying to run Linux on an Orinoco RG1x00s, but have much difficulty. This will get the job done easier and cheaper.
Managers are the ones who make the purchase decisions. They tend to buy from large name companies with big marketing budgets regardless of the quality or cost of the solution.
Sorry, I assumed that you meant people managers. If people managers are building systems for your then your company need fixing. What do you call the people that manage people? (Unless I am mistaken and we are both talking about people managers, in which case, what do the rest of you do, if you aren't doing the work?)
As with all your questions, depends on the needs of the customer. If you're interested in buying a solution from me, let me know, and we'll talk further.
Actaully, you have already stated that you could build a 50TB system for $1M, so what more information would you need?
On a more serious side, I am interested in building a dual processor Linux workstation. I do Java/web programming, run VMWare with an instance of W2K connecting to clients via VPN software and and possibly other VMWare instances with Linux as test clients. I constantly have Mozilla, StarOffice, emacs and a couple xterms running. I want to use video conferencing and instance messaging. Can you help me spec a system? Last time I tried I ended up with junk hardware.
OK smarty pants. Why aren't you out there selling these systems? You apparently would be making $19M a pop, unless you have no clue what you are talking about, then it might be a bit risky.
<a src="http://www.geocities.com/bruthasj">bruthasj</ a> doesn't not have a copy of your webpage. It give instructions on how to see the information from your web page, just like a bibliography points to source data for an article.
A robotic text reading robot librarian could be like a browser. It could recognize bibliographical entries and fetch the book for you. This isn't a source issue, it is a browser issue. Law.com should sue MS for writing IE because it automatically gets data from law.com.
Well, I was employed for almost a year maintaining and porting Win16 to Win32.
There were quite a few changes we had to make.
Remember, a lot of custom code out there ships when it works, not when it is done right. Things that worked due to a nasty side effects in Win16 failed to work in Win32 or worse, crashed the system.
huh? If I am creating a file, then why does case matter?
I'm suggesting that you don't need to type files. I think that GUIs that require typing a filename are broken.
I use emacs, gimp, ant, the JDK, bash, WinNT, Linux, mozilla, Konqueror, gv, outlook, etc. I hardly ever type a file name (except when creating a file, but that isn't typing the name of an existing file); I use tools that allow me to bypass the typing. Why not fix your (or who ever's) toolset so that no filename typing is required?
I open my invoices with soffice ~, then click invoices, then the particular invoice. I do the same to open images in Konqueuor or java files in emacs.
The sooner UNIX-based computers learn that when a person is looking in a directory for "letter.txt" that "Letter.txt" is probably what they mean, the sooner they (the computers) will understand how to interact with people.
And shouldn't that be the point of it? Not the other way around.
right.... How many GUIs have you designed. Users are not logical at all. After we remove case, they'll ask that 1==l==i==t, then a==e==o==0==D==c==Q, then d==b==p==q then s==z then j==i, then g==q==j, then R==K==h and P==R and E==F and b==S and m==n and u==w==v and w==m. Now we are down to two letters x and the other stuff.
Why screw up a working system and not fix the root cause. The root is that the user is incapable of specifying the file by typing. Duh, use a search panel that handles the rules and presents a big button [IS THIS YOUR FILE STUPID?].
Primatives should be teatable like objects, so 5.add(7) is equivalent to 5+7. But I want to be able to 5.toString() or myHashMap.put(5, 9)! Let the compiler work it out. This is not new technology, Smalltalk has been doing it for 20 years.
I haven't used the tuner in any of my TVs ever (4 TVs since college). I use the VCR tuner. My 56" TV is just a monitor for my DVD, VCR, and PS2. I plan on keeping it that way.
Why aren't external digital tuners an option?
I am pissed off that there isn't a digital in on my TV, but I'm sure you can buy them that way.
Yah, yah, yah. (I don't really disagree with anything you said, but...)
RMS already implicitly compared himself to MLK Jr. and Ghandi, now you're throwing in Columbus? I think he was the first man to take a step into creating an extensible editor (Niel Armstrong) and presiding over the fractured GNU foundation (Lincoln). arg.
Everyone is thinking about the wrong things. Think with or against RMS, not about RMS. (again, I think we agree.)
Either they have to honestly make an effort to be smarter and address a demanding customer or die.
Exactly. There is no them; WE are in control. Why are WE blaming them (the big corps, big government, etc.) for choices that we make? Just quit sending money to companies you don't like. Quit voting for representative that don't agree with your opinion. Convince your neighbors that you are right, or suck it up and realize that you are a minority, not oppressed by big corps and big government (which only have the authority that WE grant them), just a minority voice.
We are the government. We decide how it works. We have chosen that this is the way we want it to work.
YOU vote for someone else if you don't like it.
The "anti globalization" and "anti corporate" crap is getting on my nerves. Corporations do what the owners want them to. Guess what? We own the corporations too!
Do you think there is some other species that runs corporations and work for the government?
My brother regulates the telecom industry in Indiana. I have a close friend that works investment for life insurance companies. I build custom software for companies. Each one of us makes decisions every day that has an effect on the economy and dictates which companies will succeed and which will fail. Each of us votes for candidates that are responsive to us. This is us, not them. There is no them.
Cuba claims all sort of crap that just isn't true. Ever tried to discuss anything with a Cuban official? The party line must be "we execede you in every way with fewer resources."
At runtime, Java has to look up the method based on the target type and the signature(method name, method parameter types). I'm suggesting they could have used the target type and the signature(method name, the real types of the parameters (or super classes)). I also think it would be too slow. My example is confusing in its simplicity. Write a parser. Those huge case statements could be processed by the runtime system instead of explicite switches.
So how do you instantiate a subclass of Thinger? You write another create method. Wouldn't it be nice of ThingerSubclass.create(String s) called Thinger.create(String s) and assigned this to ThingerSubclass.class so you didn't have to copy and paste the factory method? What is so hidious about that?
Joe
Did you not understand my post? There is nothing to a Java server. Why use JBoss if all you need is those code snipets that I posted?
We had a home grown web server that was extremely secure because we hard coded the only two files it would serve. It was small and fast. It was less than 100 lines of code. Management required that we junk it and install Apache. Apache's configuration file is over 600 lines! I have the same problem with the rest of the J2EE server infrastructure. Normally what comes prepackaged as 10,000s of LOC can be written from scratch for my specific domain in a couple dozen LOC. I can completely understand those couple dozen LOC, where as I have a rough time understanding just the configuration of Apache, WebSphere, JBoss, etc.
you just want int and the other primitives to be fully privileged objects
Yes, but most people don't understand that so I worded it the other way.
it's a little shorter than Method m = Object.class.getMethod("toString", new Class[0])
It is also compile time, not run time.
Because that's a pretty wacky idea.
Using the types of the arguements for the method lookup is not wacky. Haskell does it. I don't know the right words to use, but it is like polymorphism including the arguments, not just the target. I would save using lots of switch statements that just switch on the type of the argument. I suppose in most cases you wouldn't need it and it would unecessarily significantly slow down the method look up. Not wacky, just dumb.
Because it poses tremendous potential namespace conflict problems with little clear benefit.
If I could use patterns for imports than we would put fewer classes in packages and have a bit more organization to the packages. With more packages I could be more selective about what I want to import instead of exact match or package.*.
Because that's an absolutely hideous idea. Static methods aren't part of the signature matching that underlies the type system, and don't participate in polymorphism; they are semantically equivalent to methods on the class, not the object (which is how Smalltalk does it).
OK. I guess I just have problems with static methods. This goes back to implementing alloc().init(). You can't do it with static methods. If I could use a subclass of Class then I could add the methods there and be happy (is that the way to do it in smalltalk?).
I use arrays in cases where I need type safety, though generics would be better. I just hacked up something that is close to generics with Proxy. You still have to specify the interface to the resulting class, but you don't have to write it. This would solve some problems I had with clients that really needed the type safety and needed more complexity than just arrays.
Joe
I don't like the language, but it is better than anything else out there.
- why are packages and classes treated differently? They are both just namespaces.
- Why can't I 'Object i = 5;'? There should be a 'void*' type.
- Why can't I 'Method m = Object.toString;'
- Why can't I
Object f(String s) {something(s);}
Object f(List l) {somethingelse(l);}
void main(String [] a) {
f(a.length == 1
? a[0]
: Arrays.asList(a));
}
and get the right method called!?
- Why can't I 'import java.util.*String*;' or 'import java.*.*;' ?
- Why do we have 'new' instead of alloc and init? ObjC/NeXTSTEP used '[[MyClass alloc] init]' seperating the process of allocation from initialization. It would even allow MyClass to return an instance of a different class, so if you need to make a short term change to the system (ie. replace all occurances of MyClass with MyClass2), just change MyClass.alloc to return a new instance of MyClass2 instead.
- Why aren't static methods inherited?
public class MyClass1 {
static MyClass1 alloc() {}
}
public class MyClass2 extends MyClass1 {}
public class Main {
public void main(String [] a) {
MyClass1
arg. And these are just off the top of my head.
Joe
Actually, with the size of J2EE, the cost of figuring it out is greater than the cost of implementing your own services from scratch.
I've found that building my own server, but using some of the simpler protocols like JMS, JDBC, the whole XML set is easier than trying to fit my logic into a J2EE server.
You need a server to answer JMS requests?
while (true) {
process(queue.receive());
}
You need to to answer multiple messages in parallel?
while (true) {
final Message message = queue.receive();
new Thread(){
public void run() {
process(message);
}
}.start();
}
What is hard about that? Why do I need a billion dollar copy of WebSphere for that? And that is what I have seen companies using WebSphere for, because that is what IBM is seller J2EE for.
I think that the important technology is the low level APIs, not the server chunk of J2EE. And MS does have good APIs that perform the same function.
Joe
Yes, when I exit VMWare and write a big honkin' suspend file, my machine hangs up until it is done, but my real problems are disk corruption with my HPT370 controller that everyone on lk list ignores and run on sentences.
Joe
I think most of us choose to be fat (I realize not all, but most of us given enough incentive can lose weight).
One can not choose not to be black, short, female, ugly, Indian, or wheel chair bound. (Except a under extreme circumstances)
Joe
Joe
It would be a much more interesting read if someone setup a linux (or any other OS) box with a wifi card in it and a wired nic that feeds a hub/switch and NAT'd a bridge.
I've been doing that, but this is much cooler. I can stick these in friends houses or in a box on a mast on a roof, etc. The PC in my mother in law's garage is not cool.
I was trying to run Linux on an Orinoco RG1x00s, but have much difficulty. This will get the job done easier and cheaper.
Joe
I have access to the capital. What do you need?
Explain your customer needs and how you are going to satisfy them and why you need the money now. If it all adds up, I can find you the money.
Capital is never a problem, it is an excuse.
Joe
Managers are the ones who make the purchase decisions. They tend to buy from large name companies with big marketing budgets regardless of the quality or cost of the solution.
Sorry, I assumed that you meant people managers. If people managers are building systems for your then your company need fixing. What do you call the people that manage people? (Unless I am mistaken and we are both talking about people managers, in which case, what do the rest of you do, if you aren't doing the work?)
As with all your questions, depends on the needs of the customer. If you're interested in buying a solution from me, let me know, and we'll talk further.
Actaully, you have already stated that you could build a 50TB system for $1M, so what more information would you need?
On a more serious side, I am interested in building a dual processor Linux workstation. I do Java/web programming, run VMWare with an instance of W2K connecting to clients via VPN software and and possibly other VMWare instances with Linux as test clients. I constantly have Mozilla, StarOffice, emacs and a couple xterms running. I want to use video conferencing and instance messaging. Can you help me spec a system? Last time I tried I ended up with junk hardware.
What's this have to do with managers? Why don't you sell these systems? I don't, because I don't know what is takes to build them.
How do you even strap 50 TB together? Is it one huge array, or arrays of arrays?
What do you use at the head end that can handle this sort of throughput? How do you back it up? How do you search it?
What filesystems do you use that support 50TB?
How do you manage the hot swap aspects?
There are so many questions that you leave unanswered, that you might spend $19 mil to answer before you spend $1 mil on hardware.
Joe
OK smarty pants. Why aren't you out there selling these systems? You apparently would be making $19M a pop, unless you have no clue what you are talking about, then it might be a bit risky.
Joe
Running W2K under VMWare is very IO slow. It wont play video comfortably. It also costs something like $600 for a W2K license.
Joe
<a src="http://www.geocities.com/bruthasj">bruthasj</ a> doesn't not have a copy of your webpage. It give instructions on how to see the information from your web page, just like a bibliography points to source data for an article.
A robotic text reading robot librarian could be like a browser. It could recognize bibliographical entries and fetch the book for you. This isn't a source issue, it is a browser issue. Law.com should sue MS for writing IE because it automatically gets data from law.com.
Well, I was employed for almost a year maintaining and porting Win16 to Win32.
There were quite a few changes we had to make.
Remember, a lot of custom code out there ships when it works, not when it is done right. Things that worked due to a nasty side effects in Win16 failed to work in Win32 or worse, crashed the system.
Joe
huh? If I am creating a file, then why does case matter?
I'm suggesting that you don't need to type files. I think that GUIs that require typing a filename are broken.
I use emacs, gimp, ant, the JDK, bash, WinNT, Linux, mozilla, Konqueror, gv, outlook, etc. I hardly ever type a file name (except when creating a file, but that isn't typing the name of an existing file); I use tools that allow me to bypass the typing. Why not fix your (or who ever's) toolset so that no filename typing is required?
I open my invoices with soffice ~, then click invoices, then the particular invoice. I do the same to open images in Konqueuor or java files in emacs.
Joe
A user has to type names of files sometimes. They just do.
Give me an example. Even in Unix I hardly ever type a filename. I use simple search routines like in bash or more complex regex patterns.
I use shells like emacs, Mozilla or Explorer to select files most of the time.
Joe
The sooner UNIX-based computers learn that when a person is looking in a directory for "letter.txt" that "Letter.txt" is probably what they mean, the sooner they (the computers) will understand how to interact with people.
And shouldn't that be the point of it? Not the other way around.
right.... How many GUIs have you designed. Users are not logical at all. After we remove case, they'll ask that 1==l==i==t, then a==e==o==0==D==c==Q, then d==b==p==q then s==z then j==i, then g==q==j, then R==K==h and P==R and E==F and b==S and m==n and u==w==v and w==m. Now we are down to two letters x and the other stuff.
Why screw up a working system and not fix the root cause. The root is that the user is incapable of specifying the file by typing. Duh, use a search panel that handles the rules and presents a big button [IS THIS YOUR FILE STUPID?].
Joe
Primatives should be teatable like objects, so 5.add(7) is equivalent to 5+7. But I want to be able to 5.toString() or myHashMap.put(5, 9)! Let the compiler work it out. This is not new technology, Smalltalk has been doing it for 20 years.
Joe
I haven't used the tuner in any of my TVs ever (4 TVs since college). I use the VCR tuner. My 56" TV is just a monitor for my DVD, VCR, and PS2. I plan on keeping it that way.
Why aren't external digital tuners an option?
I am pissed off that there isn't a digital in on my TV, but I'm sure you can buy them that way.
Yah, yah, yah. (I don't really disagree with anything you said, but...)
RMS already implicitly compared himself to MLK Jr. and Ghandi, now you're throwing in Columbus? I think he was the first man to take a step into creating an extensible editor (Niel Armstrong) and presiding over the fractured GNU foundation (Lincoln). arg.
Everyone is thinking about the wrong things. Think with or against RMS, not about RMS. (again, I think we agree.)
Joe
It reflects in the failure of businesses...
Show me these businesses? I'll point to people.
Either they have to honestly make an effort to be smarter and address a demanding customer or die.
Exactly. There is no them; WE are in control. Why are WE blaming them (the big corps, big government, etc.) for choices that we make? Just quit sending money to companies you don't like. Quit voting for representative that don't agree with your opinion. Convince your neighbors that you are right, or suck it up and realize that you are a minority, not oppressed by big corps and big government (which only have the authority that WE grant them), just a minority voice.
Joe
What the hell are you talking about?
We are the government. We decide how it works. We have chosen that this is the way we want it to work.
YOU vote for someone else if you don't like it.
The "anti globalization" and "anti corporate" crap is getting on my nerves. Corporations do what the owners want them to. Guess what? We own the corporations too!
Do you think there is some other species that runs corporations and work for the government?
My brother regulates the telecom industry in Indiana. I have a close friend that works investment for life insurance companies. I build custom software for companies. Each one of us makes decisions every day that has an effect on the economy and dictates which companies will succeed and which will fail. Each of us votes for candidates that are responsive to us. This is us, not them. There is no them.
Joe
Most rural homes don't have cable.
Joe
Cuba claims all sort of crap that just isn't true. Ever tried to discuss anything with a Cuban official? The party line must be "we execede you in every way with fewer resources."
Joe