The ultimate programming language flamewar

Please compose all posts in Emacs.

Moderators: phlip, Moderators General, Prelates

photosinensis
Posts: 163
Joined: Wed Aug 22, 2007 6:17 am UTC

The ultimate programming language flamewar

Postby photosinensis » Thu Nov 15, 2007 6:16 am UTC

I've been wanting to read a flamewar between proponents of every possible programming language for some time now. I don't want this to be based on actual merits, though, as let's face it, anything done in one Turing complete language can be done in any other Turing complete language--the only difference is how much code it takes (and sometimes, not even that). I want it entirely based on religious conviction that [insert programming language here] is the only programming language anyone will ever need, the naysayers and the language's flaws be damned.

So, to get this flamewar started, I'll use my father's line (which I personally think is rubbish, but rubbish does burn well). "The only programming language you'll ever need to know is Visual Basic. I don't know why anyone bothers with anything else."
While I clicked my fav'rite bookmark, suddenly there came a warning,
And my heart was filled with mournng, mourning for my dear amour.
"'Tis not possible!" I uttered, "Give me back my free hardcore!"
Quoth the server: 404.

User avatar
Korandder
Posts: 161
Joined: Fri Sep 14, 2007 6:12 am UTC
Location: LoadingReadyRun Australian Astrophysical Observatory
Contact:

Re: The ultimate programming language flamewar

Postby Korandder » Thu Nov 15, 2007 6:19 am UTC

Perl should not be used for anything more than a couple hundred lines long. However what you need to do is only a couple of lines long and involves text, use Perl.
Image

User avatar
davean
Site Ninja
Posts: 2498
Joined: Sat Apr 08, 2006 7:50 am UTC
Contact:

Re: The ultimate programming language flamewar

Postby davean » Thu Nov 15, 2007 10:41 am UTC

Now now, I'd like to see a VB OS. Theres some stuff with bit twiddling and HW that really needs a proper language. Hell, even Java would be better then VB for that probably ...

User avatar
evilbeanfiend
Posts: 2650
Joined: Tue Mar 13, 2007 7:05 am UTC
Location: the old world

Re: The ultimate programming language flamewar

Postby evilbeanfiend » Thu Nov 15, 2007 11:50 am UTC

Korandder wrote:Perl should not be used for anything more than a couple hundred lines long. However what you need to do is only a couple of lines long and involves text, use Perl.


meh plenty of alternative scripting languages even for short stuff now. personally i love tcl, all that expression from only 11 language rules, its pretty much the antithesis of perl.
in ur beanz makin u eveel

User avatar
Hammer
Because all of you look like nails.
Posts: 5491
Joined: Thu May 03, 2007 7:32 pm UTC
Contact:

Re: The ultimate programming language flamewar

Postby Hammer » Thu Nov 15, 2007 12:36 pm UTC

If you can't get it done with 30 keywords, then you don't deserve to call yourself a programmer. And real programmers aren't afraid to null-terminate their own strings. So there! flame flame flame
"What's wrong with you mathematicians? Cake is never a problem."

Rysto
Posts: 1459
Joined: Wed Mar 21, 2007 4:07 am UTC

Re: The ultimate programming language flamewar

Postby Rysto » Thu Nov 15, 2007 12:42 pm UTC

The productivity gains from using a functional language are negative: even if you do manage to solve problems faster, you end up wasting way more time boasting about how much more productive you are.

User avatar
Matthias
Posts: 275
Joined: Wed Sep 12, 2007 4:55 am UTC
Location: Out of context, probably.
Contact:

Re: The ultimate programming language flamewar

Postby Matthias » Thu Nov 15, 2007 11:42 pm UTC

Clearly, object-oriented is the way to go. Objects are sources of information, and separating the world into objects is how humans process our universe. It's only natural--nay, it is the one true way, the divine path--for C++ to be considered the best programming language in the world.

Anything else is just dadaist, jingoist, masochist, b-list, computational linguist, apocryphal propaganda.
Love may be blind, but lust has x-ray vision.
Avatar shamelessly plucked from PMOG.

