Author Topic: Programming language flamewar!  (Read 22437 times)

dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
Programming language flamewar!
« on: 2001-01-24 17:37:00 »
Let's have one...just for fun? We've already discussed programming languages in other threads, I just thought it would be a good idea to collect them all in one thread. So I'm actually trying to prevent flooding rather than causing it.

My viewpoints:

Assembler - No real point in using it anymore for most things. There are some places it should be used, but they are really rare. Modern compilers are sometimes better than humans in optimizing anyway.

Visual Basic - Crappy language. Yes, it does give newbies a headstart, but not really more than Delphi does in my opinion. You can learn it in an hour, make programs in an hour, but after a month you spend more time fighting with the language than programming. Doing something advanced (editing FF files for instance) is not strictly impossible but tiresome.

Delphi - Visual Basic the way it is supposed to be. Almost as powerful as C++ (there's not a thing you can do in C++ that you can't do in Delphi) and as easy to learn as VB. This is my favourite graphical tool: If my program is much about a user interface, I use this.

C++ - The best! The cryptic syntax is bad because it scares newbies away, but is faster to type and has many really powerful features, of which I would mention templates and operator overloading as the greatest. IN Visual Basic some calls (like open) have special treatment, in Delphi some types (like string) have special treatment...in C++ nothing has special treatment, there's nothing in the standard libraries that you couldn't do yourself!! Also I really like the strong typing of the language (compare to Delphi, where you can typecast as easy as TButton(list[1]) and get loads of access violations) and the constness issues. But by now probably only the C++ people out there understand what I'm saying anyway...

MS VC++ - Microsoft manages to do everything possible wrong in their MFC framework. They have esentially stripped away what is beutiful with C++, you have to program directly to the Windows API instead of using some middle-layer like the rest of the world does. I feel it's a bit prehistoric, really... Also, the compiler itself lacks a lot of C++ features (for instance decent template support).

Borland C++Builder - Really horrible. Borland's C++ compiler is one of the best out there but using the Delphi VCL in C++ is just so wrong...C++ is type-safe, Delphi is type-weak...it's two colliding worlds! If you want to program with the fantastic VCL, use Delphi.

Java - It's C++ done right in some cases, and totally wrong in other cases. It's good to get rid of the legacy C/unix/preprocessor stuff, but loosing templates, multiple inheritance and operator overloading isn't all that good...it's a little like Pascal with C++ syntax, meaning blending the bad things of C++ with the bad things of Pascal...but still it's me 3rd language of choice, I'm not really against it. I'm only against the Java hype...most people hyping it don't have a clue. At least in my experience.

Perl - The beauty of this language is said to be the usefulness. As I look on programming as an art in goodprinciples and framework it really isn't what I'm looking for, but then again it doesn't pretend to be. Useful for dirty scripts...

PHP - Probably the best web author tool out there right now, definitely my choice when making dynamic HTML.

That's it...I don't know many more languages and haven't made an opinion about them.

[EDIT:] How could I forget good old C?

C is..well...C. I've never used it. I do know that it is faster than C++ (well, object oriented programming anyway, you can do C++ the C way) because the virtual functions cause the CPU to predict badly what will happen and not run as optimized. So C programming is faster (in two meanings of the word), but probably not as maintainable.

And you can do OO in C, but why bother? It would mean extremely cryptic syntax...

[This message has been edited by dagsverre (edited January 24, 2001).]


halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Programming language flamewar!
« Reply #1 on: 2001-01-24 19:34:00 »
Assembler: Beautiful language. Fast and sleek. I learned 8088 asm then 6511. You have total control over every aspect of the system. If tere was ever a language to make the computer do what it wasn't supposed to, use this one right here!

ANSI Standard C: Normal C. Not C++ not C# Awsome step up from assembly. You still have control over low level pointers to data and many fuctions have been pre-written fo you in the form of libaries. Also, if working with ANSI Standard C, you have a degree of cross-platform complience. Also the native language that Linux is programmind in, along with many apps for it.

