Please mod parent up - where are mod points when you need them!
This is the REAL situation in developing countries. Yes, Africa is even poorer than the Philippines but regardless, what they want is the ability to communicate with other people.
This is hilarious... Windows is the most popular piece of software on the planet! Bill Gates has the best track record in history of knowing what people want from PCs.
He has also travelled to a lot of poor places in the world and spoken with the inhabitants... which is a LOT more than you can say of the average MIT student, professor or slashdot poster...
It was noted elsewhere that Microsoft spends six billion a year on R&D. If they hired mathematically-inclined software engineers at 100,000 a go, they'd be able to keep a small army of 10,000 such programmers. You can probably reverse-engineer a specification, prove, then re-engineer the code for about 10 lines an hour. Assuming a 40 hour week, that means they could formally re-engineer 208 million lines of Windows per year. Even with all of the standard applications, libraries and utilities, the team should have an iron-clad damn-near-bugproof Windows within 2-3 years. It wouldn't cost them any more than they're already burning on patents for stuff nobody else cares about, and would save three times the total cost of the bugs to the country within a single year.
This is why it is dangerous to let accountants anywhere near the real world.
When Eric Raymond talks he says that all bugs are shallow.
He does not say that "oh you know some things are kind of hard and even putting the code on an FTP site and allowing people to download it, realistically it's still only a dozen guys working on the project who ever look at it, and none of them are going to ever get around to reviewing the code for WMF".
Let's face it, all bugs are shallow is OSS marketing. It's make believe.
In the OSS world, the only thing you can say about bugs is usage is so low that most bugs are unexercised.
Apparently one of the great things about open source is that many eyeballs makes all bugs shallow.
Yet WINE developers missed this one and delivered insecure code. What happened to the shallow bugs? Where were all the eyeballs?
And then they take longer than Microsoft to fix it, despite us being told that with open source anybody can fix it, response times are faster, community can turn around a fix in hours, blah, blah.
I guess all of this pre-supposes that there is a large group of open source developers who care about such things. Do they exist? Do they care?
Vending machines are not that common in the states. Cost of labour in the USA is still pretty cheap.
Drive-throughs are common though. Americans really don't like getting out of their cars.
I was amazed I could drive-thru the bank, get cash out, drive-thru a coffee shop and get a coffee, drive-thru a resturant and get breakfast, then drive to work.
My favourite one was on the Naamestraat in Leuven. Just perfect for picking up some orange juice or water and some groceries after a night in the Oude Maarkt.
I also loved the ones in the Netherlands that sold fast food -- very similar to the auotmatic food place in the movie Dark City.
Where is the Naamsevest? I don't remember the name.
My discussions with Sun engineers have indicated that they are not particularly interested in having multiple languages running on the JVM, and are not going to do any significant work to make it happen better or to help them interoperate.
Sun markets Java the language a lot more than JVM the platform. The 100% pure Java campaign is exactly that -- *not* 100% pure JVM bytecode but 100% pure Java.
This is not true. There is functionality in the CLR that is not used by C#. For example variable number of arguments (varargs) and function pointers are both in the CLR but not available from C#. Similarly with the tail.call instruction that C# doesn't use.
It is true that the CLR is similar to C# in feature set, but it is certainly not the same.
It's currently not particularly efficient, but the fact that it is there means that it can be made efficient. But that's a quality of implementation issue, not an instruction set design issue.
> Both of our countries fought off the yoke of
> British colonialism. How do you think that was
> accomplished? Diplomacy with Her Majesty?
In the case of Australia, essentially yes. No
war was fought, there weren't even particularly
harsh words.
The current Queen (still Queen of
Australia) has even given limited support to Australia removing her as a figurehead (she's indicated it is pretty much inevitable, which is amusing because the current government doesn't feel the same way).
If you don't text while at a club, how do you ask your friends what they want to drink when you are at the bar?
(don't laugh, this really happens, and it's not as crazy as it sounds, particularly when you consider nightclub drink prices and queues).
Re:one more step towards total integration
on
New Nokia Phone
·
· Score: 2, Interesting
I find having a mobile phone one of the greatest benefits of technology ever. SMS is part of the story, but being able to contact anyone, and be contacted by anyone, wherever you are, is for me a hugely liberating experience. I can still maintain friendships and relationships without having to worry about "coming back home" all the time. And I can do things without having to worry about being caught in a tight spot, with no way to reach people to get help.
When I went travelling in Europe earlier this year, the mobile phone was the number one item to bring. As long as I had a credit card and my phone, nothing was a problem.
If I got lost, no problem, called my hotel or a friend, asked them to help. If I had to meet people, no problem, get their number, call them when I arrive.
My mother loved it because she could call me any time, day or night, anywhere I was. I never had to tell anyone where I was going or what I was doing or how to contact me. I just gave them one number and said to call if they wanted me.
I have been travelling in the USA many times too, and it is always a problem that mobiles are less common and accepted there (and that mine doesn't work there). You have to ask people to meet you in the hotel lobby and get them to call you in your room. You have to wait for hours for people who are running late because they cannot contact you if you are not both near a land-line. Often arrangements fall through because you cannot call people. Even if people have phones they rarely turn them on. Generally this meant that when I was in America I would do less things, and I would visit less people. I also spent a great deal of my time organizing things with people, or waiting for people to arrive.
I didn't take my phone to India, and regretted it just for the convenience of being able to use a phone without looking for coins. Being able to call ahead to hotels while in a taxi or on a train station would have been very useful. Next time I will bring it, I was quite amazed at how good the coverage seemed to be in India, and it is still improving.
I also find it useful at home, when not travelling, to be able to take calls from people to arrange Friday and Saturday nights in a completely spontaneous manner. Due to the noise of most night-spots, SMS is a great way to tell people where you are, ask them quick questions, etc. And if you meet someone interesting, put their number into your phone right there and then.
(I do the same with notes -- names of interesting places to go or eat).
Oh, the old "why don't I just call people".
As silly as saying "why do I have to learn to read and write, I can just talk to people, right?".
Have you ever tried to call someone from a crowded pub, club, concert or festival?
I have been able to find my friends while out numerous times thanks to messaging, which would have been impossible with voice communication simply due to the volume of noise at these events.
I've been to raves where practically everyone attending (about 15,000 people) SMSed each other a complete timetable of the different DJs on that night in different areas.
It's also difficult to just call someone when you are supposed to be quiet, or when they are not answering their phone. Not to mention you can send textual information (addresses, numbers, URLs, whatever) with messaging that is far easier to use.
I installed Debian 2.2 over the network the
other day. 2 bootdisks for the kernel and
modules (plain old 1.44 floppies). Installed
this, run cable modem authentication program,
download base system, and off we go.
The whole thing downloaded using FTP and HTTP.
I had some trouble with what appeared to be a bad
mirror, but that's about it.
But I wished I had the ISOs, because boot floppies take a long time to boot, and about 1 in 3 floppies goes bad.
Re:no advantage of .NET over Java
on
Perl and .NET
·
· Score: 1
.NET is not about running programs written
in different source languages. You can do
that in the JVM. Shit, you can do that on an
x86 in hardware.
It's about interoperation between the languages.
JVM only supports the Java object model. No
accomodations have been made for any other languages. If you want to interoperate, it can get quite difficult -- basically everyone ends
up writing Java (even if it is Java in Scheme or
Java in Perl).
.NET supports much more interoperation. The object model is richer. More parameter passing mechanisms are possible. You can take the address of things. Custom attributes are available to mark interesting things for interop purposes. You can even do a tail call!
You are also completely wrong about C++. Microsoft lets you use C++ to interoperate with.NET. You can use all of C++ (it gets generated
as binary code) and then at the edges you can use
a restricted subset to interface to.NET code (actually the restricted subset is an extension
on the side known as Managed Extensions for C++).
The switching from native code to bytecode is done for you. The.NET bytecode supports (unverifiable, but useful) instructions to do raw
pointer manipulations which mean you can access
C++ data structures from bytecode.
Your claim that there are "no major problems" is complete bullshit. The only language that compiles into JVM without problems is Java.
Every language that is based on recursion has to
jump through hoops just to do procedure calls.
(Scheme, Lisp, Prolog, Haskell, etc).
Languages with by-reference parameter passing
are screwed too, they have to use crummy temporary
classes (Ada, Pascal). Real dynamic method dispatch is very painful too (Python, Smalltalk).
The page listing 130 systems that implement existing languages based on the JVM fails to mention that they all suck. Doing the same
on.NET sucks too, but it sucks significantly less. Microsoft have made *some effort* and have actually spent several *million dollars* getting
the feedback of 3rd party languages. Sun just
turn to 3rd party languages and say "you are
ruining our 100% Java policy -- go away!".
I know it's normal on slashdot to post about
things you have only heard about 3rd hand, but
since it's the holiday season perhaps people could
take a little more time to read before they post.
At least go back and read the other slashdot articles about.NET.
C# doesn't "encourage native code fragments" --
the entire language compiles down to IL
(intermediate language) instructions.
IL has a few instructions that allow you to do
raw pointer access. These are not verifiable.
If you want to use them you need to use the
keyword "unsafe" in your source code, and anyone
running your code will have to have certificates
or whatever other verification they have set in
their security settings. But these are still
IL instructions.
The C# compiler doesn't generate native code directly. I believe the only compiler that does that is the VC++ compiler, and that's because it supports C++. You can mix native and CLR code
with VC++ -- because there is lots of stuff in C++
that isn't in the CLR. The CLR does allow you to
mix native and IL code fragments if you like.
But the verifiable portion of the CLR has nothing to do with native code or raw pointers or anything
non-portable.
Microsoft clearly plans to use.NET on handheld
(non-x86) devices, so I can't see any benefit in
encouraging the use of native code (except where it is necessary).
This is cool. Many of these languages can be targetted to the JVM.
This is seriously understating the myriad problems with many of those JVM ports. The overwhelming
opinion of most people who ported other languages to the JVM is that it is only suitable for running
Java, and anything other than Java is hard work,
and is difficult to do interop.
There are lots of things in.NET to make it easier to run multiple languages. I'm talking about things in the type system (by-ref parameters), things in the instruction set (e.g. tailcall),
things in the documentation/standards (e.g.
common language specification -- a subset of the
full type system you should use for maximum interoperability), tool support, etc, etc.
JVM is multi-language despite Sun..NET is
multi-language because of Microsoft. There is
quite a difference there. Don't get me wrong,
I would love it if Sun did an about face and
make JVM 2 or 3 suitable for more than just
Java, but so far their track record has been 100% Java.
While you can RUN other languages on the JVM,
JVM does not SUPPORT any other languages.
The J stands for Java. Attempts to get more
support in the JVM for other lanugages have been
largely met with Sun's "100% Java" marketing strategy (although there are some good research proposals on the table, Sun has yet to adopt any
major improvements).
You CAN target JVM with other languages.
However to do so, you have to do everything the
way Java does it, and that can mean your language
is slow, or bloated, or both.
If you check out the list of languages that
target the JVM and ask them for their complaints,
there will be tonnes of issues..NET tries to
address some of the top complaints in this platform. By-ref parameters, tailcalls, value types and metadata are the main differences. Also defining a common subset of the type system
(CLS) is a big step between library interop.
If you still think the JVM supports other languages, consider this example of support:
Do you get source linked debugging of your language within any Java IDE, just by targetting the JVM? You get that with.NET, regardless of what language your source is in.
These are typical research problems that have been around since programmers rubbed two bits together and decided one programming language was not enough. They are being worked upon.
If you read enough.NET interviews you'll find
the one where they mention that Microsoft
Research Cambridge is working on a version of
CLR with parametric polymorphism. (Sorry, don't
have the link).
Look at MLj for how to do good interop with OO
using ML (under Java in this case, but it will work pretty well for.NET too).
Also don't forget many of the ports are early days
yet. There's plenty of work yet to do.
Please mod parent up - where are mod points when you need them!
This is the REAL situation in developing countries. Yes, Africa is even poorer than the Philippines but regardless, what they want is the ability to communicate with other people.
This is hilarious... Windows is the most popular piece of software on the planet! Bill Gates has the best track record in history of knowing what people want from PCs.
He has also travelled to a lot of poor places in the world and spoken with the inhabitants... which is a LOT more than you can say of the average MIT student, professor or slashdot poster...
Hardly any users. Absolutely no way to make money out of it.
Things are very different now. You can get rich from it.
Gotta be kidding mate... Windows 3.1 Who was connecting to the internet then? It was a whole different world.
This is why it is dangerous to let accountants anywhere near the real world.
When Eric Raymond talks he says that all bugs are shallow.
He does not say that "oh you know some things are kind of hard and even putting the code on an FTP site and allowing people to download it, realistically it's still only a dozen guys working on the project who ever look at it, and none of them are going to ever get around to reviewing the code for WMF".
Let's face it, all bugs are shallow is OSS marketing. It's make believe.
In the OSS world, the only thing you can say about bugs is usage is so low that most bugs are unexercised.
Apparently one of the great things about open source is that many eyeballs makes all bugs shallow.
Yet WINE developers missed this one and delivered insecure code. What happened to the shallow bugs? Where were all the eyeballs?
And then they take longer than Microsoft to fix it, despite us being told that with open source anybody can fix it, response times are faster, community can turn around a fix in hours, blah, blah.
I guess all of this pre-supposes that there is a large group of open source developers who care about such things. Do they exist? Do they care?
Shock! Horror! Exchange of money for goods and services!
What is the world coming to.
I have 3 years experience with .NET.
If you were involved with the technology under NDA you can have at most 3.
If you worked at Microsoft you might have 5.
But I know what you mean. Recruiters are not technical guys. Most of them think all the technology is the same, and it's all cutting edge stuff.
Vending machines are not that common in the states. Cost of labour in the USA is still pretty cheap.
Drive-throughs are common though. Americans really don't like getting out of their cars.
I was amazed I could drive-thru the bank, get cash out, drive-thru a coffee shop and get a coffee, drive-thru a resturant and get breakfast, then drive to work.
My favourite one was on the Naamestraat in Leuven. Just perfect for picking up some orange juice or water and some groceries after a night in the Oude Maarkt.
I also loved the ones in the Netherlands that sold fast food -- very similar to the auotmatic food place in the movie Dark City.
Where is the Naamsevest? I don't remember the name.
My discussions with Sun engineers have indicated that they are not particularly interested in having multiple languages running on the JVM, and are not going to do any significant work to make it happen better or to help them interoperate.
Sun markets Java the language a lot more than JVM the platform. The 100% pure Java campaign is exactly that -- *not* 100% pure JVM bytecode but 100% pure Java.
This is not true. There is functionality in
the CLR that is not used by C#. For example
variable number of arguments (varargs) and function pointers are both in the CLR but not available from C#. Similarly with the tail.call instruction that C# doesn't use.
It is true that the CLR is similar to C# in feature set, but it is certainly not the same.
There is a tailcall instruction in the .NET CLR.
It's currently not particularly efficient, but the fact that it is there means that it can be made efficient. But that's a quality of implementation issue, not an instruction set design issue.
> Both of our countries fought off the yoke of
> British colonialism. How do you think that was
> accomplished? Diplomacy with Her Majesty?
In the case of Australia, essentially yes. No
war was fought, there weren't even particularly
harsh words.
The current Queen (still Queen of
Australia) has even given limited support to Australia removing her as a figurehead (she's indicated it is pretty much inevitable, which is amusing because the current government doesn't feel the same way).
If you don't text while at a club, how do you ask your friends what they want to drink when you are at the bar?
(don't laugh, this really happens, and it's not as crazy as it sounds, particularly when you consider nightclub drink prices and queues).
I find having a mobile phone one of the greatest benefits of technology ever. SMS is part of the story, but being able to contact anyone, and be contacted by anyone, wherever you are, is for me a hugely liberating experience. I can still maintain friendships and relationships without having to worry about "coming back home" all the time. And I can do things without having to worry about being caught in a tight spot, with no way to reach people to get help.
When I went travelling in Europe earlier this year, the mobile phone was the number one item to bring. As long as I had a credit card and my phone, nothing was a problem.
If I got lost, no problem, called my hotel or a friend, asked them to help. If I had to meet people, no problem, get their number, call them when I arrive.
My mother loved it because she could call me any time, day or night, anywhere I was. I never had to tell anyone where I was going or what I was doing or how to contact me. I just gave them one number and said to call if they wanted me.
I have been travelling in the USA many times too, and it is always a problem that mobiles are less common and accepted there (and that mine doesn't work there). You have to ask people to meet you in the hotel lobby and get them to call you in your room. You have to wait for hours for people who are running late because they cannot contact you if you are not both near a land-line. Often arrangements fall through because you cannot call people. Even if people have phones they rarely turn them on. Generally this meant that when I was in America I would do less things, and I would visit less people. I also spent a great deal of my time organizing things with people, or waiting for people to arrive.
I didn't take my phone to India, and regretted it just for the convenience of being able to use a phone without looking for coins. Being able to call ahead to hotels while in a taxi or on a train station would have been very useful. Next time I will bring it, I was quite amazed at how good the coverage seemed to be in India, and it is still improving.
I also find it useful at home, when not travelling, to be able to take calls from people to arrange Friday and Saturday nights in a completely spontaneous manner. Due to the noise of most night-spots, SMS is a great way to tell people where you are, ask them quick questions, etc. And if you meet someone interesting, put their number into your phone right there and then.
(I do the same with notes -- names of interesting places to go or eat).
Oh, the old "why don't I just call people".
As silly as saying "why do I have to learn to read and write, I can just talk to people, right?".
Have you ever tried to call someone from a crowded pub, club, concert or festival?
I have been able to find my friends while out numerous times thanks to messaging, which would have been impossible with voice communication simply due to the volume of noise at these events.
I've been to raves where practically everyone attending (about 15,000 people) SMSed each other a complete timetable of the different DJs on that night in different areas.
It's also difficult to just call someone when you are supposed to be quiet, or when they are not answering their phone. Not to mention you can send textual information (addresses, numbers, URLs, whatever) with messaging that is far easier to use.
Since when did Corporations get equal protection
under the law?
Since when did Corporations have rights at all?
Why do people think Corporations deserve anything even approaching what a human deserves?
Corporations are a legal shield against being sue. They are a paper construction. They exist for our good, not us for theirs!
I installed Debian 2.2 over the network the other day. 2 bootdisks for the kernel and modules (plain old 1.44 floppies). Installed this, run cable modem authentication program, download base system, and off we go.
The whole thing downloaded using FTP and HTTP. I had some trouble with what appeared to be a bad mirror, but that's about it.
But I wished I had the ISOs, because boot floppies take a long time to boot, and about 1 in 3 floppies goes bad.
It's about interoperation between the languages. JVM only supports the Java object model. No accomodations have been made for any other languages. If you want to interoperate, it can get quite difficult -- basically everyone ends up writing Java (even if it is Java in Scheme or Java in Perl).
You are also completely wrong about C++. Microsoft lets you use C++ to interoperate with .NET. You can use all of C++ (it gets generated
as binary code) and then at the edges you can use
a restricted subset to interface to .NET code (actually the restricted subset is an extension
on the side known as Managed Extensions for C++).
The switching from native code to bytecode is done for you. The .NET bytecode supports (unverifiable, but useful) instructions to do raw
pointer manipulations which mean you can access
C++ data structures from bytecode.
Your claim that there are "no major problems" is complete bullshit. The only language that compiles into JVM without problems is Java. Every language that is based on recursion has to jump through hoops just to do procedure calls. (Scheme, Lisp, Prolog, Haskell, etc). Languages with by-reference parameter passing are screwed too, they have to use crummy temporary classes (Ada, Pascal). Real dynamic method dispatch is very painful too (Python, Smalltalk).
The page listing 130 systems that implement existing languages based on the JVM fails to mention that they all suck. Doing the same on .NET sucks too, but it sucks significantly less. Microsoft have made *some effort* and have actually spent several *million dollars* getting
the feedback of 3rd party languages. Sun just
turn to 3rd party languages and say "you are
ruining our 100% Java policy -- go away!".
I know it's normal on slashdot to post about things you have only heard about 3rd hand, but since it's the holiday season perhaps people could take a little more time to read before they post. At least go back and read the other slashdot articles about .NET.
IL has a few instructions that allow you to do raw pointer access. These are not verifiable. If you want to use them you need to use the keyword "unsafe" in your source code, and anyone running your code will have to have certificates or whatever other verification they have set in their security settings. But these are still IL instructions.
The C# compiler doesn't generate native code directly. I believe the only compiler that does that is the VC++ compiler, and that's because it supports C++. You can mix native and CLR code with VC++ -- because there is lots of stuff in C++ that isn't in the CLR. The CLR does allow you to mix native and IL code fragments if you like. But the verifiable portion of the CLR has nothing to do with native code or raw pointers or anything non-portable.
Microsoft clearly plans to use .NET on handheld
(non-x86) devices, so I can't see any benefit in
encouraging the use of native code (except where it is necessary).
There are lots of things in .NET to make it easier to run multiple languages. I'm talking about things in the type system (by-ref parameters), things in the instruction set (e.g. tailcall),
things in the documentation/standards (e.g.
common language specification -- a subset of the
full type system you should use for maximum interoperability), tool support, etc, etc.
JVM is multi-language despite Sun. .NET is
multi-language because of Microsoft. There is
quite a difference there. Don't get me wrong,
I would love it if Sun did an about face and
make JVM 2 or 3 suitable for more than just
Java, but so far their track record has been 100% Java.
You CAN target JVM with other languages. However to do so, you have to do everything the way Java does it, and that can mean your language is slow, or bloated, or both.
If you check out the list of languages that target the JVM and ask them for their complaints, there will be tonnes of issues. .NET tries to
address some of the top complaints in this platform. By-ref parameters, tailcalls, value types and metadata are the main differences. Also defining a common subset of the type system
(CLS) is a big step between library interop.
If you still think the JVM supports other languages, consider this example of support: Do you get source linked debugging of your language within any Java IDE, just by targetting the JVM? You get that with .NET, regardless of what language your source is in.
If you read enough .NET interviews you'll find
the one where they mention that Microsoft
Research Cambridge is working on a version of
CLR with parametric polymorphism. (Sorry, don't
have the link).
Look at MLj for how to do good interop with OO using ML (under Java in this case, but it will work pretty well for .NET too).
Also don't forget many of the ports are early days yet. There's plenty of work yet to do.