Also, it turns out I'm not dead--I'm just a right bastard who disappears from the internet for months at a time every so often.

EvanED
Posts: 4330
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI
Contact:

Re: The ultimate programming language flamewar

Postby EvanED » Thu Nov 15, 2007 11:48 pm UTC

davean wrote:Now now, I'd like to see a VB OS. Theres some stuff with bit twiddling and HW that really needs a proper language. Hell, even Java would be better then VB for that probably ...

There's a C# OS, and VB is mostly just a different syntax for the same stuff.

User avatar
OfficiallyHaphazard
Age=postcount/60
Posts: 209
Joined: Tue Aug 28, 2007 2:56 pm UTC

Re: The ultimate programming language flamewar

Postby OfficiallyHaphazard » Fri Nov 16, 2007 12:49 am UTC

Actionscript 3.0 is the best. (<-- thats a period... as in PERIOD)

(lol.. I actually kinda like it.... as for writing ACTUAL code... java/c++ are what I am comfortable with)
"Who are you, how did you get in my house?" - Donald Knuth

User avatar
the Cow
Today India, tomorrow the world!
Posts: 2199
Joined: Sun Jun 10, 2007 5:40 pm UTC
Contact:

Re: The ultimate programming language flamewar

Postby the Cow » Fri Nov 16, 2007 1:34 am UTC

Forth is hoot good a worth language only the.
...the whim of a hat.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Fri Nov 16, 2007 2:08 am UTC

The programming world is divided into people who wish everyone used Lisp, and people who are unable to really understand Lisp.

(Trivia, the first Lisp interpreter was written by accident! One guy wrote a Lisp interpreter in Lisp, and another translated it into assembly language.)
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

photosinensis
Posts: 163
Joined: Wed Aug 22, 2007 6:17 am UTC

Re: The ultimate programming language flamewar

Postby photosinensis » Fri Nov 16, 2007 2:24 am UTC

Lisp uses too damn many parentheses, and I get lost in the nesting.

x86 assembly, however, is the absolute mother of all languages. After all, you can shave over 1000% off the binary overhead of C when writing assembly, while being faster than C as well. And since most computers out there are x86 boxen, it's the only language you'll ever need!
While I clicked my fav'rite bookmark, suddenly there came a warning,
And my heart was filled with mournng, mourning for my dear amour.
"'Tis not possible!" I uttered, "Give me back my free hardcore!"
Quoth the server: 404.

User avatar
fryman
Posts: 50
Joined: Mon Aug 20, 2007 7:11 pm UTC
Location: In a box, sitting next to a cat.

Re: The ultimate programming language flamewar

Postby fryman » Fri Nov 16, 2007 3:39 am UTC

C++ for beginners sucks when taught the wrong way. Today in CS 115, my prof. scared the shit out of everyone by telling us what we could do by writing to an out-of-bounds element of an array. Wasn't there a UNIX worm that exploited that?
Open source sigs? Here, use mine!

User avatar
hendusoone
Mr. Dreambeard butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts butts. Butts.
Posts: 1570
Joined: Fri Jun 29, 2007 5:30 pm UTC
Location: Spaceship
Contact:

Re: The ultimate programming language flamewar

Postby hendusoone » Fri Nov 16, 2007 4:01 am UTC

Everyone should program everything in APL. Anything you ever need to do, you can do it all on a single line! In Greek symbols, too!
Jack Saladin wrote:Humanities salvation relies on us sending the Earth into a giant black hole.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Fri Nov 16, 2007 4:13 am UTC

hendusoone wrote:Everyone should program everything in APL. Anything you ever need to do, you can do it all on a single line! In Greek symbols, too!


The Greeks really used that many symbols???

APL! Because reading even one line of code should be impossible!

