Reverse Engineering RET Homepage RET Members Reverse Engineering Projects Reverse Engineering Papers Reversing Challenges Reverser Tools RET Re-Search Engine Reverse Engineering Forum Reverse Engineering Links

Go Back   Reverse Engineering Team Board > Reverse Engineering Board > Reverse/Social Engineering
FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Display Modes
  #1  
Old 05-22-2003, 10:43 PM
kw kw is offline
Administrator
 
Join Date: Dec 2002
Location: The Netherlands
Posts: 116
Send a message via Yahoo to kw
Default Programming

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
__________________
"It's people like this that make you realize how little you've accomplished. It is a sobering thought, for instance, that when Mozart was my age, he had been dead for two years." - Tom Lehrer
Reply With Quote
  #2  
Old 05-24-2003, 04:28 PM
AndreaGeddon AndreaGeddon is offline
Administrator
 
Join Date: Dec 2002
Location: Italy
Posts: 42
Default very interesting!

This is a good topic!
I am an asm and C/C++ lover, and usually i discourage using VB or frameworks in general. I dont think they are bad, i just think ppl uses them because they dont know software and hardware architecture (ever heard of VB programmers which dont know what a WM_COMMAND is??!!), so using asm is a way to really learn how things work!
I think you are right. People get fanatical for asm, this is not good. Every language is a tool, you know what it can do and what it cant, so if you have to develope something you can choose the right tool for your target.
Much people tells hlls are overbloated, most of they dont know what they are talking about, you can easily see it with all those coded "mov eax, 0" etc etc! The same question is always present in all forums regarding C vs C++!
Well, when you reverse VB apps you think orrible things, but its different! C/C++ is almost asm (or masm is almost C if we change point of view!), most asm programmers often write code that is WORSE than code obtained by C/C++ compiler optimizations! Why loose a lot of time in optimizing asm routines (small and fast), if those routines are executed only once in the app! (initializations, etc) you can write in hll and then optimize what you need (if you really need) with inline asm
Optimization can be critical, think about routines that are executed 1 billion times at a day, few asm instruction can make the difference!
But also oop is fundamental, especially for BIG projects, abstraction is really important.
However think at overbloating... using C standard calling conventions fills the stack with lots of infos (function stackframes), so you can easily reverse crash dumps etc etc!
Finally, my idea is, use whatever you want, but KNOW what you are using. You must know how hll and frameworks will traduce your code, once you know that, its your choice to evaluate and use a tool.
Bye!
AndreaGeddon
Reply With Quote
  #3  
Old 05-25-2003, 08:09 PM
death death is offline
Junior Member
 
Join Date: May 2003
Posts: 3
Default

Personally I think many people that solely programme in assembly have the l33t attitude syndrome.
Unsurprisingly, these people usually code Hello World applications most of the time.
A high-level language is pretty much required for projects that are not banal, and each language has its advantages and disadvantages.
I like C/C++ because they were designed to be general-purpose languages.
They are also low-level yet high-level enough for portability. I think that makes them very powerful.
__________________
DEATH is a part of life.
Reply With Quote
  #4  
Old 08-14-2003, 09:01 AM
Ben Ben is offline
Member
 
Join Date: Jun 2003
Posts: 22
Default

C/C++/ASM (16bit/32bit) here.
__________________
- Ben -
Reply With Quote
  #5  
Old 07-22-2007, 10:08 AM
BolleOne BolleOne is offline
Member
 
Join Date: Mar 2007
Posts: 7
Default

VB, c++, c# here

i would like to learn more languages but unfortunately i dont have enough time
anyways i guess that for each problem another language might be the best. If you want to code an app which doesnt need to go very "deep" in the system you might use VB because its fast and easy to handle. Even if some ppl think that VB is "noobish" or whatever its pretty useful in some situations.
Reply With Quote
  #6  
Old 07-23-2007, 03:52 PM
Devine9 Devine9 is offline
Administrator
 
Join Date: Dec 2002
Posts: 180
Default

qbasic, vb, vb.net, asp, asp.net, java, js, as, pascal, delphi, c, c++, c#, perl, asm, tcl, python, lingo, php, sql here..

I agree with you kw to a point however some languages are indeed bloated and unfortunately many companies which have built abstraction layers of code for their api based languages/compilers went about it with a non-optimized approach and rather a diversity/interaction with other tools approach.

For example: java was built with a fairly strong focus on multi-platform independence.

Many of the programming community are hardcore about whatever their favorite language is and i agree entirely that the rest of the world has begun taking 'computer advise' as a whole always as a rule with a grain of salt.

Indeed, I was in a meeting recently where an international firm was using a database server locally wherein there was no connection to the rest of teh network save through a serial cable and proprietary systems in place to communicate over it.. 'security by obscurity' at it's finest. Yet how do you tell a company that they need to re-develop all of their current internal systems at the core of their business because their IT manager has taken them down the wrong road with his own interests in mind for the past 15 years?

I think no matter what you do you'll always have conflicting stories and you'll always have the guy pushing 'X web technology which is clearly what everything is moving to because X.com website uses it..' just the nature of the beast.

I can say that I've known some VB 6 programmers to make more than $200k/year though.. so at that point who cares?

customer is always right...

-DR
Reply With Quote
  #7  
Old 07-23-2007, 03:55 PM
Devine9 Devine9 is offline
Administrator
 
Join Date: Dec 2002
Posts: 180
Default

another point.. in my opinion vc++ and borland's delphi are both very powerful high level languages/compilers yet still have very powerful low level access and compile time customization features. but then again, that's apparently my biased attitude be sure to take this post with a grain of salt..
Reply With Quote
  #8  
Old 08-21-2008, 03:13 AM
kungfu888 kungfu888 is offline
Junior Member
 
Join Date: Aug 2008
Posts: 2
Thumbs up kungfu university

Welcome to www.kungfuuniversity.com! Here you will find what is Kungfu, how can learn Kungfu well, how to be a man just like Bruce Lee, Jackie Chan and Jet Li!It's said that Gongfu. Hard work over time to accomplish skill. A painter can have gongfu. Or the butcher who cuts meat every day with such skill...his knife never touches bone. Learn the form, but seek the formless. Hear the soundless. Learn it all, then forget it all. Learn The Way, then find your own way. The musician can have gongfu. Or the poet who paints pictures with words and makes emperors weep. This, too, is gongfu. But do not name it, my friend, for it is like water. Nothing is softer than water...yet it can overcome rock. It does not fight. It flows around the opponent. Formless, nameles...the true master dwells within. Only you can free him. Come on, body! Many wellknown Kungfu masters will teach you form-form. Shaolin, Wudang, Taichi and many other linds of Kungfu. Anyone you like, just have a taste! Once chose, you will be a different person as before. Whoever you are, a painter, a butcher, a musician... To be YOU! Only $360 you can be YOU! Welcome to www.kungfuuniversity.com!
Reply With Quote
  #9  
Old 11-12-2008, 02:14 PM
li.fan li.fan is offline
Member
 
Join Date: Nov 2008
Posts: 7
Default

Quote:
Originally Posted by Devine9 View Post
another point.. in my opinion vc++ and borland's delphi are both very powerful high level languages/compilers yet still have very powerful low level access and compile time customization features. but then again, that's apparently my biased attitude be sure to take this post with a grain of salt..
yeah, I agree. With the rapid development of computing science, requirement of knowledge goes higher, it is necessary to consider
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump





Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.