C++: Classes suck, overloading sucks, not able to use globals suck, objects suck, very bad implmantation of Object Orientated programming. There is a *far* better Object language below

(I don't use Windows for programing, only linux, so I have no experinace wirh MS programs)

Inform: Awsome Object orintated language that is used to program....Objects! Actully is's a cross between lisp and Zilch. It's used to make text-adventure games. I picked up in 3 days and was already doing fill Adventures.;

Object Room
has light;
has object bed;

Object bed
has container;

See you already have an idea of what I just created.

Perl: great for dirty shell scripts

Pretty much asm and C for me thank you.

-Halkun


Programming language flamewar!
« Reply #2 on: 2001-01-24 20:45:00 »
I've only had brief experience with Pascal, and am just now learning C.

Judging by my experience, I would agree that Pascal (and most likely Delphi) are what Visual Basic should have been.

As for C, at first it's confusing as heck, then things start to make sense. Once you understand the messy syntax, it gets a lot better. The only problem is that many of the language's functions, etc. are too easy to forget.


The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Programming language flamewar!
« Reply #3 on: 2001-01-24 20:48:00 »
well, no comment from me...
Asm: is a nightmare to look at, but is the long way to do things as a newbie.
C: did this 1st smooth, solid, fast and has good libaries.
c++: not as easy to get into (i should know) and the classes structure has you up in arms for being a tad difficult. but it is the pro's choice.
vb: my main area, is simple to look at easy to get into, hard to get anything complex out of it unless u start using classes/objects and AciveX controls, but the class layout is a little more strighter than c++ and theres no brackets to write either!
java: never really touched it but its supposed to be similar to C++ and it sux with windows!! (cause of Bill gates!)
delphi: you know a delphi program when you see one  :D they all seem to use the same windows GUI libary or something

dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
Programming language flamewar!
« Reply #4 on: 2001-01-24 23:03:00 »
Skillster:
Yes, all Delphi programs use the same GUI library. The same as all other Windows applications: The Windows API.

I could never tell the difference between a Delphi application and a VC. For instance Nemu (the famous N64 emulator) is coded in Delphi, you wouldn't know that by looking on it...

Perhaps there is some common design twist among Delphi developers though. But have no doubts, I could easily make designs identical with Qhimm's programs', for instance.

Halkun: Ok, my very biased counter arguments:

Assembler: Well, try writing a large corporate application with a development time of about 2 years, then maintain that for ten years after that. Possible? I wouldn't say so...besides it's useless for me as it isn't cross-platform.

The main thing I have against it is that more advanced stuff quickly get a little unmaintainable. It's very difficult to create bloat with it! This is a good thing for small stuff, but for huge projects you sometimes need the bloat. If you program something in ASM, then you abandon it and someone else must take over...someone who have no knowledge of your program...you'd better have things documented.

Standard C: Solves all of the problems I mentioned in assembler. You can do everything with it, but programming stuff that are OO in nature (like widgets etc.) is a bit too messy for my taste. Yes, widgets can be done without OO...but what about widget libraries? Saying you've avoided OOP in a widget library would in 95% of the cases be a lie, you would have simulated the idea somehow.

Inform: Looks great! Now program me Quake IV or an Office suite using it!

Seriously, games will always have scripting languages and custom data files. The mere thought of programming the individual rooms in a programming language more advanced than the one you've shown perhaps shows your thinking on programming...the ASM way...

We come from two different lairs here. I usually generalize everything in a project, I want everything to be customizable, EVERYTHING. You make things very specific, meaning you get things done fast and slick, but there's a higher chance you'll have to start from scratch next time. There's no telling what's best. I bloat and make stuff easy to maintain, you don't bloat and get things done fast. Am I right?

There's a place and time for every language...

Wait, I'm getting too friendly here. Here you go:

Overloading is very neat. It isn't needed in a type-unsafe language though, and can be vedry dangerous if misused (all functions with the same name should do the same thing, only according to different types of parameters).

You can use globals in C++, who told you otherwise?

And about object-oriented languages: The Inform code you posted doesn't look very object-oriented to me, I think we define OOP in entirely different ways. To me (and most other OOP programmers), OOP means: Polymorphism.

Polymorphism is the use of the virtual keyword in C++. Consider this code:

class Widget
{
virtual Draw(Surface& surface) = 0;
}

class Button : public Widget
{
virtual Draw(Surface& surface);
// Any Button properties
}

class Edit : public Widget
{
virtual Draw(Surface& surface);
// Any Edit properties
}

Now, no rendering code has to care if it deals with an Edit or Button. They're both widgets. In fact, anyone else which have never seen any of my code except the Widget declaration can easily create other widgets, and they'll fit into the rendering engine without any knowledge in the rendering engine about that particular widget (in fact, the rendering engine only knows about Widget itself). This is the reason I use C++. Any other object oriented language would do, but the more perfect languages are mostly academical, while C++ has huge library support (both C++ and C libraries) and is more widely used. Besides I fail to see the flaw in C++...


The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Programming language flamewar!
« Reply #5 on: 2001-01-25 01:38:00 »
yeah, but most small delphi apps use the same old fonts, and those special buttons, whereas c++ and visual basic share the same M$ look...

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Programming language flamewar!
« Reply #6 on: 2001-01-25 15:41:00 »
Well, if you're not too bothered about the interface, then sure, you'll use the built in defaults for all your visual stuff. Hence why Delphi apps looks similar-ish ... but only until the author bothers to customise it. Same applies to VC++ I'm sure.

The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Programming language flamewar!
« Reply #7 on: 2001-01-25 15:48:00 »
of course vc++ and vb all look the same unless you start changing fonts, ptting in custom style tool bars, different buttons, etc

The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Programming language flamewar!
« Reply #8 on: 2001-01-26 21:55:00 »
whats operator overloading dag'? Ive forgotton, and whats it used for and one example please, thanks

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Programming language flamewar!
« Reply #9 on: 2001-01-27 17:38:00 »
It means you can redefine symbols like + - * etc. for your own classes.

EG: Declare your own class CustomPicture

You could define + so that if you had two CustomPicture's, you could do

cuspic3 = cuspic1 + cuspic2;

Of course, you'd have to write the code to combine them, but it makes the command look a lot neater!

In Delphi, you'd have to do

cuspic3 = cuspic1.add(cuspic2);

or

cuspic3 = PictureCombine(cuspic1, cuspic2);

because you can't define special operations for your own objects.


Aaron

  • *
  • Posts: 2818
    • View Profile
    • http://aaron-kelley.net/
Programming language flamewar!
« Reply #10 on: 2001-01-31 05:55:00 »
Hey, this is all very interesting...

I'm about to take up programming, I've already done some really basic stuff in C++, but I'm asking your opinion(s) on which language I should look into (and a good compiler program for it, if there's a really great one).  I'd like just to be able to make simple programs that can edit files (I might do some emulator save editors or something).  Oh yeah and if there's a web site that teaches it to you (well) I'd like to know that too?


