|
Ideally a multi-purpose language should be separable from its standard libraries, whereas VB6 is a big ball of programming stuff.
|
|
|
|
|
Probably this refers to the fact that VB is not as hardcore as C.
It's about void * vs Variant, __cdecl vs __stdcall, Private Declare vs LoadLibrary, Private Type vs struct.
Windows API is written mostly in C, with __cdecl and CALLBACK, and VB - let's face it - is not the prime choice here.
Even C++ is not suitable when writing certain types of Windows application; NT services or SQL Server extended stored procedures should be written in C (although may implement part of functionalities in C++).
'Lacking' should point to language constraints rather that language calculation power.
After all, you can do in C the same as in C++, but in C you don't have classes, multiple inheritance as C++ does.
That doesn't meand you can't do it yourself.
Nobody stops me to write a C structure instead of a C++ class, add in the structure member function as pointers, override malloc and free with my allocator versions that will call Constructor of allocation and Destructor on free.
Ugly, but Turing satisfied .
Mama had a chicke, mama had a cow - dad was proud he didn't care how.
|
|
|
|
|
Ofcourse VB.NET is a real programming language. You're programming in it, right!
Thing is that C++, C# programmers and the like are language purists. If they were not they probably would be programming in a so called "productive" language like VB. The tale VB would have less features than C++/C# is becoming more and more a thing of the past.
However, programming is a whole lot more then just cramming statements in blocks of code.
It is about design, and design is an art, just like the choice of language.
C# is a completely redesigned language, specially build for .NET, and therefore the most obvious choice for C/C++ people who want to write managed code.
VB.NET drags along a lot of garbage from the past, which just "sits" there to be "recognisable" for folks with previous VB experience, without contributing to the language itself.
The "C" languages are very expressive; you can do a lot with a very small amount of code. The downside of this powerfull expressive feature is the language -can- be a lot more demanding then strait foreward VB to some people. If demands a lot more dicipline and devotion to the code itself, and many "C/C++" projects have failed because of the extra effort needed and poor design. C# has "soften the edges" of the previous C/C++ languages, without giving up the expressional power.
This is reflected in the syntax of both languages. VB and the likes have an enormous amount of obsolete, nontrivial keywords that are only there to simplify. A real noble thought for people just starting programming and like to type in English words, but a big -nogo- for people who are already fully aware what they want to achieve in the most elegant and powerfull way.
What really make things worse in my humble opinion is that a lot of concepts which are widely spread across the professional software engineering community are named different in VB.NET, for no apparent reason. A very big mistake.
Conclusion: stick to the language of your choice, but make sure your output is well designed, scalable, maintainable and bugfree.
Happy coding....
|
|
|
|
|
Mere Turing completeness is the bare minimum a programming language should offer (though there are plenty of languages which aren't Turing Complete but make your job a lot simplier for a certain problem domain). If we limit ourselves to computationally complete languages, then we note that languages don't differ in what they are capable of. It's proven that, given enough memory, any Turing complete language can do any mathmatically feasible task.
If all you want is Turing completeness, search around on Google for "brainf*ck". It's a language that is proven to be Turing complete, but is so constrained that even making a "Hello, World!" is painful.
What makes languages different is what they make easy. There are certain tasks that are very easy in Bourne shell (which isn't complete) that are really hard in VB. OTOH, you can't really build a GUI application out of sh scripts alone.
If your goals are a small, throwaway GUI program that never has to leave a Windows environment, than VB works fine. For almost anything else, the ammount of code you're forced to write makes it unweildly. And that's what makes a "Real Programming Language": it can do complex tasks while keeping the code manageable.
|
|
|
|
|
Ok, now every single VB programmer is going to come and post the message:
"I am a VB programmer, but I could easily solve my solutions in C++"
If that was true you would be coding in C++. We do not need to hear how you could easily do it in C++, but you prefer VB for some reason.
First off,
Visual Basic .net and C# are almost the exact same execution speed when you are using the same libraries.
Secondly,
C++ is usually not written in managed code (at the moment). With that said, obviously C++ has a faster execution speed. C++ also has more control, and can go deeper into the core of the O.S. you are using.
I have played around with Visual Basic .Net, finished an 8 month project with it and still find it is not nearly as good as C++.
So VB programmers, if you enjoy it-stay there. But do not tell us how "Some people need to grow up on this issue.".
It sounds to me like the VB programmers are trying to prove how long there wang is.
|
|
|
|
|
Erm, how about this: I'm a C++ programmer, but I could easily solve my problem in VB.
In fact, VB is very easy to do quick prototypes and to make simple tools. C++ provides more power and greater speed, but development speed (depending on what you're doing) can be significantly less.
It's simply a matter of using the right tool for the job.
Why write text processing stuff in C++ when you can use Perl? Why write a registry-tweaker in Perl when you can use VB? Why write a 3D game in VB when you can use C++?
|
|
|
|
|
Kipp, my post was a direct hit to the post below. Not a smash on VB programmers.
|
|
|
|
|
C++ Programmers dislike VB Programmers simply because it makes them feel smarter. Sad sad truth.
btw, when you guys say vb, you should specify which vb you're talking about. vb6 and vb.net are too different worlds. Oh, and another thing, don't confuse "a programmer who uses vb" with a "newbee programmer".
|
|
|
|
|
Ellery wrote:
C++ Programmers dislike VB Programmers simply because it makes them feel smarter. Sad sad truth.
That is not the case always. I have met alot of long time programmers who can not write in C / C++ because they are not good at it. Plain and simple.
This is an argument why people are so derisive towards VB. Its not because they feel "smarter" its because they find it more powerful, tight, flexible. VB6 and .NET are both a no go in those three subjects.
|
|
|
|
|
Signal wrote:
That is not the case always. I have met alot of long time programmers who can not write in C / C++ because they are not good at it. Plain and simple.
What does that have to do with what I said? I wrote about how c++ programmers' ego can easily inflate while talking about the vb dudes.
VB6 and .NET are both a no go in those three subjects
here we go, comparing apples and oranges again..
buddy, do you write your webapps in c++?
is c++ powerful,tight, and flexible when it comes to writing webapps?
any .net programmer will program circles around you if you're coding your webapps with c++ bro. It's not about the tool.. it's about the job.
|
|
|
|
|
This stuff is funny. Each person to his own. I run circles around the yahoos in our IS department as far as development goes. My VB applications are more functional, better looking and more user-friendly than their crap. It takes them weeks to build programs that take me a few days.
For web applications NOTHING is better than VB in my opinion.
|
|
|
|
|
;PVB is not a programming language to be compared with C++.
The basic goal of s/w development is to provide a user with a user friendly interface and I do not think the kind of front end VB is capable of providing can be matched by any other language
Aj
|
|
|
|
|
Do we carry on with this childish language argument because the Mac-Win conflict jury is now IN? (Bill won?).
I've programmed EVERY non-GL4 language under the sun since 1975...
This is my Usage Guide:
* C if you can't maintain your own good asm library; or for porting to ANY OS and ANY hardware.
* C++ if you want to be able to use 3rd party libraries (proprietry or MFC etc); or delve into FAST graphics (even though GDI implementation is awkward); or want to drop real geek vocab at a dinner party.
* C# if you haven't yet learnt a language (it's a combo of the best of VB and C)
* VB (native, A or Script) for FAST and FLEXIBLE front end development; or server side ASP scripts; or MS-Office enhancements.
* Perl if your web-site is linux hosted
* Assembly if you also designed the hardware
* Pascal, Fortran, Assembly if you're a history student
* Javascript for web work if you've only ever used C syntaxed languages
Some of these messages have alluded to: "Pick any language as long as it's the best/most suitable for the job", leave snobbery aside and simply use the best language for the job. A truely objective programmer can do this.
I've just completed a multi-faceted project (for onboard navigation and systems control - free copy at www.digiboat.com.au) which included QuickBASIC (can you believe it! by-the-way QB runs like effen lightning on modern machines) on a DOS motherboard interfacing hardware node combining proprietry serial, parallel and network protocols; 8086 and Z80 Assembly routines for some of the low level hardware interfacing (driving my own hardware components); C++ (with MFC) for the main Navigation and Chart display program; VB6 for additional interfacing with GPS's and database interfacing; and VBScript (and occasionally Java) for the ASP pages on the supporting website.
The moral - worth repeating - "use the best language for the job".
Now all we do is define "Best". This is subjective - based on...
"What language(s) do I know?"
"Can I 'see' a solution with my known language(s)?"
"Is this solution easy to develop and will it be a complete answer?"
"Do I own the development tools?" (Everyone "owns" VBA, VBScript and Java*)
Notice that there should be no emotion used to answer these "subjective" questions. Let all developers concentrate on providing complete, on-time, good UIs, minimised coding and error free solutions.
For over 20 years, we have ALL been cheap beta testers for (mostly) Microsoft's products. We are still testing their products, and it appears as if no cornucopiea (programming language) yet exists - otherwise why was C# recently "invented". Somewhere off in the future there MAY be a single programming language that serves all needs, but if this be true, then surely there will also be a single computer App that serves all needs (graphic'ing, word processing, spreadsheeting, video editing, communicating). This sounds unlikely (but perhaps isn't).
I defy any self confessed "real" or "purist" programmer to solve any and every task with a single language, and be convinced that it's been done in the "best" manner.
Actually "purists" surely would have to code in assembly (or maybe even machine code). Uh, oh ... Full-Circle Syndrome ... I started life programming in machine code in 1975 on an IBM computer adding machine (with punch cards).
Sorry, I've either confused more coders than I've enlightened, or vice-versa. If neither, then the CodeProject website is probably not what you were surfing for.
Cheers, Simon.
---
Remember free software contains no bugs - only undocumented features.
|
|
|
|
|
Do we carry on with this childish language argument because the Mac-Win conflict jury is now IN? (Bill won?).
I've programmed EVERY non-GL4 language under the sun since 1975...
This is my Usage Guide:
* C if you can't maintain your own good asm library; or for porting to ANY OS and ANY hardware.
* C++ if you want to be able to use 3rd party libraries (proprietry or MFC etc); or delve into FAST graphics (even though GDI implementation is awkward); or want to drop real geek vocab at a dinner party.
* C# if you haven't yet learnt a language (it's a combo of the best of VB and C)
* VB (native, A or Script) for FAST and FLEXIBLE front end development; or server side ASP scripts; or MS-Office enhancements.
* Perl if your web-site is linux hosted
* Assembly if you also designed the hardware
* Pascal, Fortran, Assembly if you're a history student
* Javascript for web work if you've only ever used C syntaxed languages
Some of these messages have alluded to: "Pick any language as long as it's the best/most suitable for the job", leave snobbery aside and simply use the best language for the job. A truely objective programmer can do this.
I've just completed a multi-faceted project (for onboard navigation and systems control - free copy at www.digiboat.com.au) which included QuickBASIC (can you believe it! by-the-way QB runs like effen lightning on modern machines) on a DOS motherboard interfacing hardware node combining proprietry serial, parallel and network protocols; 8086 and Z80 Assembly routines for some of the low level hardware interfacing (driving my own hardware components); C++ (with MFC) for the main Navigation and Chart display program; VB6 for additional interfacing with GPS's and database interfacing; and VBScript (and occasionally Java) for the ASP pages on the supporting website.
The moral - worth repeating - "use the best language for the job".
Now all we do is define "Best". This is subjective - based on...
"What language(s) do I know?"
"Can I 'see' a solution with my known language(s)?"
"Is this solution easy to develop and will it be a complete answer?"
"Do I own the development tools?" (Everyone "owns" VBA, VBScript and Java*)
Notice that there should be no emotion used to answer these "subjective" questions. Let all developers concentrate on providing complete, on-time, good UIs, minimised coding and error free solutions.
For over 20 years, we have ALL been cheap beta testers for (mostly) Microsoft's products. We are still testing their products, and it appears as if no cornucopiea (programming language) yet exists - otherwise why was C# recently "invented". Somewhere off in the future there MAY be a single programming language that serves all needs, but if this be true, then surely there will also be a single computer App that serves all needs (graphic'ing, word processing, spreadsheeting, video editing, communicating). This sounds unlikely (but perhaps isn't).
I defy any self confessed "real" or "purist" programmer to solve any and every task with a single language, and be convinced that it's been done in the "best" manner.
Actually "purists" surely would have to code in assembly (or maybe even machine code). Uh, oh ... Full-Circle Syndrome ... I started life programming in machine code in 1975 on an IBM computer adding machine (with punch cards).
Sorry, I've either confused more coders than I've enlightened, or vice-versa. If neither, then the CodeProject website is probably not what you were surfing for.
Cheers, Simon.
---
Remember free software contains no bugs - only undocumented features.
|
|
|
|
|
Hi,
Some people need to grow up on this issue... It's not the matter of bad programming languages but bad programmers (someone else said that too).
I know some programmers that stink at programming like one that uses INI files to store data instead of a well formed Access database. Those people need to be flamed not the language itself.
Keep in mind that VB6 was created to do some simple stuff fast without having to dig into the API or use MFC!
I program a lot in VB (.net) but that's because it's an easy syntax, but I could also use C# or C++ for that matter.
I can do some pretty amazing stuff other people claim it's only possible in C#.
If you design an application with care before writing code and then choose the language that fits your need most of the time you can use VB.net, C# or even (managed) C++ to do the same thing.
Greets,
Poolbeer
Speak Out! Use the Source, Luke!
(Dr. GUI .NET #5)
|
|
|
|
|
There is hope
|
|
|
|
|
Poolbeer wrote:
Keep in mind that VB6 was created to do some simple stuff fast without having to dig into the API or use MFC!
Just like soap was invented to wash your hands after taking a piss, but look at how many guys don't do that. The truth of the situation is you get programmer wannabies using VB who think they are all that who couldn't even tell you the difference between an ANSI and a Unicode API declaration. Yeah, there are exceptions but they are hard to find.
Jeremy Falcon
|
|
|
|
|
NOT!!!
So. Maybe the non-team-player, a.k.a. real professional, would like to tell us which C/C++ compiler on average produces the tightest, fastest, and most efficient machine code? Surely he knows. After all, I'm only an average VB developer and don't know such lofty things.
Or maybe the non-team-player would like to tell us the most efficient way to clear a register in assembly, a common operation equivalent to A=0. After all, we VB people can't do inline in VB (wrong but we'll let him believe that).
Or maybe he will lord his knowledge over everyone else who's not up to his level, and just stay there, helping no one.
|
|
|
|
|
Fortner wrote:
So. Maybe the non-team-player
Um, where did you get non-team-player (btw, check your grammar) from?
Fortner wrote:
would like to tell us which C/C++ compiler on average produces the tightest, fastest, and most efficient machine code?
Well, for the x86 Intel's compiler does a decent job. But, this is completely unrelated to my point - which I'm sure you still haven't the first clue about.
Fortner wrote:
we VB people can't do inline in VB (wrong but we'll let him believe that).
Maybe I should tell you, I know VB extremely well. You can do inline ASM with Microsoft's Visual Basic, but you'll need someone who actually knows what they are doing to write a 3rd party component. Or, you'll need a different BASIC compiler - which again would take someone who knew what they are doing.
And since we are playing the question game, here's one for you. What does it mean to tokenize a string? And, don't look the answer up on the web and pretend you knew it because that's lame.
Jeremy Falcon
|
|
|
|
|
The god-complex programmer keeps shining through more and more. He can't address all of the questions without asking ones in an attempt to show that he knows more than an avid VB programmer. He pretends to have real points throughout all of his original messages and later uses the copout phrases like "this is completely unrelated to my point" or "you completely missed the point" to evade the fact that his statements show that he is prejudiced against VB programmers. He's even reluctant to recognize the term 'programmer' in the context of VB. If there's any point at all, that's it and nothing else. VB and VB programmers are below him and he scoffs at them.
My not answering tokenization the god-complex programmer would think is relevant but it is of no consequence. I could avoid it just like he avoided one of his. The term has different meanings in other contexts such as that which is used in the stages of the compiling process. But no matter what the answer is, the god-complex programmer would not be satisfied with either a single sentence or a dissertation. After all, he is god and I'm beneath him.
|
|
|
|
|
|
Nevertheless it is in the right way...
|
|
|
|
|
The following are thoughts from a VB developer. Or maybe they're cries for help. You tell me:
I asked the same kind of leading question about VB to a local application development company for PDA's (AppForge) when they came to our university to give a speech on embedded systems. Their target market was VB because "it is the most popular programming language used." I didn't understand that because of such message boards as this. After looking through the literature of today's 200+ languages (with over 2500 since Fortran - see them at http://www.levenez.com/lang/) it certainly wasn't the most used by full-time developers. I think it went: C++, Java, Python, (then a large gap), then perl, C, ... , (another gap), then cobol, lisp, VB, pascal, etc. But the word 'popular' is what I was curious about. From what AppForge's market analysis found, it is probably true that VB is the most popular although not the most used.
But seeing the results on this survey so far I'm guessing the majority who are derisive towards VB use C/C++ or Java. Right? So, VB isn't a 'real programming language' and 'it's horrible.' But C/C++ and Java aren't truly object oriented languages! If you're going to be a purist and look down on VB this way then why not use Ada, SmallTalk or Simula? OK. OK. So you use what your company or your curriculum tells you. As for me I've worked on my own in the US for the last 3 years and I use VB. But be easy on me... I am molting. Yes, towards C++. Not because it's the best but because it's the defacto language for the majority of programmers.
My first love was assembly some 18 years ago. I knew exactly what the machine was doing for the graphics routines, leaving out stacks and interrupts. Then came work using Pascal 7 some 12 years ago after which I moved to VB and stayed there. Why? It has everything the applications required and it takes on average about HALF the lines of code compared to C/C++ to accomplish the same task! Or rather, "it's about time," stupid!
The track record? The Pascal 7 applications (equipment control and data recording) written and validated in '94 are still being used to this day with no problems, not even Y2K (so much for the software life cycle). The VB applications (company-wide international label/barcode system with mainframe sync) written between '95 and '97 have the same result. Yes, they have been revised as company SOPs changed but they're still being used, every day, every week, every month, 4 shifts, no problems. No, these are not COTS. Many a company SOP cannot conform to the average COTS. And the business logic layer is too broad to capture what needs to happen with specific end users. How many programmers take the time to find out what the end user really needs? From what I've seen, very little. Thus how I find my work.
VB not good for re-use? Give me a break. All depends on the programmer. I've read too many professional C++ source code files which have no naming conventions or comments at all. You call this maintainability? For VB I find on average better comments (and I don't mean ones lording over the stupid VB programmer about what the program is doing at every line) as well as good use of, say, the Reddick convention.
So, why not Java? Too slow. And the platforms were and still are a constant. And back when Java started it wasn't "write once, run everywhere" but rather "write once, debug everywhere." Like a new car model, wait 3 years for them to get the kinks out. Anyhow, which Java programmer knows all those classes AND uses the most appropriate ones? And worst of all, I wrote a very simple Java program that produced a surprising square root error only to the 10'th decimal place! Come to find out, This is also virtual-machine dependent! Horrible! This takes me back to TRS-80 days when the program had to be written so as to correct these errors. And if I'm to validate a Java application, then I need to control the end-user's virtual machine, which I can't.
Why not C++? Besides not having enough time to write twice as many lines of code and not wanting to forget how to use proper English, spelling and grammar, good question.
- good ideas are copied - great ideas are stolen -
|
|
|
|
|
Applause
|
|
|
|
|
If I create an ActiveX control via the CWnd's member function
CreateControl(), I have to specify a rect for the control.
Is there a way for the control to specify a "recommended size"?
That is, if I create an ActiveX control that needs a lot of screen
real estate to display nicely, how do I tell the container how much
real estate to use?
Thanks,
Chris
|
|
|
|
|