(For those who don't know, Perl has golf contests - accomplish a given task in as little code as possible. APL has obfuscated golf contests - come up with the shortest piece of code that nobody can figure out.)
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

++$_
Mo' Money
Posts: 2370
Joined: Thu Nov 01, 2007 4:06 am UTC

Re: The ultimate programming language flamewar

Postby ++$_ » Fri Nov 16, 2007 6:00 am UTC

Korandder wrote:Perl should not be used for anything more than a couple hundred lines long. However what you need to do is only a couple of lines long and involves text, use Perl.
In other words, Perl should be used for all programs. According to Wall's Theorem, any program that performs a useful task can be written using under one thousand characters of Perl code.

Seriously, though, Perl should be used if (expected development time) > (expected running time). (If you're a Python fanatic, you could use Python instead. I have no opinion on which language is better, but (as you might guess from the username) I use Perl a lot more. It's more powerful for short tasks, and about the same for reasonably sized tasks.)
C++ should be used if (expected running time) > (expected development time). C is a marginally acceptable substitute. C# is unacceptable.
Java should be used only when it is the only option available. If you think Java is good, you need to learn a second language and you will realize you were wrong.
Other languages (Fortran, VB, Pascal, APL, Haskell, and Brainfuck) should not be used except when explicitly demanded by a manager.
Finally, COBOL should never be used. Period. Quit your job if ordered to use it rather than sully your soul.

I do have to evangelize for Perl though. It is by far the best language for writing small tasks that deal with text. The disadvantage is that to be able to use it properly, you need a lot of practice. (If you think Tcl = Perl, it's because you're not expert enough with Perl yet.) While you spend your time trying to code simple routines, we Perl hackers are taking over the world. It's not too late to join us.

User avatar
JayDee
Posts: 3620
Joined: Sat Nov 10, 2007 3:13 am UTC
Location: Most livable city in the world.
Contact:

Re: The ultimate programming language flamewar

Postby JayDee » Fri Nov 16, 2007 6:16 am UTC

Matthias wrote:Clearly, object-oriented is the way to go. Objects are sources of information, and separating the world into objects is how humans process our universe. It's only natural--nay, it is the one true way, the divine path--for C++ to be considered the best programming language in the world.

Anything else is just dadaist, jingoist, masochist, b-list, computational linguist, apocryphal propaganda.

Back in my day, we used a real object-oriented language - ZZT-OOP. Got the OOP right there in the name! And none of this putting code into files, it was all in the objects themselves, which could, um, send messages to each other, and transform!

ZZT-OOP. A real programming language, none of this 'useful' or 'efficient' nonsense.

User avatar
Beyondthewall
Posts: 69
Joined: Thu Oct 04, 2007 4:12 am UTC

Re: The ultimate programming language flamewar

Postby Beyondthewall » Fri Nov 16, 2007 6:28 am UTC

Brainfuck. Why would you need anything else?
It's theoretically possible even to simulate timing, knowing enough about the hardware and taking over the entire CPU. And if you've got a graphics card that can interpret base 64 as binary, why, then you can do anything!
I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated.

EvanED
Posts: 4330
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI
Contact:

Re: The ultimate programming language flamewar

Postby EvanED » Fri Nov 16, 2007 6:36 am UTC

$_[0] wrote:C# is unacceptable.

Why's that?

Java should be used only when it is the only option available. If you think Java is good, you need to learn a second language and you will realize you were wrong.

I can see why people could think Java is good, though I don't like it myself. It has a lot of places where it excels: web development, multiplatform GUIs (though it's not perfect, it's a better solution than a lot of other things out there), and at being a multiplatform safe language.

Other languages (Fortran, VB, Pascal, APL, Haskell, and Brainfuck) should not be used except when explicitly demanded by a manager.

What about Lisp? Ocaml?

While you spend your time trying to code simple routines, we Perl hackers are taking over the world. It's not too late to join us.

Yeah, so was the Empire before the Battle of Endor. :wink:

User avatar
phlip
Restorer of Worlds
Posts: 7550
Joined: Sat Sep 23, 2006 3:56 am UTC
Location: Australia
Contact:

Re: The ultimate programming language flamewar

Postby phlip » Fri Nov 16, 2007 7:00 am UTC

Beyondthewall wrote:Brainfuck. Why would you need anything else?

Bah, you and your fancy visible languages...

Code in Whitespace. It is superior to all. Plus, it's a 0-operand stack machine, and those are always fun to code for.

Code: Select all

enum ಠ_ಠ {°□°╰=1, °Д°╰, ಠ益ಠ╰};
void ┻━┻︵​╰(ಠ_ಠ ⚠) {exit((int)⚠);}
[he/him/his]

++$_
Mo' Money
Posts: 2370
Joined: Thu Nov 01, 2007 4:06 am UTC

Re: The ultimate programming language flamewar

Postby ++$_ » Fri Nov 16, 2007 7:30 am UTC

EvanED wrote:
C# is unacceptable.

Why's that?
Because this is a religious war! Are you questioning my religion??? You shall be smitten and doomed to an eternity of COBOL! :)

