- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
You left out the most important part:
Admin
BASIC has changed considerably since that quote. It may no longer be valid. You might want to find out why.
Sincerely,
Gene wirchenko
Admin
Admin
Or even worse:
Admin
Damn straight. See the 13th Amendment to the U.S. Constitution, for example.
"1. Neither slavery nor involuntary servitude, except as a punishment for crime whereof the party shall have been duly convicted, shall exist within the United States, or any place subject to their jurisdiction."
Okay, maybe that's just a little off-topic. Or maybe only the worst programmers would work for an illegitimate agency?
Admin
I do, if I have to write desktop applications, for a real quicky app I will even write in classic VB as I can obtain results much faster, unless I need some of the new features of .NET. But as I am mostly doing web, I still prefer good old fashioned ASP to ASP.NET. I hate ASP.NET's approach to completely separate code and HTML, ASP's approach (just like PHP, I know that one as well) is much clearer as I see the HTML where my code executes.
And to answer someone else, we VB/ASP programmers don't usually use VBScript for client-side, we know it limits to IE. Javascript is a must for any web programmer, no matter what server-side language is used.
Admin
The real WTF is the middle-endian date format you USians use!
Admin
the real WTF is that people in Europe make fun of the United States for being differenct than them (ie. metric, date format) when their just jelous that we had to win WWII for them. ;)
Admin
My irony-meter really struggles in this forum. But as you seem to be serious ...
Anything the business owner of the application is likely to need to change at a day's notice, or which will be subject to regular change, you put in tables. Any logic (s)he's likely to want to change at a month or two's notice you put in the business logic. And anything which is intrinsic to the data and not subject to the owner's whim (e.g. end-date can't be before start-date) you put in your stored procedures.
(And yes occasionally you might need to transfer something to a stored procedure to improve performance, but see past threads on this site for appalling examples of premature optimisation.)
I hope that no-one seriously thinks the price of the database is a design parameter here.
Admin
Yesterday? In a date-of-birth field?
There are people who actually admit they were born yesterday?
Admin
<FONT face=Arial>All your field are belong to us?</FONT>
Admin
Modern is not always needed. When something works perfectly fine and would cost a lot of money, time & effort to replace, especially for a gov/state/council run department.....
Admin
It even has the 'error exclamation'. It seems a common thing that error messages (especially crappy ones like this) to end in !.
I don't really follow why programmers do it - are they somehow suprised that the error happened?
There is a field that it doesn't fit the field size or type! OMG!
At least they didn't use more than one of them - "Database error!!!!!!!!"
Admin
Wow.
I thought everyone knoew to convert form c# to vb.net that you just take out the curly brackets.......
Admin
$ echo "Time for a cuppa" | at teatime
==
captcha=craptastic
Admin
Selective is defintely the key word there!
Admin
You haven't met a lot of Americans, have you?
Admin
Actually, VB is not a great language, nor is C#, and nor is Java. Nor is Perl, PHP, Ruby, or Python. Nor is C++, C, or Delphi.
Programming is conducted in one stinking miasma of bad languages, each with its own buzzing cloud of coprophilic fanboys who pick on insignificant syntactic differences and wage holy wars over them.
Come back COBOL. At least we all knew you sucked.
Admin
Right. That's why Microsoft is wasting hundreds of thousands of dollars developing VB 9 - because they're planning to drop the language and promote C#!
That's why Microsoft has hired some of the smartest people in computer science, like this guy - who was an expert in Haskell, a language so advanced and complex that very few people even grasp its fundamentals, before recently becoming a VB 9 evangelist - to work on enhancing VB even more.
Er... wait, why are they wasting so much money on a language that's "out"?
Admin
Thanks! That was a close one. I did not realize that if I start a new project in VB.NET it will end up being the only language I am comfortable in and I will end up forgetting any other language that I know and being jobless and wandering the streets speaking only latin in 5-years! It's a shame that Vb and C# don't share any common libraries or programming concepts...
Admin
Few people even graps Haskell's fundamentals because very few people try to, or try to discover functional languages in general. Procedural Programming is still the most popular programming paradigm by far, yes even in Java or in C#.
When faced with functional programming, most "programmers" shrug, ask how much that'll increase their monthly pay (answer: it probably won't) and forget about it.
And that's if they even come close to functional programming, which requires a fairly broad mind and not being stuck in the Java/C#/Vb is all i'll ever need" mindset.
Admin
Jeff: Your logic is backwards. You are taking "If a Then b" to also mean "If b Then a". Basic logic taught in basic geometry. I can see now why you are getting so upset.
Admin
uh. ... no. I asked "why not start a new project in VB". he gave his answer. I responded to his answer. My point was that his answer is not a good one and makes no sense. You need to pay a little more attention. If you want to address a "flaw in my logic", please be little more specific, I don't see what your example has to do with anything I wrote. Then again, I do use VB occasionally so I am little simple. :)
By the way -- in case my lame attempt at humor was missed, the first part was kind of a joke. The last sentence, however, was my main point . And to clarify: VB.NET and C# don't just share *some* concepts and libraries, they share *all* of them. A truly excellent VB.NET programmer, who leverages the .net framework and makes good use of OOP and other .net concepts, who has never even once looked at C# or C++ or JAVA, will be an excellent C# programmer about 2 days after making the switch -- occasional syntax typos and occasional help file lookups notwithstanding. *That* is the point that everyone seems to ignore and/or not understand.
Admin
It was stated that:
"if you are only comfortable in VB, and only speak latin, it is your own problem if you are looking for a job in 5 years"
You took that to mean:
"If i start a project in VB.net, then I will only be comfortable programming in VB.NET in 5 years, and will be jobless, only speaking latin, and will be wandering the streets.
That, my friend, is texbook backwards logic.
Admin
Yeah, I read some articles about it last night. It seems that C# was more of an attempt to win over the Java crowd then replace VB ... though I'm still fairly convinced C# is getting much more R&D money (aside from the framework R&D). I'm going to kick the senior programmer in the face for making me switch over cold turkey (then thank him afterwards).
Iago1 , Bus Raker 0
Admin
Uh, yeah, because Haskell and Prolog are just like assembly language but with different syntax. :rolleyes:
Admin
I give up. I suppose any time you ignore the context of any sentence in any conversation you can blindly draw whatever logical conclusions you want for your own self-satisfaction.
Admin
Not to ruin all the fun, but to inform, I would inject a quick dose of corporate reality into this thread.
It is not at all unusual that this type of seemingly obtuse (by modern UI standards) form of input is often a business requirement in high transaction volume applications (i.e. the customer call center for Fortune 100 service mega-corporation). Of course in this event I am also making the assumption that you are dealing with a user group that has had proper training on the usage of the application. Though it does not seem obvious, there are concerns that over a long enough time period all those extra keystrokes (consider that entering '06072006' vs '06/07/2006' actually represents a 20% decrease in effort) subtract profit from the bottom-line.
Though this sounds like something written by a bean-counter I actually am a software guy. But, I do think this is an excellent example of considering the differences between what have been recently been coined as 'transient' vs 'sovereign' applications.
In this particular case, however, my instincts tell me that this is just poorly written code by an incompetent contractor who submitted the lowest bid and never tested their own work (which is another corporate reality... sigh).
Admin
<FONT face=Verdana size=2>I think we all agreed on the scope and abstraction level of the discussion (Procedural, high level languages)...
But hell, lets all be sma*t*sses lets talk about RPG too right? </FONT>
Admin
I have a awesome idea! Let's take every single WTF that there has ever been and turn it into a debate over whether VB is good language or not.
Admin
It sounds like, in addition to error handling, the SS programmers haven't hear about session identifiers:
--
Q I registered over the Internet and a screen told me that I had successfully registered, only it did not list my name, #, or date. There were dashes "--" in the Selective Service Number field and slashes "//" in the Date of Registration field. What is the problem? Am I registered?
A Yes, you are registered and should be receiving an acknowledgment card within 2 weeks. The browser that you are using is not enabled for the use of "cookies" or does not support "cookies". ...<why cookies are so great>---
And why is it that every warning page on the Net recommends turning on cookies rather than telling users that they can add the site as an exception.
Admin
Off topic, but I've learned that nothing is more fun, and more irritating, than accussing the other party of some logic based fallacy. To that end, you're all beating the dead horse, Tu Quoque, straw man begging the question of the slippery slope, a implies b except after c.
captcha=paste
Admin
Ummmmm you did exacly what you just described (except for the logic error)... That's all I was pointing out. You took the statement out of context, and formed an illogical conclusion.
Question:
Does anyone start a new project in VB.NET as opposed to C#? (assuming they know both)
What was given (in 5 years time):
If (personal knowledge of programming is limited to Visual Basic)
If(personal language is limited to latin) //(this is kinda beside the point)
If (personal emplyment is none)
Fault of Unemployment = self
You said:
If (project is started in VB.NET)
in (5 years)
personal knowlege of programming = limited to Visual Basic
employment = none
personal language = limited to latin
BACKWARDS LOGIC
How can you NOT see this and call yourself a programmer? I think you might need to revisit a class in basic logic.
Also... If a conclusion is logical, how can it be blindly drawn?
Admin
As I said, I give up. You got me. That was very much the argument that I was making. Clearly you have captured the essence and meaning very accurately of what I was communicating and you have taught me a lesson about both logic and programming that I will not soon forget. You must be quite a hit at cocktail parties! :)
It is a shame, though, that I apparently never got an answer to my question ("why not start a new project in VB?")...
Admin
Unable to save the registration data... you may want to find out why.
Admin
My PERSONAL opinions on when to use VB.NET as opposed to C#:
1. The manager of the project knows no other language other than VB, and that person needs to review the code.
2. The people you are working with know no other languages other than VB (6 or .NET).
My PERSONAL opinions on when to use VB6 as opposed to anything else:
1. You need a quick interface that may change, and you cannot use .NET for whatever reason. Note, that even though the interface would be in VB6, the backend should be in something else.
2. You are working with someone who has never used any other language other than VB6.
Sure, I realize that I kinda answered the opposite question. I did it so that I wouldn't have to writeup the millions of cases otherwise. I'm sure if I thought long and hard I could think of more reasons to use VB, but the ones I have listed are the main ones.
Fortunately for me, the cocktail parties I goto don't involve programming or logic ;-P.
Admin
I was being serious... but not amount the money...
Are you being serious when you suggest that business rules are intergrated into various tiers based on the likely timespan between changes? Shudder....
What is the difference between "business logic", "business rules" and "data integrity"?
I'll give you a hint... Nothing...
Admin
Ah, so you're saying that COBOL is the same as Ruby... except for the syntax?
Admin
Thanks .... but, it's still a shame that I still don't have an answer to my question ("why not start a new project in VB?")...
Admin
If the above doesn't apply, then choosing VB is a poor choice imho. It's a poor choice for many reasons.
1. The semantics of VB changed from 6 to .NET (might've also changed from earlier versions as well). Pretty sure that never happens to other languages. Since they've changed once, who's to say that they'll never be changed again?
2. Microsoft maintains control of VB, because of this VB is pretty much Windows only.
3. If a person doesn't know VB, and you want them to do a project in VB, that's like telling a skilled construction worker to build a window frame out of legos as opposed to wood.
4. Because Microsoft owns VB, you are pretty much limited to their IDE and compiler (this has changed somewhat with .NET)
5. If you are doing driver development........ (I think I can leave WHY out)
6. If you want to support systems that don't have the visual basic runtime library installed, then you can't use VB.
7. If you are programming algorithms that need to execute as fast as possible, then VB is the worst choice (even in .NET... it's surprising but IL generated from VB code just isn't as fast as C#'s... You CAN make it as fast, but you are required to know all of the optimization techniques to do so, whereas in C#, as long as you know C# you get all of the speed benefits. Granted, the advantage is minimal and will only really manifest iteself in certain situations).
8. If you plan on using any "advanced" language features (inheritance, interfaces, overriding, shared members, and overloading), then note that they were only just introduced to VB in 2005. (So if you need to use an earlier versino of .NET, you are out of luck).
I'm sure I can continue to keep coming up with more reasons, but I think I have enough. IMHO, VB is just a poorly designed language. Significant features keep getting tacked onto it, and steps in the compiler are taken to retain backwards compatibility. Because of this, the language is held back. It could be a truely great language, but the powers at be want to make sure that programmers can convert their code as easily as possible between versions. How many VB programmers really know that when comparing strings in VB, it's faster to do s1.Equals(s2) as opposed to (s1 = s2) (although they are technically different in function as well!). It's the little things that kill.
Well, there it is. I spelled it out. All it takes is a little research.
Admin
Actually VB.NET 1.0 generally released in 2002 had inheritance, interfaces, overriding, shared members and overloading. VB.NET 2.0 introduced in 2005 does add several new features, but most of those are to .NET versus a specific language like VB.NET.
Admin
I guess I should have re-established the context of my original question ... of course I am not talking about VB <=6. and the topic was why it would be a bad idea to start a new project in VB as opposed to C#.
It is hard to take your opinions seriously since you are failing to recognize that MS made *huge* strides when developing VB.NET when it came to abandoning the old "BASIC" stuff, breaking compatability, and essentially re-inventing the language.
Also, and please do not get upset about this, but the following statement:
>>If you plan on using any "advanced" language features (inheritance, interfaces, overriding, shared members, and overloading), then note that they were only just introduced to VB in 2005. (So if you need to use an earlier versino of .NET, you are out of luck).
shows that you know absolutely nothing about VB.NET since it is completely, 100% wrong. It is amazing that you feel qualified to debate on this topic based on that statement. Just about the only useful thing missing from VB.NET was operator overloading prior to 2005. (and even the usefulness of that feature is debatable)
So, thanks for your time, but you've added nothing to the discussion other than your biased viewpoint of why "VB Sucks dude! it is for newbies!".
Admin
If they broke compatibility, then s1 = s2 would produce the same code as s1.Equals(s2). It doesn't because of compatibility with older versions. Read some of the articles I posted links to.
It is not 100% wrong. I took that information from a VB "specialist". (If it was 100% wrong, then the operator overloading part of it would also be wrong.) It did seem quite outrageous to me that the other features were not in 2002 (even though I coulda swore that I used the features).
All of the points I had made were refering to VB.NET. Do some research. Stop making personal attacks. If you feel that you need to attack my character to back your viewpoint, then your viewpoint isn't in a very strong position.
Microsoft is trying to make C# a robust, well structured, feature rich language. Microsoft is trying to make VB the ultimate high-level language. Eventually, I can see a vb "program" that looks like:
Make Program To Do What I Want
Until a program looks like that, microsoft will continue with modifying the language...
<joke>
I mean c'mon ppl! Just look at the features for 9!!!
</joke>
Admin
Huge flaw in your logic here. Your example only shows at best that compatibility was not broken in every casse. Try taking a large and complex VB 6 app and compliling it in VB.NET. You want get a very high success rate without fixing numerous compile errors because compatibility was broken. While some backwards compatibility to previous VB code was retained in VB.NET, there are many instances where backwards compatibility was broken in VB.NET. In fact by most expert accounts the VB language was completely rewritten with VB.NET. Sure the rewrite contained some backwards compatible features, but far less than any previous upgrade of the VB language.
Admin
Jeff's statement implied that most if not all compatibility was broken, and that nothing was done to preserve any compatibility. I simply pointed out how that was not true. I agree that VB.NET is a totally different language than VB6, which furthers my point on how the language undergoes too many changes to be considered a stable programming environment. I would be willing to bet that the next version of vb.net will breat the string comparison by producing the same IL code that gets procuded when using the Equals function.
Admin
I've got to repeat this one:
"If they broke compatability, then s1=s2 would produce the same code as s1.Equals(s2). It doesn't because of compatibility with older versions. Read some of the articles I posted links to."
OK. Ummm ... let's just move on, I'll give you a mulligan on that one. (I love the irony of you finding flaws in my logic and asking me to do research .. he he ) You are telling me that because those two statements do not produce the same code, VB.NET is backwards compatability with VB6. If you are *not* saying that (even though you did :) ) then please try to clearly state your point.
Yes. it is 100% wrong. If your argument is that the average VB programmer isn't aware of these features, then consider actually saying that. I cannot read your mind. I still don't know, based on what you wrote, if you understand whether or not VB.NET 2003 supports these features. If you are claiming ignorance about the topic because that's what "VB specialists" have told you about VB, then again, I have no idea what your point is. It is helpful in an intelligent discussion/debate to actually attempt to clearly make your statements.
Let's repeat that first part again:
"All of the points I had made were refering to VB.NET."
You made 8 points, and you just told me that ALL of your points were referring to VB.NET. Let's review how many of your posts refered to VB.NET and not other versions of VB:
0 for 1. The transition from VB6 to .NET has *nothing* to do with VB.NET. VB.NET is done. They broke compatability, made a big change to the language, made it CLR compliant, added all of those features that you never heard of, and it is up and running. Any further changes will be syntax, IDE features or CLR changes that affect all of the CLR languages.
Not sure what your point is. A nice opinion, but means nothing. Microsoft maintains control of C#, T-SQL, ASP.NET, and other technologies. Many of those run only in windows. if your point is to avoid MS technologies, then again, consider actually saying that! It makes things so much easier. oh, and there are movements to port .net to other platforms (the mono project) and so on.
so, 0-2 so far ....
Noting to do with VB.NET at all. 0-3. You are supposed to be proving this point to me, not restating your opinion on the merits of VB. your statement equates to "VB is bad because I think VB is bad."
Specifically covers non-VB.NET. 0-4
Interesting one. So this is reason #5 why "it is not a good idea to start a new project in VB.NET?" Because it is a bad language to write drivers in? Ok, thanks for the tip. this also applies to HTML, T-SQL, Java, ASP, LISP, COBOL, Pascal and probably many others. If you can expand upon this point specifically as to why this is a reason to avoid VB.NET when beginning a new project, please do so.
0 for 5.
0 for 6 .. and badly in this case. Time to do your research. This clearly applies to VB<=6, and also (as I am sure you know) most other languages, even Visual C++. As for VB.NET, if you want to critize the language since it has a need for the .net framework being installed, then again, I suggest you actually say it; and, of course, that has nothign to do with why starting a new project in VB.NET as opposed to C# would be a bad idea.
you know, I'll give you this one. 1 for 7. Why not?. Maybe you save a few cycles here and there depending on how things are compiled. even though is really doubtful that just by me firing up C#, I automatically know how to write optimized code, but if I fire up VB, then I don't.. (I suspect you will ignore every other point in this post and find a logical infallacy in that statement -- I don't doubt there is one -- to prove how wrong I am. have at it)
And, as we clearly showed, wrong again. So, you ended up 1 for 8. And you said that every point you made was specific to VB.NET. Ughh.
That's a great opinion from someone who, unfortunatley, has proven to not know much about VB.NET at all. If you consdier that a personal attack at your character or something, then again, I apologize. Just stating the facts.
Admin
Fine. My written language inefficiencies have lead me down a path I can never return from. However....
1. It has everything to do with VB.NET. Are you seriously going to tell me that you are 100% positive that none of the language semantics of VB2002 will be changed in VB9? Or later versions?
2. I wasn't trying to say avoid MS technologies, I was trying to say that if you use a technology that is reliant upon a company, then that company can do anything they want to it regardless of what the community using the technology wants. I probably should have said that to begin with. Also, even though there is a huge movement to implement the .NET runtime in an open-source environment, there is actually less work going towards making a VB.NET compiler for that environment. Mono is written in C#. I've used some of the mono source as a base for some controls I needed to modify because of performance issues. (internal projects only)
How does it have nothing to do with VB.NET? If you have a person who is skilled in C#, and you want them to do a project in VB.NET, it's a REALLY bad idea. A strict VB programmer know of it's intricacies (like the string thing I keep referring to), while the C# programmer would not. The program will come out worse if the C# programmer does it in VB.NET (as opposed to if they did it in what they are comfortable with).
4. Ok, so this doesn't really specifically tackle anything related to VB.NET I guess.....
5. It's a bad idea to write a driver in any language other than C, C++, or Assembly. A driver is a project. A project is new if it does not exist already.
6. Yes, this also applies to ANY .NET language. Not all systems have the .NET runtime. This was also more of a "Why is it bad to use .NET"
8. Even though the others were always there, operator overloading can be a huge feature. Also, this was refering to VB.NET.... and you were trying to prove that I wasn't even thinking of VB.NET, and counted this towards a non-vb.net statement.... Whatever....
I'll finish with a question:
Why would starting a new project in VB.NET as opposed to C# be a good idea.
(try to refrain from using "because I or my manager know(s) VB" as an answer)
Admin
Man, you are all over the place .. it's a little hard to keep you focused on the topic at hand ... OK, I agree: A programmer who is an expert in a particular language will program better in that language than in a language he is not an expert in .. While that has absolutely nothing to do with the merits of VB.NET and it has no relevance whatsoever on anything we've been discussing, I suppose that is good to know, so thanks.
Why is it a good idea to start a project in VB.NET? If I am a good programmer, and it is possible to write good code in language X, and that language has the features I need to get my job done, and I know that language well, and it is widely supported and stable, then I can't think of a good reason *not* to. Remember -- my goal is not to convince you or anyone else that you *should* be using VB.NET. I don't care. I just don't understand why people like yourself feel the need to be preachy towards others and to criticze those who *do* use it, and why it makes you feel superior that you don't. Get over yourself.
Maybe *you* prefer C#. You like the syntax. You had bad experiences wtih VB6. You used op overloading a lot in 1.1 and needed to. Those are all great reasons to avoid VB. And good for you.
I just don't understand why someone in that position feels the need to stop everyone *else* from using it.
In closing, I have a question for you -- which language (VB.NET or C#) do you think that I prefer to code in? The answer might surprise you.
Admin
No, it is relevant. You asked "why not start a new project in VB?", and I gave a scenario where it would be a bad idea. Just because the language chosen doesn't have anything to do with the reasoning doesn't mean that the scenario is invalid.
Admin
Ok, you've strung me along with this enough. ha ha. you got me. seriously, I've got to stop falling for this trolling stuff and not assume that everyone is actually trying sincerely to discuss the topic ... go ahead, laugh it up ...