Page 2 of 2 FirstFirst 12
Results 11 to 19 of 19

Thread: Advice about programming

  1. #11
    Senior Member
    Join Date
    Jan 2002
    Posts
    1,207
    I think VB does build bad practices.

    Firstly, it doesn't get programmers used to the idea that programs execute "one thing at a time". This is because the event model is counter-intuitive to how computers really work.

    Secondly, in VB it is very difficult to see your whole program in one go - and even then, there are "things" happening "behind your back" which aren't obvious - event firing order, and other event-based things.

    Thirdly, it makes new programmers think that programming is all about "dropping" "controls" on to a "form", which it isn't really, let's face it.

    Now of course any experienced programmer knows that these facets of VB are just there to try to make GUI design easier, and don't actually affect the underlying way things work, but it will confuse the newbie a lot.

    Slarty

  2. #12
    Well once you learn C++ you'll begin to notice that every language looks just like JAVA syntax wise except VB. I find there is much more familiarity with languages like C++ or JAVA than anything else really. VB may or may not breed bad practices but it will make you more lazy than usual. This is guaranteed.

    The bigest downfall of VB is it sucks when I need to create a installer in MASM to drop not only the executable but also those crappy runtime files. Their active X stuff is junk... command line arguments? Ahaha... a joke.

  3. #13
    Ninja Code Monkey
    Join Date
    Nov 2001
    Location
    Washington State
    Posts
    1,027
    Mmmm...I think you need to quit sippin your 'stupid' juice. VB doesn't claim to be multithreaded (at least until vb.net). If you read up on how it (Visual Basic) uses Single Threaded Apartments vs Multi Threaded apartments and have half a clue it becomes clear.

    And not all programs have only one thing happening at one time, it's called multithreaded programming...if done properly on a multiprocessor machine you can have all kinds of things happening at one time. Refer to my thread on pthread programming in the programming security forum for more resources and info.

    Software development is going more and more to the component model you describe as vb, people are starting to shy away from the low level development of every single component and manual twiddling of code. That is why you are getting automated tools for Qt development, a vb like ide for java, and visual studio.net. It's easier for developers to push out code faster and worry only about their business logic.

    It's difficult to see any reasonably useful application in one go. And in all reality, you DON'T need to see everything at one time. The level of abstraction this type of development provides is useful so that you can focus on the important stuff. There are ways to get down into the files it generates for you if needed or replacing that code with your own.

    As far as special-ed's post....erm it's called C syntax. Java, C++, C# etc follow that model. And VB didn't make you lazy, you're the one who chooses to use bad practices and can't figure out the package and deployment wizard.

    I'm a Microsoft Certified VB ninja...and I do all kinds of development (C/C++/C#/Lua/Python/Visual Basic/asp 3.0/etc, etc, etc) with all types of environments from web application/service to multithreaded linux servers.....VB doesn't breed bad practices. Bad development practices come from bad resources...not the language/platform itself.
    "When I get a little money I buy books; and if any is left I buy food and clothes." - Erasmus
    "There is no programming language, no matter how structured, that will prevent programmers from writing bad programs." - L. Flon
    "Mischief my ass, you are an unethical moron." - chsh
    Blog of X

  4. #14
    Senior Member
    Join Date
    Nov 2001
    Posts
    1,255
    Originally posted here by slarty
    Firstly, it doesn't get programmers used to the idea that programs execute "one thing at a time". This is because the event model is counter-intuitive to how computers really work.
    How extensive is your experience with VB, or really development at all? I've got loads of Java, C, and Perl that amount to apps capable of handling "more than one thing at a time". The entire Java method of graphical interfacing relies on the event-driven development model, so I don't think your comments are all that informed or valid. The event model is precisely how computers operate *under certain circumstances* -- specifically those calling for non-automated interaction.

    Secondly, in VB it is very difficult to see your whole program in one go - and even then, there are "things" happening "behind your back" which aren't obvious - event firing order, and other event-based things.

    Thirdly, it makes new programmers think that programming is all about "dropping" "controls" on to a "form", which it isn't really, let's face it.
    I should think that's up to the programmer themselves, but by and large it's not as simple as "drag control to form, presto application is finished!". Visual Basic is IME the best RAD (Rapid Application Development) language out there. Sure, it may not be ideal for everything, but it can do a wide range of things, quickly. The latter being the key point.

    Now of course any experienced programmer knows that these facets of VB are just there to try to make GUI design easier, and don't actually affect the underlying way things work, but it will confuse the newbie a lot.
    Only if the newbie in question is prone to easy confusion and isn't interested in you know, actually learning the language.

    [quote][b]
    Originally posted by TheSpecialist
    Well once you learn C++ you'll begin to notice that every language looks just like JAVA syntax wise except VB.
    And Python. And ASM. The syntax was derived from B IIRC, and C is the oldest currently widely used language that adheres to this style of syntax.

    I find there is much more familiarity with languages like C++ or JAVA than anything else really. VB may or may not breed bad practices but it will make you more lazy than usual. This is guaranteed.
    Elaborate, and be very specific, as to how VB makes you "more lazy than usual".

    The bigest downfall of VB is it sucks when I need to create a installer in MASM to drop not only the executable but also those crappy runtime files. Their active X stuff is junk... command line arguments? Ahaha... a joke.
    I dunno, I've written quite a bit of VB, and while it isn't my favourite language, I certainly never had any problems making my apps work in a lean fashion. Perhaps the success and usefulness of a VB app depends entirely on the competence of the programmer? Well, that's pretty well true of anything right?
    Chris Shepherd
    The Nelson-Shepherd cutoff: The point at which you realise someone is an idiot while trying to help them.
    \"Well as far as the spelling, I speak fluently both your native languages. Do you even can try spell mine ?\" -- Failed Insult
    Is your whole family retarded, or did they just catch it from you?

  5. #15
    Ninja Code Monkey
    Join Date
    Nov 2001
    Location
    Washington State
    Posts
    1,027
    Originally posted here by chsh

    I should think that's up to the programmer themselves, but by and large it's not as simple as "drag control to form, presto application is finished!". Visual Basic is IME the best RAD (Rapid Application Development) language out there. Sure, it may not be ideal for everything, but it can do a wide range of things, quickly. The latter being the key point.
    C# kicks it's butt all over the place.
    "When I get a little money I buy books; and if any is left I buy food and clothes." - Erasmus
    "There is no programming language, no matter how structured, that will prevent programmers from writing bad programs." - L. Flon
    "Mischief my ass, you are an unethical moron." - chsh
    Blog of X

  6. #16
    Senior Member
    Join Date
    Nov 2001
    Posts
    1,255
    Yeah, like I said, IME.
    Chris Shepherd
    The Nelson-Shepherd cutoff: The point at which you realise someone is an idiot while trying to help them.
    \"Well as far as the spelling, I speak fluently both your native languages. Do you even can try spell mine ?\" -- Failed Insult
    Is your whole family retarded, or did they just catch it from you?

  7. #17
    and can't figure out the package and deployment wizard.
    Why in the world would I use that pile of crap when I could control the look & feel of my installer and at the same time have and use as much source code of implementations of the LZ77 & LZRW3-A algorithms that I would ever need, want, or use.

    But you will admit that there is more familiarity with many languages useing something like C rather than VB. Agian, what I was mainly getting at is why would someone suggest useing VB... knowing fully well that languages like C is the gateway drug of choice.

  8. #18
    AntiOnline n00b
    Join Date
    Feb 2004
    Posts
    666
    Hi

    I work in Visual Basic and like that language..........As mentioed earlier it's it's one of the best RAD Tool avaliable.............it doses half of the work for you ....with it's drag and drop interface and wizards to automate most of the things...help when you have to develop application in a short time frame..

    --What do i have against VB as a first Language..........Consider a senierio a person is not familer with any programming language and concepts and wants to start off ........and you hand him a RAD tool to start of with.....

    --I want to get a understand Object Oriented Concepts..........when you want to understand the basic concepts such as these Vb is IMHO would not be ideally suited for them.........To tell you the language that gave me the understanding of OO better was C++.......and don't forget to look at it form a noob presperctive.......which language is ideally suited for learning concepts........

    --Though there are many IDS avalable for Java too similar to Visual Basic....but i will advise people to Code in the beggning in any text editor (i prefer Notepad).........IDS are to help you .....but in the beggning if you will put in a little more effort it will later help you better

    Elaborate, and be very specific, as to how VB makes you "more lazy than usual".
    --Dose 40 % of the Job Itself.....Wizards , Builders ,Prebuild ActiveX's to do stuff.

    --Don't have to keep the code clean ........code is seperated in blocks (events blocks) so generally is more redable than any other language..

    --Too fancy and flashy ......Imagine You have just coded in Vb and notheing else and sudden transition to C , C++ and Java or any other (Non IDE) you you wonder where did all those go nooo i want them back ............aaaa have to write everything ...Vb used to write half the stuff fro me. you write the control name and press Period (.) and vola a list appears.

    IDE's are not Suited for Starting off learning Programming......they are tooo helpful and increase you interdependence onto them but once your concepts are clear and logics are strong they are there to make your job easier and save time ......

    The First language (IDE Tool) that i learned was Visual Basic and no prior experience with any other language.........when i went to fortran i was saying what the hell is this thing who made this **** .......... the transacton was difficult thats why i tell people not to start off with VB............Vb at later stage atleast one language before it.

    This is my Openion not forcing anybody to follow it ......

    --Good Luck--

  9. #19
    Senior Member
    Join Date
    Nov 2001
    Posts
    1,255
    Originally posted here by TheSpecialist But you will admit that there is more familiarity with many languages useing something like C rather than VB.
    On a scale from least important to most important, linguistic syntax falls to the least important side. If you know how to program, any syntax can be picked up, it's trivial.

    Agian, what I was mainly getting at is why would someone suggest useing VB... knowing fully well that languages like C is the gateway drug of choice.
    If C was the "gateway drug of choice" there wouldn't be vast quantities of C++ and Java programmers out there. In terms of why, instead of bashing what you see as the bad things the language teaches you, let's consider the pros:
    - Syntax itself is very simple and easy. Most people could pick BASIC up in a couple of hours -- and I'm not talking programmers, I'm talking regular people. This leaves more time to learn how to program, instead of the intricacies of why you have to use -> over . in C/C++ in certain situations.
    - It is an extremely high level language. You don't need to do a lot of the things you need to do to properly write the same app in other languages. Things like realloc() and malloc() pretty well don't exist in VB (they do, but in really limited fashion).
    - GUI design is simple, quick, and again gives a newbie a chance to do more PROGRAMMING than anything else.
    - VB is very forgiving. This helps ease a new programmer along the learning process. They aren't frustrated at every turn and getting stressed because they compiled their app and it segfaults for no known reason. With VB, if you have a problem, it tells you up front about it.
    - The IDE manages all the compilation, taking away yet another thing for a newbie to deal with.

    Both the language and the VB IDE together do a good job of letting a beginner just write the core functioning code. For a beginner it's a great thing, because there isn't the extra BS of figuring out which classes to use for your GUI layout as there are in Java, for example.

    Originally posted here by SwordFish_13 I want to get a understand Object Oriented Concepts..........when you want to understand the basic concepts such as these Vb is IMHO would not be ideally suited for them.........To tell you the language that gave me the understanding of OO better was C++.......and don't forget to look at it form a noob presperctive.......which language is ideally suited for learning concepts.
    While lacking in wide-ranging OO implementation, VB6 was the first language I used that gave me the ability to write OO code. The implementation is not as robust as in C++, but if we are going to let PHP get away with calling their implementation OO, then VB gets it hands down. From there, I picked up Java and Perl, which taught me what VB was lacking, and gave me a better understanding of why Object Oriented programming was good.

    Though there are many IDS avalable for Java too similar to Visual Basic....but i will advise people to Code in the beggning in any text editor (i prefer Notepad).........IDS are to help you .....but in the beggning if you will put in a little more effort it will later help you better
    Why? To me that smacks of memorizing the periodic table, something 99% of people are never going to need to do ever again.

    Don't have to keep the code clean ........code is seperated in blocks (events blocks) so generally is more redable than any other language..
    That's true of any language.


    Vb used to write half the stuff fro me. you write the control name and press Period (.) and vola a list appears.
    EVERY major IDE does this, it's not related to the language, just the development environment. Eclipse does this as well, and it saves a lot of time.

    IDE's are not Suited for Starting off learning Programming......they are tooo helpful and increase you interdependence onto them but once your concepts are clear and logics are strong they are there to make your job easier and save time
    I don't see why. People use training wheels to learn how to ride a bicycle, so why not an IDE to help them learn to program?
    Chris Shepherd
    The Nelson-Shepherd cutoff: The point at which you realise someone is an idiot while trying to help them.
    \"Well as far as the spelling, I speak fluently both your native languages. Do you even can try spell mine ?\" -- Failed Insult
    Is your whole family retarded, or did they just catch it from you?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •