G-WAN, Another Free Web Server 217
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 (Score:5, Insightful)
Help me out here (Score:5, Insightful)
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/ [apache.org], http://www.lighttpd.net/ [lighttpd.net]) that run everywhere?
Re:Spite? (Score:5, Insightful)
I don't know how writing a web server that requires a Microsoft OS exactly hits them "where it hurts"
Re:Big Plus! (Score:5, Insightful)
Re:Value? (Score:2, Insightful)
Only if it does something of value.
I recall a very lightweight web server that some large outfit uses to serve up images. That's it. only images. Apparently it made things speed up significantly.
I don't see G-WAN being anything special, though.
Re:Big Plus! (Score:1, Insightful)
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.
Re:Big Plus! (Score:2, Insightful)
IIS (Score:3, Insightful)
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.
The real question... (Score:5, Insightful)
Re:Okay, is it just me (Score:5, Insightful)
Using C as a "scripting" language. CHECK
Using C as a "scripting" language on a WEB SERVER. CHECK
Writing a non free webserver for windows only with very limited features. CHECK
yep, he's passed the "i'm crazy as a loon" test.
Re:10. subnet? (Score:5, Insightful)
That would be like saying "the fifth floor is in our building, not a public street address, so this warrant is useless". I bet that would be a useful bit of precedent to establish for lots of people who are served with search warrants. Given the router information mentioned in the article, and the settings of the laptop with an address in the address space, it's unsurprising that our plaintiff was upset that those machines did not get reported or searched properly.
Re:Help me out here (Score:5, Insightful)
how many of todays Perl and PHP website scripting security issues would evaporate if the authors were forced to write in a less flexible language that took a few moments to actually compile before being enabled?
None. Contrary to popular belief, lower-level languages don't make shitty programmers competent.
Re:Big Plus! (Score:1, Insightful)
i C what you did there.
Re:Big Plus! (Score:4, Insightful)
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.
Re:The real question... (Score:5, Insightful)
The question is WHY THE FUCK DID IT MAKE SLASHDOT?
Numerous people on this site have loudly proclaimed "Alternatives are great!!!" and have had their comments modded up for it.
Re:The real question... (Score:4, Insightful)
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?
C'mon. Whenever some new Linux distribution (or variant on an existing distro) is announced, it automatically becomes a Slashdot submission. Why should it be any different with new web servers?
Of course, whenever we have those HIGYALD (Hey, I've Got Yet Another Linux Distro) stories, there is always at least one post similar to yours, asking why it's news. And there's always at least one response to that post, explaining that alternatives are great - which is true here as well, so the circle is now complete.
Re:Help me out here (Score:3, Insightful)
Your points would be warranted if:
1) CPAN were Perl itself.
2) CPAN were atypical for a collection of useful modules for any programming language.
3) C were better.
Re:Okay, is it just me (Score:3, Insightful)
Re:Big Plus! (Score:3, Insightful)
> 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!!
On the plus side ... (Score:3, Insightful)
Finally a platform with built-in buffer overflow support!
Let the exploits games begin!
Re:Help me out here (Score:3, Insightful)
But I think the point is that, since you need Windows to run G-WAN, then you've already paid for IIS, so why the need for a different closed-source (but free as in beer) web server?
Re:Big Plus! (Score:3, Insightful)
---
Web Servers [feeddistiller.com] Feed @ Feed Distiller [feeddistiller.com]
Re:Big Plus! (Score:4, Insightful)
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.
Re:Help me out here (Score:4, Insightful)
But those lower level programmers are not getting the experience that turns them into good programmers. They're cutting and pasting bad code and propagating errors which are nightmarish to track down after the fact. And yes, I'm trusting the language designer to write a good _compiler_ to write small utilities, well written, rather than presenting every programmer with that stunning mass of debris I find coming out of places like CPAN.
We should not resist new tools for good programmers. We should resist toolboxes that include that many slightly different hammers, many of which are liable to break and many of which have handles likely to slip in the grip of a normal user, sending a large and spinning object flying towards anyone working near them. I'm afraid I've been that person near them and struck with those handles too many times in the last five years, and from observation, far too many of the scripting language authors need to go back and be _mentored_ in how to do efficient or even safe code, because they certainly didn't learn it dealing with Perl.
For examples of the insanity, I'll point you directly to mod_perl itself and resolving which versions of mod_perl itself are compatible with your project. Though that utility was written in C, it has to deal with a lot of Perl's vagaries, and it can be very awkward to coordinate multiple old and new Perl utilities with a single mod_perl release.
Few people can do string processing in C (Score:3, Insightful)
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.
Re:It can't even talk http properly (Score:4, Insightful)
Oh geez. He's returning Error 404 when a script crashes? That means he can't be bothered to find the list of HTTP status codes [thinkgeek.com], because if he did he'd see that 404 is clearly the wrong choice. It also means he can't be bothered to look at other implementations, because then he'd have noticed that popular servers such as Apache and IIS return Error 500 when scripts are broken.
From this we can conclude that he probably hasn't read the HTTP protocol specification (because it'd be hard to read the spec but miss the list of status codes), and he has no idea how current servers work (so instead of copying their good ideas, he'll be reinventing his own broken wheels).
And from THAT we can conclude that his browser is a steaming pile of crap. The reason it's not open source is probably because he's afraid that somebody would read his code and make fun of him for it.
Heh, check out the actual 404 error message - it's malformed HTML 2.0! If you're going to go to the trouble of including a DOCTYPE declaration, you ought to at least validate the code.
Re:Big Plus! (Score:4, Insightful)
That's crazy. I think that consultant dodged a bullet by avoiding having to work with you guys.
Re:Help me out here (Score:3, Insightful)
Forcing them to use C for web development won't change that; you'll see websites that leak memory like a sieve, open supposedly read-only files in read-write mode and then reuse that pointer (which the coder doesn't notice because he only ever tested with the same value being written to that file) or have all methods declared as void* for "flexibility", with results being casted as inappropriate.
C does not magically make shitty programmers good. Experience does. And C is not the only language on the market in which one can possibly gain that.