Open Source Advocacy The Right Way
[vmlinuz] writes "With a rapid succession of people moving towards Open Source, advocacy and evangelism is increasingly important in helping organizations to move over. The O'Reilly Network has begun publishing a series of articles about Open Source by Jono Bacon that teaches how to approach advocacy sensibly and more productively." From the article: "Although Aristotle developed his message many, many years ago, the concept of optimizing how we talk to people has developed further throughout history. From Aristotle to Heraclitus to Friedrich Nietzsche to Helen Keller to George Bernard Shaw, many people have advocated new thinking in times of rabid opposition."
Being a geek that hasn't showered in a week, constantly rambling about "Evil Micro$oft" isn't a good way to advocate OSS?
What about yelling First Post????
*Leans over podium*
Brethern, it is the time of the Apocalypse!
Stand up and be saved!
*Thumps loudly on "Linux in a Nutshell"*
Who is ready to receive saaaaalvation?!
You can't talk about Wikipedia's flaws on Wikipedia
When It's Linux, it's an advocacy, evangelism campaign extolling the virtues of open-source.
When it's Microsoft, or fill-in-evil-company, it's smear campaign spreading FUD and lies in destroying the open source way.
Nice doublespeak here.
I preach to you the Superlinux! Windows is something that must be surpassed. Thus spake Zarathustra.
Places hand on crashed system running Windows.....
"You shall be Heeeaaaled!!!!"
"Praise Linus!!!!"
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
You mean that calmly and rationally pointing out the benefits of something accomplishes more that foaming-at-the-mouth, in-your-face, mine-is-the-One-True-Way evangelism?
Nah, can't be. If things really worked that way, just think of all the time thats been wasted...
--- Asking inconvenient questions for over 30 years...
It means little unless you know it's spoken from the perspective of a 15th century penguin salesman extolling the virtues of a soft sell vs. a hard sell. The latter is most necessary with an inferior product; if the quality of the merchandise can speak for itself, don't get in its way.
Try not. Do or do not, there is no try.
-- Dr. Spock, stardate 2822-3.
.. and that there's too much device dependent stuff in it. When you have a knoppix disk and the 2.6 kernel runs differently on your hardware than the 2.4 kernel then there's a flaw with the design of implementing hardware support in a kernel. I look forward to a GNU HURD livecd.
..the advantages of using open source software. Because I don't have to pay Windows licensing fees, I have to spend less time working, and can spend more time with my girlfriend, and more time lifting weights. People always ask me why my relationship is so successful, or how I had time to tone my body, and I just say "I use Open Source Software."
My aunts husband asked me a few days ago if I wouldn't mine showing him Linux and telling him a bit about it when he next comes round. I'm a little worried that I'll yap on endlessly about open source and Linux only being a kernel and the GPL and bore him to death before he even gets a chance to see how great various distos are.
What I really need is a good, SHORT, list of information about linux and open source software that I can print out and give to him to read at his leasure so I can get on with showing him some cool stuff on the PC.
Anyone know of anything like that?
Karma: Bad. Calmer, good.
> Empirical evidence has shown, time and time
> again, that low level languages like C and
> Forth produce more efficient, faster, and
> easier to maintain code than today's so
> called high level languages.
How's that? So it's actually better to manually malloc and free memory than to let a GC take care of it? Surely you're just jesting!
As someone who's currently wrapping the Evolution C API in Ruby, I can assure you that writing Ruby code is much easier than writing the corresponding C code.
I'm not sure why this would be considered a "Linux strength",. since all the good high level languages - Ruby, Python, Perl, etc - all run on Linux, also.
The Army reading list
The reason higher-level languages are used is because man-power is more expensive than CPU-power.
.NET or whatever, then that's the way companies will go with software. The thing is that if it's not out there, it's not bringing in anything.
.NET any day, but it's not about preference, or 1337 skillz, or good programming conduct. It's about the bottom-line.
If it's easier, and cheaper, to plug blocks together using Java,
I prefer C and Perl over Java and
...the concept of optimizing how we talk to people has developed further throughout history. From Aristotle to Heraclitus to Friedrich Nietzsche to Helen Keller to George Bernard Shaw...
Was that some kind of sick joke...?
Real programmers can write assembly code in any language. -- Larry Wall
"From Aristotle to Heraclitus" Heraclitus was PRE-Socratic, i.e. BEFORE Aristotle's time... http://en.wikipedia.org/wiki/Heraclitus And as far as evangelism goes, it'd prolly be better to lean more towards Demosthenes an orator. Aristotle was not consumed with the need to convince his audience that he was speaking for .
Funny, I always thought was the other way around.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
LinuxAppeal.net is a good site to appeal to companies to release linux products. It is not a site where users bitch about companies, but rather people can find well written petitions, write their own (and add them to the site) and submit them to companies.
I figure the more people who petition companies the better so I've written a few petitions of my own on the site in hope that others will find them via google when searching for linux support for a product and petition the company as well.
I'm a longtime advocate of free (as in speech) software, but comparing the leaders of the open-source movement to the sages of old, and comparing their struggles to those of Helen Keller and other heroes of the past, is downright egotistical.
;) ) and ESA members will switch to an open-source model, and-- like it or not-- they are what crank out the vast majority of software that the vast majority of end-users (and corporate "IT" people, as contrasted with "geeks" like us) use.
Yes, open-source/free software does face "rabid opposition"; however, it likely always will. As much as I love free software, do you ever forsee a time where it will become the "standard"? Can you imagine Microsoft, or Adobe, or EA Games, making most or all of their software open-source (under any license?)
I can't either.
It's not so much that free/open-source software faces a "time" of rabid opposition. It will always face rabid opposition. It is virtually inconceivable that the BSA (not the boy scouts
Don't like that? Crank out games as nice as the commercial vendors can. Release them under the GPL. Make OpenOffice as good as MS Office. Make a GNU/Linux system as easy to use as Windows, and 99% compatible with 99% of existing Windows software, or come up with GPLed equivalents for 99% of existing Windows software. Until that happens, free/open-source software will perpetually face "rabid opposition", because those who oppose it (BSA/ESA member companies) will always be the most powerful force driving software development and use.
With spending like this, exactly what are "conservatives" conserving?
Best open source advocacy is the Microsoft's study about TCO. They base their claim on the postulate that a linux expert has higher salary then a MSWin expert. To a MSWin expert, this is very appealing argument to start to learn linux.
My only explanation for your post is that where you said high level you meant low level, and vice versa. Could you reference the evidence that C and Forth are easier to maintain than higher-level languages (faster and more efficient they might be, but that is very rarely a performance criteria in modern software)? C is, in my experience, more likely to have bugs and security defects, and be far less maintainable, as well as more likelt to be unsafe. I agree that bad code is bad code in any language, but since C seems to tolerate it more than other languages, surely that shows it is a problem with C as well as the developer?
There is a reason that the trend has been for higher and higher level languages, and C is a lone aberration that bucks the trend. We don't program in assembly much any more for the same reason that one day we won't program in C much any more. For a kernel, C is obviously the right language, but for most other applications it is an odd choice than can usually only be justified because it is the language that the developer is comfortable with.
As the OP said, would you drive over a bridge designed this way? And I would ask, would you fly in an airplane designed this way?
you mean sneering, derisive remarks about Windows isn't enough? Dang.
try { do() || do_not(); } catch (JediException err) { yoda(err); }
You can have a top-notch techonlogy and the best minds in the world working on R&D and you can still fail if you do not satisfy customer requirements or needs or both.
Engineers do not get one thing: no invention can be spread around the world until it can be sold. In this world marketing and sales are just as important (if not more) as R&D and staying on bleeding edge. If you have a Linux box that cannot meet my needs, why the fuck would I buy it? Because somebody with a Ph.D worked on some programs in that box? Give me a fucking break.
Everybody is screaming about Linux and how great it is. I do not see it. Dell sells cheap Wintel boxes because that is what customers want: something cheap and easy. IBM invested money in new technology along with research; it sold its PC division to Lenovo. HP and Compaq had R&D... Now their joint venture is swimming down the toilet. The point is that it does not matter how cool YOU think Linux and Open Source are. They're not going to spread around the world unless people find them useful. No advocacy will help. You can write to tech magazines and give lectures to college students and that is fine; however, you won't be able to succeed until people start saying, "Wow, this Linux thing is really want I need." The keyword is "need." Not "want" or "cool" or "wow." Need for a cheap, effective tech solution is what can and will drive Open Source. This is pure business.
In this world everything is sold, not bought. Sell an Open Source solution to the public and you shall succeed. Nobody gives (or should give) a flying fuck about the technology and what it is inside. If you really want to push Open Source, show cost savings, productivity increase, and fewer losses contributed to the fact that Open Source is not Windows. Then people will talk to you :)
' and easier to maintain code than today's so called high level languages.'
.NET
Java can be faster if you use a profiling JVM, (well unless you profile your C code and get gentoo to re-emerge with using the profile every other week)
this should also apply to
Java is also much easier to maintain that C, because it's almost exactly the same as C with enough bits missing to let it run in a Virtual Machine and some extra rules inplace.
Of couse bad C is probably easier to maintain that bad Java and Bad C++.
In which case you would have to start argueing.
Use OSS because all software is bad, it's just that our version of bad is easier to maintain....
your using the 'anti' claus, your not saying were better because were the best your saying.
We use C isn't better because they try to sell a new compiler (who SUN and GCC?).
Not we use C it's better because it's simpler and more compact that many of todays languages that have lots of bolted on features that havent matured yet.
Remember, positive energy activates constant elevation. Be positive about OSS not negative about everything else.
thank God the internet isn't a human right.
You start the procedure by using a LiveCD. Once successfull you load Linux into a dual boot configuration with Windoze. Now you have traction, time for you exercise the demon.
Reason #32767 not to use VB6: Integers are 2 bytes... Think about it!
U missed the fact that he also used "thusly", a magnificently execrable neologism.
Oh, and you can get your meds cheaper in Canada.
Mod parent up! Back in the early days of computers, programmer time was cheaper than CPU time, and it made sense to spend more time optimising code and writing at a low level. These days, there *are* cycles to spare, and there's *no* reason to write most things in assembler or C. You can still write efficient code in a high level language, but odds are the compiler will do a better job of optimising than you will.
If I had a choice? No. But in the world of software, sometimes there is no choice. You are expected to use what the company provides.
Now, I think the problem really is that the "High Level Languages" make people think that they are programmers when they are not. People who have not developed the skill necessary to write good code in any language can jump in and produce results. Those results might be low par and hard to maintain but they have been produced, and that is what the folks with the money want. They don't care that the code is sloppy and poorly designed. They just see the program working. Later on down the road they might care when they have to spend double the money to maintain the beast. But that is for another day.
What's Ruby written in?
As every Slashdot reader knows, the best way to advocate Linux is to belittle those who ask questions (preferably with over used abreviations like "RTFM", and "ROTFLMAO"), all the while making lame 'Winblows' jokes. Oh! And let's not forget that you must also belittle every developers efforts as trying to turn Linux into an MS clone.
Yet I didn't see these methods listed anywhere in the article. Perhaps the author should surf Slashdot, or OSNews a bit more before his next article.
Wow, what a troll. Of *course* the kernel is device dependent. It's a fricking kernel. Of *course* a new major version runs differently; they refitted huge parts of the kernel for the 2.6 version, including fixing some gaping security holes. If you don't want change, don't upgrade.
You just keep bit shifting, then I'll be productive for my customer, mmkay?
BTW is the resume on the website yours? Because there isn't a whole lot of programming experience there (lots of (database) sysadministration though, but not programming).
8 of 13 people found this answer helpful. Did you?
Forth? Easy to maintain? Kidding be you must.
> that low level languages like C and Forth
lea dx, msg
mov ah, 9
int 21h
ret
msg db "Assembler is the only low level language.", 13,10,0
-----
printf("C and forth are high level languages.");
Secondly, what is Olog(n)? Perhaps you meant log?
Last, large corporations don't care if their programs are slower. Throw more hardware at the problem! What they do care about is getting the product developed and out to market as fast as possible.
Perhaps by calling C and forth low level languages, you instead meant to talk about Rapid Application Development (RAD) IDE's vs. standard language IDE's. C/C++ is a high level language. Period. Now, use Borland C++ Builder, it's still a high level language but with a RAD front on it that allows you to develop complex applications quickly.
> What's Ruby written in?
Why was Ruby written?
The Army reading list
And isn't that what is wrong with the world today. People need to worry about themselves and not about what other people are doing. (unless, of course, those other people are hurting other people)
-- Thou hast strayed far from the path of the Avatar.
Push Polling usually worx.
sample question:
"Would you be more likely or less likely to by ClosedSource/Proprietary/ClosedStandard Application if you knew they were designed to trap you in becomming life-long customer (vendor lock-in)?" ?
Oh wait, that is not push-polling - That is the truth!!!.
Consensus is good, but informed dictatorship is better
As someone who's currently wrapping the Evolution C API in Ruby...
I thought evangelists didn't believe in Evolution.
[insert witty sig here]
So I excitedly downloaded and burned some Mandrake 9.1 CDs, installed (amazingly painless), and entered this whole new world of Linux and Open Source.
There are many ways you could describe my reaction to the yawning gulf between expectation and reality: "furious backlash" would be one; "blind seething rage and betrayal" would be another. The catalogue of disasters and frustrations that followed left me cursing the names of the people who recommended Linux to me as this wonderful cure-all and utterly *hating* Linux with every fibre of my being. I actually stuck with it for a few more days and, after deciding that linux was the most pointless project I had ever had the misfortune of dabbling with, returned to the comparatively hassle-free bosom of Windows.
Luckily for me, the story didn't end there and some persistent and random lockups in Windows led me to re-install Linux (Mandrake 10, this time around) to see whether it was hardware or driver related (a dodgy fan on my graphics card, for what it's worth). This time around, with my expectations greatly lowered (in fact, by this stage, Linux had improved unrecognisably, and I was very pleased with its progress), I fell head-over-heels in love and haven't had Windows installed since.
But it could so easily have gone the other way; it is hard to explain just how much the hype followed by disappointment soured me on Linux at the time (an understatement!) and it is my firm belief that if I had been forewarned about the things that I could do in Windows but not in Linux, I would not have reacted so sharply. So now, when "recommending" Linux to the curious, I usually start with a list of negatives (some hardware may not work; you may not be able to run your favourite games; don't expect installation of software to follow the Windows model, or you'll be in a world of hurt) before extolling its non-pragmatic virtues ("It's an operating system with love in it!"). It's heartening that quite a few people are still willing to give it a shot even after hearing my litany of gloom :)
So in a nutshell, don't be a blind fanboy, or you will be Open Source's worst enemy; let people know that there will be concessions to make, but that many people still feel the switch is worth it. Make a special point of mentioning just how different and customisable it can be (show them a variety of WMs, from the absurdly minimalist (Ratpoision) to the wonderfully glitzy (Enlightenment) - this diversity and difference from the comparative homogeniety of Windows usually gets people curious, in my experience). Don't oversell it, as this is just a recipe for disaster.
Oh, and this post mainly deals with the casual home PC user, so might be a little off-topic - apologies for that :)
I listen to what people are tell me about their computer experience:
It still amazes me the number of people who are willing to ditch Windows completely and learn something new. As long as you clearly explain the pros and cons of running Linux, most people are willing to try Linux. Where you see Linux get a bad rap is when a flaming OSS zealot installs Linux over a crashed Windows installation without first explaining to the user that their previous system, as they knew it, will be completely gone.
And contrary to popular /. opinion, Linux is not always the best choice:
I think the key to being a successful OSS advocate is simply to listen to needs of people. Many idealistic people would run FOSS software, but don't because they don't have the requisite knowledge (or time) to understand it. That's where a good OSS zealot can help people out. But at the same time, we have to realize that for those users who rely on Windows-centric "features", installing Linux would not be doing them a favor.
The society for a thought-free internet welcomes you.
Any IBMers going to San Diego for next week's conference? One of the offerings is "How to build an enterprise using only Open Source software". Should be interesting.
Intelligent Life on Earth
on formats people use and the shackled they accept in their every day lives. If we show people that they are stuck paying expensive fees or pirating to use their computers they'll be more interested in hearing about alternatives.
So, then, why didn't you write your own CMS in C instead of the badly-coded security nightmare that is PHP-Nuke?
It would seem to me that if you wanted the most efficient site, you would code all your web apps in C. For, as we all know, it IS the most efficient language out there, and should be used in any programming project.
Obviously, though, this is something that can be debated until you're blue in the face. But discrediting higher-level languages (I assume you mean Java, Python, Perl, C#, whatever) when there is clear empirical evidence of their benefits, simply because you do not see their benefits as benefits, doesn't seem right.
As for the "college profs" comment, most that I've met won't "throw stuff at you". Hell, the programming languages guy I have likes C, and argues for its use where efficiency is needed, to the detriment of development time and code safeness. Many professors like functional languages, and it's hard to blame them, given the terseness of the languages and their uses in reasoning. But, in general, they gain little from "pimping the new stuff". At least here.
Cause I hear it'll run Duke Nukem Forever, right out of the box!
Weaselmancer
rediculous.
The irony, of course, is that the most rabid of open-source advocates are the ones making the least contribution in terms of code and money. The Linuses and Allisons and Behlendorfs are the one who perssuade with their code, not theirn loud mouths.
In order to make programming easier. He addressed this in the point that programming time is finite where as cpu time is not. Although you may save 400 Development hours you can lose millions of hours of runtime productivity.
Paying taxes to buy civilization is like paying a hooker to buy love.
one good resource for promoting open source software on windows is the OpenCD
it's much easier for some to learn by using than it is by listening...
Your opinion is just as valuable as an opition expressed by a Republican. If you think that the message sent by Republicans sucks, it does not meant that that is bad message. It means that YOU think that way of the message. I am not a Republican myself, but whenever I hear parties bitching about each other it turns me inside out. Grow up.
> programming time is finite where as
> cpu time is not
True. But it's seldom the bottleneck.
> Although you may save 400 Development hours
> you can lose millions of hours of runtime
> productivity.
Or you may save millions of hours by being able to quickly and accurately implement features to help the users of your produce get work done.
The Army reading list
If a civil engineering company offered "proprietary" contracts, where all work was conducted in secrecy and was not subject to inspection, then this would clearly be unacceptable. It is equally important that software be subject to similar inspections, and therefore that the source code be made available. Remember, "Open Source" does not mean "freely redistributable". A private company could tender for a contract and produce the software that the government can use and have the source code for, without that software being downloadable from SourceForge for all to copy and use.
If you want to campaign for "Free software", then that is a different matter. I respect that point of view, but it's much harder. Anything worthwhile is probably going to be difficult.
Nice, except there doesn't live pinguins in Norway (nor in the rest of the northern hemisphere), if they did they'd probably only be on Svalbard and the expression would never enter mainstream language (What does he think? That ice bears walk around in our cities?), and even so I doubt it'd become an expression. Simply not catchy enough, and could be applied to almost any product.
:)
Made me laugh at least, though I'm not sure if you were going for funny mods
Kjella
Live today, because you never know what tomorrow brings
Empirical evidence has shown, time and time again, that low level languages like C and Forth produce more efficient, faster, and easier to maintain code than today's so called high level languages.
If that has been shown time and time again then providing references should be easy. I'm especially interested in convincing evidence that C and Forth are easier to maintain than "so called" high level languages.
How's that? So it's actually better to manually malloc and free memory than to let a GC take care of it? Surely you're just jesting!
It's funny that you would bring out this example - it is probably the one that I personally would consider to be the most concrete example of the superiority of low(er) level coding. Over the past few years, I've gotten quite a bit of experience debugging memory leaks and found that there probably isn't a Windows or Linux garbage collection implementation that is fool proof (partially because, as the saying goes, fools are so ingenious).
I just started listing some of the problems I've worked through in the past two years and looking at them, I can see the problems come down to the programmer
a) assuming they know how big the data is and defining arrays based on this assumption,
b) not checking their code to ensure that accesses stay within array/variable boundaries
c) "finding" a clever way of accessing data that saves a few lines of code.
With any of these problems, data critical to the application or the OS gets overwritten leading to problems somewhere down the road, but not at the point where the overwriting takes place.
What I find that I am always telling programmers is:
1. When declaring an array in an application, ALWAYS use the "sizeof" operator as the basis to ensure that the element size is properly included and then add 1 for a terminating null character.
2. When allocating memory for file data, make sure an LSEEK is done first to understand the size of memory - and check the result before allocating the memory. Again, add 1 for a terminating null character.
3. After writing the code for allocating memory, note it in the make file/allocate-free function source file and make sure everything that is allocated is freed.
This rigor has seemingly eliminated the incidence of memory leaks AND other application instabilities which we used to suffer from and is the point that the parent is making. "Good" code is a result of good design practices and thinking through how it will execute; when software development is properly implemented, the actual task of coding is quite small so the delta time and effort improvement of using a high level language isn't as significant and its "inefficiencies" (execution time, size and required resources) relative to low level coding become relatively larger.
I can see this turning into a holy war as to how to code applications is better and I want to state that I believe that both high and low level coding have their place but only after the design of the application has been thought through.
myke
Mimetics Inc. Twitter
Let me see... You're selling Forth compilers right ?
May contain traces of nut.
Made from the freshest electrons.
Amen!
Brother, you know it!
Let the people hear the good news!!!
"Piter, too, is dead."
I disagree regarding your comment: "opposing something in the technology world because of the culture surrounding it, and not because of any concrete technical reason, is simply irrational."
.6 release, but it will be going beta soon. We should scrap our current plans and use this, because Microsoft is Evil! "umm..okay, let's move on"
If I am at a meeting, and a few projects are being presented, the typically come in three flavors:
1 - This project may not be exciting, but it is based on technology that is popular (Microsoft), and we haven't been burned by this yet. This project will be probably be successful. "Okay...sounds good, let's do it"
2 - We need to stop using Microsoft! We shouldn't support Exchange! There is this really great project on Sourceforge, it is at a
3 - Umm...I just need to go to the bathroom.
I have been VERY successful in getting my projects accepted. Because they may not be exciting, and they may cost us a little bit of money...but a proven track-record goes a long way.
I made the choice to base most of my development around SQL Server, back when MySQL was being pushed, but the tools just weren't there. Now we have so many projects using SQL Server, it is sick. And when we are looking for things from outside vendors...lo and behold, many are written on top of SQL Server (yes...stored procedures really are a good thing.)
So my projects are considered 'solid'. I want to disassociate myself from the OSS camp as much as possible, because they are seen as a bunch of people more concerned about the technology (and culture) than the bottom line. And the people who make the decisions on where to spend the money? Well, they ONLY care about the bottom line.
No reason to lie.
And who decides what this mysterious "company" you talk of provides? Last time I checked even in companies decisions were made by people and people can be convinced to use something better if you have good arguments.
Linux is not Windows
> there probably isn't a Windows or Linux garbage
> collection implementation that is fool proof
Right, of course, it's always possible to leak memory. Just add something to a Map and never let go of it. Not much a GC can do if the application insists that it still has a reference to the object. But other than stuff like that, I feel like most high-level language GC implementations can take care of all but the pathological cases.
> ALWAYS use the "sizeof"
Right, those are good C memory mgmt guidelines. The nice thing about Ruby or Java, of course, is that for the most part those things are managed for you.
Also, FWIW, if you're on Linux, Glib has some nice macros so that something like:
Message* msg = (Message*)malloc(sizeof(Message));
turns into
Message* msg = g_new(Message, 1);
Handy stuff!
The Army reading list
I demand that my personal bridge engineers personally hand-select the grains of steel that they'll use to custom-design my unique bridge that won't use any of the last 5,000 years of bridge engineering experience. That's the only path to quality, you know. And back away from the libc, fella! If you won't hand-roll open(), then I don't want you writing my web browser.
By the way, what crack-smokers took you seriously enough to give you +5? Seriously, man, good job! That's one of the more successful trolls I've seen in a while.
Dewey, what part of this looks like authorities should be involved?
This letter by Dr. Edgar David Villenueva Nunez that the linked article links to is absolutely fantastic. I've never read such a good argument for open source outside of its founders. Nor have I read such a great and well thought out letter by a modern day politician. It makes me want to move to Peru.
I think that you all should take a moment to read through that so that you can remind yourself that open source is the "more correct" form of software development.
a profiling Just in time JVM can profile the code while it is running and then next time around recompile the code to be faster.
That site doesn't list how the tests were carried out except to say that there were, no details on any profiling or optimization attempts that any serious deployment would use.
It does say that start up time is included too, so that taints the benchmarks.
oh, and he didn't even try jrockit
thank God the internet isn't a human right.
Both bridges and airplanes are designed this way. You think that a bridge engineer knows how to build cable? machine bolts? mix pavement? While he may chances are he just knows the details of each of those items. size, strength, weight, etc. An air plane is the same thing. A designer doesn't know the details of how a tire is made. They probably don't even know the details of how the rim is made or bearings, or axle. They do know the stresses they can take and how to fit them together as an interface.
Paying taxes to buy civilization is like paying a hooker to buy love.
How on Earth this got modded up is beyond me, it's pure drivel, or maybe a clever joke the mods didn't get.
If you're not bit shifting hot registers at runtime then you're not programming. Plain and simple. You're just plugging different blocks together and hoping like hell it will work. How would you feel if they designed bridges like that?
How do you think anything complex is designed? One person doesn't sit down and design a whole computer, or every part of a car. You use a combination of existing things (blocks if you like), and new things developed by different people or teams. To each team the rest of the stuff is a block they plug into
Even if you are using a bunch of pre-written modules/objects/classes you may be doing a lot more than plugging them together. You write the core of the app, plugging them together well takes skill and work, and most definitely is programming.
that low level languages like C and Forth produce more efficient, faster, and easier to maintain code than today's so called high level languages.
Maybe faster to run, but slower to write, and harder to maintain.
The reason for this is simple, the amount of time spent in coding is finite, yet, oddly enough, CPU time isn't. Thusly unless you can improve an algorithm along that order then your time was wasted. This is simple first year college stuff here, hardly rocket science.
Not rocket science, just garbage. Firstly the limited programming time is an argument for high level languages that enable quick development. Secondly you can't just trade of CPU time and development time, a program may need to run in a certain time to be usable at all. If you can't get you runtime down to that you don't have an app. CPU time most definitely is limited if you have a user who wants a reasonable response.
Finally this has nothing to do with Linux/Open Source anyway.
This post has to be a joke or a troll, I wonder more at the moderators than the poster.
Forth can be written to be easy to maintain, but only in the same way as C can. Use appropriate names, comment intelligently but not excessively, use standardized formatting and programming conventions. But, by itself, it's not that easy.
I've read the GP a few times, and while I hate to say it given my bias against the excessive use of inappropriate but politically-correct technologies at the moment ("Everything MUST be implemented Object Oriented", "Why use an array when an RDBMS will do the job just as well?" "Oh sure, this quick tool to process some text could be written in 30 minutes by a moderately skilled C programmer, but there's some Python library somewhere that wouldn't be exploited if we did. Much better to Google for half a day for documentation and then spend two hours experimenting with it until we get a program that doesn't actually do the job in a reasonable space of time!"), but I think he was trolling.
You are not alone. This is not normal. None of this is normal.
I'm not in favour of evangelism or advocacy when it comes to Linux. The more fuss you make over something, the higher the skepticism and expectations and the bigger the backlash.
I prefer to use Linux, save money, mention or demo cool features of OSS software when the subject comes up, and be willing to install it if the interest is there but with no obligation beyond that (and with the original proprietary software left intact for them to go back to at their leisure). This is much the approach that any sane parent uses with children and food.
So far, my wife's used Linux for years, my parents use Firefox and my mother uses Thunderbird. I point out some cool features for them but they often find things they like that I may not even know about.
I agree with you. I have corrected people on this and their answers are almost invariably something to the extend of "I am not in school." I did not realize school was simply the only point of an education. I thought it was so that those attending would learn and use what they had learned. I must be wrong.
How would you feel if they designed bridges like that?
But bridges are designed like this, as are computers , office buildings etc...
I indeed would be more conserned about one-off designes then in proven building blocks. Most bridges these days use well tested prefabricated parts which are linked in known ways to span a given area.
Another example is the pc you are useing. The cards in it are most likely running on PCI and AGP busses. This is a form of encapsulation. The Main Board designer need not know what periferial are to be added, nor do video, sound, network card designers need to know what Main board will be used. Only a standard interface need be know.
I will grant, however, that for something like an Opperating System, there does need to be low level integration and coding. There is, however, no point in writing my web cgi scripts in Assembly simply because I'm not "bit shifting hot registers at runtime"
JFMILLER
Strive to make your client happy, not necessarly give them what they ask for
The problem I have with your post, is that it seems to ignore one simple fact:
A programming languege is a tool.
The same is true for OS'es and compilers. Use the tool that fots the job. If you're building a website's content management system, you probably use Java/Perl/PHP/Ruby/....
If you're doing rocket science you probably use FORTRAN (or C if you don't mind being thought of as a revolutionary).
Discussions which language is best, without mentioning the field it's used in, are as intelligent as the Discovery Channels documentary "Why 4x4 is here to stay" or "Cranes are great".
For the perfect anti-Unix, write an OS that thinks it knows what you're doing better than you do and let it be wrong.
I use ed, you righteous bastard!
WIN ME is most definitely the worst Windows ever, whereas Windows XP is pretty mature, stable and user-friendly. Yes I have used Linux - KDE and Gnome in their latest versions including development versions of the upcoming releases KDE 3.4 and Gnome 2.10. Since my vendor ensured that all of my hardware works out of the box on Windows, it is a pleasant experience. SD-Slot, 5-Button-Mouses, TV-Out (with Twinview) and a lot more just works. And all of my apps. So - I was interested in alternatives and if Windows ME would be the most recent Windows, I'd probably use Linux as my main OS. But Open Source has to catch up, you can't compare it to Windows ME or DOS, you have to offer what Microsofts offers now. One Problem is the monolithical kernel, IMHO. I value the way I NEVER had to reinstall or reconfigure/compile my Kernel because I needed some new drivers. I am really unsure if that's the way to go.
"Good" Java:
abstract class Account {
float balance;
void fancy();
}
class FancyAccount1 extends Account {
void fancy() { };
}
class FancyAccount2 extends Account {
void fancy() { };
}
"Bad Java":
class Account {
float balance;
boolean does_fancy_one;
boolean does_fancy_two;
}
C:
struct {
float balance;
enum { NORMAL, FANCY_ONE, FANCY_TWO } type;
}
With respect to the above code, OOP is good for fairly static hierarchies. OOP is bad for a system in constant change.
"All you have to do is be fragile and grateful. So stay the underdog." Chuck Palahniuk, Choke
That's the theory. In practice, this has not yet been achieved outside very tight constraints, such as where the data does not change very often.
Which accounts to 95% of my hard drive, so tight, but common.
Did you even READ the fucking site
No I just plucked It does say that start up time is included too, so that taints the benchmarks. out of thin air.
No longer the case. If you actually bother to look at the fucking benchmark
So their fucking benchmarks now, there were nice benchmarks that showed you point earlier.
I read the FAQ, if it's wrong what does that tell me I should assume about the fucking benchmarks?
thank God the internet isn't a human right.
IMHO experience, there's nothing like an AC/DC concert to kill any "Linux vs Windows" arguments dead in their tracks and have all geeks rocking together in brotherly unity under a common flag of truth, justice and the Angus way! :-)
Damn! I'm getting AC/DC withdrawal symptoms now - there simply must be a new CD and tour soon...
Gentoo Linux - another day, another USE flag.
We should endeavor to learn everyday and Schools should just be a place where that process is intensified.
So my projects are considered 'solid'.
Sir Humphry Appleby was promoted to Cabinet Secrety at the start of 'Yes Priminister' because he was considered solid.
This mentality permiates through a Burocrasy, and a Burocrasy is the last place I'd look for technical expertiese.
Wouldn't it be nice if schools got all the money they wanted and the army had to hold jumble sales for guns
Ok, here's some analysis.
Count words, I just happen to have Michel Abrash's graphics programming black book on the table and it's got a good discussion on count words.
1: The data is static, so it fits you theory.
2: The C version is almost optimal
3: The java version is not comparable to the C version for real world tasks (I haven't bothered to re-write it to be the same as the c version to see if it's performance is better or not).
HeapSort
why not quick sort? don't most languages come with quick sort built in and heap sort is almost identical to quick sort (variants on the binary merge).
Object methods...
1: the C 'object' and the java object are not the same, the java object provides a lot of extra functionality that may well be used in a real world application that has not been put in-place in the c version.
2: He didn't even use final in the Java version, how is using an almost static C 'object' equivalent to using a non-final java object in real world tasks.
I could go on.
thank God the internet isn't a human right.
So, to be persuasive I should craft an argument that makes use of specific, quantifable, verifiable, evidence? And you're telling me that this is more persuasive than unsupported generalizations?
The fact that this counts as "news" is a strong comment on how the focus on job training has reduced our universities to glorified tech colleges.
WRONG:
The #1 product in the market sucks. The company that makes it is evil. This free software you never heard of is the best. It is written collectively by hippies. Everything should be free, including YOUR products.
RIGHT:
The #1 selling product in the market is not the best in the market. If we implement [Linux, etc.], it will be CHEAPER, it will be MORE SECURE, it will produce LESS DOWNTIME, it is EASIER TO UPGRADE, you will increase your PROFITS by reducing costs.
I'm not sure what business you are in...but we are in the business of creating applications, and supporting 'other party' applications for our customers.
.01% of the market. On the other hand, if we use our resources to support Exchange, we are hitting about 65% of that market.
So, if we decide to support some 'open' version of Exchange, we would be addressing about
Also, if we are developing an application, we can choose which market to develop for.
#1 - we can develop for Linux. That way our potential customer base will be about 5% (being charitable) of the companies out there. And these people have proven to prefer Free/OSS software.
#2 - we can target the Windows market. Which is used in 99.9% of the companies we are interested in. (Fortune 1000)
So the bottomline is: we want customers. The customers are running Windows. If we support them, we can make money. If we take another path, we will be shooting ourselves in the foot.
No reason to lie.
With Macs this is not the case and has not been the case in well over a decade if not longer.
You are, of course, wrong. But given the attitude you display in your post, I don't expect you to listen to any of the reasons why you're wrong.
The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
Not necessarily, he could just be arguing for more drivers being distributed as separate modules. It's not really doable until the ABI stabilises or linus gives them more support - remember the philips webcam guy's comment about non-in-kernel drivers being very much second-class citizens - but it is a defensible position.
I am trolling
There are zealots of all flavors; Mac, Microsoft, OSS, etc. Let's not make the mistake of labelling *all* users or fans of a particular techology as zealots, when usually it's just a few outspoken individuals. And I think we should also try to recognize the "zealots among us".. I.E. if you're a fan of Linux, you probably don't tend to pay much attention to a rabid pro-Linux advocate. (or Microsoft, or Apple, or..)
Sure.
The Ackermann test, Java wins by a small margin.
Also look at takfp. The interesting thing about takfp can be seen here in the side by side results The slope of the red line (Java) is not as steep as N increase so even though it starts slower, it wins in the end and continues to do beat ther performance of c and c++ even though it's start time was a lot slower (these numbers include startup time). Saw this in some other tests too, like reverse-file. This is mostly in comparison to c++ but it shows how JIT compiling could help.
I didn't go through all the gcc parameters but each program was compiled for the machine it ran on. In shrink wrap software, or even in the data center, you're not going to compile the code on each machine and it has to be tuned to the lowest common denominator. With JIT you don't have to worry about that as the VM will do the necessary optimizations for you. The benefits can be seen in some of these tests.
There are a lot of cases where it's close as well. In other tests I've seen Java in some cases outperformed C++ and C under large usage when the gcc binaries were optimized for the lowest common denominator. Anyway... the potention for VM's JIT compiling and all that is not just theoretical. It needs to be improved, but that's no reason to give up on it.
In other test, the lines of code are dramatically different. Would I rather write a 178 line spell checker in C and have it run in about half a second? Or write a 23 line Java spellchecker that runs in about 2 seconds? When you go past just number crunching and into real applications like web applications, you'll see a big savings in time and development.
There's a place for high level languages like Python, Ruby and Java and a place for languages like C. The real power language seems to be OCaml. It seems to do really well on both loc, memory and cpu time.
This was really cool to look at, thanks for the link. I looked up some other stuff as well. I'm tired of hearing how Java is slower than PHP since in my own benchmarks I haven't seen what people are talking about. Most of the side by side graphs look very much like this where it seems that PHP doesn't scale under load compared to java, c or c++.
Open Source Java DAO Generator
What on earth does any of that have to do with OSS vs CSS? You've just rambled completely off topic. Anyway, you can get C for Windows and java for Linux. I think you've clicked on the wrong discussion, you're looking for 'Low-level programming advocacy'.
You mean, a bridge designed by putting components together, or a plane designed by taking existing devices and building a plane out of them? The 'low level' equivalent to this would be putting the bridge together atom-by-atom, forging all the parts yourself, designing and making all the bolts yourself, never using anything that's already been made. I wouldn't drive over a bridge designed that way, it's much safer to drive over a bridge where the individual parts have been made by experts in the field, rather than a jack-of-all-trades.
It's a real pity, in any case. It's one of the biggest problems with Linux today, although it's obviously been getting better of late.
In C++, I can write a sorting algorithm that sorts objects that are not even the same concrete type.
And how is this different from C?
Templates.
You got 50 responses, and not one of them wrote anything worth reading.
I don't know if that makes you "Teh Winnar!", but I have certainly lost.
instead of defining FancyAccounts as classes.. define them as interfaces... more code but you keep the code for each type of account in the class where it belongs. So you'll have something like.
//not a fancy account, no fancy function.
abstract class Account {
float balance;
abstract void doSomething();
}
interface FancyAccount1 {
void fancy1();
}
interface FancyAccount2 {
void fancy2();
}
class FancyAccount extends Account implements FancyAccount1 {
void fancy1() { };
}
class FancierAccount extends Account implements FancyAccount1, FancyAccount2 {
void fancy1() { };
void fancy2() { };
}
problem is you have to define fancy1 in both classes and you have to worry about keeping them the same if they have to be.
C++ has the edge in an example like this since you could just define the interfaces as classes with the methods in them and use multiple inheritance. Your C example could be replicated in Java with
"With respect to the above code, OOP is good for fairly static hierarchies. OOP is bad for a system in constant change."
That's not really true in this example. In Java, if I wanted to add another Fancy interface and class that has a completely different doSomething(). Add the class file to the application and all the calls to doSomething on it will work. Update the class that feeds Accounts in to the system and all you have to do is recompile one file in addition to adding the new class. With C you'd have to recompile and link everything.
Open Source Java DAO Generator
Another thing... there's the whole reflection api in Java where you can inspect what methods it has at runtime. You don't have to call account.fancy1() account.fancy2() directly. You can loop through all the methods in the function that start with "fancy" and call them.
I had to use the reflection api once in a class that merged a text file with various beans. The text file contained tokens like $${token} and would call bean.getToken() where token could be any string so $${email} would call getEmail(). This was handy as the bean and text file were subject to change but the parser class didn't have to. A lot easier than writing something like if (token.equals("email") bean.getEmail(); for every possible value of token.
The reflection api used to be very slow. You still take a performance hit for it but it's gotten a lot faster with each JVM release.
Open Source Java DAO Generator
Most people aren't software people. Most people do things with their computers. It's only geeks like me who like computers for the sake of computers. All the business people I work with have to use them. They simply do not care about anything other than their needs being met in the most timely, reliable and cost effective manner.
When advocating open source, what problem are you solving? I used to advocate open source solutions for individuals and companies, but now I just give options. I still include open source options where they are a good solution, but that's not always true. People who like to play the newest popular games should probably not be switching to linux. Part of advocacy is knowing when to shut up. Pushing a particular solution to all problems, regardless of requirements is a major turnoff to pretty much everyone.
Especially when the customer pays for the CPU.
In the embedded world, where the CPU and code are both part of the same product, the design philisophy is quite different.
PJRC: Electronic Projects, 8051 Microcontroller Tools
Is this really what OSS is striving for? Sophisticated marketing? Can't the OSS community offer an alternative? One where the quality of the product is more important than it's marketing? Isn't this how the OSS successes came? Did Linux, Apache, Perl, etc. have a fancy marketing department, or have they "simply" been delivering great code?
Can't we start bombing these marketing schools where assholes are tought how to best screw us all?
Beware. I've tried this, and the new user always says "I want THAT linux, the one on the CD, because it's what I'm used to."
I point out that it's not really designed for a hard drive, and isn't as well supported as a version that is (i.e. no automatic updates, security fixes, comes with less software and the like). And they are unhappy about that.
I'd use a livecd based on an ground-up designed-to-be-installable distro rather than Knoppix. Ubuntu, maybe. Or I think SuSE does livecds.
Slashdot - Mutual Assured Discussion
Hehheh, playing it on the person, are we? And anonymous as well.
8 of 13 people found this answer helpful. Did you?
Apparently he IS your uncle.
In Chinese, there is no generic aunt or uncle label. There are specific names for my mother's older sister, mother's younger sister, and mother's brother. There are also corresponding names for their spouses.
Unforutunately, I can never rememeber which name is which.
Ah, so in other words your choice not to use OSS solutions has nothing to do with either technical merits or the culture surrounding OSS (which isn't as you suggested, a bunch of rabid zealots. They're just the loudest and more public of the community) it's about business decisions which is fair enough. Why didn't you say that in the first place? Or would it just have been off topic?
Of course, you *could* just support them both you know. Develop for the windows platform first (as most of your target audience is running wondows) and then get a couple of developers to port your solution over to linux or try and make sure the windows implimentation works with wine. Seriously, most of your customers are running windows but alienating the linux user base will win you no friends. Why not start trying to broaden your user base a little?
Silly rabbit
> why are people so down on malloc anyway?
Free the mallocs! Save the whales!
The Army reading list
Jono Bacon is also the author of an excellent death metal remix of the Free Software Song.
You are, of course, a gerbil. But given the attitude you display in your post, I don't expect you to listen to any of the reasons why you're a gerbil.
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
person who has not in their vocabulary the words to decribe what it is you are trying to commnicate to them?
according to the article you have to speak in their language....
Hmmmmph....