(Actually, the real answer has to do with Microsoft's control over it, and with the lack of compatibility with gcc. It's only a personal opinion.)

I can see why people could think Java is good, though I don't like it myself. It has a lot of places where it excels: web development, multiplatform GUIs (though it's not perfect, it's a better solution than a lot of other things out there), and at being a multiplatform safe language.
I can see why people would think it is good too. That doesn't make them right. It is nicely portable compared to C/C++, and faster than Perl, but that doesn't make it a good language. (What do you mean, Perl doesn't come standard on Windows? Pshhh. It should. You are coming dangerously close to questioning my religion again.)

Other languages (Fortran, VB, Pascal, APL, Haskell, and Brainfuck) should not be used except when explicitly demanded by a manager.

What about Lisp? Ocaml?
I don't know anything about Ocaml, and I deliberately left out Lisp because I couldn't figure out what to say about it. I still can't.

While you spend your time trying to code simple routines, we Perl hackers are taking over the world. It's not too late to join us.

Yeah, so was the Empire before the Battle of Endor. :wink:
Your analogy fails, because all the AWESOME people were part of the Rebel Alliance (Han Solo, Wedge Antilles, etc.), not the Empire (with the exception of Boba Fett). On the other hand, all of the AWESOME people in the real world are part of the Perl community (God, Jesus, Elaine Roberts, etc.) with the exception of Richard Stallman. And he's on our side (I hereby declare it to be so). So, not only are we as AWESOME as the Rebel Alliance, we are better because Stallman is on our side. Also, we all secretly have Force Lightning powers. We just choose not to use them because they might damage our computers.

:) :) :)

User avatar
1337geek
Posts: 551
Joined: Mon Oct 01, 2007 4:21 am UTC

Re: The ultimate programming language flamewar

Postby 1337geek » Fri Nov 16, 2007 7:49 am UTC

Program in l33t! http://www.geocities.com/electrodruiduk/l33t.htm

Actually, don't. It's just that I came across this the other day, and I thought it was silly.

The languages I actually know are Java, C++, and Python.
"Duct tape is like the Force. It has a light side, a dark side, and it holds the universe together." --Carl Zwanzig

photosinensis
Posts: 163
Joined: Wed Aug 22, 2007 6:17 am UTC

Re: The ultimate programming language flamewar

Postby photosinensis » Fri Nov 16, 2007 8:40 am UTC

$_[0] wrote:Your analogy fails, because all the AWESOME people were part of the Rebel Alliance (Han Solo, Wedge Antilles, etc.), not the Empire (with the exception of Boba Fett). On the other hand, all of the AWESOME people in the real world are part of the Perl community (God, Jesus, Elaine Roberts, etc.) with the exception of Richard Stallman. And he's on our side (I hereby declare it to be so). So, not only are we as AWESOME as the Rebel Alliance, we are better because Stallman is on our side. Also, we all secretly have Force Lightning powers. We just choose not to use them because they might damage our computers.


Actually, RMS is a Lisp fan, or so I'm told. Why else would it be the scripting language in Emacs?

