kw
05-22-2003, 10:43 PM
I am aware that this section isn't meant for code reversing, so it's a good thing this thread isn't actually going to be about coding ;)
What I want to talk about instead is programming in general.
I'll start with some background about myself in this area.. I once learned very basic programming in GWBasic, QBasic, QuickBasic and Visual Basic (in that order, because I kept looking for something with more functions)
Then I got tired of basic's inherent basicness and went to win32asm, which I've used for about 3 years as my programming language. Then, 2 years ago or so now, I started my upward approach, moving through a short period of C to my current favorite, C++.
Now, during these 'travels' I've encountered a lot of programmers with a lot of opinions, and some of these have begun to aggravate me. Which is why I'm posting this now.
I am going *up* the ladder of abstraction, while most people that ever do win32asm tend to go downward. (this means learning asm last)
Because I'm going upward I found there is a lot of resistance that way. No matter where you are, every programmer using the same abstraction level is constantly convincing you it is wrong to go up further. The excuses are usually the same for all of them as well. "Its bloated" and "Its slow as hell" are the most common phrases. But is it? I mean, really? The answer is, in my opinion, no it's not. Sure, some things arent optimized fully, but does that really matter nowadays, with the immense hard disk space (what's 200 or 300kb extra for a program, while a single mp3 will take 3mb or even more?) and fast processors (what's a 100 extra clockcycles when you have 2 000 000 000 of them every second?)
No, my experience is that the whole of the programming community is engulfed in the digital dark ages. Please allow me to expand on that (possibly odd-looking?) analogy.
I mean that everyone prefers to chop his own firewood, and grow his own crops, then build his own house. I like that thought, it feels more natural somehow.. But... There is a problem with that, the thing is that you dont really get much done when you have to spend your day doing everything yourself. To really get big things done, you want someone to specialize in chopping wood for instance, and someone who specializes in making food. That way, you can focus entirely on a project at hand (whatever it may be).
This applies to programming as well. Pre-made code (a higher level of abstraction uses more pre-made code, since youre obviously not doing it yourself, and someone must have done it) feels like 'someone elses work', and thus most programmers will not accept it. It is a generally accepted macho attitude among programmers to do as much on your own as possible. I personally, have had about enough of it. Of course I'm not saying you should do everything in a graphical drag-and-drop environment, there are those who go completely that way (they generally dont know what theyre doing, and it will be a nice introduction into programming.. Visual Basic is renowned for this ;)), if you do just make sure you don't get stuck there.
Do I want the programming scene to change? Quite frankly, I don't know. It has its pros and cons. An advantage would be a much more mature attitude amongst programmers causing a lot more results, however we DO NOT want programmers to blindly accept any offered option, a critic is always very very welcome. And for new layers of abstraction, you can definitely not accuse the programming community of a lack of criticism. ;)
For now, I'm quite happy with my Visual C++, it allows me to finish much bigger projects than I could in win32asm (without going completely raving mad ;))
I might try out C# some time soon, but from what I've seen it doesn't really appeal to me so far. We'll see...
Yours truly,
Kwazy Webbit
What I want to talk about instead is programming in general.
I'll start with some background about myself in this area.. I once learned very basic programming in GWBasic, QBasic, QuickBasic and Visual Basic (in that order, because I kept looking for something with more functions)
Then I got tired of basic's inherent basicness and went to win32asm, which I've used for about 3 years as my programming language. Then, 2 years ago or so now, I started my upward approach, moving through a short period of C to my current favorite, C++.
Now, during these 'travels' I've encountered a lot of programmers with a lot of opinions, and some of these have begun to aggravate me. Which is why I'm posting this now.
I am going *up* the ladder of abstraction, while most people that ever do win32asm tend to go downward. (this means learning asm last)
Because I'm going upward I found there is a lot of resistance that way. No matter where you are, every programmer using the same abstraction level is constantly convincing you it is wrong to go up further. The excuses are usually the same for all of them as well. "Its bloated" and "Its slow as hell" are the most common phrases. But is it? I mean, really? The answer is, in my opinion, no it's not. Sure, some things arent optimized fully, but does that really matter nowadays, with the immense hard disk space (what's 200 or 300kb extra for a program, while a single mp3 will take 3mb or even more?) and fast processors (what's a 100 extra clockcycles when you have 2 000 000 000 of them every second?)
No, my experience is that the whole of the programming community is engulfed in the digital dark ages. Please allow me to expand on that (possibly odd-looking?) analogy.
I mean that everyone prefers to chop his own firewood, and grow his own crops, then build his own house. I like that thought, it feels more natural somehow.. But... There is a problem with that, the thing is that you dont really get much done when you have to spend your day doing everything yourself. To really get big things done, you want someone to specialize in chopping wood for instance, and someone who specializes in making food. That way, you can focus entirely on a project at hand (whatever it may be).
This applies to programming as well. Pre-made code (a higher level of abstraction uses more pre-made code, since youre obviously not doing it yourself, and someone must have done it) feels like 'someone elses work', and thus most programmers will not accept it. It is a generally accepted macho attitude among programmers to do as much on your own as possible. I personally, have had about enough of it. Of course I'm not saying you should do everything in a graphical drag-and-drop environment, there are those who go completely that way (they generally dont know what theyre doing, and it will be a nice introduction into programming.. Visual Basic is renowned for this ;)), if you do just make sure you don't get stuck there.
Do I want the programming scene to change? Quite frankly, I don't know. It has its pros and cons. An advantage would be a much more mature attitude amongst programmers causing a lot more results, however we DO NOT want programmers to blindly accept any offered option, a critic is always very very welcome. And for new layers of abstraction, you can definitely not accuse the programming community of a lack of criticism. ;)
For now, I'm quite happy with my Visual C++, it allows me to finish much bigger projects than I could in win32asm (without going completely raving mad ;))
I might try out C# some time soon, but from what I've seen it doesn't really appeal to me so far. We'll see...
Yours truly,
Kwazy Webbit