Caddberry

  • *
  • Posts: 1988
    • View Profile
    • http://animenfo.com/
Programming language flamewar!
« Reply #11 on: 2001-01-31 10:48:00 »
 http://cplus.about.com/compute/cplus/" TARGET=_blank>http://cplus.about.com/compute/cplus/

try that to learn and good luck you have long headaches ahead of you young jedi.. may the force be with you.


dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
Programming language flamewar!
« Reply #12 on: 2001-01-31 22:25:00 »
If you're looking for some simple file editing with a nice and friendly Windows interface, I'd recommend Delphi. Personally I only bring out C++ when I feel like doing more heavy stuff...like programming a game.

Delphi is really easy to learn and also extremely powerful, only not as elegant as C++. C++ takes more time to master. Generally speaking, you don't master C++ until you really master programming, on the other hand Delphi can be mastered to a degree by someone not really knowing programming, they only do things slower and more stupid. Don't take me wrong here, everyone have to walk the long painful road, nothing wrong with being a newbie...

And if you need any help, don't be afraid to ask me, I like answering programming questions as I tend to learn much myself from answering them.


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Programming language flamewar!
« Reply #13 on: 2001-02-01 15:57:00 »
Well said  :) take everything above as being my opinion too. (Except I haven't mastered C++ yet).

Joey

  • *
  • Posts: 1095
    • View Profile
Programming language flamewar!
« Reply #14 on: 2001-02-13 12:27:00 »
My comments:

VB:"I wanna make Garden! But where is Garden.ocx, Garden.Tlb and Garden.Hlp?"

VC++:"Nice. Smooth until I hit the compile button......AAAAAAAAAAAHGGGGH!!!!"

Java:"The compiler is free to download, but 20MB."


The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Programming language flamewar!
« Reply #15 on: 2001-02-13 13:39:00 »
Garden in VB? get serious Joey! garden was made in C++ u dolt  :D

Qhimm

  • Founder
  • *
  • Posts: 1996
    • View Profile
    • Qhimm.com
Programming language flamewar!
« Reply #16 on: 2001-02-13 13:51:00 »
Skillster, you moron! I have to take Joey's side now... >_<

What he was referring to was the utter ignorance often displayed by VB programmers, and how helpless they are without pre-compiled controls etc.   Uhhrrr bleh.


The Skillster

  • *
  • Posts: 2284
  • Loving every Final Fantasy
    • View Profile
Programming language flamewar!
« Reply #17 on: 2001-02-13 21:14:00 »
hey im a vb programmer too  :wink: so dont blast me!

dagsverre

  • *
  • Posts: 323
    • View Profile
    • http://ffsf.cjb.net
Programming language flamewar!
« Reply #18 on: 2001-02-13 22:33:00 »
Joey, congratulations on a very insightful remark.

BTW, Delphi compiles so fast yo're not sure if it actually did it before you released the build button again...C++ really have a horrible build system.

And if a 30MB compiler scares you away from a good language...Java isn't designed to be all that slick you know, and it's much better than C++ in terms of build system, interfaces and class factories (though I'm not able to code without templates any longer and am so forced o use C++).

Skillster, I pity you. I really do. Ok, you don't know any better, but promise you you try to get away from that horrible things sometime?

(Hehe, this is more like a real flamewar...)


ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Programming language flamewar!
« Reply #19 on: 2001-02-13 22:54:00 »
Yeah ... modern compilers do chew up lots of disk space. Any Windows development language is going to. The solution for me is not to download them, but get em on CD/DVD.

And I'll admit ... I started in Basic too (QBasic, though, to be fair, which kicked ass. At text games anyway. Plus it was the only language in our school at the time I could run). Then VB (ugh ...), then Delphi. Which *DID* kick ass (no sarcasm this time).

Except now I'm at uni, so I also learn
Java   (hmm...)
SML   (evil maths language)
C,C++   (...I've already spoken on these)
Unix shell utils (bash, AWK ... argggg!)
Assembler (on the 68000, no less)

I still prefer Delphi to all of those  :) though it is interesting programming on the 68K ... mmmm ... no multiply command ... now that's advanced programming for you. And we did manage to blow the fuses last time we tried running a 68K program. Which is why I avoid lowlevel stuff whenever possible.


The SaiNt

  • *
  • Posts: 1300
    • View Profile
Programming language flamewar!
« Reply #20 on: 2001-02-14 07:14:00 »
Well for me I really start with BASIC, QBASIC rather cause there wasn't really any other kind of programming I could learn. Since I didn't have any online connection at that time, there was no way i could get programming references of compilers. Buying books on Visual C++ was totally out of my budget.So heck, I found some BASIC books in the local bookstore, and started with QBASIC. QBASIC is excellent except for the stupid ASCII interface that you always have to build.

When I got my online connection, I gained the interest in building webpages. But basic HTML wasn't enough for me so I ended up learning Javascript(Note: To those who don't know Javascript is not the same as Java). From reading some online references, I discovered that many guides stated clearly that Java was not the same as Javascript. Curious, I got some references on Java. Later I picked up some learning of Java by source code released by various people. So my Java experience was merely a "see, copy, implement" kind of learning. Java seems quite adaquete for many things, but my lack of depth in this language will only end up it a bad self-opinion.

Lately however, I've entered college and a core subject is Programming in C. Well, I found C quite interesting and easy to understand(don't ask me why, ok? ). Naturally, I've started reading my books faster than the lecturers teach. Hopefully I'll move on to C++ later. To me, C seems like quite a powerful language so, I might stick to it till I find something better.

