First Toshiba, now AOL. Who do I get to sue if I install a newer version of glibc and the RPM breaks all my apps? Should I be able to sue RedHat because RedHat5 default install had a billion security holes and my box got rooted?
What if KOffice or GNOME Office core dumps and I lose work? (ala alleged Toshiba floppy leading to lost work)
Modern countries (see Europe & US) also fall prey
on
China and the MPA
·
· Score: 2
Even "modern" Western societies fall prey to scaremongering. Come on, Y2K! It's the end of the world as we know it! Thousands of programmers on the internet repeated this trash, as they imagined a scenario where the worst happened (power, telephone, gas, nuclear, etc all going kaput at once. Nothing could be fixed because of all infrastructure being paralyzed. Back to to the stone age, with riots, and all that.)
Just look at Europe and the insane paranoia over beef and Mad Cow Disease. There's never been any proof of the link between MCD and CJD. Hell, there's not even any info on whether or not the incidence of CJD is higher than its historical or natural level.
Then there are the green pressure group scare tactics over genetically modified foods, pharmaceuticals, or pretty much any new technology. A US ad by Turning Point shows a mouse with a human ear growing on its back (transplanted cells into a plastic-matrix merely being fed by the mouse's circulatory system, e.g. incubated), and the green ad uses the picture as an example of the HORRIFIC abuse that genetic engineering poses on nature (even tho the actual mouse wasn't GM'ed)
The whole precautionary principle debate is ridiculous. If it was truly applied to all new technologies, we wouldn't be able to eat any new recipes. Can you prove that those new Smoothy drninks that blend together lots of veggies won't result in a chemical side-effect? Better run government tests on that! Does anyone actually realize that cooking *is* chemistry? That's not to say that there should be no regulation, since regular *breeding* as described above is also regulated (many "natural" plants have lots of toxins in them) What's needed is rational discourse however, not bohemian granola hippies teaming up with labor unions and dancing wild in the streets of Seattle, or green pressure groups opening spreading false propaganda to encourage fear.
(see http://www.junkscience.com/dec99/earie.htm )
Some hack farmer blindly crosses different plant species, with huge bits of genes being swapped back and forth (some infact is "genetic junk" being accidently reactivated), and people think it is perfectly natural, and "safer" Meanwhile, a scientist transfers a single gene between two species instead of cut-and-pasting huge segments, and it is somehow "dangerous" (while at the same time, being more precise and careful), because it's not "natural"
There is a total lack of education about RISK in this society, and the pressure groups are praticing a scare compaign to take advantage of that.
In fact, there is a general lack of tolerance in general. Everything is seen as black and white. Corporations? Evil. Government? Evil? Socialism? Evil. Capitalism? Evil. GM? Evil. Microsoft? Evil. Closed Source? Evil. No one bothers to consider or weigh specific cases or situations any more. Everything is simple categorized and dismissed.
On slashdot, I see nine gazillion comments on every new story to the effect "what's so new about this? big deal." Before people even read a story, they hit the reply button and start dismissing it. And while there are generally a few thoughtful essays posted, the vast majority of responses are 1-3 line dismissals or "dittos"
Can someone please teleport me to Vulcan or some planet where there is more thoughful discussion?
is not the kernel and device drivers supporting it (which they do), but the fact that there isn't an easy to use, widely adopted API for locating language resource strings. In userland, thousands of GNU utilities and scripts shipped with Linux all have hardcoded English language strings in them.
Thus, for any company that wants to create a "RwandaLinux", not only do they have to translate documentation, but they must hire programmers (not writers) who can translate embedded strings in the thousands of userland utilities that ship with typical Linux distributions, and that is a monumental task.
In addition to translating them, they must make sure they are kept up to date with their English counterparts.
None of this is going to change until programmers stop writing code like
When that happens, there will be no need to keep localized versions "up to date" with the newest CVS trees, but the program text will be separated from the logic.
For example, view http://www.servlets.com/servlet/HelloRosetta via IE5/Win2000.
Mozilla is probably the only open-source app that has the right architecture to support localization and i18n. For instance, Mozilla stores language resources as XML entities, making them easy to localize. Very nice solution IMHO.
Both the Windows and Java API's have significant support for i18n and l18n, such as full support for various character encodings, support for resource files builtin, Collation (being able to do String comparisons and sorting on non-English languages), Time, Date, Metric, and Money formating, etc.
1) Java does make programming easier than C++. It eliminates the need to screw around with stupid #include guards, forward declarations, memory allocation policy, and Java exceptions instantly zero you in on the line of code causing problems, which makes debugging way easier. Java also comes with *WAY* better runtime libraries than ANSI C++.
2) It's not significantly slower. You made the assertion, you provide the benchmarks with source. I'll optimize your Java benchmark to show you that you don't know what you're talking about.
3) You don't have a clue as to what you're talking about. Almost all complex games use a runtime interpreted scripting language that is significantly slower than Java in execution speed.
QuakeC (Quake1), UnrealScript, Tribes Script, Half-Life, etc.
The reason why this might confuse you, is because you don't understand the optimization principle: 90% of of the CPU is spent in 10% of the code. Switching from interpreted scripts to binary C might yield a 10% framerate increase, big deal.
On the other hand, with interpreted scripts, you're guaranteed not to be hit by a VIRUS in that free quake module you just downloaded.
VMs also make it easier for game developers to dynamically test game logic without having to rebuild/relink a library and reboot the Quake server.
One thing's for sure, Carmack knows alot more than you. And he has a Ferrari.
Being able to effectively plan out your story, your characters, and how it unfolds is taught to most college students who take composition and literature courses. A writing class generally helps a person become better at communicating and arranging their thoughts in a succinct manner.
It's a top down technique with bottom-up feedback and iteration (rough draft, edit, next draft, edit, etc)
On the other hand, the vast majority of programmers are not taught techniques for arranging their "thoughts" and putting them into code effectively. Software engineering courses on campus are little more than a *REVIEW* of current SoftEng literature, and not much of a workshop. And usually only one class is required or even exists. In an english composition class, you might have to write 5-6 essays throughout the course of a semester, all putting into practice the techniques you learned.
So much time is spent in CS departments teaching algorithms, programming languages, and analysis, that precious little time is left over for teaching effective software composition. Which probably means that colleges need to make a distinction between Science and Engineering. Right now, colleges have both CS and IT classes (IT usually emphasizes technology, and not science), and I think IT should add more requirements related to teaching style and technique. After all, the IT people are the "grunt" workers who actually have to go out and design/build the bridge, not study the materials engineering that goes into the steel used to build it.
As a minimum, "engineers" in addition to getting some required science background, should be able to concentrate in "design", such as the following:
1) requirements analysis 2) design (booch, rumbaugh, jacobsen, design patterns, et al) 3) process 4) management/team building 5) risk analysis
And, like any good engineering school, there should be heavy emphasis on actual real projects.
This is no way takes away from the "art" aspect of programming. Can't a scientist use his skills for building a bridge or building a sculpture? All I'm asking is that the people building the applications I use and depend on (and moreover, that the nation's infrastructure depends on) be a little more "serious" and a little less focused on "coolness" vs design/maintainence.
of course, anytime someone calls for this, there are always cries that it will kill innovation, passion, etc etc. Personally, I see far more "failures" than I do innovation from most of the amateur coders. People like to focus on the successes, but that doesn't give you the whole picture.
Miguel is intelligent enought to know we're not just talking about alpha channeling. He was saying that libart provided the necessary tools. In case you are unaware, libart is a library for high-performance 2D graphics. It is the antialiased rendering engine for the Gnome Canvas. It supports a powerful imaging model which is basically the same as SVG or Java2D. It does Vector Paths, Bezier Paths, RGB and RGBA images, Sorted Vector Paths, MicroTile Arrays, and Affine transformations.
That would be true, if libart really did match the functionality of DPS or Java2D, but unfortunately, a quick look at the API in the header files shows that not only is it insufficient, but it also looks like a very difficult API to use in the first place.
Consider the following task: Fetch the glyph for the letter 'S', convert it to a bezier path, shear it by 0.3, 0.4. Set this stroke as a clipping path. Next, render the word "Linux rulez", scaled by 2.0/2.0, applying a a gaussian blur kernel to the output (for dropshadow). Next, re render the text with a radial gradient fill overtop of the background. Finally, fetch a penguin icon and render it overtop of the 'I' of the text with 0.3 alpha. Of course, all this must be antialiased and rendered pixel perfect. Next, render this in a variety of output formats including:
grayscale
monochrome (1-bit)
ARGB
BGR
palette mapped
Not only can't libart do this (it has ZERO support for font glyph operations), but libart has no provisions for handling a multiple of pixel formats, nor does it have integrated support for image ops like applying convolutions, and finally, the libart test code to render just a few vpath's is about 5 times longer than the equivalent code required in Objective-C/DPS or Java/Java2D.
But I'm not bashing libart or Raph Levien. I have respect for his work. I'm sure it will tremendously improve over the next year, when such functionality becomes a "must have", but right now, it's more like an experimental proof-of-concept library in the beginning stages. What I find absurd however, is how the GNOME team keeps putting forward *OBVIOUSLY INCOMPLETE* projects like they are 1.0 FCS versions ready to compete with mature implementations. Like it or not, the current GNOME Canvas can't hold a candle to a Postscript/PDF/Java2D rasterizer, no matter how many times alpha version libraries are asserted.
My post was marked flamebait, but I view Miguel's comments as the real flamebait. Why does he feel the need to bash Apple's work (I am not a Mac owner and never owned a Mac), like it's so trivial and he's such a master coder that he could just blow Apple and Adobe out of the water if he felt like making the effort?
Apple's work on imaging in Mac OS X is clearly more than just "skin"/"theme" hacks, and focusing on the cool transparency effects ignores the hard work that went in to actually designing the dockbar user interface. Maybe the GNOME/Enlightenment guys should spend a little more time themselves on UI design, and less on "looks".
Come on, of course it's trivial to add transparency to the desktop if you have a rendering system that supports Alpha channel. Windows 2000 even supports this, and there are little utilities that let you turn transparent windows on and off. Miguel would be sadly mistaken if he thinks this is all he has to add to GNOME to compete with Apple, or even Java2. Enlightenment/imlib already provides transparency in themes, but they provide *zippo* support to apps that want to render say, a 300DPI illustration.
What Miguel is missing is that Aqua is not about transparency, it's about Quartz, the Display-PDF rendering system. The NeXT display postscript system and Sun's NeWS could also handle alpha easily, but does anyone think that the only useful feature of Display Postscript or Quartz is being able to render alpha?
Systems like Quartz, DPS, and Java2D are resolution independent, support anti-aliasing on everything, full affine transformations for everything, virtually all compositing modes you can think of, built in ability to stroke complex shapes, like lines using arbitrary thickness, fill, dash-pattern, and endcaps. For instance, with Java2D it's almost trivial to write a postscript/pdf/svg renderer because the base library is so powerful.
Miguel's solution might resemble Aqua's transparent windows, but without a real 2D rasterization engine, GNOME apps will never approach the flexibility of Quartz apps in rendering. In fact, he won't even approach the quality of Aqua's nice warping/scaling of images with aliasing artifacts.
What I really hate is this not-invented-here tendency to automatically superficially evaluate and dismiss other people's technology without even doing 10 minutes of research besides looking at screenshots, and then making public assertions about how trivial it is, and how much better your "solution" will be.
Clearly, Linux's GUI toolkits need a powerful comprehensive resolution independent 2D API to support powerful display and printing apps. The current mode of separating the display and printing APIs is a pain in the ass to develop for.
The best innovations are built on the shoulders of others, and if Miguel would spend more time learning and stealing technology from Apple, Microsoft, and even the KDE team, and less time dismissing everything and trying to reinvent it, maybe GNOME wouldn't be so buggy and unusable.
They have essentially built a Japanese Compact Car that is fuel efficient, and not an Italian sports car.
Efficiency isn't exactly exciting. Unless I am using a Palm Pilot, I really don't care if my PentiumIII or Alpha is sucking 34W and my Nvidia GeForce is sucking another 30. What I care about is how fast my performance is. How many transactions can I run? How many frames per second am I getting? How many polygons can I push?
Crusoe may be important for the coming ubiquitous computing revolution (if it ever happens), but they are not the first to go after low power (remember Rise? Remember WinChip IDT? Don't forget Strong ARM)
I think Crusoe is a nice chip, but the *HYPE* (and I mean hype) caused by deliberate secrecy and press leaks thoroughly destroyed any chance of it being seen as revolutionary in my eyes.
The Code Morphing technology is not revolutionary. Emulators have been doing dynamic instruction set recompilation for years now, DEC did it with FX32, Sun does it with Java JIT's (including HotSpot which does recompilation based on runtime profiles), SmallTalk VM's have been doing it, hell, even one of the Commodore 64 emulators does it if I recall. John Carmack's Quake3 engine even does it. I'm sure there are hundreds of projects in Academia that have been doing it. The only relevent difference is the hardware assist that the Crusoe has.
Chances are, when you hype something too much, it's going to be disappointing. There's a thread on Usenet that claims Transmeta's *ORIGINAL* goal was not low power, but the best performance, but when they couldn't attain it, they "fell back" to a low power selling point. I think it's in comp.arch.
Probably not as good as a Cyrix.:) Seriously, they have to be making a tradeoff somewhere. It sounds like nothing more than a CPU with a simple instruction set using something similar to a Java Just-In-Time compiler to translate x86 code to its native format.
Don't trade in your PentiumIII/Athlon yet.
The only killer app I see for Crusoe in the short term is if they can get it to emulate a Motorola Dragonball processor, but at great speeds, so that Palm Pilot's have the cpu power to do interesting things like play MP3's.
Why do people keep harping on IE/Windows integration? As much as I used to be a Netscape booster, reality must be faced -- Netscape fell behind, and failed to execute. Looking at original Netscape source release, you can see how spaghetti coded it is, virtually unmaintainable. It needed a rewrite (Mozilla). I used to be one of the big anti-IE/MS bashers in the newsgroups until IE4 came out.
Besides Netscape being inferior to IE3/4 on all fronts (Javascript, object model, plugin distribution, java vm, xml support, etc), Netscape failed to componentize the browser in a library so that AOL, for example, could embed it in their client, or application writers could use it as a widget. The list of criticisms goes on.
Furthermore, users now expect their computer to come with a browser. When I use a computer now, I DEMAND that it come with a TCP/IP stack, and I would be outraged if I had to buy Trumpet Winsock now. Simply put: the browser is a commodity, just like a TCP/IP stack, and Microsoft's *NATURAL* inclination would be to embed it in the OS, just like all the other little utilities, even if Netscape didn't exist. Frankly, I'm pissed that Windows doesn't bundle a better Telnet client, like CRT.
How many people would buy a Linux distribution that simply left the networking support out of the kernel, including the source, so that you had to buy a separate TCP/IP stack?
Likewise, KDE bundles a browser Widget, and soon, we can expect Mozilla to be bundled with Linux. Does anyone think this is bad?
Netscape had over 50% of the browser market when they started complaining, and IMHO, the reason they complained was because they were failing to execute, and needed to be protected, not because Microsoft crushed them. Did anyone else read the original Networked Enterprise whitepapers that Netscape put out on Gemini and Apollo? They delivered on *ZERO* of the concepts described in that paper, and their business strategy was all over the map. Open source developers have already been able to replace IE with Mozilla as Windows98's preferred rendering engine. Why couldn't Netscape make NS4 an ActiveX component if a single open-source developer did it? Especially since developers were demanding a browser widget to embed in apps like Quicken, IDE's, etc.
Anyway, putting IE4 in the OS significantly helped the consumer by giving them, out of the box, a superior web browser. If Netscape's browser had truly been "way better", I could see a case for a non-optimal outcome.
Finally, in reading the document, Microsoft makes an interesting case about monopoly power:
"Indeed, "[m]arket share indicates [monopoly] power only when sales reflect control of the productive assets [i.e., capacity to supply] in the business." Indiana Grocery, 864 F.2d at 1414. "If a firm's share of market sales does not reflect control of a significant percentage of the market's productive assets, it does not indicate [monopoly] power." Id. There is no finding, nor could there be, that Microsoft controls a significant percentage of the productive assets in the software business or any part thereof."
It then goes on to list examples.
Another:
"entry is [not] limited by government regulation or licensing requirements. Nor is this the type of industry, like heavy manufacturing or mining, which requires onerous front-end investments that might deter competition from all but the hardiest and most financially secure investors. Nor do we have here a business dependent on a scarce commodity, control over which might give the incumbent a substantial structural advantage."
Which basically says that Microsoft can neither restrict the supply of operating systems (Linux being the obvious example), nor are there structural barriers to entry for creating OSes.
In fact, the internet is full of many OS projects, not just Unix ones, most of them written by university students for projects. I wrote a small OS myself in 80x86 assembly a few years ago, with a text mode windowing system.
Will these OSes be able to take the public mindshare by storm? Probably not, but there is no significant barrier imposed by Microsoft towards creating them, besides the hard work neccessary.
Linux itself is poised to enter the desktop realm soon, and they will be bundling everything under the sun, from browsers to dbs to image processing to IDEs and office suites. Most of these apps will be clones of commercially successful pioneers, but offered at zero price, probably condemning many companies to the same fate as Netscape.
If anything, MS has to be more afraid of this than of the DoJ, which is why I think breaking them up is silly when they may be defeated by Linux in under 5 years.
The story in the WashingtonPost also says that employers are responsible for HOME INDOOR AIR QUALITY and even if you fall down your own stairway in your house!!
Basically, as an employer, I would never allow telecommuting under this regulation. It leaves the employer too at risk to arbitrary open ended lawsuits. Your mom waxed the floor, and you fell down and busted your hip on your way to the basement. Ooppps! Sue my employers!
So? If you're playing Q3 in single player mode, you probably aren't logged in anyway.
Most people don't sit logged into their dialup 24hrs a day.
Regardless, the point is, the information collected by ID is NO WORSE than User-Agent, and in fact, using Javascript or Java in IE4/Netscape, you can find out about a machine's capabilities easily, and with a small benchmark routine, you can time it's CPU speed.
In fact, HTTP headers betray even more information in the accept/* headers.
If you want to be truly anonymous, you better start by using something like the Freedom Network, and stop using any binary only software, or restrict yourself to sandbox'ed apps.
Until we have an OS that can enforce a P3P-like security policy like Java can enforce runtime permissions, there will always be this danger.
I'm just sick and tired of all the constant paranoid whining on Slashdot over IPv6, cookies, Pentium IDs, etc, all features which do more good than harm to the web.
Did you know that whenever you connect to a web site, most browsers will tell the server what your IP address is, what OS you are using, and sometimes your CPU and screen resolution? Shocking!!!!
I shudder everytime I think about it. George Orwell was right. Jack van Impe was right. We live in a police state. We are being watched everywhere.
Who knows what's next. Today, you video card. Tommorow, Carmack will have have speech recognition in Q4 sending analysis to the marketing department and Echelon. Not to mention video webcams recording you masturbating to porn sites.
Time to go live in the woods like the Unabomber. It's all over on January 1,2000 anyway.
This simply records your OS, Video Card, driver, etc when you play. It doesn't expose your personal information.
There is no difference between this, and the User-Agent HTTP header that is sent. Oh, the User-Agent doesn't expose video card, BFD. (but you can sometimes get at screen depth/size depending on browser scripts/java) Most naive users are unaware that info is sent, and browsers don't prompt users either.
The level of paranoia on Slashdot has reached all time high. Next thing you know, ID will be charged with the high crime of recording their player's IP addresses on their central server.
What do these have in common? Politicians in the EU using these issues to stoke the fire of Nationalism or Continentialism.
It's the big bad USA doing evil things, sapping vital bodily fluids with their listening outposts, CPU IDs, mind numbing cultural exports (Hollywood), and "dangerous" GM foods.
Is it any wonder that most of the whining comes from France, a country so uptight about losing their colonial power that they spend enormous efforts trying to protect their language from adopting loanwords, or their culture seeing too many foreign films, or african countries becoming independent of "assistance"
Echelon is no more real than UFOs. It's a phony government conspiracy that idiots will never disbelieve because any lack of evidence against its existence merely proves how secretive and wellkept it is.
The NSA, GCHQ, and other intelligence agencies around the world use listening outposts to listen in on EM transmissions, and they wiretap embassies, telegrams, and most transatlantic cables. This is *KNOWN* and has been known for 40 years. The australian admissions are not evidence for Echelon, they are evidence that Austrailian scans EM frequencies. BFD. Do yourself a favor and go read CodeBreakers.
Do they have the capability to intercept every phone call, every IP packet, every email message, and every radio signal in the whole entire world transmitted each second? Do they have such omnipotence? No. It's a fantasy that they can get EVERY PHONE CALL, EMAIL, etc. Echelon is a fantasy as proposed by EU saber rattlers.
The PIII CPU ID is yet another bogus issue brought up to encourage nationalistic feelings against the US. Oh no, poor Europe, that doesn't have its own microcomputer industry, is going to be monopolized and have its freedoms taken away by Intel because their computer has a unique ID in the CPU. Oh no! We better stop these yankees now!
From what I can tell, c't used fork()'ed CGIs for their comparison against NT which is unrealistic. No high volume site will rely on out-of-process CGI's any longer. All they proved was that Linux fork() is faster than NT's CreateProcess(). But NT excels at threads, not processes. The real test needs to be mod_perl vs ActiveState's PerlScript on NT.
Someone needs to perform a standard transaction-oriented dynamic web test, for instance, maybe a simulation of a auction web site, with simulated buyers and sellers.
We could then benchmark mod_perl vs php3 vs servlets vs ASP vs aolserver vs LiveWire and see which languages and which platforms come out on top.
Alot of people are expecting Linux to win on the dynamic version of such a test, but I wouldn't be so sure. IIS does a lot of unsafe things to boost performance, and I bet its ASP execution path is faster than Apache's (although not as safe/stable)
NT, for all its flaws, has a very efficient threading and asynchronous I/O mechanism which helps it scale very efficiently for some scenarios. Still, I'd love to see a dynamic benchmark.
Hmm meant to say heap, makes no difference. All JVMs I've worked with (Sun,Netscape and MS implementations) are buggy and I haven't found it hard to write code that (unintentionally) crashes them, probably due 'exploiting' stack/heap corruption or dangling pointer references in JVM code. I'm not talking about the language here but the VM implementations.
So? It's still lightyears better than C/C++ code which makes it trivial to write a program that dumps core. You're problem is with bugs in the runtime. You'll encounter the same such bugs in MFC, QT, GTK, Motif, etc and other 3rd party libraries used with C++ (oh, and how about C/C++ compiler optimizer related bugs)
Personally I prefer predictable runtime performance (can we say no garbage collection) and still do it manually (using a malloc debugger to find memory leaks). I admit having to do this is pretty sad, but at least in C++ I have the option.
Yeah, it's pretty sad to do this when time-critical performance isn't an issue, isn't it? The number of apps that require real-time performance pail in comparison to the number of apps that run perfectly fine in Visual Basic, TCL, Perl, Java, and Python. (all of which, feature some form of automatic memory reclaimation, whether it is GC or reference counting)
However, these leaks don't build up and usually amount to a waste of memory that is constant. Rubbish.
Leaks caused by accidently holding onto references *DON'T* build up indefinately. The only way you can leak resources without bound would be to use a data structure that can grow without bound, and keep adding references to it.
native-code related leaks are the only leaks that can grow without bound. Do you understand the difference between a piece of Java code holding onto a reference for too long, and a piece of native-code calling malloc() and not freeing?
Until long running C servers which can chew up all the ram in a machine. Huh?
I meant "Unlike". Long running C servers can allocate memory indefinately. For instance, a single unbalanced malloc() statement, over the course of months of uptime, could suck up all the memory available to it. Thankfully, most Unix servers are spawned from INETD and are not long running.
The only "true memory leaks" in Java are related to JNI implementation bugs in classes like java.awt.Image, and java.awt.Dialog, which have been fixed. Never mind the memory leaks in the VMs.
Which are principally in the AWT related code, not the VM core. Don't you get it? You complain about GUI/desktop related code. Don't you understand that most of the VM related bugs are in the native GUI integration code, and not in the core VM?
I haven't written any commercial Haskell code, there aren't any good Haskell compilers, a good optimizing Haskell compiler is quite possibly decades away. My point was that as a language the beauty (simplicity, readability) of Haskell is first rate, far superior to Java and C++.
But it's usability is far below. Functional Languages are nice theoretical abstractions, and there is a beautiful theory behind the interaction of functional languages and I/O using Monads, but functional languages are frankly a *bitch* to work with when it comes to handling environmental state like network, disk, or user interface events. Yes, Quicksort in 3 lines of Haskell is cool, but writing Slashdot in Haskell or a Word Processor would be alot more painful, and mucher slower than either Java or C++.
Most of the world wants something that has immediate utility, a pragmatic advancement. Java, Eiffel, ADA, etc aren't theoretical advancements, they are simple evolutionary advancements that make development less buggier and easier to maintain.
Java certainly isn't the end-all-and-be-all of programming languages. No programming language is! Java was invented to run untrusted code on multiplatforms, and at that, it excels, and happens to function very nicely in a variety of contexts.
And no, Quake4 won't be written in Java, but who cares.
However for developing shrinkwrap style apps in a competitive environment (my area of interest) it is a proven failure.
And by extension, so in Eiffel, Smalltalk, ADA, oh, and not to mention, Linux itself right?
Could it be that the whole idea of shrinkwrap style apps is a thing of the past? I don't know about you, but except for video games, multimedia, browsers, and Microsoft Office, I spent the vast majority of my time using the web.
I don't use all these "business shrinkwrap 4GL" apps that do nothing but handle simplified non-realtime user input. I'll take HTML interfaces anyday, especially over the crappy X/GTK-style apps.
Please tell me how you can corrupt the stack in Java. Meaning, expose it to a buffer overflow attack ala Java. Or is it possible you don't know what you're talking about?
In Java, you can only "leak resources" by holding onto them. However, these leaks don't build up and usually amount to a waste of memory that is constant. Until long running C servers which can chew up all the ram in a machine.
The only "true memory leaks" in Java are related to JNI implementation bugs in classes like java.awt.Image, and java.awt.Dialog, which have been fixed.
I wouldn't call Java "dumbed down", I would call it "a more coherent, organized version of C++". And since you mention Haskell, care to point us to any code you've written, or are you simply blowing smoke out your ass.
And if you want to talk about blowing C++ out of the water, let's look at Eiffel, shall we?
Yeah, but games on consoles can typically fit their main rendering code completely in the cache. (e.g. PSX-1 only had 2meg of RAM and 1 meg of VRAM)
The PSX2 also uses 800Mhz RDRAM and the graphics processor uses embedded-dram with a 48gigabyte/sec bandwidth.
First Toshiba, now AOL. Who do I get to sue if I install a newer version of glibc and the RPM breaks all my apps? Should I be able to sue RedHat because RedHat5 default install had a billion security holes and my box got rooted?
What if KOffice or GNOME Office core dumps and I lose work? (ala alleged Toshiba floppy leading to lost work)
Even "modern" Western societies fall prey to scaremongering. Come on, Y2K! It's the end of the world as we know it! Thousands of programmers on the internet repeated this trash, as they imagined a scenario where the worst happened (power, telephone, gas, nuclear, etc all going kaput at once. Nothing could be fixed because of all infrastructure being paralyzed. Back to to the stone age, with riots, and all that.)
Just look at Europe and the insane paranoia over beef and Mad Cow Disease. There's never been any proof of the link between MCD and CJD. Hell, there's not even any info on whether or not the incidence of CJD is higher than its historical or natural level.
Then there are the green pressure group scare tactics over genetically modified foods, pharmaceuticals, or pretty much any new technology. A US ad by Turning Point shows a mouse with a human ear growing on its back (transplanted cells into a plastic-matrix merely being fed by the mouse's circulatory system, e.g. incubated), and the green ad uses the picture as an example of the HORRIFIC abuse that genetic engineering poses on nature (even tho the actual mouse wasn't GM'ed)
The whole precautionary principle debate is ridiculous. If it was truly applied to all new technologies, we wouldn't be able to eat any new recipes. Can you prove that those new Smoothy drninks that blend together lots of veggies won't result in a chemical side-effect? Better run government tests on that! Does anyone actually realize that cooking *is* chemistry? That's not to say that there should be no regulation, since regular *breeding* as described above is also regulated (many "natural" plants have lots of toxins in them) What's needed is rational discourse however, not bohemian granola hippies teaming up with labor unions and dancing wild in the streets of Seattle, or green pressure groups opening spreading false propaganda to encourage fear.
(see http://www.junkscience.com/dec99/earie.htm )
Some hack farmer blindly crosses different plant species, with huge bits of genes being swapped back and forth (some infact is "genetic junk" being accidently reactivated), and people think it is perfectly natural, and "safer" Meanwhile, a scientist transfers a single gene between two species instead of cut-and-pasting huge segments, and it is somehow "dangerous" (while at the same time, being more precise and careful), because it's not "natural"
There is a total lack of education about RISK in this society, and the pressure groups are praticing a scare compaign to take advantage of that.
In fact, there is a general lack of tolerance in general. Everything is seen as black and white. Corporations? Evil. Government? Evil? Socialism? Evil. Capitalism? Evil. GM? Evil. Microsoft? Evil. Closed Source? Evil. No one bothers to consider or weigh specific cases or situations any more. Everything is simple categorized and dismissed.
On slashdot, I see nine gazillion comments on every new story to the effect "what's so new about this? big deal." Before people even read a story, they hit the reply button and start dismissing it. And while there are generally a few thoughtful essays posted, the vast majority of responses are 1-3 line dismissals or "dittos"
Can someone please teleport me to Vulcan or some planet where there is more thoughful discussion?
is not the kernel and device drivers supporting it (which they do), but the fact that there isn't an easy to use, widely adopted API for locating language resource strings. In userland, thousands of GNU utilities and scripts shipped with Linux all have hardcoded English language strings in them.
Thus, for any company that wants to create a "RwandaLinux", not only do they have to translate documentation, but they must hire programmers (not writers) who can translate embedded strings in the thousands of userland utilities that ship with typical Linux distributions, and that is a monumental task.
In addition to translating them, they must make sure they are kept up to date with their English counterparts.
None of this is going to change until programmers stop writing code like
printf("The task completed successfully.")
and
if(!strcmp(argv[c], "-delete"))
and start writing code like
printf(getResource(TASK_COMPLETION_MESSAGE));
if(!strcmp(argv[c], getResource(CMDLINE_OPTION_DELETE))
When that happens, there will be no need to keep localized versions "up to date" with the newest CVS trees, but the program text will be separated from the logic.
For example, view http://www.servlets.com/servlet/HelloRosetta via IE5/Win2000.
Mozilla is probably the only open-source app that has the right architecture to support localization and i18n. For instance, Mozilla stores language resources as XML entities, making them easy to localize. Very nice solution IMHO.
Both the Windows and Java API's have significant support for i18n and l18n, such as full support for various character encodings, support for resource files builtin, Collation (being able to do String comparisons and sorting on non-English languages), Time, Date, Metric, and Money formating, etc.
1) Java does make programming easier than C++. It eliminates the need to screw around with stupid #include guards, forward declarations, memory allocation policy, and Java exceptions instantly zero you in on the line of code causing problems, which makes debugging way easier. Java also comes with *WAY* better runtime libraries than ANSI C++.
2) It's not significantly slower. You made the assertion, you provide the benchmarks with source. I'll optimize your Java benchmark to show you that you don't know what you're talking about.
3) You don't have a clue as to what you're talking about. Almost all complex games use a runtime interpreted scripting language that is significantly slower than Java in execution speed.
QuakeC (Quake1), UnrealScript, Tribes Script, Half-Life, etc.
The reason why this might confuse you, is because you don't understand the optimization principle: 90% of of the CPU is spent in 10% of the code. Switching from interpreted scripts to binary C might yield a 10% framerate increase, big deal.
On the other hand, with interpreted scripts, you're guaranteed not to be hit by a VIRUS in that free quake module you just downloaded.
VMs also make it easier for game developers to dynamically test game logic without having to rebuild/relink a library and reboot the Quake server.
One thing's for sure, Carmack knows alot more than you. And he has a Ferrari.
Being able to effectively plan out your story, your characters, and how it unfolds is taught to most college students who take composition and literature courses. A writing class generally helps a person become better at communicating and arranging their thoughts in a succinct manner.
It's a top down technique with bottom-up feedback and iteration (rough draft, edit, next draft, edit, etc)
On the other hand, the vast majority of programmers are not taught techniques for arranging their "thoughts" and putting them into code effectively. Software engineering courses on campus are little more than a *REVIEW* of current SoftEng literature, and not much of a workshop. And usually only one class is required or even exists. In an english composition class, you might have to write 5-6 essays throughout the course of a semester, all putting into practice the techniques you learned.
So much time is spent in CS departments teaching algorithms, programming languages, and analysis, that precious little time is left over for teaching effective software composition. Which probably means that colleges need to make a distinction between Science and Engineering. Right now, colleges have both CS and IT classes (IT usually emphasizes technology, and not science), and I think IT should add more requirements related to teaching style and technique. After all, the IT people are the "grunt" workers who actually have to go out and design/build the bridge, not study the materials engineering that goes into the steel used to build it.
As a minimum, "engineers" in addition to getting some required science background, should be able to concentrate in "design", such as the following:
1) requirements analysis
2) design (booch, rumbaugh, jacobsen, design
patterns, et al)
3) process
4) management/team building
5) risk analysis
And, like any good engineering school, there should be heavy emphasis on actual real projects.
This is no way takes away from the "art" aspect of programming. Can't a scientist use his skills for building a bridge or building a sculpture? All I'm asking is that the people building the applications I use and depend on (and moreover, that the nation's infrastructure depends on) be a little more "serious" and a little less focused on "coolness" vs design/maintainence.
of course, anytime someone calls for this, there are always cries that it will kill innovation, passion, etc etc. Personally, I see far more "failures" than I do innovation from most of the amateur coders. People like to focus on the successes, but that doesn't give you the whole picture.
That would be true, if libart really did match the functionality of DPS or Java2D, but unfortunately, a quick look at the API in the header files shows that not only is it insufficient, but it also looks like a very difficult API to use in the first place.
Consider the following task: Fetch the glyph for the letter 'S', convert it to a bezier path, shear it by 0.3, 0.4. Set this stroke as a clipping path. Next, render the word "Linux rulez", scaled by 2.0/2.0, applying a a gaussian blur kernel to the output (for dropshadow). Next, re render the text with a radial gradient fill overtop of the background. Finally, fetch a penguin icon and render it overtop of the 'I' of the text with 0.3 alpha.
Of course, all this must be antialiased and rendered pixel perfect. Next, render this in a variety of output formats including:
Not only can't libart do this (it has ZERO support for font glyph operations), but libart has no provisions for handling a multiple of pixel formats, nor does it have integrated support for image ops like applying convolutions, and finally, the libart test code to render just a few vpath's is about 5 times longer than the equivalent code required in Objective-C/DPS or Java/Java2D.
But I'm not bashing libart or Raph Levien. I have respect for his work. I'm sure it will tremendously improve over the next year, when such functionality becomes a "must have", but right now, it's more like an experimental proof-of-concept library in the beginning stages. What I find absurd however, is how the GNOME team keeps putting forward *OBVIOUSLY INCOMPLETE* projects like they are 1.0 FCS versions ready to compete with mature implementations. Like it or not, the current GNOME Canvas can't hold a candle to a Postscript/PDF/Java2D rasterizer, no matter how many times alpha version libraries are asserted.
My post was marked flamebait, but I view Miguel's comments as the real flamebait. Why does he feel the need to bash Apple's work (I am not a Mac owner and never owned a Mac), like it's so trivial and he's such a master coder that he could just blow Apple and Adobe out of the water if he felt like making the effort?
Apple's work on imaging in Mac OS X is clearly more than just "skin"/"theme" hacks, and focusing on the cool transparency effects ignores the hard work that went in to actually designing the dockbar user interface. Maybe the GNOME/Enlightenment guys should spend a little more time themselves on UI design, and less on "looks".
Umm, what are you babbling about? It is Windows that has GDI, and the NeXT and NeWS systems which use Display Postscript.
You're on drugs. No other system supports remote display like Windows 2000? Come again?
Come on, of course it's trivial to add transparency to the desktop if you have a rendering system that supports Alpha channel. Windows 2000 even supports this, and there are little utilities that let you turn transparent windows on and off. Miguel would be sadly mistaken if he thinks this is all he has to add to GNOME to compete with Apple, or even Java2. Enlightenment/imlib already provides transparency in themes, but they provide *zippo* support to apps that want to render say, a 300DPI illustration.
What Miguel is missing is that Aqua is not about transparency, it's about Quartz, the Display-PDF rendering system. The NeXT display postscript system and Sun's NeWS could also handle alpha easily, but does anyone think that the only useful feature of Display Postscript or Quartz is being able to render alpha?
Systems like Quartz, DPS, and Java2D are resolution independent, support anti-aliasing on everything, full affine transformations for everything, virtually all compositing modes you can think of, built in ability to stroke complex shapes, like lines using arbitrary thickness, fill, dash-pattern, and endcaps. For instance, with Java2D it's almost trivial to write a postscript/pdf/svg renderer because the base library is so powerful.
Miguel's solution might resemble Aqua's transparent windows, but without a real 2D rasterization engine, GNOME apps will never approach the flexibility of Quartz apps in rendering. In fact, he won't even approach the quality of Aqua's nice warping/scaling of images with aliasing artifacts.
What I really hate is this not-invented-here tendency to automatically superficially evaluate and dismiss other people's technology without even doing 10 minutes of research besides looking at screenshots, and then making public assertions about how trivial it is, and how much better your "solution" will be.
Clearly, Linux's GUI toolkits need a powerful comprehensive resolution independent 2D API to support powerful display and printing apps. The current mode of separating the display and printing APIs is a pain in the ass to develop for.
The best innovations are built on the shoulders of others, and if Miguel would spend more time learning and stealing technology from Apple, Microsoft, and even the KDE team, and less time dismissing everything and trying to reinvent it, maybe GNOME wouldn't be so buggy and unusable.
They have essentially built a Japanese Compact Car that is fuel efficient, and not an Italian sports car.
Efficiency isn't exactly exciting. Unless I am using a Palm Pilot, I really don't care if my PentiumIII or Alpha is sucking 34W and my Nvidia GeForce is sucking another 30. What I care about is how fast my performance is. How many transactions can I run? How many frames per second am I getting? How many polygons can I push?
Crusoe may be important for the coming ubiquitous computing revolution (if it ever happens), but they are not the first to go after low power (remember Rise? Remember WinChip IDT? Don't forget Strong ARM)
I think Crusoe is a nice chip, but the *HYPE* (and I mean hype) caused by deliberate secrecy and press leaks thoroughly destroyed any chance of it being seen as revolutionary in my eyes.
The Code Morphing technology is not revolutionary. Emulators have been doing dynamic instruction set recompilation for years now, DEC did it with FX32, Sun does it with Java JIT's (including HotSpot which does recompilation based on runtime profiles), SmallTalk VM's have been doing it, hell, even one of the Commodore 64 emulators does it if I recall. John Carmack's Quake3 engine even does it. I'm sure there are hundreds of projects in Academia that have been doing it. The only relevent difference is the hardware assist that the Crusoe has.
Chances are, when you hype something too much, it's going to be disappointing. There's a thread on Usenet that claims Transmeta's *ORIGINAL* goal was not low power, but the best performance, but when they couldn't attain it, they "fell back" to a low power selling point. I think it's in comp.arch.
Probably not as good as a Cyrix.
Don't trade in your PentiumIII/Athlon yet.
The only killer app I see for Crusoe in the short term is if they can get it to emulate a Motorola Dragonball processor, but at great speeds, so that Palm Pilot's have the cpu power to do interesting things like play MP3's.
-Ray
Why do people keep harping on IE/Windows integration? As much as I used to be a Netscape booster, reality must be faced -- Netscape fell behind, and failed to execute. Looking at original Netscape source release, you can see how spaghetti coded it is, virtually unmaintainable. It needed a rewrite (Mozilla). I used to be one of the big anti-IE/MS bashers in the newsgroups until IE4 came out.
Besides Netscape being inferior to IE3/4 on all fronts (Javascript, object model, plugin distribution, java vm, xml support, etc), Netscape failed to componentize the browser in a library so that AOL, for example, could embed it in their client, or application writers could use it as a widget. The list of criticisms goes on.
Furthermore, users now expect their computer to come with a browser. When I use a computer now, I DEMAND that it come with a TCP/IP stack, and I would be outraged if I had to buy Trumpet Winsock now. Simply put: the browser is a commodity, just like a TCP/IP stack, and Microsoft's *NATURAL* inclination would be to embed it in the OS, just like all the other little utilities, even if Netscape didn't exist. Frankly, I'm pissed that Windows doesn't bundle a better Telnet client, like CRT.
How many people would buy a Linux distribution that simply left the networking support out of the kernel, including the source, so that you had to buy a separate TCP/IP stack?
Likewise, KDE bundles a browser Widget, and soon, we can expect Mozilla to be bundled with Linux. Does anyone think this is bad?
Netscape had over 50% of the browser market when they started complaining, and IMHO, the reason they complained was because they were failing to execute, and needed to be protected, not because Microsoft crushed them. Did anyone else read the original Networked Enterprise whitepapers that Netscape put out on Gemini and Apollo? They delivered on *ZERO* of the concepts described in that paper, and their business strategy was all over the map. Open source developers have already been able to replace IE with Mozilla as Windows98's preferred rendering engine. Why couldn't Netscape make NS4 an ActiveX component if a single open-source developer did it? Especially since developers were demanding a browser widget to embed in apps like Quicken, IDE's, etc.
Anyway, putting IE4 in the OS significantly helped the consumer by giving them, out of the box, a superior web browser. If Netscape's browser had truly been "way better", I could see a case for a non-optimal outcome.
Finally, in reading the document, Microsoft makes an interesting case about monopoly power:
"Indeed, "[m]arket share indicates [monopoly] power only when sales reflect control of the productive assets [i.e., capacity to supply] in the business." Indiana Grocery, 864 F.2d at 1414. "If a firm's share of market sales does not reflect control of a significant percentage of the market's productive assets, it does not indicate [monopoly] power." Id. There is no finding, nor could there be, that Microsoft controls a significant percentage of the productive assets in the software business or any part thereof."
It then goes on to list examples.
Another:
"entry is [not] limited by government regulation or licensing requirements. Nor is this the type of industry, like heavy manufacturing or mining, which requires onerous front-end investments that might deter competition from all but the hardiest and most financially secure investors. Nor do we have here a business dependent on a scarce commodity, control over which might give the incumbent a substantial structural advantage."
Which basically says that Microsoft can neither restrict the supply of operating systems (Linux being the obvious example), nor are there structural barriers to entry for creating OSes.
In fact, the internet is full of many OS projects, not just Unix ones, most of them written by university students for projects. I wrote a small OS myself in 80x86 assembly a few years ago, with a text mode windowing system.
Will these OSes be able to take the public mindshare by storm? Probably not, but there is no significant barrier imposed by Microsoft towards creating them, besides the hard work neccessary.
Linux itself is poised to enter the desktop realm soon, and they will be bundling everything under the sun, from browsers to dbs to image processing to IDEs and office suites. Most of these apps will be clones of commercially successful pioneers, but offered at zero price, probably condemning many companies to the same fate as Netscape.
If anything, MS has to be more afraid of this than of the DoJ, which is why I think breaking them up is silly when they may be defeated by Linux in under 5 years.
-Ray
The story in the WashingtonPost also says that employers are responsible for HOME INDOOR AIR QUALITY and even if you fall down your own stairway in your house!!
Basically, as an employer, I would never allow telecommuting under this regulation. It leaves the employer too at risk to arbitrary open ended lawsuits. Your mom waxed the floor, and you fell down and busted your hip on your way to the basement. Ooppps! Sue my employers!
So? If you're playing Q3 in single player
mode, you probably aren't logged in anyway.
Most people don't sit logged into their dialup 24hrs a day.
Regardless, the point is, the information collected by ID is NO WORSE than User-Agent, and in fact, using Javascript or Java in IE4/Netscape, you can find out about a machine's capabilities easily, and with a small benchmark routine, you can time it's CPU speed.
In fact, HTTP headers betray even more information in the accept/* headers.
If you want to be truly anonymous, you better start by using something like the Freedom Network, and stop using any binary only software, or restrict yourself to sandbox'ed apps.
Until we have an OS that can enforce a P3P-like security policy like Java can enforce runtime permissions, there will always be this danger.
I'm just sick and tired of all the constant paranoid whining on Slashdot over IPv6, cookies, Pentium IDs, etc, all features which do more good than harm to the web.
Did you know that whenever you connect to a web site, most browsers will tell the server what your IP address is, what OS you are using, and sometimes your CPU and screen resolution? Shocking!!!!
I shudder everytime I think about it. George Orwell was right. Jack van Impe was right. We live in a police state. We are being watched everywhere.
Who knows what's next. Today, you video card. Tommorow, Carmack will have have speech recognition in Q4 sending analysis to the marketing department and Echelon. Not to mention video webcams recording you masturbating to porn sites.
Time to go live in the woods like the Unabomber. It's all over on January 1,2000 anyway.
This simply records your OS, Video Card, driver, etc when you play. It doesn't expose your personal information.
There is no difference between this, and the User-Agent HTTP header that is sent. Oh, the User-Agent doesn't expose video card, BFD. (but you can sometimes get at screen depth/size depending on browser scripts/java) Most naive users are unaware that info is sent, and browsers don't prompt users either.
The level of paranoia on Slashdot has reached all time high. Next thing you know, ID will be charged with the high crime of recording their player's IP addresses on their central server.
Echelon, GM foods, Hollywood, PIII serial number
What do these have in common? Politicians in the EU using these issues to stoke the fire of Nationalism or Continentialism.
It's the big bad USA doing evil things, sapping vital bodily fluids with their listening outposts, CPU IDs, mind numbing cultural exports (Hollywood), and "dangerous" GM foods.
Is it any wonder that most of the whining comes from France, a country so uptight about losing their colonial power that they spend enormous efforts trying to protect their language from adopting loanwords, or their culture seeing too many foreign films, or african countries becoming independent of "assistance"
Echelon is no more real than UFOs. It's a phony government conspiracy that idiots will never disbelieve because any lack of evidence against its existence merely proves how secretive and wellkept it is.
The NSA, GCHQ, and other intelligence agencies around the world use listening outposts to listen in on EM transmissions, and they wiretap embassies, telegrams, and most transatlantic cables. This is *KNOWN* and has been known for 40 years. The australian admissions are not evidence for Echelon, they are evidence that Austrailian scans EM frequencies. BFD. Do yourself a favor and go read CodeBreakers.
Do they have the capability to intercept every phone call, every IP packet, every email message, and every radio signal in the whole entire world transmitted each second? Do they have such omnipotence? No. It's a fantasy that they can get EVERY PHONE CALL, EMAIL, etc. Echelon is a fantasy as proposed by EU saber rattlers.
The PIII CPU ID is yet another bogus issue brought up to encourage nationalistic feelings against the US. Oh no, poor Europe, that doesn't have its own microcomputer industry, is going to be monopolized and have its freedoms taken away by Intel because their computer has a unique ID in the CPU. Oh no! We better stop these yankees now!
And let's not forget Algeria where they tortured
about 10% of the population.
Multiplication is O(N^2), O(N^lg(3)) (and
ranges inbetween) and O(n log n) using
the fast fourier transform technique.
There is no multiplication algorithm that is O(N)
for the general case.
From what I can tell, c't used fork()'ed CGIs for their comparison against NT which is unrealistic. No high volume site will rely on out-of-process CGI's any longer. All they proved was that Linux fork() is faster than NT's CreateProcess(). But NT excels at threads, not processes. The real test needs to be mod_perl vs ActiveState's PerlScript on NT.
Someone needs to perform a standard transaction-oriented dynamic web test, for instance, maybe a simulation of a auction web site, with simulated buyers and sellers.
We could then benchmark mod_perl vs php3 vs servlets vs ASP vs aolserver vs LiveWire and see which languages and which platforms come out on top.
Alot of people are expecting Linux to win on the dynamic version of such a test, but I wouldn't be so sure. IIS does a lot of unsafe things to boost performance, and I bet its ASP execution path is faster than Apache's (although not as safe/stable)
NT, for all its flaws, has a very efficient threading and asynchronous I/O mechanism which helps it scale very efficiently for some scenarios. Still, I'd love to see a dynamic benchmark.
Umm, way before I ever used IIS on NT, I had the pleasure of running Netscape Enterprise Server on NT.
There are like 20 web servers for NT.
So? It's still lightyears better than C/C++ code which makes it trivial to write a program that dumps core. You're problem is with bugs in the runtime. You'll encounter the same such bugs in MFC, QT, GTK, Motif, etc and other 3rd party libraries used with C++ (oh, and how about C/C++ compiler optimizer related bugs)
Personally I prefer predictable runtime performance (can we say no garbage collection) and still do it manually (using a malloc debugger to find memory leaks). I admit having to do this is pretty sad, but at least in C++ I have the option.
Yeah, it's pretty sad to do this when time-critical performance isn't an issue, isn't it? The number of apps that require real-time performance pail in comparison to the number of apps that run perfectly fine in Visual Basic, TCL, Perl, Java, and Python. (all of which, feature some form of automatic memory reclaimation, whether it is GC or reference counting)
However, these leaks don't build up and usually amount to a waste of memory that is constant. Rubbish.
Leaks caused by accidently holding onto references *DON'T* build up indefinately. The only way you can leak resources without bound would be to use a data structure that can grow without bound, and keep adding references to it.
native-code related leaks are the only leaks that can grow without bound. Do you understand the difference between a piece of Java code holding onto a reference for too long, and a piece of native-code calling malloc() and not freeing?
Until long running C servers which can chew up all the ram in a machine. Huh?
I meant "Unlike". Long running C servers can allocate memory indefinately. For instance, a single unbalanced malloc() statement, over the course of months of uptime, could suck up all the memory available to it. Thankfully, most Unix servers are spawned from INETD and are not long running.
The only "true memory leaks" in Java are related to JNI implementation bugs in classes like java.awt.Image, and java.awt.Dialog, which have been fixed. Never mind the memory leaks in the VMs.
Which are principally in the AWT related code, not the VM core. Don't you get it? You complain about GUI/desktop related code. Don't you understand that most of the VM related bugs are in the native GUI integration code, and not in the core VM?
I haven't written any commercial Haskell code, there aren't any good Haskell compilers, a good optimizing Haskell compiler is quite possibly decades away. My point was that as a language the beauty (simplicity, readability) of Haskell is first rate, far superior to Java and C++.
But it's usability is far below. Functional Languages are nice theoretical abstractions, and there is a beautiful theory behind the interaction of functional languages and I/O using Monads, but functional languages are frankly a *bitch* to work with when it comes to handling environmental state like network, disk, or user interface events. Yes, Quicksort in 3 lines of Haskell is cool, but writing Slashdot in Haskell or a Word Processor would be alot more painful, and mucher slower than either Java or C++.
Most of the world wants something that has immediate utility, a pragmatic advancement. Java, Eiffel, ADA, etc aren't theoretical advancements, they are simple evolutionary advancements that make development less buggier and easier to maintain.
Java certainly isn't the end-all-and-be-all of programming languages. No programming language is! Java was invented to run untrusted code on multiplatforms, and at that, it excels, and happens to function very nicely in a variety of contexts.
And no, Quake4 won't be written in Java, but who cares.
However for developing shrinkwrap style apps in a competitive environment (my area of interest) it is a proven failure.
And by extension, so in Eiffel, Smalltalk, ADA, oh, and not to mention, Linux itself right?
Could it be that the whole idea of shrinkwrap style apps is a thing of the past? I don't know about you, but except for video games, multimedia, browsers, and Microsoft Office, I spent the vast majority of my time using the web.
I don't use all these "business shrinkwrap 4GL" apps that do nothing but handle simplified non-realtime user input. I'll take HTML interfaces anyday, especially over the crappy X/GTK-style apps.
Point is, Slashdot is written in a purely
interpreted language. Raw execution speed isn't the only thing that makes a language useful.
The Java bashers need to get over it.
"can't corrupt stack and leak resources"
Please tell me how you can corrupt the stack in Java. Meaning, expose it to a buffer overflow attack ala Java. Or is it possible you don't
know what you're talking about?
In Java, you can only "leak resources" by holding onto them. However, these leaks don't build up and usually amount to a waste of memory that is constant. Until long running C servers which can chew up all the ram in a machine.
The only "true memory leaks" in Java are related to JNI implementation bugs in classes like java.awt.Image, and java.awt.Dialog, which have been fixed.
I wouldn't call Java "dumbed down", I would call it "a more coherent, organized version of C++". And since you mention Haskell, care to point us to any code you've written, or are you simply blowing smoke out your ass.
And if you want to talk about blowing C++ out of the water, let's look at Eiffel, shall we?