can u really do more with C than VB? with vb you can take hold of any program and run commands in it, like runing a menu option, but can u do this with c? if yes , than how?
Printable View
can u really do more with C than VB? with vb you can take hold of any program and run commands in it, like runing a menu option, but can u do this with c? if yes , than how?
SendMessage
?
>>can u really do more with C than VB?..
There are many things you cannot do in VB
one them is the fact that you cannot make executables...
VB is interpreted language... and it is slow...
>> with vb you can take hold of any program and run commands >> in it, like runing a menu
What exactly do you mean to *take hold of *
to hold what? the execution of a program?
SendMessage is a function included in windows.h. With it (and other windows.h functions), you can simulate just about everything a user could possibly do.
thanks, can you tell me were i can find out more about windows.h and sendmessage
thx
Wow, its sad that someone even needs to ask that question.
vb isn't just interpreted. it can be compiled too.
VB can not do as many things as C can do for the simple fact that the Microsoft operating system is built in C. Most of the major subsystems have C function interfaces. VB is a rapid application development language. The VB language is written in C, and it was designed to allow for easy construction of windows programs. The VB language does not exist anymore.
>>...vb isn't just interpreted. it can be compiled too...
May be but the exe comes with its interpreter i think...
its some dll .. vb***.dll
you cannot actually write a Win32 program in VB...
Show me a way of using standart kernel32.dll functions in VB...
They are all called into the vb***.dll one way or another
and you're using the API provided by this vb***.dll
So you're not making a Win32 program actually
you're using the API provided by some Virtual machine...
>>one them is the fact that you cannot make executables...
WHAT DID YOU SAY?? Have you ever programmed in VB? do you know what VB is? And I guarantee that you can make any VB program nearly as fast if not as fast as any C program.
>>May be but the exe comes with its interpreter i think...
its some dll .. vb***.dll
you cannot actually write a Win32 program in VB...
Show me a way of using standart kernel32.dll functions in VB...<<
you're on crack... :rolleyes:
>>The VB language does not exist anymore.
:eek:
You people are living in a C bubble... wakeup...
As far as I know, VB 6 cant make properly naitive system calls........the VB runtime dll thats loaded into the process does all thatQuote:
Originally posted by ober5861
And I guarantee that you can make any VB program nearly as fast if not as fast as any C program.
A well written SDK program using a decent compiler should trounce anything written in VB
And I'm not saying this as a kneejerk C_KILLS_ANYTHING reaction (I fool with some VBA and VBScript myself :))
Quote:
Originally posted by borko_b
you cannot actually write a Win32 program in VB...
Show me a way of using standart kernel32.dll functions in VB...
Code:Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Sub DoBeep()
Beep 2000, 500
End Sub
>>... Have you ever programmed in VB? ...
Not a single line in VB...
only qbasic, basic and apple 2 8 bit BASIC when i was young
>>...do you know what VB is?
Yes i do.. its a crap...
>> And I guarantee that you can make any VB program nearly as >>fast if not as fast as any C program.
Prove it...
>>you're on crack...
No i am not...
but i smoke Marijuana from time to time with friends on parties...
>>You people are living in a C bubble... wakeup...
VB is bubble , and it is going to pop...
> Not a single line in VB...
Then how the hell could you possibly be qualified to say:
>>>...do you know what VB is?
>Yes i do.. its a crap...
If you haven't programmed in it, you don't really know what it is. Welcome aboard the bandwagon, my intellectually challenged crowd following acquaintance.
it's not that I like to sit here and pick on people that make stupid comments... but when you have a programming language that is used thoroughly in business today to build interfaces, you can't really make a valid statement saying that "VB is crap" or whatever...
i hate people that make uninformed statements :mad:
>>...If you haven't programmed in it, you don't really know what >>it ...
You obviously didn't noticed the following line...
Not a single line VisualBasic
BUT MANY lines in
QBasic
BasicA
8bit APPLE 2 Basic
As for the executables ... Sorry
i messed it with the VBS used in the Excel tables
anyways VB is weak language:
why use it for making full blown applications when we have C\C++
(comming with standart libraries and API's )
why use it like interpred language! (using VBS and stuff)
when we have Java which is MUCH more powerfull ...
even Pascal is better ...
this is not *uninformed* statement
this is My own *opinion* ,
as it is my own i do express it as i like ...
Right, I saw that. QBasic and the others are quite a bit different than VB. Like ober said, how can you call a language in use in so many businesses crap? I'm not a big fan of it, personally, but it does have its place, if not just for ease of use. I've got an idea - you make a Win32 app to play rock, paper, scissors in C, and I'll do it in VB. We'll see who gets done first.Quote:
Not a single line VisualBasic
BUT MANY lines in
QBasic
BasicA
8bit APPLE 2 Basic
>>Like ober said, how can you call a language in use in so many
>>businesses crap?
Yes and this is the bad thing... a businesman is not a programer so what he really needs is n easy script to insert into his excell tables or in some other bad **** called ASP (which really bad comparing to the PHP)
but he doesn't need a real language
BTW give me any example of a succesfull comercial program MADE with VB! I can't see any
>>you make a Win32 app to play rock, paper, scissors in C, and I'll do it in VB. We'll see who gets done first.
If you want to do it with Windows GUI interface
i'll use MFC
if you want to do it in console
i'll use C++ STL
tell me those are not fast enough
tell me, can you make a notepad with 3 clicks from the mouse??
(try with MFC)
i'm not a fan of MFC ... i hate it...
but when it comes to RAD ...
I think VB is crap. I have programmed in it, and I'm forced to maintain quite a few programs written in it. However, you can make API calls in VB and you can make very easy GUIs in VB, which was a royal PITA with MFC. If you don't think so, you have never used VB and seen it's speed of development.
I like to say VB is the dark side of the source. It's simple, it's the easy way out, it's eeeevil.
This is why I like C# that much... it has VB's ease of use plus a real nice language in the background.
but don't you see (nv) it's a trap!!
C# is just a more seductive form of VB, ITS STILL THE DARK SIDE!!!!
"Not a single line VisualBasic
BUT MANY lines in
QBasic
BasicA
8bit APPLE 2 Basic
"
I've used many variations of BASIC (including QBasic). VB, which I've only used a couple times, is nothing like QBasic. Just because youve used QB/GWBasic/whatever BASIC, doesn't mean that they are like VB. Although im not particulary a VB fan, it is a pretty good language, and has its place amoung others today.
>>...its eeevil!...
Yeah man! it is :)
Let us pray for our souls ...
and we shall seek truth and peace in the Bible++! :)
anyways ...
C# is mystery for me...
what is the differnence between C# and Java for example...
(besides the intermidiate code)
and this .NET ...
what does the word "platform" means here...
is it a OS ... or is it a Virtual Machine like Java's
oh yeah
i forgot :)
heres a joke:
"
Bill Gates died and he went in hell...
the Master Devil was impressed with the Win32 OS (he installed it on the pits of lava so that he could fry the souls with just one POINT&CLICK on the mouse)
and he send him into a ring of hell full of Nice blond chicks and *****s...
"Well, said Billy, thats good! i thought this was hell!"
so he approached the first girl his eyes could see ...
She started to un-dress her reaally slow and sexy..
and Billy was so happy..!!!
BUT just as he was ready to introduce his little friend to the chick , she disappeared!!!
"What happened !!! where did she go?" he asked the DEVil
"well this was just the Demo Version, sorry!" the Devil replied
"
let us keep the Billy's gates closed ...
those are the Gates of Hell ...
...I think you ARE on crack. Either that you don't just smoke weed at parties.:D
Personally, I like C# better than VB. I have never programmed extensively in either; it is just that c# doesn't seem as ugly. Although it is effective, you all have to admit that VB is UGLY.
>>...crack...
Say what you want...
this won't make the VB a real language...
it will be forever a language for kiddies and bussinesmen...
(and obviously it is a language for you...
but i don't think you are a bussinesmen... if you were , you wouldn't have time to post on forums ... you know time is money )
so grow up kid and use REAL languages...
The thing that you have to remember is that Win32 is an interface. It is implemented in C, in such a way that it is object based, kind of like C made to act like C++. The Win32 interfaces is the system interface. That means that the Win32 subsystems are delegated all of the processes. This means that if you are using the Microsoft operating system than all of your programs are C at the lowest level, C and some ASM. All of your VB applications make calls to C function libraries, that's why I don't understand the arguement that would define VB as more efficent and powerful than C. Microsoft has said that VB is a rapid application development language, it is very easy to construct basic windows applications as well as some other types of applications. I mentioned that VB doesn't exist anymore because it doesn't. The VB in VB.net is a subset of the .net intermediate language. Mind that .net is a middleware component written in C++.
I am an avid fan C and C++ but I don't see why people hate VB so much. I haven't programmed in VB before (but I do know a little of QBasic) but for producing useful non-technical applications VB is more sensible than either C or C++.
One year ago I hated VB too, but after looking at the program made by my Numerical Methods professor, I realized VB wasn't so bad after all. The electrical power company in my area has used VB programs to track down the breakdowns of power transmission lines, and for controlling electrical turbines too. Guess what, those VB programs even made Fortran look puny.
It's history and the only thing that survived is some of the syntax, not all of it. Most of it was not expressive enough.
Look, the point remains that VB is just as entrenched in a lot of businesses the same way that C or Java is. You really can't beat the speed that you can make an App with in VB. I've only been programming with VB for about 4 months total and I've already turned out over 8 decent (some quite complicated) applications that have saved time, money, and manpower.
You just can't compete with the results. Granted, I could do somethings more easily in C, but the ease and speed at which I can create apps in VB is tremendous.
Sure, the same is true with Microsofts prefabricated and convoluted C++. You can also churn out windows apps quickly with MFC or even strait Win32 GDI.
You should learn .net however because it is more powerful than VB (it has more advanced language features), and you can use VB.net which has similar syntax with VB6. It seems that Microsoft who owns VB has invested their future in .net. The only unmanaged language that survived VS7 (also known as Visual Studio.net) is standard C++, ofcourse you can also use managed C++ (C++.net). That right there should tell you something about VB6. It's gone as soon as you get the new visual studio, in other words, VB was C.
> It's gone as soon as you get the new visual studio, in other words, VB was C.
Come again?
>It's gone as soon as you get the new visual studio, in other words, VB was C.
Do you know what you're talking about or are you just spewing forth pure **** for our amusement? :D
borko, once you are in the business of programming for money, you will see that sometimes VB is inevitable as time is money and VB shortens the development time for GUI intensive programs by more than half.
I like VB as much as I like dentists appointments, but both are a neccessary evil in the real world.
>>...programming for money...Quote:
Originally posted by nvoigt
borko, once you are in the business of programming for money, you will see that sometimes VB is inevitable as time is money and VB shortens the development time for GUI intensive programs by more than half.
I like VB as much as I like dentists appointments, but both are a neccessary evil in the real world.
Look, I don't say that VB has no place in the world ... the fact that it stays on the shelves shows that there are peolpe that use it (bussinessmen).
BUT again I ASK... IS there in the world a succesfull comercial project that IS made WITH VB?? (comercial programs are programming for money right?)
>>...neccessary evil in the real world...
there is no *neccessary* evil... there is just Evil
(dentists are not devils by the way :) afterall they help people )
I think that Java and MFC beat the VB in terms of RAD...
the only think that you all say is that GUI is made faster in VB ,
Well Prove it please...
choose:
1. a text Editor like Notepad and post it here to see how fast is made in VB
2. a Browser ....
3. a Window + menu + "Hello World" string in front of it...
4. a dialog with 2 buttons "OK" and "CANCEL"
>>BUT again I ASK... IS there in the world a succesfull comercial project that IS made WITH VB?? (comercial programs are programming for money right?)
You're joking right? allow me to start with my own company.. our entire dispatch center is running software built with VB and embedded SQL.
Your statement/question doesn't really make any sense.
>VB is interpreted language
no...
first of all its not a language at all....BASIC is the language...come on people, get it right...VB is just the compiler..
second of all, Visual Basic CAN make executables...i do it all the time. so dont say it cant. and yes, they are standalone. if u cant then somethin is wrong with your Visual Basic compiler.
hey guys ur overloading this topic..........:)
in fact I can tell(as I was programming basic since 12 years ) that Current VB language is great as a RAPID PROGRAMMING LANGUAGE !!!!!! u can use it to establish you GUI very easy and very quick......it supports u with many many nice and effective tools to make an application that support database and internet beside many desktop functions and its great for commercial programming (with some bad points in fact).......
so dont put over it more than it could carry.its great just for what was it made for............
on the counter c++ is A GENERAL PURPOSE LANGUAGE and its totally different thing ,so it can handle low level programming and give high accessebility to hardware beside performming non-windows related programming...and thats why it was made for
so I know VB and C++.......if I can Make it in VB ill not make it in C++ as VB is much easier and much more maintainable than C++
1. a text Editor like Notepad and post it here to see how fast is made in VB
2. a Browser ....
3. a Window + menu + "Hello World" string in front of it...
4. a dialog with 2 buttons "OK" and "CANCEL"
Probably as fast as in MFC. But that's not what I call GUI intensive programs. Take TabControls, a pain in the #ss in MFC. Take a simple textbox... changing the font and color of it in VB is as difficult as selecting the font from a combobox and the color from a list. In MFC it isn't even possible without coding.
Lets see how fast you can do this in MFC:
Create a Tab-Control that shows a textbox each, one green on blue in Times new Roman, the other white on red in Arial.
Not a single line of code in VB, all by selecting properties in a property editor in the IDE. Probably two dozen clicks compared to at least a dozen clicks and 25 lines of code ( 10 if it's ugly ) in MFC.
That is if you know what do do in MFC, because it's all but intuitive to people without inside knowledge. And you shouldn't need profound coding knowledge to change a textbox to pink.
You are right, there are few programs on the shelves that use VB. But that doesn't mean professional programs aren't developed in VB... it's just that 90% of these are inhouse products.
I don't like VB, and with the advent of C#, it will hopefully die, but it did have a use and is still used by those that don't have C# yet.
one simple fact will prove my point that VB is widely used:
members here: ~4265
members at vbforums.com: 31,940
posts on the general vb board: ~108,000
posts on the c/c++ board there: ~3930
hell... posts between here and there involving c: ~17,000
Still doesn't come close to the VB board...
:p
on the counter of the idea which u said, that VB ll be omitted because of C#.........VB ll stay alive for a long time coming, not because of anything , just because its really the most popular programming language(this doesnt mean its the best of course)
the wide range of ppl using VB ll protect it from getting dead
and if we imagine that microsoft ll not support it once( such thing isnt even an idea for the future for micosoft right now ) they ll keep support it for long years as a step to get it away
by *comercial project* i mean a comercial PROGRAM.Quote:
Originally posted by ober5861
You're joking right? allow me to start with my own company.. our entire dispatch center is running software built with VB and embedded SQL.
like :
InternetExplorer
Abode PhotoShop
AbsoluteFTP
And so on.
is your "dispatch center" such a "program" ?
or is it some service program
Do you sell it for money? or you're selling the services WITH this program...
Anyways..
(Your company should benefit from Java, Java2 much more, than VB and so on..)
>>first of all its not a language at all....BASIC is the
>>language...come
>>on people, get it right...VB is just the
>>compiler..
I and many others allready understood that...
don't repeat it again please...
>>members here: ~4265
>>members at vbforums.com: 31,940
Yeah ... too many *bussinessmen* and kiddies asking how to find a substring in a string... Give me a break!
>>...VB ll stay alive for a long time coming...
Yes. because there is Microsoft to proclamate it...
Cut the Daddy's fundings and the Son will die in a minute...
And stop talking about RAD please
the RAD is the worst thing that could a programmer rely on..
RAD applications are buggy and over-bloated...
the good design of software rely much more on money invested in , good communications between teams
and ofcource the programming teams themselves
time is relative thing ...
Large scale projects do not come out quickly ...
people are wasting much more time designing the features,marketing ,customer support, etc,etc. than the program itself.
Lets debate on the language syntax
1. How is the modularity supported in VB?
2. How is the data-hiding mechanism implemented in VB ?
(statics, local, global variables)
3. How is the OOP model supported ?
3.1 How Does it support classes ?
3.2 Are there interfaces in VB ? (virtual func's and etc)
3.3 Does it support multiple inheritance?
and Is it easier to make OO design in VB than Java or C++
To add to Ober561's point:
On the VB Explorer forums, there are about 100,000 members.
I've been programming in VB for about 10 years. Though I like what I've learned so far in C, I find that VB still has it's merrits...
Take for instance, VBA (a rather crude version of VB). I build databases for a living. Out of all the guys I work with, I am the only one that writes code behind my database, all the others use Wizards to create a generic database with queries and such.
As far as commercial software, Forte is an example. The company I work for is a health insurance company. They use a Forte application to allow our Customer Service reps. the ability to browse and modify our member information... this application was written entirely in VB (with the exception of a handful of components that were written in Java).
The only drawback I see with VB is that you are required to distribute 6 basic .dll files with your application (unless the target machine already has them) whereas with C, you only need to distribute a .dll if you use something that is not native to Windows.
Believe it or not, some of the stuff you get from Microsoft is VB dependent... next time you install a Microsoft product, watch the installation and see if it installs MSVBM60.dll - that is one of the main VB redistributables.
Even better, delete this file from your Windows directory... and see which applications you have no longer run...
borko_b......
*sigh*... you're a moron... there... a simple, no beating around the bushes flame... you're a freakin moron.
>>... you're a moron...
What the hell do you think you ARE ?? huh!
...retard...
>Do you sell it for money? or you're selling the services WITH this program...
We have programs that are written in VB. They are used daily and generate income. So I guess it is a commercial language.
>And stop talking about RAD please
>the RAD is the worst thing that could a programmer rely on..
Agreed. But sadly, programmers are paid for results, not for good practices. And in real life, time is money and RAD is less time to pay for. So RAD is a very big deal in the business world and should be taken into account when judging the commercial value of something.
You still have to show how easy and fast you would implement my example in MFC...
>>....my example ....
Ermm.. Which example... Sorry..
(the one with the tabs?)
VB is history. Microsoft who wrote VB in C has now wrote the .net framework in C++ and that's what they are using now. It's a lot different than VB6, because all of the code is managed. At any rate, Microsoft itself has widely proclaimed that VB was limited to high end Windows Forms and was not flexible or expressive enough for building software architectures. Another poor quality of VB is that it only runs on the Microsoft operating system. It is a vendor lanuage, there is no standard, so you will find that it keep changing very frequently, it even dissapears and manifests itself in a totally different form such as .net. Sure it is a good language for quickly creating windows applications, the reason is because it is owned by Microsoft, who owns the OS and knows the hidden API. How could they not make it good for creating Windows applications. The largest problem however is that the programmer is a fish on the end of the Microsoft fishing line, VB has not been used for serious high performance applications and it simply does not exist outside the Microsoft OS. This reminds me of those people that claim that Cobol is the most powerful language. These languages are not light weight, they do not allow you to have control over memory or even OOP features, they were made for a limited purpose, which can be duplicated by C or C++ if but not the other way around. Ofcouse this is true because everything on your Microsoft OS lies ontop of a C foundation.
>(the one with the tabs?)
Yes, the one with the tabs and multi-colored different font textboxes.
Hey, guys, why discuss a thing such long time ?
we shouldnt debate which one is better. One is tool and One is language, how could we compare them ? Just choosing the one you like and enjoying it. ;)
describing VB as a tool is a real **** !! i dont have to write anymoreQuote:
we shouldnt debate which one is better. One is tool and One is language, how could we compare them ? Just choosing the one you like and enjoying it.
:mad:
>>This reminds me of those people that claim that Cobol is the most powerful language. These languages are not light weight, they do not allow you to have control over memory or even OOP features, they were made for a limited purpose, which can be duplicated by C or C++ if but not the other way around.
Hey pal. We who support VB (or COBOL for that matter) do not claim that it is the most powerful language in the world. But you must realize that C++ isn't too. :D
Look at it this way:
-> C++ gives you greater control, but it sacrifices time and it takes too much work.
-> VB gives you limited control, but it's sufficient enough to get you to develop any complicated high-end useful application software.
>>describing VB as a tool is a real ****
Are you actually saying that VB is some kind of feces? You're too ideological. Get down to the real world pal. If you're developing an application that does not necessarily need the vast power of C++, then you have to take advantage of a technology that will allow you to build software more easily and quickly (thereby increasing your profit's bottom line if you're in business), and that technology is VB. :cool:
What hidden API do you mean?....if you mean the Kernel mode functions, then yes they are mostly undocumented, but that's hardly a problem as the full User mode API is well documented......and that api is more than enough for 99% of windows programs.....Quote:
Sure it is a good language for quickly creating windows applications, the reason is because it is owned by Microsoft, who owns the OS and knows the hidden API.
And if you need lower level access there are other methods.....the WDM (for drivers) is pretty well documented (to my knowledge).......
Just because the OS doesn't give you 100% access to its internals, it doesn't mean the average programmer is hindered...in fact it's often a blessing as you know that other programs that your app shares the system with don't operate at a more privileged level than you....if so, they might cause problems which can stop your app from functioning properly
>>Just because the OS doesn't give you 100% access to its internals, it doesn't mean the average programmer is hindered...in fact it's often a blessing as you know that other programs that your app shares the system with don't operate at a more privileged level than you....if so, they might cause problems which can stop your app from functioning properly
Yah I agree. :) In other words, you don't need to know everything about your system just to be anle to make superb applications. Leave that "need-to-know-everything" to the experts. After all, not all programmers are as talented as some of our colleagues here, so VB's compatibility with the Windows OS is something worth recognizing. Am I right? :D
sorry man, I dont meant to insult VB, in formally words, it is a software made by Microsoft just as VC, right ? :)Quote:
Originally posted by moemen ahmed
describing VB as a tool is a real **** !! i dont have to write anymore
:mad:
I just wanna say, VC and VB are both softs, and BASIC and C are languages, we could discuss the diference between 2 languages or 2 softs, but it is not fit compareing those which belong to different class.
As I said, it happens that each person's hobby is not the same. So, choose the one you like, that's OK. :)
First of all, when you learn Win32, you learn an interface, not the implementation. It is impossible to know if they are giving you the full Win32 interface, and I have heard from Windows Internal writers that infact the full interface is not provided. So long as you are 100% Microsoft dependent there is not escape from being screwed, but at least you are not being royally screwed like the VB programmers.
But I dont think you are being screwed at all......the whole point is that 99% of the time you dont need to know these undocumented functions........the published API is more than enough and it provides almost all the fuctionality that you will ever need.....Quote:
Originally posted by TK
First of all, when you learn Win32, you learn an interface, not the implementation. It is impossible to know if they are giving you the full Win32 interface, and I have heard from Windows Internal writers that infact the full interface is not provided. So long as you are 100% Microsoft dependent there is not escape from being screwed, but at least you are not being royally screwed like the VB programmers.
Anyway...its not as if M$ has a list of secret functions......these functions are easy to find...its just that the documentation for their use is not provided......
Open up Dependancy Walker (I'm not dure if I got this with MSVC or maybe from the NET....but its easy to find) and load NTDLL.dll...in here you'll find loads of undocumented functions......they are there...they are no secret.......its just that access to these fuctions is given from published APIs.....CreateFile maps to NtCreateFile....so on...so on.....
There's some stuff that you as the programmer will never use directly (Like the functions for direct access to Kernel Objects)...that's becuse if you did, and did it incorrectly you would stop other programs from operating properly.......and most likely cause a nasty crash....
I dont feel screwed :)
According to KEN, Bill Gates has a small dick, so you might be getting screwed and you don't even know it.
I don't know how an interface can help a programmer learn about the implimentation. I find that limiting and not worth learning. In this sense Win32 is no different than VB. I give up on taking Microsoft seriously, but to play around on, it's has some okay features I think.
Hmm.....Well I still love learning the API........and no way is the API as limited as the drap & drop crap that VB passes off as Win32 Programming.........Quote:
Originally posted by TK
I don't know how an interface can help a programmer learn about the implimentation. I find that limiting and not worth learning. In this sense Win32 is no different than VB.
You want to see some cool stuff?
Lookup some articles & stuff on MSDN....look for stuff by Matt Pietrek or Jeff Richter...........
Also go to Iczilion's site and have a look at the tutorials and the forum he co admins with Steve Hutchesson (The guy who updates and distributes the MASM32 pakage)............there's enough to keep me learning for years to come....
"Hmm.....Well I still love learning the API........and no way is the API as limited as the drap & drop crap that VB passes off as Win32 Programming........."
Don't forget that VB allows you to create your own ActiveX OCX controls, if you find the standard ones too limiting...
As of the moment I am not entirely sure how much of the MS Windows OS that I will learn. It seems apparent that Win32 is a large interface, however learning how to use a function based on it's prototype, but never understanding the implimentation of the function is a problem for a CIS student. It would be nice to know how the software architecture is implimented.
I know that the API seems to be extensive, but if I spend a long time learning the interface and not studying any of the implementation, and they turn around and change the interface, than I have not gained anything from an academic perspective (mind my spelling, I never gained anything there either...that's why I know).
After I learned C I got involved with the UML. The UML is really a great thing. You can basically deisign and write a whole application in UML and than impliment it in any OOP language. Say I was a game programmer. I would want to target multiple platforms, instead of leaping into some API and just starting to code right away, I might instead want to use a very descriptive notation to describe all of my classes, maintain a bilateral relationship between data and behavior so that I could write some prototypes of the classes and even integrate and test them, follow architectural design patterns and design heuristics. The whole idea is to keep a broad base so that none of the doors shut and suddenly limit your choices. And that Win32 API no matter how extensive, is just an interface. I'm not convinced that anything can be learned by it.
on the popularity of vb... visual basic is the aol of programming... just because a lot of people use aol do you wanna use it too?
ok if your talking about execution speed make me a vb prog that will open files and replace certain words in them with another word in vb and lets compare how slow your vb app is comapre to my c++ appQuote:
WHAT DID YOU SAY?? Have you ever programmed in VB? do you know what VB is? And I guarantee that you can make any VB program nearly as fast if not as fast as any C program.
vb has it's good and bad points along with every other language. The main point is, you use the language that suits the job. If you need a database front end for example, vb. If you need a cross-platform app for the internet or other reason, java. If you want to design operating systems, c++. You use the tools suited for the job, no one language is 'better' than the other. I have used Basic, QBasic, Visual Basic (that last one I have an MCP in and have been using for 3+ years now), Java 1.1, 1.3, 1.4, Pascal, Delphi, C++, Cobol, Html (if you can THAT as a language :) ), SQL and one or two others I can't think of at the moment. As for the person who is saying vb is crap without ever actually trying it... well, it speaks for itself really. If you check the job posting on the market (or if you actually WORK in the market), you'll find a wide range of languages being used. Many companies even have their own languages tailored to their purpose. If C++ suits them, the'll use it or they'll buy a license and modify it to suit them better. VB is (currently) the most used language out there at the moment - it's in your interest to learn it if you don't - even if you hate it.
You say that you wont learn WinAPI because you are prohibited from the lowest level of its implementation, and then you sing the merits of UML which would have to be about the highest abstraction possible..........slight contridiction?Quote:
Originally posted by TK
As of the moment I am not entirely sure how much of the MS Windows OS that I will learn. It seems apparent that Win32 is a large interface, however learning how to use a function based on it's prototype, but never understanding the implimentation of the function is a problem for a CIS student. It would be nice to know how the software architecture is implimented.
I know that the API seems to be extensive, but if I spend a long time learning the interface and not studying any of the implementation, and they turn around and change the interface, than I have not gained anything from an academic perspective (mind my spelling, I never gained anything there either...that's why I know).
After I learned C I got involved with the UML. The UML is really a great thing. You can basically deisign and write a whole application in UML and than impliment it in any OOP language. Say I was a game programmer. I would want to target multiple platforms, instead of leaping into some API and just starting to code right away, I might instead want to use a very descriptive notation to describe all of my classes, maintain a bilateral relationship between data and behavior so that I could write some prototypes of the classes and even integrate and test them, follow architectural design patterns and design heuristics. The whole idea is to keep a broad base so that none of the doors shut and suddenly limit your choices. And that Win32 API no matter how extensive, is just an interface. I'm not convinced that anything can be learned by it.
Working with Win32 isnt just textboxes and buttons.......there's a whole world under the hood that you dont get to see unless you look........try write a full Win32 GUI app in ASM........try to control a seperate process by injecting you're own code (ASM or a dll) into it.......that's the stuff that I find interesting.....there's enough to keep me puzzled for ages.
Any API is an interface. The implementation is hidden. The UML is a modeling language, not a programming language, and it is more expressive than any programming language, it can be used to model the most advanced software architectures to high level objects and user interfaces. My problem with Win32 is that I can't learn anything from it. It doesn't teach me how to program.
It's not meant to. You learnt o program first, and it's then that you see the functionality behind it - simply because you've done it yourself (sometimes :) ) The win api is mean to be used, not to teach. It's possible to work it out though
Yehey!!! Thank Heaven for VB! Hail VB!!! Long live VB!:D
I recommend for you the movie 'The Time Machine'. You'll need it.
>Any API is an interface. The implementation is hidden.
Show me some code (in any language, including assembler) that doesn't function as an interface.
First learn what the difference between an interface and an implementation is. Try looking at the Linux kerel.
>First learn what the difference between an interface and an implementation is. Try looking at the Linux kerel.
The code in the linux kernel acts as an interface. Try again.
"The right tool for the right job", ever heard that? Now stop bickering, dumbasses.
The code in the Linux kernel demonstrates how to write an operating system from the ground up. There are also office suits, games, and web browser source codes to learn by example. Sorry but I would rather learn and have something to show for it rather than hang my knowledge on a Microsoft interface that looks like crap.
No, I'm a programmer, not an end user.Quote:
Originally posted by -KEN-
"The right tool for the right job", ever heard that? Now stop bickering, dumbasses.
>The code in the Linux kernel demonstrates how to write an operating system from the ground up. There are also office suits, games, and web browser source codes to learn by example. Sorry but I would rather learn and have something to show for it rather than hang my knowledge on a Microsoft interface that looks like crap.<
I think you're confusing learning how an o/s works with writing application software for one. Nobody said you had to hang your knowledge on a Microsoft interface. Learning how an o/s works and how to use an API doesn't have to be a mutually exclusive activity.
As I have already attempted to demonstrate, calling something "just an interface" is pointless as everything is more or less "just an interface" to something else. You may not get all the gory details but the WinAPI will give more insight into what the o/s is doing (take a look at something like "Programming Applications for Windows" by Jeffrey Richter), than programming using VB in point and click mode.
And as the giver of clichés has mentioned not everybody is programming Windows to learn what is going on underneath (because either they don't care or already have an idea) so a higher level interface may be more suitable.
I don't think that you understand, and no not everything is an interface. My point is that with Microsoft you are dependant on an interface (Win32), you have no idea of it's implementaton and no control over it. Open source provides many more choices. You have access to the implementation, so therefore you are not dependant on an interface, in addition you have a choice of windows managers, you also have access to source code for high level applications like web browsers, file managers, office suits, email clients, etc. None of this is available for the Microsoft OS.
All software written for the MS OS is dependant on the Win32 interface. Since you have spent all your time memorizing the interface you don't come out with any knowledge of the implementation, you have nothing to show for the time you have invested after they change the interface. It is important to understand the implementation of the software architecture, not just the interface, because you are building upon the constraints of the software architecture, the constraints effect your choice of high level solutions.
In addition it is no easy task to learn and memorize the MS interface (Win32). That is a big reason why they have invented languages like VB and wrappers for "fake C++" like MFC. With .net they are using a framework (aka middleware component) to combine the different high level interfaces of MFC, ATL, VB, COM, etc all of which interoperate with Win32, into one single high level interface called the .net Base Class Library.
There is nothing wrong with building applications on the MS Windows OS, however I am beginning to outgrow the operating system. My knowledge is becomming to extensive. I am not satisfied with being controlled by a vendor. There are a few books that atttempt to describe the Win32 architecture, however even those books can not reveal the implementation details. Not for the OS subsystems, not for the browser, not for he office suites or real time applications, etc. Sure you can learn things using the Microsoft OS however you will outgrow it once you enter topics such as design patterns and software modeling, framework development, etc. Now Microsoft can build almost anything that they want on their OS but nobody else can. I can see this. I want to avoid that dead end.
>and no not everything is an interface
Show me some code that isn't.
>You have access to the implementation, so therefore you are not dependant on an interface<
Ultimately you're dependant on the ISA of the host machine you're developing for (which is an interface).
>in addition you have a choice of windows managers, you also have access to source code for high level applications like web browsers, file managers, office suits, email clients, etc. None of this is available for the Microsoft OS.<
So? If you want to learn how it's done by looking at open source examples nobodies stopping you. This doesn't mean that you're forbidden from learning an API.
>Since you have spent all your time memorizing the interface you don't come out with any knowledge of the implementation
You don't have to spend *all* your time doing anything of the sort. Have you ever used an API?
>It is important to understand the implementation of the software architecture, not just the interface, because you are building upon the constraints of the software architecture, the constraints effect your choice of high level solutions.<
It's useful to have an understanding of what's happening (which is available in documentation provided by MS), it's not necessary to know the exact details. If you only wish to develop in environments where everything is completely transparent then you are going to have limited opportunities.
>you have nothing to show for the time you have invested after they change the interface<
You will become dependent (especially if you don't have an understanding of what is happening), but the fundamentals of the WinAPI have remained the same since Windows 1.0. That's the point of interfaces; they remain constant while the implementation changes. You could reverse this argument by claiming that time spent learning implementation details will be wasted when the underlying architecture becomes obsolete or the o/s is improved/upgraded.
>Sure you can learn things using the Microsoft OS however you will outgrow it once you enter topics such as design patterns and software modelling, framework development, etc<
If you wish to learn how an operating system works then you will be better off looking at something open source or even developing one yourself; but the buzzwords you mention are not tied to the underlying o/s implementation details and are abstract topics.
>Now Microsoft can build almost anything that they want on their OS but nobody else can<
Perhaps you can elaborate on this statement. What are the limitations of the API?