ficedula : I remember you said you're doing Computer Science ,right? I'm in my Matriculation for IT currently and I'll be done in like 6 1/2 months from now. After that, I need to decide between 2 courses :  diploma in IT or a diploma in Computer Science. Since, you're doing Computer Science, could you give me a briefing on the difference between the both courses and thier job prospects?



ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Programming language flamewar!
« Reply #21 on: 2001-02-14 13:58:00 »
Well, here in England at any rate, the difference basically is the level and content.

Computer Science tends to have quite a bit of maths, hardware, theory, and job skills as well as the software/programming modules.

Software Engineering (and IT, I guess) are more programming without the harder maths/theoritical courses. Some people (my old Computing teacher, for one) consider Software Engineering to be a bit easier and less serious then Comp Sci.


Joey

  • *
  • Posts: 1095
    • View Profile
Programming language flamewar!
« Reply #22 on: 2001-02-16 13:43:00 »
Seriously, I also started with LOGO and BASIC back in 1995 when I was in Year 3, no, idea that those were programming. We worked in DOS mode using those 51/2 floppies :D But anyway, the computers were lousy 486-can-go-to-an-antique-store computers as I learned them in school. Only two years ago I realised that BASIC was a programming language in my secondary school's computer lab through Visual Basic. But, I worked hard to study C++ and became not so good at it. So, I dumped the whole programming thing when I got fed up at the errors after debug. And, honestly, I think that Object-oreintated programming is not so good after all as without the object, we are as helpless as someone who is deaf, dumb, blind, without nerves and limbs. Question: How do they insert graphics in ASM?