Personally, I think the universe was coded in a CISC assembly language, one even uglier and kludgier than x86. Furthermore, there were some bugs that God left in there just to make things interesting.

In short, Perl is over-rated. Prrl, however, is dead sexy.

EvanED wrote:Quote:
C# is unacceptable.

Why's that?
Because this is a religious war! Are you questioning my religion??? You shall be smitten and doomed to an eternity of COBOL! :)

(Actually, the real answer has to do with Microsoft's control over it, and with the lack of compatibility with gcc. It's only a personal opinion.)


Then write your own gcc frontend for C#. And please, for the love of all that is good and holy, when you do so, don't make it suck as badly as gcj. I can't even declare i and j as integers there.
While I clicked my fav'rite bookmark, suddenly there came a warning,
And my heart was filled with mournng, mourning for my dear amour.
"'Tis not possible!" I uttered, "Give me back my free hardcore!"
Quoth the server: 404.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Fri Nov 16, 2007 9:13 am UTC

$_[0] wrote:I do have to evangelize for Perl though. It is by far the best language for writing small tasks that deal with text. The disadvantage is that to be able to use it properly, you need a lot of practice. (If you think Tcl = Perl, it's because you're not expert enough with Perl yet.) While you spend your time trying to code simple routines, we Perl hackers are taking over the world. It's not too late to join us.


Perl does not have a significant advantage with small text jobs over Ruby. To the contrary, most things can be written more compactly in Ruby than Perl.

Where Perl wins over other scripting languages (including Ruby) is CPAN.
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

EvanED
Posts: 4330
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI
Contact:

Re: The ultimate programming language flamewar

Postby EvanED » Fri Nov 16, 2007 2:22 pm UTC

$_[0] wrote:
EvanED wrote:
C# is unacceptable.

Why's that?
Because this is a religious war! Are you questioning my religion??? You shall be smitten and doomed to an eternity of COBOL! :)

(Actually, the real answer has to do with Microsoft's control over it, and with the lack of compatibility with gcc. It's only a personal opinion.)

Mono?

I can see why people would think it is good too. That doesn't make them right. It is nicely portable compared to C/C++, and faster than Perl, but that doesn't make it a good language.

Fine, I can get behind that. Java may not be good, but it may be best-available.

User avatar
Beyondthewall
Posts: 69
Joined: Thu Oct 04, 2007 4:12 am UTC

Re: The ultimate programming language flamewar

Postby Beyondthewall » Fri Nov 16, 2007 2:32 pm UTC

EvanED wrote:. . . Fine, I can get behind that. Java may not be good, but it may be best-available.


You fail at flamewars, therefore your opinion is invalid, therefore I'm right.
I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated.

User avatar
pieaholicx
The cake is a lie!
Posts: 531
Joined: Mon Oct 22, 2007 12:51 pm UTC
Contact:

Re: The ultimate programming language flamewar

Postby pieaholicx » Fri Nov 16, 2007 2:38 pm UTC

phlip wrote:
Beyondthewall wrote:Brainfuck. Why would you need anything else?

Bah, you and your fancy visible languages...

Code in Whitespace. It is superior to all. Plus, it's a 0-operand stack machine, and those are always fun to code for.

Takes some risks in your life, program in Java2k.

In all seriousness, the job should determine the language. I still hold, however that I can solve most problems in PHP.
It's okay, I'm Chaotic Neutral. I can kill him over the loot.
Overexposure to pieaholicx may, in semi-rare cases, emancipate dental fillings, crowns, tooth enamel, and teeth.

User avatar
Hexadecimator
Posts: 177
Joined: Thu Jul 26, 2007 10:48 pm UTC
Location: WA, USA, Earth, ZZ9 Plural Z Alpha

Re: The ultimate programming language flamewar

Postby Hexadecimator » Fri Nov 16, 2007 6:34 pm UTC

Matthias wrote:Clearly, object-oriented is the way to go. Objects are sources of information, and separating the world into objects is how humans process our universe. It's only natural--nay, it is the one true way, the divine path--for C++ to be considered the best programming language in the world.

