G-WAN, Another Free Web Server
mssmss writes "Has anyone used G-WAN — a free (as in beer), supposedly fast and scalable Web server? The downside is it supports only C scripts, which the author claims is a plus since most programmers know C anyway. There is currently only a Windows release and no clear answer in their FAQs whether there would be Linux/Solaris releases. As an interesting aside, releasing a Web server while at the same time fighting a losing battle (PDF) with a large bank over a piracy claim of $200 million (the bank is alleged to have done the piracy) is quite a feat."
Comment removed based on user account deletion
Where's the value/point in releasing another limited-utility webserver?
I see the point in having a few options for a particular category, so that you can choose between different optimizations for things like cost, performance, and compatibility. But why something of limited utility (only runs C scripts) compatibility (only runs on 'doze) AND cost? (not OSS, but it's free!)
I don't know. Even with a fairly "heavy" web server such as Apache, the performance increases by going with another "lighter" platform seldom represent more than a year or so of hardware advance.
So.... Why?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
It looks like this chap has a grudge against Microsoft (he says his company was "eradicated from the market the usual way", apparently by Microsoft) so he wrote this webserver to hit them "where it hurts".
I don't know if spite is the best motivation to write excellent software.
If you're a zombie and you know it, bite your friend!
It ups the difficulty level, allowing you to more easily grind on your way towards Web Master III.
Why does the world need a non-free web server that only runs on Windows when there's already plenty of free (as in speech) ones out there (http://www.apache.org/, http://www.lighttpd.net/) that run everywhere?
I was hoping they were talking about the "box" itself, not software.
Table-ized A.I.
i C your point
-1 Bad Pun
Table-ized A.I.
There is currently only a Windows release and no clear answer in their FAQs whether there would be Linux/Solaris releases.
The main page at gwan.com :
It also means that G-WAN will be (much) faster on Linux and Solaris.
Sounds like the person writing the summary didn't bother to read the pages that they linked.
in its report made on May 26th, 2006 M. MARC MORTIER from BEFTI reckons that "the 10.249.17.10 network address belongs to the address range of FINAMA bank", and that his "laptop is using the 10.249.24.60 IP address".
If their claims are based on the assumption that 10.249.*.* is a Finama bank owned IP subnet, then they are in trouble.
Absolutely. What makes me especially excited about trying G-WAN is that whenever it crashes I'll have the extra fun of figuring out whether the reason it crashed was because my own C code crashed, or because the code in his web server crashed. But wait, there's more! Adding to this really enjoyable programming problem will be the extra challenge that comes with the fact that his code is closed source, so if the crash occurs inside his code, I'll be able to get in there with a debugger and spend an afternoon figuring out what happened and whether there's any way to change the data my code gives to his code so that his code won't crash crash. I can see many really enjoyable weekends ahead of me in my parents' basement, with a bowl of nachos and a liter jug of root beer. Good times!
Find free books.
People claim Apache is slow, but why not using a reverse proxy like Varnish to "speed it up" and still keep the features. I really see no reason why I should use G-WAN or lighttpd.
Some of the most reliable and, surprisingly, cleanest web apps that I've worked with were written in pure C, as Apache modules. But this insurance company did have the money to hire real programmers, not just scripters and web designers.
Using C helped force the developers to avoid the extreme overarchitecturing that basically every Java- or ASP.NET-based web app suffers from. The code was simple, right to the point, and left very little room for bugs to creep in.
The system was also very fast, requiring just a single web/application server to support several thousand simultaneous users. The only reason multiple web servers were used was for failover purposes.
When I first joined them, after a number of years of using Java and Perl, I thought they were fucking nuts. But after working with them for a few years, I saw first-hand that they took the correct approach. Their web apps contained significantly fewer bugs than I would've expected from a similar-sized and similar-complexity web app written in Perl or Java. They also produced code far faster than would be expected, because they didn't get bogged down in design patterns and excessive architecture and all the crap like that we see from too many Java developers. Their web apps were damn fast, even without them bothering to tune them.
There's a place for using PHP, Perl, Python, Java, Ruby and C# for web development. It's when you want to throw some shitty web sites together really quickly, without much concern about maintainability or user experience, using the shittiest and cheapest Indian outsourcing firm you can find. Otherwise, it's a better idea to use a few talented programmers and C.
Yea but most of those linux distros are just identical code, and many of them persist only because of user behavior and usage patterns that people don't want to change. It's preference more than anything at this point. I like the way Debian does things, so i use that frequently. Others like the way Redhat does things, etc.
This web server is substantially different from all the others, apparently closed source and quite limited from the sound of the summary (which, like TFA, i barely read). This is more like shifting from Linux to another operating system than switching between distros.
Hey, look on the bright side: at least you don't have to write your scripts in asm.
Sorry, but I won't run a HTTP server where the author think running native code extensions with no security checks is good.
Beware: In C++, your friends can see your privates!
Or is the guy who wrote this completely and utterly nuts, in every way? I don't even need to cite this, just visit the labyrinth site and wait till your mind melts.
Well, atleast for C you can get thousands of open source scripts and internet libraries to set up your website or help hack your own...... yup......
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Wooooooooooosh!
If you're going to be "scripting" in C on Windows you might as well go fully compiled with IIS (free with any Windows OS you'd be running on a server) and C# (Express version also free). Get MySQL with ODBC and you're all set.
I use PHP on Apache for flexibility. If I wanted to use C I'd compile it.
Work Safe Porn
So the guy wants to write a web server to scratch an itch or something. No big deal there. The question is WHY THE FUCK DID IT MAKE SLASHDOT?
He even fucking linked to those two languages. This has to be a troll.
His server returns 404 for errors:
http://www.gwan.com/csp_crash.html
That's going to make wirting for this thing really confusing.
... g-wan, g-wan, g-wan
G-wan, g-wan, g-wan, g-wan, g-wan
Mrs Doyle approves
...the thing about C is that libraries written in it are among the easiest for higher level languages to interface with. It's almost ironic in a way that C gives more freedom to those who refuse to it.
Time is what keeps everything from happening all at once.
Really, what's the point of posting a story of another unremarkable and very limited webserver? It's cool by me if kdawson simply found it on the top of the stack so he clicked bugger. I mean, it's not like I'm paying to browsing here. That what's going on here? Like I said, you know, it's all good by me. But I'm curious, you know, and ... well, you know what I am saying, right?
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
i C what you did there.
Yes, your anecdotal evidence clearly suggests that scripting languages have a place as sub-standard languages to design a web-enabled application. Never mind all the professional Drupal developers. Or people that use Joomla. Yeah, platforms like those two are total wastes and it would have been infinitely wiser to write it as an Apache module.
I'm baffled that you point to using C as the root reason that your developers' code had less bugs. Speed I'll concede, but not bugs. Give your guys some credit. I'll bet them using C isn't why they write good code.
First: Java Front to BACK: Jsp/JavaServerFaces, Enterprise JavaBeans, Java Objects in the Database instead of Stored Procedures.
- The Java to Database: Persistence API supported on Oracle, MySql and Postgres.
- OpenSolaris( fastest OS out there ) or Mac OS X Server.
- Glassfish( most advanced Web Server )
- Free, take your pick Email servers
- Take your pick Oracle Database or free MySql or Postgres.
- Fast, EASY to Code, Java Front to Back.
- Most Secure web server.
- Most advanced web server, No Memory Leaks for example.
- Java: Code Like C, but let GlassFish Save your butt.
...could be worse - it could've used only the .NET framework
Oh, wait...
Quo usque tandem abutere, Nimbus, patientia nostra?
True, but damn - an ASM-only web server would be hella fast! (and hella boring).
Quo usque tandem abutere, Nimbus, patientia nostra?
This web server apparently has much better performance and scalability - so it can do the same job while using much less power. The article does explain all that pretty well if you care to read it.
I asked him to explain why stable versions (some of these stable releases were several years old, too) of the software he was recommending contained over 100 bug fixes. He couldn't provide a suitable answer, and thus management gave him the boot. And so we're not using Drupal.
You are out of your mind. Bug fixes to a stable release is your metric of quality?
May I ask what OS you guys are using in your bug-free paradise? You know, the OS that doesn't need any bug fixes after release. That one. I'd like to go buy myself a copy because that sure sounds great.
Weaselmancer
rediculous.
Scripting languages tend to be written in C. I've written my share of HTTP app servers as native code and some in scripting languages (one in C/lua a few years back -- fast). Frankly, the typical web stack is a rickety, cobbled together piece of shit! Web server, rewrite engine, scripting host, language framework, database abstraction library over an underlying database lib... It's often cleaner and leaner to write the entire app as a daemon which handles a subset of HTTP and then to reverse proxy.
I've been playing with Google's go language recently; even given it's current state, I'll not hesitate to state my preference for go over any scripting language for a web app.
I did write a MASM interpreter once. Perhaps I was doing it wrong, but it was _not_ fast. What it was: an abomination with all the convenience of assembler combined with the speed of interpreted BASIC. It was an interesting intellectual exercise, and that's all.
If you want a superfast scripting web language, try APL. You could probably fit all the APL code ever written in your CPU cache.
Help stamp out iliturcy.
C scripts are not C, it's just a scripting language that looks like C. You can't actually import normal C libraries and if I recall (I've only used C scripts once) you can't do much in terms of memory operations. On top of that they are scripts, so if they screw up the parser will tell you where thing crashed. Please don't be so critical of something you don't understand, scripts with C like context are nothing new and there are a variety of advantages to using the same syntax between your actual code and your scripting language.
Also, the scripting languages you mentioned are either not easily embeddable or somewhat focused for certain purposes. You should realize simple scripting and embedded scripting can be very different things. Particularly scripting languages like Lua can prove to be quite incredible, offering extremely advanced features (like tables) while still remaining surprisingly quick. Depending on what you are doing Lua can actually allow less capable programmers to write surprisingly complex code to enhance your program - we used it about a half year ago and with our scripts you could get moving objects on the screen in 3 lines, interactivity in 7, and easily an entire interface in less than 100. There are also a variety of scripting languages for actual embedded (as in hardware) applications which focus on being fast and light, but are often equally light on advanced features. I'd like to see you get python running capably on an 8-bit MicroController, or php doing something useful on one....
Why not just use Apache? C isn't designed to be used for server-side scripting...
> software he was recommending contained over 100 bug fixes
So, did you guys replace windows, exchange, office with other products? Wait a minute...
Oops, my bad. You were talking about Joomla and Drupal. Somehow I did a mental s/Joomla/windows/g;s/Drupal/Office/g' in my head - subconsciously, I might add. And the whole time I was like - "Those bastards! The SP[123] and the freggin updates.windows.com" and not letting me shut down my computer without applying patches every other day (or so it seems)... But you're right. I googled a bit for a list of all the bugs for Windows and Office and couldn't find it. Occams Razor: there are none! That's professional! The Drupal/Joomla punks have the bugs listed on their OWN website!! How amateur!!
Absolutely. What makes me especially excited about trying G-WAN is that whenever it crashes I'll have the extra fun of figuring out whether the reason it crashed was because my own C code crashed, or because the code in his web server crashed.
Finding where a program crashed is way easier than finding a logic error, and those can occur in any language. Actually, debugging crashes can lead to discovery of certain kinds of logic and/or runtime errors that would be difficult to find if your runtime environment is protecting you from ever seeing a crash (heaven forbid).
I'm as much a fan of high-level languages, nice runtime environments, and useful abstractions as anyone, but I also happen to think that C gets more flak than it deserves. I really think universities are doing their graduates a disservice by educating them in the safe, comfortable confines of Java if they don't also teach them C. In my own subjective experience, the most capable and successful programmers I know (in any environment) are also the ones who are very comfortable in environments without garbage collection and restricted memory access.
This author takes full ownership and responsibility for the unpopular opinions outlined above.
Finally a platform with built-in buffer overflow support!
Let the exploits games begin!
You can't read hex core dumps? Sissy.
P.S. At first I thought "G-Wan? Must be Obi-Wan's brother."
Too bad that "Use the source, Luke" doesn't apply.
thegodmovie.com - watch it
I've deployed hand written C web servers, not as an Apache plugin, but as a standalone server so I've seen what kind of performance you can get by cutting out all the bloat you don't need. For example, you can get a huge CPU boost by not fully parsing the headers and picking out only what you need. The server was difficult to debug at times (valgrind helped) but in the end it worked out pretty well because the needs at the time required a centralized solution. We were able to run a fairly high volume website on a single multi-core box. That's unheard of in enterprise level dev shops.
It worked because the architecture was centralized and the software deployments were super simple. When the requirements need an decentralized architecture that scales with IO or scales to astronomical numbers, it becomes impossible to make that work. It's been my experience that IO is generally the problem, not CPU. There are physical limitations with scaling IO on a single node so you're forced to go with a fleet of nodes. Maintaining C/C++ business code on a fleet is a LOT more difficult than doing the same with platform independent languages.
Part of the problem is that a C/C++ server is interacting directly with the OS and its libraries so dealing with the slight differences that always come up gets to be a huge time drain. It's a lot easier to develop, test, and deploy with a scripting language. Regardless of the underlying kernel and libraries, you can be reasonably assured your script will "just work" when the kernel and libraries vary. Also, C really is harder to get right the first time. Having built in memory management is a huge time saver because "sloppy but correct" code won't cause downtime. Be sloppy in C, and the website goes down hard.
Camping on quad since 1996.
That is assuming that you have symbols so you get at least a meaningful stack dump.
Without it you're SOL.
thegodmovie.com - watch it
---
Web Servers Feed @ Feed Distiller
I like environments without garbage collection, it gives more control, and doesn't degrade system performance while everything has to slow down continuously for GC.
But as for working in an environment without protected memory... that's just crazy talk.
It looks to me like someone took their homework project from Freshman year and decided to toss it out on the internet to see if anyone bites.
'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
And after reading items on this timeline. I begin to question the author's sanity...
It never crashes or has a bug.
If it seems to have a bug, then it must be that big companies Poisoned DNS servers!
Sell to a government, your premature optimisation becomes effortlessly scalable. :)
10000 req/s is the big number feel good bait.
Takes 10x longer to develop malware for
Script kiddies cannot do C, only black hats, white hats and grey beards can that. C adds a touch of class and college lab sophistication.
"has no users" spin that as security thru obscurity with a hint of patriotic nationalism.
As for source code trust, people loved Enigma, Crypto AG, Apple and MS.
Domestic spying is now "Benign Information Gathering"
I'll one-up you and say we need a good Fortran education for our youth. Same reasons, but its even easier to produce dangerous code.
Finding where a program crashed is way easier than finding a logic error, and those can occur in any language. Actually, debugging crashes can lead to discovery of certain kinds of logic and/or runtime errors that would be difficult to find if your runtime environment is protecting you from ever seeing a crash (heaven forbid).
Except when your non-protected runtime doesn't crash and instead overwrites the stack, corrupts the malloc arena or writes to a dangling pointer causing corruption in a completely unrelated part of the program. Hours and hours of fun!
One of the most important thing that managed programming languages brought is the fact that other parts of the program can't corrupt the system enough to make things undebuggable and that an error in a module is self-contained enough that it can't trample other parts of the program due to a memory error.
I do agree though that C and other unmanaged languages should still be taught.
Jean-Francois Im's blog
I'm also a sysadmin at a social networking site with highly dynamic content. Unfortunately, Varnish won't help much because over 90% of the cumulative CPU time is ate up by the MySQL server.
The Web is like Usenet, but
the elephants are untrained.
...and want their CGI back.
This seems like an ideal tool if you want to have a drop-in solution for a zombie network to host illegal or pirated shit all over the internet.
Runs on cruddy already infected hardware! Perfect for Grandma Gertrude and Grandpa Horace to have hidden in their computers.
Feature set of this thing seems like a newer version of that pile of crap ORielly WebSite Pro.
Stay away... this dude doesn't want to kill IIS, he wants to kill every windows install anywhere on the planet.
I mean ... it must absolutely be a prank! The project's website looks like a bad infomercial - the guy's application is like a student project (write a simple web-compliant server that runs CGI scripts) gone totally wild.
If you need time-critical efficiency in your web app, I suggest you make your front-end in a high-level framework to do the pretty printing and then delegate the CPU-intensive requests to some back-end server written in highly-optimized C.
The truth is web-servers are usually mostly CPU-idling, the real clog is in the I/O. There's no "vertical scaling" goal to reach here by making the code more efficient. You need to buy monster hardware.
Only very few people can do string processing in C. Actually I believe more people can do string processing in assembler than in C, as with assembler you see where the problems are whereas C makes you believe it has some kind of string support.
I can't tell if sane or not but it certainly sounds like he is putting much effort into some software.
So it would help to defuse the impression of insanity that most of the posters here are suggesting. He doesn't sound insane at least not for a French programmer who has left the country due to corruption apparently.
Personally I would suggest an online explanation in more detail of two points:
1) Would he offer source to a company/institution that will sign an NDA? I bet he would sell it to say Facebook if they wanted to compile their own.
It isn't a crime to do closed source software although to my mind not offering the source in any way is going to slow adoption.
2) I took the time to read the blog and pdfs. His legal problems seems to have started when he caught a bank using his software. See: groupama.pdf
This refers to software he makes (in Switzerland now), Remote Anything
Okay. First, the pdf shows they have installed packs of 65535 units of his software. This makes no sense at all and looks like a dumb programming bug. He doesn't show the evidence he has, or how he got the reports. I imagine he has a phone home routine in his program. This is maybe why it gets called a virus too I could imagine, if that is the app he is talking about. The $200M fine he is seeking is therefore either crazy, a lie, or else based on such strong evidence I can't imagine not mentioning it. I think he needs to explain what the evidence is, how he got it, and why the numbers suggest some binary math errors. He has four lines that look like "64 DS + 256 Masters + 65536 Slaves = 34 million euros" and this is totally crazy. He seems to be suggesting they are using 250,000 clients if I am correct. His own site says Fortune 500 companies often buy tens of thousands of licenses. He should explain the discrepancy.
I think if he does these two things then he could expand his market more. If he doesn't want to go open source fine but comparing it to open source projects then should include this caveat. Maybe he could get a university or famous security company to audit the code.
People that never learn C or delve into actual hardware & kernel architecture have real troubles with issues such as concurrency, atomicity and threading. High performance code is difficult to master in Java, as you much understand what's happening in the implementation.
You seem to forget that the Java core is written in C/C++? I've worked at top tier industry web sites - java is not immune to stupid code practices. It crashes a bit nicer, but downtime is still measured in lost dollars.
I said no... but I missed and it came out yes.
In front of management, I asked him to explain why stable versions (some of these stable releases were several years old, too) of the software he was recommending contained over 100 bug fixes. He couldn't provide a suitable answer, and thus management gave him the boot. And so we're not using Drupal.
http://php.net/ChangeLog-5.php
Most recent version has approx 110 bug fixes, which was on 19-November-2009, the previous version (minor version) had a pretty big pile and that was just a couple months prior, and the same story going back.
The Drupal changelog shows... 3 bugs fixed...
So.... either your story is pure bullshit, or you are a first class moron. Or both more than likely.
In response, I opened up a web browser, and found the changelogs for the most recent releases of the stable versions of PHP and Drupal. In front of management, I asked him to explain why stable versions (some of these stable releases were several years old, too) of the software he was recommending contained over 100 bug fixes.
That's crazy. I think that consultant dodged a bullet by avoiding having to work with you guys.
It's not too bad if it's a per-request fork()ing server. But under Windows... :(
I'd rather bug hunt crashes and core dumps than dig through bugs related to misuse of massive dynamic type systems.
On the otherhand I would not want one silly double free() bug to take out my entire site.
I demand something that is:
When I find it, I'll be sure to share it with all of you. Well, there is Yaws, but it's written in Erlang (not sure how to exclude Yaws given my list).
“Common sense is not so common.” — Voltaire
A big upside, though, is C's first-class string handling, especially where Unicode is concerned. Scripting languages just aren't in the same league.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
In front of management, I asked him to explain why stable versions (some of these stable releases were several years old, too) of the software he was recommending contained over 100 bug fixes. He couldn't provide a suitable answer, and thus management gave him the boot. And so we're not using Drupal.
http://php.net/ChangeLog-5.php
Most recent version has approx 110 bug fixes, which was on 19-November-2009, the previous version (minor version) had a pretty big pile and that was just a couple months prior, and the same story going back.
The Drupal changelog shows... 3 bugs fixed...
So.... either your story is pure bullshit, or you are a first class moron. Or both more than likely.
http://drupal.org/node/579476 [Drupal 6.14 changelog lists 51 bug fixes plus multiple security fixes to 6.x core]
http://drupal.org/node/579484 [Drupal 5.20 changelog lists 6 bug fixes plus multiple security fixes to the 5.x core]
Who in the hell wouldn't use 6.14 over 5.20?
Yes, writing scripts in C is a great idea.
It's certainly not a new idea ...
Minimal webserver, written in C, supporting C scripts ...
libguestfs - tools for accessing and modifying virtual machine disk images
I wrote one. It's a simple inetd-based process forking webserver in C (see inetdxtra). It uses about 80kb per process, is scalable (and obviously memory protected using separate processes for both responses and CGI) and was designed for embedded hardware. It supports CGI, so you can write pages in C, Perl, PHP, Java, or anything that can use stdio and read environment variables.
Lots of people must have written webservers like this, I have no idea why slashdot consider this newsworthy.
I think you should be nominated for an award in stupidity.
What's your read/write ratio? memcached has helped us a lot with MySQL load for read extensive databases. IODrives has done the same for write extensive workloads. Don't be scared by the price tag, one server with an ioDrive can easily replace 5 servers without ioDrives.
A while back I had written a minimal HTTP server to figure out I/O completion ports in Windows over a weekend. You can download it from (BSD license): http://arunsagar.com/Code/rani.cpp
Similar throughput specs as the OP's server, and the C++ code can be part of the server itself (great for debugging). Buggy and incomplete, but you can play, fix and extend as you wish.
Free Beer as in Alcohol Free Beer, i.e. pointless.
I can't complain with that. Uhh... the thrill. Excites me just to think about it. Programming has been so boring with scripting language nowadays. Everything is sooooooo waaaayyyyyyyyyyyyyyyyy tooo easy. They got functions for everything, memory is well managed (actually garbage-managed), no core dumps, no crashes. No pointer bugs. What's the fun with _that_ !
The entire Internet backbone is powered by C. Do you think router software is written in perl? Operating systems? BIOSes? Harddisk firmware? Data encrypters? GPS firmware? Mobile phone firmware?
Real engineers program mostly in C.
The higher level stuff is just there to enable non programmers to write banal blogging applications that enable people to publish details of their uninteresting lives.
When the world fully wakes up to the amount of energy we waste executing inefficient algorithms in inefficient programming languages, we'll see who's smug then.
Open Source Drum Kit, LPLC deve board - mjhdesigns.com
number-sign octothorpe ...
G-Wan has more of an East Coast flow than his brother.
I really think universities are doing their graduates a disservice by educating them in the safe, comfortable confines of Java if they don't also teach them C.
Bah, Java is passé. We do everything in Logo nowadays.
PUT :page ON TURTLE
SEND TURTLE ON NETWORK
Go turtle ! You can do it !
May contain traces of nut.
Made from the freshest electrons.
Different tools for different jobs. For example, the USPS mandates the use of the System Networked Architecture Instructional Language for USPS mail servers.
"Neither snow nor rain nor heat nor gloom of night shall stay these servers from the swift completion of their appointed tasklists".
On the other hand, at least the "real engineers" don't have to waste their time writing the "banal blogging applications" that everyone and their grandma wants. Just imagine how much that would cost.
Maybe they liked G-WAN because it is faster than all other servers both on Windows and Linux. Or, maybe they liked ANSI-C scripts (offering C programmers the opportunity to avoid PHP).
So you won that argument by appealing to the ignorance of your managers. Great job.
You said the PHP, Drupal, and Joomla codebases are poor. How do you know? What are you basing that on? I have to presume you've never looked at or used those packages because you failed to provide any detailed insight as to why they are poor from a technical standpoint. All that you mentioned was change logs, so that must be what you're basing your opinion on.
An active change log means the project is being maintained, which is a good thing because the last thing you want to support is a production website based on a framework with little or no updates. The length of the change log has no indication on the severity of the bugs. Sometimes you will see very large bug counts after housekeeping sprints, but low bug counts after fixing the critical security bugs. Sometimes an entry will roll-up several bugs, sometimes there are no bugs but consist of general software improvements. You can't use change log size as a heuristic relating to code quality. You generate that metric by scoring and tallying the individual bugs (discounting the general enhancements) and factoring in the size of the codebase. That requires stringent analysis and I guarantee you've not done that.
It seems your responders have been ripping you a new one and I have to say that I agree with them. You're arrogant and critical, yet you apparently misunderstood how normal software development works. There is nothing wrong with being critical, but when you criticize something or someone you're expected to support your argument and provide an alternative (particularly if the targets are high profile), but you didn't--during your meeting or in your post here.
I suspect your motivation was more about posturing and scoring points with your managers by shutting someone down at a meeting. I've worked with those exhibiting that personality type before, and I'll say they are quite unpleasant to work with. They tend to slow things down by throwing out road blocks without providing support. It's just too bad the contractor didn't have the debating skills to counter your unsupported points because it was very easy to do so.
Camping on quad since 1996.
... or you can just have loads of fun with the macro preprocessor in C. A friend of mine once used this with abandon. And then abandoned his no longer debug-able project :)
Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
C scripts are not C, it's just a scripting language that looks like C.
You mean PHP?
Computers are useless. They can only give you answers.
-- Pablo Picasso