ficedula

  • *
  • Posts: 2178
    • View Profile
    • http://www.ficedula.co.uk
Programming language flamewar!
« Reply #23 on: 2001-02-16 13:51:00 »
????

Most object orientated languages - except pure ones like Java - are just modifications of earlier languages with objects added in. C++ is C with objects, Delphi is Pascal with objects, etc....

So you don't have to use objects in every circumstance - you just have the choice to. You're never at a disadvantage knowing OOP in such a situation, in fact it gives you more options.


The SaiNt

  • *
  • Posts: 1300
    • View Profile
Programming language flamewar!
« Reply #24 on: 2001-02-16 14:36:00 »
Ficedula : Thanks for the info

Joey's posts reminds me too. I learnt LOGO in kindergarden. It was so funny went we learnt to move a small triangle all over the screen. BTW, PC's with 5 1/2 floppy drives aren't THAT old! I still have an XT in my home which still works pretty well.

Joey, what did you mean by

"But, I worked hard to study C++ and became not so good at it."

The sentence doesnt make sense. The only sense it makes to me is "non"sense.

Uhm, ficedula is right, C++ is really just an expansion of C. It's stated right here in the title of one of my book's chapters "C++ as a better C". You don't have to use the object oriented feature of C++ if you don't want to. Stick to C if you feel more confortable. Besides, learning a programming language isn't an easy task and you certainly won't succeed by quiting because of errors while debuging your program.