Anything else is just dadaist, jingoist, masochist, b-list, computational linguist, apocryphal propaganda.
Oh really? And why exactly would I want something so pitiful as C++? If you want objects, code in Ruby. You'll have more objects than you could possibly know what to do with.
Oh wait, you can never have more objects than you know what to do with, thanks to ObjectSpace::each_object().

Your argument is a complete failure. Why would you proclaim your love of the Object, yet choose a langauge with marginal use of His holiness? Why, oh misguided disciple of the Almighty Object, would you not choose the One True Language in which everything with a name is descended from His holy Objectivity?

There is still time to repent, you sinners who defile the Lord's name with your code, using mere pitiful mockeries of the true Object. Repent, and choose a new language. A holy language.
Ruby. The ultimate representation of The Object's will on Earth!


Edit: Does this have too much logic/reason for this thread? :P
"In the beginning, the universe was created. This made a lot of people very angry and was widely regarded as a bad move." -Douglas Adams

Robin S
Posts: 3579
Joined: Wed Jun 27, 2007 7:02 pm UTC
Location: London, UK
Contact:

Re: The ultimate programming language flamewar

Postby Robin S » Fri Nov 16, 2007 6:37 pm UTC

You people use programming languages? True programmers hardwire their programs into circuitry by hand.

[serious]I like C, but I really want to become proficient at assembly for writing small apps (or wasting time optimizing massive projects by minute amounts).
This is a placeholder until I think of something more creative to put here.

EvanED
Posts: 4330
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI
Contact:

Re: The ultimate programming language flamewar

Postby EvanED » Fri Nov 16, 2007 6:43 pm UTC

Hexadecimator wrote:Oh really? And why exactly would I want something so pitiful as C++? If you want objects, code in Ruby.

Maybe you are working on a fairly critical project and want type safety. Maybe you're working on a part of a program where speed is critical. Maybe you're working in a somewhat low-resource environment where memory use and speed are important.

User avatar
Hexadecimator
Posts: 177
Joined: Thu Jul 26, 2007 10:48 pm UTC
Location: WA, USA, Earth, ZZ9 Plural Z Alpha

Re: The ultimate programming language flamewar

Postby Hexadecimator » Fri Nov 16, 2007 7:00 pm UTC

EvanED wrote:
Hexadecimator wrote:Oh really? And why exactly would I want something so pitiful as C++? If you want objects, code in Ruby.

Maybe you are working on a fairly critical project and want type safety. Maybe you're working on a part of a program where speed is critical. Maybe you're working in a somewhat low-resource environment where memory use and speed are important.
Oh, and tell me again why I would be coding for my 486? And if you must code in a low-resource environment, use Assembly or C and forgoe objects altogether. The Object does not condemn those who must seek alternatives to His holiness for their tasks, only those who defile his name with mere effigies of His true self.
Ruby on your computer, Assembly on your 386. Anything else is pointless and risks damnation.


Seriously though, did you read the OP?
I want it entirely based on religious conviction that [insert programming language here] is the only programming language anyone will ever need, the naysayers and the language's flaws be damned.
I know C++ and other languages are far superior in many (most?) situations, but in this religious flamewar, I must fight against such blasphemy to the death.
"In the beginning, the universe was created. This made a lot of people very angry and was widely regarded as a bad move." -Douglas Adams

LikwidCirkel
Posts: 169
Joined: Thu Nov 08, 2007 8:56 pm UTC
Location: on this forum (duh)
Contact:

Re: The ultimate programming language flamewar

Postby LikwidCirkel » Fri Nov 16, 2007 7:19 pm UTC

For real, it's only about using the language that's most appropriate for the task, but in the spirit of this topic .....

Java: - runs on a VM with a garbage collector that slows everything down
- takes care of everything for you, provides little control if you actually need to know memory addresses
- mostly suited to non-error prone quick development where you don't care how fast it runs
VB... well, I just hate it in general. I don't think it lets you assign pointers to constants - ie lack of control.
Python - I like the syntax and real time interpreter, but it will still give a slower result

