|
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
|
|
|
|
|
VB has been long associated with RAD and i have programmed in VB at times though i did most of my stuff in C++ being a COM programmer (well VB clients are fast and dirty)
I guess with .NET, VB shares a similar thing with C++. Both have a past in which there was no .NET and atleast i in person associate c++ to win32 (cause i cant be asked to behave when writing c++... ) and VB was mainly click click click... 5 lines of code and the client is ready.
I guess most people associate .NET to a great extent with C# cause it was a fresh language with no associations of past. And did share a lot of syntax with java.
Think i got it right...
HD
|
|
|
|
|
I would have picked the top and bottom if I could...
John
|
|
|
|
|
well its changing but yes it used to be very easy to write dirty code.
Though haven't touch VB.NET yet every time i look at it... reminds me of VB 5/ 6
|
|
|
|
|