C: The king of languages for operating systems and embedded land. Tons of control, does nothing for you, and has horrible syntax, allowing for the obfuscated c contest to even exist. Minimal overhead in code generated makes really fast and efficient binaries.
C++: Similar to C, except exceptions generate too much overhead in the binary, or too much for some people, like where I work.

Assembly: has a place in some circumstances, but it's really slow and tedious. I learned assembly first, and I'm glad that I did, because it gives me a better appreciation of compilers.

It's actually very difficult to write assembly code that outperforms properly written c code built with a well-optimized compiler.

For me, I choose c 9 times out of ten, with occasional assembly, and shell scripts or python for quick tasks on the computer. If you want fast and portable code (to multiple CPUs as well as operating systems), there are few other options.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Fri Nov 16, 2007 8:12 pm UTC

EvanED wrote:
Hexadecimator wrote:Oh really? And why exactly would I want something so pitiful as C++? If you want objects, code in Ruby.

Maybe you are working on a fairly critical project and want type safety. Maybe you're working on a part of a program where speed is critical. Maybe you're working in a somewhat low-resource environment where memory use and speed are important.


Maybe you like worrying about your memory management model. Maybe you like Heisenbugs. Maybe you think that buffer overflow bugs should continue to be the top source of security holes.

Perhaps if you're a Real Programmer, you enjoy this. If you're a normal mortal, why not pick a language which trivially makes it impossible to make those common mistakes?
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Fri Nov 16, 2007 8:16 pm UTC

Machine language. Because we all should aspire to be Mel.
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

EvanED
Posts: 4330
Joined: Mon Aug 07, 2006 6:28 am UTC
Location: Madison, WI
Contact:

Re: The ultimate programming language flamewar

Postby EvanED » Fri Nov 16, 2007 10:14 pm UTC

btilly wrote:Maybe you like worrying about your memory management model. Maybe you like Heisenbugs. Maybe you think that buffer overflow bugs should continue to be the top source of security holes.

I don't like those things. However, (1) other languages don't eliminate Heisenbugs, especially now that we're moving to concurrent programs, (2) C++ features like smart pointers and using STLish classes for strings and arrays go a long way towards helping with memory management and buffer overflows. (FWIW I have my own wrapper classes for some of the STL containers that make them behave the way I want them to behave; this includes doing bounds checking on [] accesses in vectors.)

From my experience, most of my debugging time is spent with logic errors or other things that would happen in any C-like language. (This includes Java.)

The thing is that the benefits of C++ make up for the difficulties. C++ is an amazingly flexible language, and you can do stuff in it easily that is harder in all other C-like languages. This flexibility makes up for the extra difficulties you encounter.

User avatar
Matthias
Posts: 275
Joined: Wed Sep 12, 2007 4:55 am UTC
Location: Out of context, probably.
Contact:

Re: The ultimate programming language flamewar

Postby Matthias » Sat Nov 17, 2007 1:06 am UTC

I offer the following evidence.
Attachments
C++.PNG
C++.PNG (116.51 KiB) Viewed 9423 times
Love may be blind, but lust has x-ray vision.
Avatar shamelessly plucked from PMOG.

Also, it turns out I'm not dead--I'm just a right bastard who disappears from the internet for months at a time every so often.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Sat Nov 17, 2007 1:18 am UTC

EvanED wrote:
btilly wrote:Maybe you like worrying about your memory management model. Maybe you like Heisenbugs. Maybe you think that buffer overflow bugs should continue to be the top source of security holes.

I don't like those things. However, (1) other languages don't eliminate Heisenbugs, especially now that we're moving to concurrent programs, (2) C++ features like smart pointers and using STLish classes for strings and arrays go a long way towards helping with memory management and buffer overflows. (FWIW I have my own wrapper classes for some of the STL containers that make them behave the way I want them to behave; this includes doing bounds checking on [] accesses in vectors.)


You're right that other languages don't eliminate Heisenbugs. However if you pay a little attention and don't multi-thread without very good cause, then most of the Heisenbugs that you encounter in practice are due to poorly written C or C++ libraries. (Incidentally in a web environment it is very easy to use naive parallelism, and then push the interesting concurrency issues down to the database. Multi-threading is not needed.)

You're right that there are partial solutions for memory management issues. But it just takes one mistake and the problem is back. Or one co-worker who hasn't learned how things are supposed to be done in your organization. Or one external library that manages memory differently and you don't properly account for it. Or one external library with a bad pointer access. (Of course other languages have that last problem as well when they use C or C++ libraries.)

EvanED wrote:From my experience, most of my debugging time is spent with logic errors or other things that would happen in any C-like language. (This includes Java.)


That may be true. But in any service that is remotely accessed, I care a lot about security guarantees. It is much harder to provide those in C++ than in languages with decent memory management.

EvanED wrote:The thing is that the benefits of C++ make up for the difficulties. C++ is an amazingly flexible language, and you can do stuff in it easily that is harder in all other C-like languages. This flexibility makes up for the extra difficulties you encounter.


That isn't a one-way street. Between duct typing and closures you can do things in most decent scripting languages that are much harder to translate into C++.
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

User avatar
davean
Site Ninja
Posts: 2498
Joined: Sat Apr 08, 2006 7:50 am UTC
Contact:

Re: The ultimate programming language flamewar

Postby davean » Sat Nov 17, 2007 3:20 am UTC

btilly wrote:That isn't a one-way street. Between duct typing and closures you can do things in most decent scripting languages that are much harder to translate into C++.


Yah, but duck typing doesn't offer free checking of the security of your code as you go.

btilly wrote:However if you pay a little attention and don't multi-thread without very good cause, then most of the Heisenbugs that you encounter in practice are due to poorly written C or C++ libraries. (Incidentally in a web environment it is very easy to use naive parallelism, and then push the interesting concurrency issues down to the database. Multi-threading is not needed.)


Multi threaded is just an easier, more natural way to code.

btilly
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: The ultimate programming language flamewar

Postby btilly » Sat Nov 17, 2007 3:32 am UTC

davean wrote:
btilly wrote:That isn't a one-way street. Between duct typing and closures you can do things in most decent scripting languages that are much harder to translate into C++.


Yah, but duck typing doesn't offer free checking of the security of your code as you go.

Traditional type checking doesn't do anything useful for security either. Does C++ have anything to match taint checking in Perl or Ruby?
davean wrote:
btilly wrote:However if you pay a little attention and don't multi-thread without very good cause, then most of the Heisenbugs that you encounter in practice are due to poorly written C or C++ libraries. (Incidentally in a web environment it is very easy to use naive parallelism, and then push the interesting concurrency issues down to the database. Multi-threading is not needed.)


Multi threaded is just an easier, more natural way to code.

That may be your personal impression. Mine is the direct opposite. Multi-threading seems simple in the design, but then gets messy when you're trying to code and debug it.

As I said before, in a web environment it is very easy to get all of the concurrency that you're likely to need while developing your website in single-threaded code whose behaviour is much easier to understand and debug than multi-threaded code.

Let me give a concrete example of the benefits of single-threaded code in this environment. It is much easier to add optional tracing and figure out exactly what happened with a given web request and where the time went that was spent generating the page.
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.

User avatar
JayDee
Posts: 3620
Joined: Sat Nov 10, 2007 3:13 am UTC
Location: Most livable city in the world.
Contact:

Re: The ultimate programming language flamewar

Postby JayDee » Sat Nov 17, 2007 3:41 am UTC

davean wrote:Yah, but duck typing doesn't offer free checking of the security of your code as you go.

So if an infinite number of monkeys with typewriters are working on Shakespeare, what are the ducks doing?


Return to “Religious Wars”

Who is online

Users browsing this forum: No registered users and 3 guests