Originally posted by haggus71 You wanna talk about patches? Let's take a look at M$ a second. They have have so many updates and patches, they bundle them in SP's. XP is on SP3. Microsoft bragged about the London Exchange running on MS Server. A month ago, after a year running, they got hacked. Bad. Meanwhile, the NYSE, running on Linux servers, has had no issues. In my last duty station, we ran everything server-wise on unix-based software. We never left anything other than workstations to the broken Windows. It comes down to design. The kernel side of linux is separate from the GUI. To install anything, you need to access the /root and give the password. Windows doesn't have such separation. They tried the same with Vista, but it was more of an annoyance than any real good. Hence why not only are there no issues with viruses in linux, but there are no issues with any other malware. Never once on ubuntu is it necessary for me to run any scan for such, and the system just works! I will admit, for games, most people don't want to hear about WINE or Cedega. They just want to download it or load the DVD and have it work. Linux isn't there. But please, don't say Windoze is more secure. I'll take my system against yours, with your antivirus disabled and spyware off, and see whose lasts longer. Mine is over a year and counting. Yours? Developers will wake up once they realize one out of ten(and climbing) computers sold is an Apple(figures last year). As was said before, if they can design for OSX, which was based on BSD, it's an easy port to linux.
You make no sense. Red Hat Enterprise Linux 4 went up to Update 7 IIRC. An Update is a SP basically for them... Do not compare Microsoft SP's to Linux Updates, Linux has more updates than Windows, that includes updates on the side of those Service Packs... Keep in mind, though, that Red Hat Enterprise Linux (which is still supported By Red Had, btw) has been out only since Feb 2005. XP had years of headstart to compete with its patch record... Red Hat Enterprise Linux 3 went to Update 9, and Red Hat Enterprise Linux 5 (Latest Version released in March 07) is already up to Update 2... I'm sure Update 3 is in the works...
That's a nice tactful advantage that you give, but servers as well as business website that run on high-cost mainframes and other expensive systems (IBM, Sun, HP hardware, etc.) get hacked all the time. A lot of luck plays its part in hacking (as well as skill). You just have to hope that these security vulnerabilities were not patched up in the server's OS, and hacking into the system doesn't always prove to be a vulnerability in the server operating system. There could be critical networking software which had a security vulnerability as well - like the web server (IIS and Apache both have to get patched, in addition to the Operating system and other applications/libraries) or database server. Most systems use third party or hardware firewalls, and that can be an issue that is out of control with the developers of the server operating system. That doesn't make sense..,
Windows has had such a separation for a long time - since the NT3-4 days which goes all the way back to 1992. It's called not running on an account with Admin Privileges. Windows has had several levels of account access since Windows NT, but with the migration from Windows 9x to NT based systems like Windows 2000 and later Windows XP, users insisted on running their machines in a manner that was very 9x-like, and hence extremely unsecure. If you run on a normal "User" account in Windows, a virus/trojan cannot install itself on you machine because you account does not have the priviledges. To install software using a normal User account on Windows, you HAVE to "Run As..." the application and supply the credentials of a Power User or System Administrator. There is little difference between Windows and Linux in that respect. Run As... = sudu = su -c ... etc. etc.
The only difference is that Windows users did not "grow" up using computers that had such finely grained security aspects enabled by default. Most OEM systems come with a premade Administrator account (You have to have one, outside of the in-built Administrator account) and users simply use that with no regards for security.
Vista UAC is just a layer on top of what Windows already had, it is similar to Defense+ and other such type of mechanisms in Anti-Virus and Firewall applications that annoy you and ask you if you want to allow an application to do this, or that. It has nothing to do with account security; and the notion that running Windows on a normal user account would disallow the installation of applications, and, accessing/changing of system files/settings by malicious applications unless you had a blank or template Administrator password for that application to use... Unfortunately, that is also the default on alot of OEM Windows Machines (since the OEM install does not prompt for a password on XP Pro-based systems like the installation CD/normal installation), and Windows Home Edition installs by default with a Blank Administrator password. In the end, it's up to the user to change these things, though, and they just aren't educated enough, as a whole, to know these things (Windows has a very BROAD user spectrum, unlike Linux).
Try harder? I don't know what else to say. You claim to know so much about both OSes, yet you don't know the difference between account security and User Access Control. UAC is exactly what it is, control. It isn't "restraint", and that's what normal Windows User Accounts and Linux accounts (not in the Root group) are. Accounts that restrain the user to performing tasks that cannot alter or change the system in any sort of detrimental fashion.
Have you tried installing a program on a Windows normal User account yet (in the Users group, and not belonging also to either the Power User or Administrator groups in addition)? I bet you run Windows under an Admin account? Lol.
XP User Account Types:
For example, if I want a normal User Account that can change network settings (in case you need to repair your connection, change your wireless network conection, etc.), use databack facilities; I can add the user to the three groups that encompass that functionality.
This user will not be able to install applications on the machine without running the setup application AS an account with Power User or Administrator Priviledges:
The account will also not be able to edit the registry or any folders other than his own folder ( C:Documents and Settings<User Name> ). Have fun getting virus infected on a Normal User account (you'd actually have to try a bit to succeed, to be honest), although you can still pass on virus infected files (if you have no anti-virus that will catch it, or if you use some crappy AV program like that shoddy GPL ClamWin crap that doesn't have an on-access scanner).
Also note that you can also run a command as another user from the command line (similar to sudo/su -c). You can also log in as another user on the command line to run other applications from the commandline (both GUI and console applications/commands, similar to using the su <UserName> command and supplying the login credentials in Linux/Unix). The difference between the Linux/Unix command line and Windows command line these days is highly cosmetic, especially with the porting of many Unix tools to he Windows operating system (i.e. Entire Operating Environments like Interix/MS Services for Unix and Cygwin that on Windows, or binary ports of Utilities from one Unix/Linux to Windows).
LOL @ Apple, which is basically a BSD kernel with Apple sugar on top. Apple had their own Operating System (pre-OSX Mac OS ending with the 9.x versions), and it was crappy. They owe alot to Open Source, too bad they don't give much back. I would expect most Open Source zealots to had Apple and Coninical more than they hate Microsoft. But alas, blind fanboyism gets the best of them.
I don't even wanna talk about their [Apple's] dongles and limiting of installing their OS only on overpriced Apple systems which use the same hardware as the average Intel Machine... You would hardly be smiling about them if they had to run on even a fraction of the machine configs that Windows has to run on (they control which configs they run on to only hardware they approve and test personally). People complain about Linux/BSD with hardware compatibility, and it would be the same as Apple if they went for a broader market. Anyways, they have to sell their overpriced machines to survive, and let's not forget that if it wouldn't be for MS Apple probably wouldn't even still be in existence.
P.S. My system will last just as long as yours. I dare any spyware or virus to install itself on my computer running under accounts with limited credentials, and with Admin accounts locked down (NTLM enabled and STRONG passwords). I can personally try to execute a document/image with a keylogged embedded in it and it will fail to install (I've tried, that's what Virtual Machines are for, testing stuff :P). Vista, XP, 2000, and NT4 - all the same (consumers didn't have ready access to NT-based systems until Windows XP).
I like the new ubuntu Linux. It's a lot more user friendly then past Linux distributions. It's still not as easy to use as Windows in terms of installing drivers via a GUI. Many times you will have to type Linux commands in a terminal window to get something done. Firefox doesn't look quite as good in Linux. I still prefer Internet Explorer as it seems to display most web pages correctly. Linux is very secure as you can't modify anything without entering the administrator password. Windows Vista is somewhat like that as well, but not quite the same. Linux isn't targeted for viruses because it's not used that much. You are likely safer browsing the web with it most of the time. Linux has a lot of free software from the community that you can install. If you don't have the software/driver included in the GUI it can be a pain to install the package/driver. I haven't had a lot of success using wine so far. Virtualbox is a good choice to be able to run Windows programs if needed, but can't run games. VMware is working on support for 3D acceleration in a virtual evironment.
I like the new ubuntu Linux. It's a lot more user friendly then past Linux distributions. It's still not as easy to use as Windows in terms of installing drivers via a GUI. Many times you will have to type Linux commands in a terminal window to get something done. Firefox doesn't look quite as good in Linux. I still prefer Internet Explorer as it seems to display most web pages correctly. Linux is very secure as you can't modify anything without entering the administrator password. Windows Vista is somewhat like that as well, but not quite the same. Linux isn't targeted for viruses because it's not used that much. You are likely safer browsing the web with it most of the time. Linux has a lot of free software from the community that you can install. If you don't have the software/driver included in the GUI it can be a pain to install the package/driver. I haven't had a lot of success using wine so far. Virtualbox is a good choice to be able to run Windows programs if needed, but can't run games. VMware is working on support for 3D acceleration in a virtual evironment.
Ubuntu isn't harder than the other distributions... All (or at least most) distributions use the same core, with a few minor differences. Some distributions made it a little harder, others made it a bit easy. But it's all pretty much the same. What IS different between distributions is stability. Ubuntu is pretty stable I guess, as it's so popular. But it's less easy, for me, than Sabayon, because Sabayon comes with pre-installed fully working ATI drivers.
The problem lies with OpenGL still working worse than DX. Game designers not focussing on Linux (more and more seem to go for C#/XNA which is aimed at pc/xbox. When they used C++ Linux at least had a chance.). And uptill a few months ago, broken drivers. Since ATI hired that company behind SuSe (forgot its name), things are going smoothly. BTW; Nvidia actually performs better on Linux/OpenGL than on Windows/DX!
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
I like the new ubuntu Linux. It's a lot more user friendly then past Linux distributions. It's still not as easy to use as Windows in terms of installing drivers via a GUI. Many times you will have to type Linux commands in a terminal window to get something done. Firefox doesn't look quite as good in Linux. I still prefer Internet Explorer as it seems to display most web pages correctly. Linux is very secure as you can't modify anything without entering the administrator password. Windows Vista is somewhat like that as well, but not quite the same. Linux isn't targeted for viruses because it's not used that much. You are likely safer browsing the web with it most of the time. Linux has a lot of free software from the community that you can install. If you don't have the software/driver included in the GUI it can be a pain to install the package/driver. I haven't had a lot of success using wine so far. Virtualbox is a good choice to be able to run Windows programs if needed, but can't run games. VMware is working on support for 3D acceleration in a virtual evironment.
Ubuntu isn't harder than the other distributions... All (or at least most) distributions use the same core, with a few minor differences. Some distributions made it a little harder, others made it a bit easy. But it's all pretty much the same. What IS different between distributions is stability. Ubuntu is pretty stable I guess, as it's so popular. But it's less easy, for me, than Sabayon, because Sabayon comes with pre-installed fully working ATI drivers.
The problem lies with OpenGL still working worse than DX. Game designers not focussing on Linux (more and more seem to go for C#/XNA which is aimed at pc/xbox. When they used C++ Linux at least had a chance.). And uptill a few months ago, broken drivers. Since ATI hired that company behind SuSe (forgot its name), things are going smoothly. BTW; Nvidia actually performs better on Linux/OpenGL than on Windows/DX!
The only problem with that is it's a lot easier to install and run a game in Winows then to try and get it to work with wine. Most games are made to use windows and directx. There is probably the biggest issue aside from not having all Linux operations incorporated into the GUIs that are available.
That is true, but Microsft is making it hard for linux/mac to break through. They've been focussing on their C# with XNA. Developers go for it, because honestly, C# is a great language. But C# offers no possibilities to use it on linux/mac... People might complain about Microsoft, but they're damn smart. Just keep an eye out for companies releasing mmorpg's for pc/xbox, it is made with C#, which is MS's program language. You'll quickly see how fast MS has taken over the game world, and preventig developers from even trying to focus on other OS's.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
That is true, but Microsft is making it hard for linux/mac to break through. They've been focussing on their C# with XNA. Developers go for it, because honestly, C# is a great language. But C# offers no possibilities to use it on linux/mac... People might complain about Microsoft, but they're damn smart. Just keep an eye out for companies releasing mmorpg's for pc/xbox, it is made with C#, which is MS's program language. You'll quickly see how fast MS has taken over the game world, and preventig developers from even trying to focus on other OS's.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
That is true, but Microsft is making it hard for linux/mac to break through. They've been focussing on their C# with XNA. Developers go for it, because honestly, C# is a great language. But C# offers no possibilities to use it on linux/mac... People might complain about Microsoft, but they're damn smart. Just keep an eye out for companies releasing mmorpg's for pc/xbox, it is made with C#, which is MS's program language. You'll quickly see how fast MS has taken over the game world, and preventig developers from even trying to focus on other OS's.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
That is true, but Microsft is making it hard for linux/mac to break through. They've been focussing on their C# with XNA. Developers go for it, because honestly, C# is a great language. But C# offers no possibilities to use it on linux/mac... People might complain about Microsoft, but they're damn smart. Just keep an eye out for companies releasing mmorpg's for pc/xbox, it is made with C#, which is MS's program language. You'll quickly see how fast MS has taken over the game world, and preventig developers from even trying to focus on other OS's.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
Directx is just another API like the Windows API, but has 3D and other code that is written just for games. XNA is is a layer on top of directx to make it easier to code just like .NET is a layer on top of the windows API. In truth I'm sure Microsoft could make directx installable on other OS if they really wanted to do so. I would like to use another OS other then Windows as I don't like the way Microsoft $ makes you activate every copy your buy. They do make some nice products, but they charge a rediculous amount of money for them. I'm also supicious of what Microsoft $ puts in their OS. I wonder if they have code they sends them your information even though they don't really use it as of yet.
Originally posted by Flyte27 Originally posted by erandur Originally posted by Flyte27 Originally posted by erandur Originally posted by Flyte27 I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to. And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though. .net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
Directx is just another API like the Windows API, but has 3D and other code that is written just for games. XNA is is a layer on top of directx to make it easier to code just like .NET is a layer on top of the windows API. In truth I'm sure Microsoft could make directx installable on other OS if they really wanted to do so. I would like to use another OS other then Windows as I don't like the way Microsoft $ makes you activate every copy your buy. They do make some nice products, but they charge a rediculous amount of money for them. I'm also supicious of what Microsoft $ puts in their OS. I wonder if they have code they sends them your information even though they don't really use it as of yet.
Okay, you seem to be misunderstanding a lot of things.
First of all, Microsft's .NET isnt framework installable on other operating systems. Mono is NOT Microsoft .NET. Mono is a .NET Implementation for Linux based on the C#/VB Language and CLR standards published by Microsoft for their .NET languages and "platform".
DirectX can not be made installable on other Operating Systems because of the Windows API dependencies - there are too many. DirectX is low-level software for windows, almost on the level of a Device driver. It isn't some DLL you copy to an application directory. That is why getting some games to run under WINE or Cedega is very difficult - and not all of them work making those solutions the source of skepticism. Lol... There is no Windows API on Linux (well, there's Cedega and Wine, but like I said above...), so you cannot simply move DirectX or any games written for DirectX over to Linux without major code overhauls (or hacks).
Another issue is that DirectX is not directly comparable to OpenGL. You have things like DirectDraw, Direct3D, DirectSound, DirectPlay, Animation, etc.. That is a huge/broad API range and those have ALOT of Win32 API dependencies. DirectX is so huge, that it is not possible to even support most of the games in existence that use it on Linux because it is extremely hard to provide compatibility for all its functionality across all parts of it... Cool, the 3D works, but now you have no sound... Or the sound works, but now you can't use you joystick, etc. etc.
.NET has Win32 API dependencies, that is why all the libraries cannot be cross platform. How can Microsoft release Windows.Forms Libraries for Linux, when it has Win32 API dependencies? All libraries like that have to be rewritten. Managed DirectX has DirectX dependencies, so again, cannot be cross platform.
3D applications either have to be tested under an emulation layer like WINE or Cedega throughout their entire development cycle to ensure that they will run correctly on Linux, or they have to be coded with OpenGL and use 3rd party libraries that are cross platform for things that OpenGL lacks, but is present in DirectX. DirectX is more of a game engine that OpenGL can hope to be. OpenGL is most just a 3D Graphics API and requires alot more add-ons to reach DirectX-type functionality.
C and C++ or cross platform languages, but you can't automatically assume that an application written for one OS will run on another OS unless you either stick to the default libraries (dictated by the standard), or make sure that all APIs that you use when developing a game are available on all target operating systems.
If your Macintosh application has Cocoa dependencies, you have to rewrite the GUI to something like Qt or GTK before it will compile and run o n Linux or Windows, because the libraries simply don't exist there.
Can you imagine the maintenance nightmare Microsoft would have if it released .NET for Linux, or XNA for Linux. There are like 1000 Linux distributes with subtle differences that can break a software package in existence. It's too costly and hardly intelligent. The money they save supporting their own OS is much > the net revenue they're generate if they had to support something like Linux. Apple computers are a much better market (of course, they have software for Macs so kinda obvious) because their platform is controlled by Apple which makes delegating support MUCH easier.
No matter how many times you tell users that you only support RHEL, Ubuntu, and SuSE: they will always zerg your forums with support incidents for Slackware, Mandriva, Fedora, and other more obscure distros. They might even complain about a distro they compiled themselves!
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
Directx is just another API like the Windows API, but has 3D and other code that is written just for games. XNA is is a layer on top of directx to make it easier to code just like .NET is a layer on top of the windows API. In truth I'm sure Microsoft could make directx installable on other OS if they really wanted to do so. I would like to use another OS other then Windows as I don't like the way Microsoft $ makes you activate every copy your buy. They do make some nice products, but they charge a rediculous amount of money for them. I'm also supicious of what Microsoft $ puts in their OS. I wonder if they have code they sends them your information even though they don't really use it as of yet.
Okay, you seem to be misunderstanding a lot of things.
First of all, Microsft's .NET isnt framework installable on other operating systems. Mono is NOT Microsoft .NET. Mono is a .NET Implementation for Linux based on the C#/VB Language and CLR standards published by Microsoft for their .NET languages and "platform".
DirectX can not be made installable on other Operating Systems because of the Windows API dependencies - there are too many. DirectX is low-level software for windows, almost on the level of a Device driver. It isn't some DLL you copy to an application directory. That is why getting some games to run under WINE or Cedega is very difficult - and not all of them work making those solutions the source of skepticism. Lol... There is no Windows API on Linux (well, there's Cedega and Wine, but like I said above...), so you cannot simply move DirectX or any games written for DirectX over to Linux without major code overhauls (or hacks).
Another issue is that DirectX is not directly comparable to OpenGL. You have things like DirectDraw, Direct3D, DirectSound, DirectPlay, Animation, etc.. That is a huge/broad API range and those have ALOT of Win32 API dependencies. DirectX is so huge, that it is not possible to even support most of the games in existence that use it on Linux because it is extremely hard to provide compatibility for all its functionality across all parts of it... Cool, the 3D works, but now you have no sound... Or the sound works, but now you can't use you joystick, etc. etc.
.NET has Win32 API dependencies, that is why all the libraries cannot be cross platform. How can Microsoft release Windows.Forms Libraries for Linux, when it has Win32 API dependencies? All libraries like that have to be rewritten. Managed DirectX has DirectX dependencies, so again, cannot be cross platform.
3D applications either have to be tested under an emulation layer like WINE or Cedega throughout their entire development cycle to ensure that they will run correctly on Linux, or they have to be coded with OpenGL and use 3rd party libraries that are cross platform for things that OpenGL lacks, but is present in DirectX. DirectX is more of a game engine that OpenGL can hope to be. OpenGL is most just a 3D Graphics API and requires alot more add-ons to reach DirectX-type functionality.
C and C++ or cross platform languages, but you can't automatically assume that an application written for one OS will run on another OS unless you either stick to the default libraries (dictated by the standard), or make sure that all APIs that you use when developing a game are available on all target operating systems.
If your Macintosh application has Cocoa dependencies, you have to rewrite the GUI to something like Qt or GTK before it will compile and run o n Linux or Windows, because the libraries simply don't exist there.
Can you imagine the maintenance nightmare Microsoft would have if it released .NET for Linux, or XNA for Linux. There are like 1000 Linux distributes with subtle differences that can break a software package in existence. It's too costly and hardly intelligent. The money they save supporting their own OS is much > the net revenue they're generate if they had to support something like Linux. Apple computers are a much better market (of course, they have software for Macs so kinda obvious) because their platform is controlled by Apple which makes delegating support MUCH easier.
No matter how many times you tell users that you only support RHEL, Ubuntu, and SuSE: they will always zerg your forums with support incidents for Slackware, Mandriva, Fedora, and other more obscure distros. They might even complain about a distro they compiled themselves!
Directx should not be dependent upon the Windows API. it is it's own API that uses C++. The only reason the API can't work on other OS is because Microsoft writes it so that it will only istall under certain OS. For instance Directx 10 can only install under Vista. Being that all Windows are based on the orginal Windows API I'm sure that Microsoft could have made it installable on Windows XP, but they want everyone to buy Vista so they make it only for Vista.
Originally posted by Flyte27 Directx should not be dependent upon the Windows API. it is it's own API that uses C++. The only reason the API can't work on other OS is because Microsoft writes it so that it will only istall under certain OS. For instance Directx 10 can only install under Vista. Being that all Windows are based on the orginal Windows API I'm sure that Microsoft could have made it installable on Windows XP, but they want everyone to buy Vista so they make it only for Vista.
Please, shut up. <- Seriously, you have no clue what you're talking about.
You're getting fanatic about the whole Microsoft wants you to buy Vista.
Boo... Hoo...
DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel?
Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System.
If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
Directx should not be dependent upon the Windows API. it is it's own API that uses C++. The only reason the API can't work on other OS is because Microsoft writes it so that it will only istall under certain OS. For instance Directx 10 can only install under Vista. Being that all Windows are based on the orginal Windows API I'm sure that Microsoft could have made it installable on Windows XP, but they want everyone to buy Vista so they make it only for Vista.
Please, shut up. <- Seriously, you have no clue what you're talking about.
You're getting fanatic about the whole Microsoft wants you to buy Vista.
Boo... Hoo...
DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel?
Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System.
If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
I don't agree. I believe anything that was written in C/C++ can be used on another OS. Yes there will need to be changes made to the runtime to make it work on another OS, but that doesn't mean it can't or shouldn't be done. .NET is surposed to be Microsofts answer to Java, but how can it be if it's not capable of making applications for other OS then Windows? As for directx 10 I do believe they could have easily made it installable on Windows XP. The two OS and in fact all Windows OS are built on the same code that was written in the C language. You can even see the way Microsoft milks the money out of their current OS. Look at how many versions they have split it up into. Some programs can only be installed with Buisness or Ultimate editions. I like to use the Windows OS a lot, but I find that Microsoft is getting rediculous with their money making schemes.
Originally posted by Flyte27 Directx should not be dependent upon the Windows API. it is it's own API that uses C++. The only reason the API can't work on other OS is because Microsoft writes it so that it will only istall under certain OS. For instance Directx 10 can only install under Vista. Being that all Windows are based on the orginal Windows API I'm sure that Microsoft could have made it installable on Windows XP, but they want everyone to buy Vista so they make it only for Vista.
Please, shut up. <- Seriously, you have no clue what you're talking about.
You're getting fanatic about the whole Microsoft wants you to buy Vista. Boo... Hoo... DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel? Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System. If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
I don't agree. I believe anything that was written in C/C++ can be used on another OS. Yes there will need to be changes made to the runtime to make it work on another OS, but that doesn't mean it can't or shouldn't be done. .NET is surposed to be Microsofts answer to Java, but how can it be if it's not capable of making applications for other OS then Windows? As for directx 10 I do believe they could have easily made it installable on Windows XP. The two OS and in fact all Windows OS are built on the same code that was written in the C language. You can even see the way Microsoft milks the money out of their current OS. Look at how many versions they have split it up into. Some programs can only be installed with Buisness or Ultimate editions. I like to use the Windows OS a lot, but I find that Microsoft is getting rediculous with their money making schemes.
Again, fundamental misconception of the "concept".
Java has different JVMs coming from different vendors, and not the same codebase.
Microsoft even had J++ which was certified for some early levels of Java (the libraries and syntax, disregarding the proprietary extensions).
.NET being cross platform is achieved by the standard that dictates how .NET works under the hood. The Common Language Runtime and it's type system, etc. Just because something is written in C or C++ doesn't guarantee cross platform. The only thing cross platform about C and C++ are the syntax and the standard libraries - that is why these libraries are standardized.
That is like saying that MFC should be able to run on Linux because it is a C++ class library, even when it is so tightly coupled to the Win32 API.
Do you think Linux kernel drivers should be able to run on Windows because they are cross platform? Have you ever wondered why driver support is so horrible on Linux for so many consumer hardware devices even though the code contains alot of C or C++?
Java runs on different platforms because it is C++ and also because the necessary modifications have been made to facilitate that - also, all of Java's libraries are written in Java (the Runtime and compiler are written in C/C++) - just like Microsoft .NET (Libraries written in C# maybe with some C++ interop code, I haven't looked at the code).
The problem with cross platform .NET isn't what language it is written in. That is a fundamental misunderstanding of this that you have. The fundamental problem with .NET is the library dependencies that it has. It is tightly coupled to the Win32 API and that requires such a large portion of it to be rewritten for other platforms (a HUGE portion of the BCL) that porting it would be a bad.
This is the same as Borland's Visual Class Library. When Borland released Kylix (Delphi for Linux) they had to rewrite their VCL using Qt because the VCL is tightly coupled to the Win32 API. Why would .NET be any different, when it is much bigger than that. In the end the investment proved to be too much for the little benefit that was gotten from that project. It was filled with bugs and there were 1000 Linux distros out there with users bugging Borland about problems when they didn't want to pay for a commercial (i.e. supported) Linux distro (SuSE, RHEL, Mandrake).
Stop assuming that C/C++ code is instantly portable, when there are 3rd party library dependencies involved. If there is a library only available on Linux, then the software simply will not compile on Windows. That is why these cross platform and open source libraries are so popular. The Win32 API, however, is not one of them.
Most of the Mono libraries as well as pretty much the entire toolset [that mirrors what they have that is comparable to Microsoft .NET] is pretty much a complete rewrite and re-implementation of the existing solution on Windows.
C/C++ != cross platform. The only time you can guarantee cross platform compilation is when you are using the standard libraries. That is where the protection of the language standard ends. That doesn't even include the fact that almost all compiler vendors have proprietary extensions that prevent software from compiling with other compilers (which can impede cross-platform compilation). There was a LONG time when the Linux kernel was impossible to compile with other Linux compilers (like Intel's compiler) because they were dependent on proprietary extensions. I don't know what the state of that is today, since Intel supports now a large number of GCC extensions, but that is the way things used to be for alot of Linux software and libraries developed with GCC.
Again I don't care for your Anti-Microsoft stuff. You have proven in this thread to lack fundamental knowledge about the design of Linux, Windows, and the various characteristics and libraries in dicussion.
There is no way Microsoft .NET or DirectX can be recompiled on Linux with "a few changes". The changes required would be so huge that it would probably be easier to rewrite it. The CLR and C#/VB standards are there to aid other vendors in providing solutions that would offer compatibility with the Microsoft offerings. People who want them are free to write their own and/or support a solution already in development (e.g. Mono). Please do tell me that you would be willing to rewrite system components for your Operating System, or something as huge as the .NET Framework/platform to run on an incompatible operating system that offers little to no benefit (or even competition) to you business strategy. Microsoft is a business, not the Goodwill. They are not there to provide solutions to competing platforms, especially given how they have released more than enough information to aid them in providing their own solution.
If you want DirectX and .NET for Linux, you are more than encouraged to form a business/corporation and pay developers 6-8 figure salaries to develop it for you, and those who want it - like they have.
This is not a Linux vs. Windows or Microsoft vs. The World discussion. I am just setting the record straight because what you say is false to the point of laughable.
Directx should not be dependent upon the Windows API. it is it's own API that uses C++. The only reason the API can't work on other OS is because Microsoft writes it so that it will only istall under certain OS. For instance Directx 10 can only install under Vista. Being that all Windows are based on the orginal Windows API I'm sure that Microsoft could have made it installable on Windows XP, but they want everyone to buy Vista so they make it only for Vista.
Please, shut up. <- Seriously, you have no clue what you're talking about.
You're getting fanatic about the whole Microsoft wants you to buy Vista.
Boo... Hoo...
DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel?
Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System.
If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
I don't agree. I believe anything that was written in C/C++ can be used on another OS. Yes there will need to be changes made to the runtime to make it work on another OS, but that doesn't mean it can't or shouldn't be done. .NET is surposed to be Microsofts answer to Java, but how can it be if it's not capable of making applications for other OS then Windows? As for directx 10 I do believe they could have easily made it installable on Windows XP. The two OS and in fact all Windows OS are built on the same code that was written in the C language. You can even see the way Microsoft milks the money out of their current OS. Look at how many versions they have split it up into. Some programs can only be installed with Buisness or Ultimate editions. I like to use the Windows OS a lot, but I find that Microsoft is getting rediculous with their money making schemes.
Again, fundamental misconception of the "concept".
Java has different JVMs coming from different vendors, and not the same codebase.
Microsoft even had J++ which was certified for some early levels of Java (the libraries and syntax, disregarding the proprietary extensions).
.NET being cross platform is achieved by the standard that dictates how .NET works under the hood. The Common Language Runtime and it's type system, etc. Just because something is written in C or C++ doesn't guarantee cross platform. The only thing cross platform about C and C++ are the syntax and the standard libraries - that is why these libraries are standardized.
That is like saying that MFC should be able to run on Linux because it is a C++ class library, even when it is so tightly coupled to the Win32 API.
Do you think Linux kernel drivers should be able to run on Windows because they are cross platform? Have you ever wondered why driver support is so horrible on Linux for so many consumer hardware devices even though the code contains alot of C or C++?
Java runs on different platforms because it is C++ and also because the necessary modifications have been made to facilitate that - also, all of Java's libraries are written in Java (the Runtime and compiler are written in C/C++) - just like Microsoft .NET (Libraries written in C# maybe with some C++ interop code, I haven't looked at the code).
The problem with cross platform .NET isn't what language it is written in. That is a fundamental misunderstanding of this that you have. The fundamental problem with .NET is the library dependencies that it has. It is tightly coupled to the Win32 API and that requires such a large portion of it to be rewritten for other platforms (a HUGE portion of the BCL) that porting it would be a bad.
This is the same as Borland's Visual Class Library. When Borland released Kylix (Delphi for Linux) they had to rewrite their VCL using Qt because the VCL is tightly coupled to the Win32 API. Why would .NET be any different, when it is much bigger than that. In the end the investment proved to be too much for the little benefit that was gotten from that project. It was filled with bugs and there were 1000 Linux distros out there with users bugging Borland about problems when they didn't want to pay for a commercial (i.e. supported) Linux distro (SuSE, RHEL, Mandrake).
Stop assuming that C/C++ code is instantly portable, when there are 3rd party library dependencies involved. If there is a library only available on Linux, then the software simply will not compile on Windows. That is why these cross platform and open source libraries are so popular. The Win32 API, however, is not one of them.
Most of the Mono libraries as well as pretty much the entire toolset [that mirrors what they have that is comparable to Microsoft .NET] is pretty much a complete rewrite and re-implementation of the existing solution on Windows.
C/C++ != cross platform. The only time you can guarantee cross platform compilation is when you are using the standard libraries. That is where the protection of the language standard ends. That doesn't even include the fact that almost all compiler vendors have proprietary extensions that prevent software from compiling with other compilers (which can impede cross-platform compilation). There was a LONG time when the Linux kernel was impossible to compile with other Linux compilers (like Intel's compiler) because they were dependent on proprietary extensions. I don't know what the state of that is today, since Intel supports now a large number of GCC extensions, but that is the way things used to be for alot of Linux software and libraries developed with GCC.
Again I don't care for your Anti-Microsoft stuff. You have proven in this thread to lack fundamental knowledge about the design of Linux, Windows, and the various characteristics and libraries in dicussion.
There is no way Microsoft .NET or DirectX can be recompiled on Linux with "a few changes". The changes required would be so huge that it would probably be easier to rewrite it. The CLR and C#/VB standards are there to aid other vendors in providing solutions that would offer compatibility with the Microsoft offerings. People who want them are free to write their own and/or support a solution already in development (e.g. Mono). Please do tell me that you would be willing to rewrite system components for your Operating System, or something as huge as the .NET Framework/platform to run on an incompatible operating system that offers little to no benefit (or even competition) to you business strategy. Microsoft is a business, not the Goodwill. They are not there to provide solutions to competing platforms, especially given how they have released more than enough information to aid them in providing their own solution.
If you want DirectX and .NET for Linux, you are more than encouraged to form a business/corporation and pay developers 6-8 figure salaries to develop it for you, and those who want it - like they have.
This is not a Linux vs. Windows or Microsoft vs. The World discussion. I am just setting the record straight because what you say is false to the point of laughable.
I really disagree with you still. If you want to laugh at me for what I say thats OK with me. Windows API is not neccessarily Win32 API. It can be Win16 or Win64 depending on the OS. Microsoft calls it the Windows API. Second I realize things like dlls are compiled just for the Windows API and only work with the Windows API. I also know that the STD libraries are the only ones that work on all platforms. That doesn't mean that the code can't be changed to work on other platforms. Microsoft may not be good will, but they can modify their code to work with other OS if they wanted. Obviously MFC is a lot different then Directx. MFC is basically the Windows API in a more object oriented structure and is used to build programs using the WIndows API. .NET is a bit different. .NET has it's own runtime similar to Java. .NET is basically a layer to access the code in the Windows API which makes it easier for people to program. Accessing the Windows API using C or C++ can be an ugly buisness. A lot of this comes from the fact that Microsoft continues to build upon the original Windows API written in C instead of building something new. Being that .NET is just a layer to access the Windows API dlls and the code within them it's very possible for Microsoft to develop an installable runtime for other OS that is coded for them. It doesn't seem farfetched to me except that Microsoft is making a lot of money. At any rate I am not anti Microsoft, but as I said their prices and money making schemes are getting silly of late. If you are happy with one company controlling everything and setting any price/rules they want for their product thats fine with me. Personally I don't like it. I would like to see some competition.
Win32 API is Windows API. It is a term that sprung up in the mid-90s to differentiate it from the Win16 API. One is for 32-bit applications and one is for 16-bit applications. There is also Win64 which includes APIs that can be used neither in 16 nor 32 bit applications.
If you don't understand any of this, that is the reason why you disagree.
You simply don't know what you're talking about.
I don't laugh at you, but I did write these essays to hopefully educate you on some of these things.
If you still believe that Windows API and Win32 API are different things than you need more help than I can give you.
I didn't read the rest of your post, because I would only end up writing another essay trying to debunc the false stsatements in your post. Everything that needs to be said are in my other posts. Feel free to read them.
Must be getting desperate if you are now trying to argue that Windows API and Win32 API is not the same thing. Windows 16/32/64-Bit Application Programming Interfaces = Windows API.
I'm suprised you would even go along with this argument. It's a rhetorical question to ask any distinction between the two (beyond the obvious i.e. you can't use 32-bit functions in Win 3.1x except for those supported by Win32s subsystem).
Just stop... This is beyond educational and bodering on the rediculous.
Win32 API is Windows API. It is a term that sprung up in the mid-90s to differentiate it from the Win16 API. One is for 32-bit applications and one is for 16-bit applications. There is also Win64 which includes APIs that can be used neither in 16 nor 32 bit applications. If you don't understand any of this, that is the reason why you disagree. You simply don't know what you're talking about. I don't laugh at you, but I did write these essays to hopefully educate you on some of these things. If you still believe that Windows API and Win32 API are different things than you need more help than I can give you. I didn't read the rest of your post, because I would only end up writing another essay trying to debunc the false stsatements in your post. Everything that needs to be said are in my other posts. Feel free to read them. Must be getting desperate if you are now trying to argue that Windows API and Win32 API is not the same thing. Windows 16/32/64-Bit Application Programming Interfaces = Windows API. I'm suprised you would even go along with this argument. It's a rhetorical question to ask any distinction between the two (beyond the obvious i.e. you can't use 32-bit functions in Win 3.1x except for those supported by Win32s subsystem). Just stop... This is beyond educational and bodering on the rediculous.
I'm sorry, but I said that in my post. Perhaps you did not read the post. All I said was Microsoft terms it the Windows API because there are different flavors of it. Yes I know that Win16 is the old 16 bit version of the Windows API that ran 16 bit applications. I know that Win32 is the current incarnation of Windows that will only accept up to 2 gig of memory and doesn't fully utilize the 64 bit proccessors in existence today. Then there is the Win64 which will be the future of Windows and is already in use by some people which allows for more then 2 gig of memory and also allows for 64 bit applications to be run on it if they are coded to take advantage of it. Strangely I'm not sure what any of this has to do with the points I made in my previous post as I'm pretty sure I was accurate on my points. First you compared MFC to Directx which is wrong. MFC is the Windows API using C++ basically. It's an easier way to build Windows applications. Directx is it's own API. Even though it has some Windows dependencies the runtime should be able to be installed on older verisons of Windows OS at the very least. In essence it should be able to be modified to work on another OS. Weather that is to difficult and a waste of Microsofts time is another issue.
MFC is not the Windows API. There is no reason to rewrite the Windows API in C++, since the C code is callable from C++. Lol. Where the hell do you get these retarded ideas from. MFC is a wrapper around the Windows API. It is what we call an Application Framework. There were other frameworks. For example, Borland's ObjectWindows Library used to compete with MFC. Now Borland has the Visual Component Library for Delphi and C++Builder. There is also Qt, wxWidgets, FOX, etc. Anything that can be done with these frameworks can be done with the Windows API. They are just there to ease development and make applications easier to maintain and structure (they are object oriented frameworks) Think what you want. I'm tired talking to you. This is beyond rediculous, and you definitely aren't a software developer (like I am) because you wouldn't even think twice about embarassing youself posting this dribble.
You were not accurate on your points. All of your points are incorrect and WRONG. You actually have no damn clue what the hell your talking about. Go to Wikipedia or something and get a clue, IMO. I just realized that I never really met a stupid person before, until I started posting on this forum in this thread.
ROFL. Win32 has nothing to do with how much RAM windows can access. That is a design in the OS, not the API. DID YOU KNOW THAT THERE ARE 32-BIT VERSIONS OF WINDOWS SERVER (WIN32) THAT CAN ACCESS UP TO AND OVER 4GB RAM? Please, continue to talk this shit and own yourself on pretty much every point. Win64 is not all that different from Win32 except it includes functions that are exclusive to 64-bit architectures. Same for Win32, it included functions that were not included in 16-Bit Windows. All Windows OSes are backwards compatible, for the most part (Win32 can run Win16 Apps, Win64 can run Win32 Apps).
Also, Windows XP 32-Bit can access almost 3.5 GB of RAM. Please be more incorrect. Maybe you can only access 2GB because you have a crappy MOBO with only 2 DDR RAM slots for 2GB Max.
The way you are explaining this is not only wrong, but beyond rediculous. You are pretty much incomprehensible of this so I will have to say farewell and quite reading and posting in this thread.
Bye Bye friend. Hope you learn something soon.
P.S. I used to think no one was stupid until I started participating in this thread. First the Linux shit (which the person never replied to my posts on that cause he knew he was dead wrong) and now this dreadfully obvious Windows stuff which doesn't even relate to the topic of the thread...
MFC is not the Windows API. There is no reason to rewrite the Windows API in C++, since the C code is callable from C++. Lol. Where the hell do you get these retarded ideas from. MFC is a wrapper around the Windows API. It is what we call an Application Framework. There were other frameworks. For example, Borland's ObjectWindows Library used to compete with MFC. Now Borland has the Visual Component Library for Delphi and C++Builder. There is also Qt, wxWidgets, FOX, etc. Anything that can be done with these frameworks can be done with the Windows API. They are just there to ease development and make applications easier to maintain and structure (they are object oriented frameworks)
Think what you want. I'm tired talking to you. This is beyond rediculous, and you definitely aren't a software developer (like I am) because you wouldn't even think twice about embarassing youself posting this dribble. You were not accurate on your points. All of your points are incorrect and WRONG. You actually have no damn clue what the hell your talking about. Go to Wikipedia or something and get a clue, IMO. I just realized that I never really met a stupid person before, until I started posting on this forum in this thread. ROFL. Win32 has nothing to do with how much RAM windows can access. That is a design in the OS, not the API. DID YOU KNOW THAT THERE ARE 32-BIT VERSIONS OF WINDOWS SERVER (WIN32) THAT CAN ACCESS UP TO AND OVER 4GB RAM? Please, continue to talk this shit and own yourself on pretty much every point. Win64 is not all that different from Win32 except it includes functions that are exclusive to 64-bit architectures. Same for Win32, it included functions that were not included in 16-Bit Windows. All Windows OSes are backwards compatible, for the most part (Win32 can run Win16 Apps, Win64 can run Win32 Apps). Also, Windows XP 32-Bit can access almost 3.5 GB of RAM. Please be more incorrect. Maybe you can only access 2GB because you have a crappy MOBO with only 2 DDR RAM slots for 2GB Max. The way you are explaining this is not only wrong, but beyond rediculous. You are pretty much incomprehensible of this so I will have to say farewell and quite reading and posting in this thread. Bye Bye friend. Hope you learn something soon. P.S. I used to think no one was stupid until I started participating in this thread. First the Linux shit (which the person never replied to my posts on that cause he knew he was dead wrong) and now this dreadfully obvious Windows stuff which doesn't even relate to the topic of the thread...
Most CPUs are designed so that the contents of a single integer register can store the address (location) of any datum in the computer's virtual memory. Therefore, the total number of addresses in the virtual memory – the total amount of data the computer can keep in its working area – is determined by the width of these registers. Beginning in the 1960s with the IBM System/360, then (amongst many others) the DEC VAX minicomputer in the 1970s, and then with the Intel 80386 in the mid-1980s, a de facto consensus developed that 32 bits was a convenient register size. A 32-bit register meant that 232 addresses, or 4 GB of RAM, could be referenced. At the time these architectures were devised, 4 GB of memory was so far beyond the typical quantities (16 MB) available in installations that this was considered to be enough "headroom" for addressing. 4 GB addresses were considered an appropriate size to work with for another important reason: 4 billion integers are enough to assign unique references to most physically countable things in applications like databases.
However, by the early 1990s, the continual reductions in the cost of memory led to installations with quantities of RAM approaching 4 GB, and the use of virtual memory spaces exceeding the 4-gigabyte ceiling became desirable for handling certain types of problems. In response, a number of companies began releasing new families of chips with 64-bit architectures, initially for supercomputers and high-end workstation and server machines. 64-bit computing has gradually drifted down to the personal computer desktop, with some models in Apple's Macintosh lines switching to PowerPC 970 processors (termed "G5" by Apple) in 2002 and to 64-bit x86-64 processors in 2003 (with the launch of the AMD Athlon 64), and with x86-64 processors becoming common in high-end PCs.
The emergence of the 64-bit architecture effectively increases the memory ceiling to 264 addresses, equivalent to approximately 17.2 billion gigabytes, 16.8 million terabytes, or 16 exabytes of RAM. To put this in perspective, in the days when 4 MB of main memory was commonplace, the maximum memory ceiling of 232 addresses was about 1,000 times larger than typical memory configurations. Today, when over 2 GB of main memory is common, the ceiling of 264 addresses is about ten billion times larger, i.e. ten million times more headroom than the 232 case.
Most 64-bit microprocessors on the market today have an artificial limit on the amount of memory they can address, because physical constraints make it highly unlikely that one will need support for the full 16.8 million terabyte capacity. For example, the AMD Athlon X2 has a 40-bit address bus and recognizes only 48 bits of the 64-bit virtual address[1]. The newer Barcelona X4 supports a 48-bit of physical address and 48 bits of the 64-bit virtual address.
The main point is that Vista 64 bit can use more memory and I never said it was tied to the OS/API in my post. I was a bit off in my numbers of how much is the maximum RAM a 32 bit OS can use sorry. You are wrong in your saying that it's tied to the OS though. As stated in the previous paragraph it's tied to the CPU. You might say that it's tied to the API though as Win32 API is restricted to 4 gig of RAM.
The Microsoft Foundation Class Library (also Microsoft Foundation Classes or MFC) is a library that wraps portions of the Windows API in C++ classes, including functionality that enables them to use a default application framework. Classes are defined for many of the handle-managed Windows objects and also for predefined windows and common controls.
I was more or less correct in my assesment here. If you access the Windows API directly using C++ you are basically coding it in the C language. C++ adds object oriented progamming functionality to the C language. MFC uses this object oriented programming to create "wrappers" as you said which are used to more easily make programs using the Windows API. Basically this is what I said in my posts without using the term wrappers.
I don't believe that you have a good understanding of programming if you think that MFC and Direct X are comparable. You have yet to address this, but as you said MFC is a wrapper around the Windows API. This means it's basically the Windows API, but it's got C++ object oriented code wrapped around it to make it easier for the programmer to build programs with the Windows API. DirectX is it's own API indepedent of the Windows API. It has it's own code for outputing to the screen, taking input from the keboard, mouse, and other input devices, and whatever else you need. It was made to work with the Windows API, but it can be modified to work through other OS I'm sure. It might take a lot of work to do so, but I'm sure it's possible. That is the only point I was trying to make.
You also made a point that Winows APIs are similar/backwards compatible. If you had actually read my posts thats what I said and if they are backwards compatible that means that DirectX 10 runtime should be installable on Windows XP at the very least. Microsoft makes it only available for Vista because they want people to buy it.
Just thought I'd mention you are very rude and did not seem to read my post accurately for the most part. You took only the points I made minor mistakes on and then used points I made in previous posts like they were your points. Please if you are going to insult someone at least get things right.
Now have fun feeling like you are the guru of coding and know everything about programming.
You're still 100% wrong, and don't change the subject. Lol. Looks like you skipped ComSci 101...
100% wrong about what exactly? You may be right that it's to difficult to make Directx available for other OS as it would cost Microsoft to much money, but you have also be wrong on some of the points you made. It seems like you think you know a lot, but in actuality you know about as much as I do. Then you fling insults around at people like it's no big deal to do so. I think if you take this attitude with you it's goign to be difficult finding a job in programming. Not may people know everything about how a computer works or how each programming langauge works or how each operating system works. Most people specialize in a certain aspect of it and these people are the ones likely to know the best answers. Not us who are for the most part are guessing based on some general knowledge that we have gained through reading some programming books or taking some computer/programming classes.
Excuse me for going back on topic, but I have a few linux game links to post.
djl.tuxfamily.org/index_en.php Des Jeux Linux is a linux gaming repository and game manager, inspired by Valve's Steam service. Lots of interesting features and tools, check it out!
www.playdeb.net/ PlayDeb is a Debain/Ubuntu games repository, dedicated to providing up to date versions of games, installable directly from their webpage.
happypenguin.org/ The Linux Game Tome is a list of most games available for Linux, free and non-free. The site is a tad archaic, but the game list gets updated regularly.
libregamewiki.org/Main_Page The Libre Game Wiki is a wiki dealing with free as in speech games, all working on linux.
So yeah, lots of cool linux games between those sites and services, esspecially djl. I'd be much obliged if OP updates his post.
100% wrong about what exactly? You may be right that it's to difficult to make Directx available for other OS as it would cost Microsoft to much money, but you have also be wrong on some of the points you made. It seems like you think you know a lot, but in actuality you know about as much as I do.
Do you work for Microsoft? I don't, I know for sure you don't. Cuase if you did, you'd know better. All I know is that you are wrong. Anything beyond that isn't really a factor in the context of what this discussion has become. If you are still trying to prove me wrong after having given you MUCH proof of how you are (and you have given me nothing?), I would have to say you are dumber than I had thought you were...
My comment about ComSci I was a bit in jest, but also quite serious. Indeed, most people around here who go into Computer Science or related fields (Engineering, e.g.) do take several ComSci-related courses in High School. In other words, this know this shit before they graduate high school. 5 Computer Science courses in High School, Years of ComSci-related training in the Navy (alot of that Targetted at UNIX but also includes custom/embedded systems), and years of College later (I didn't graduate yet, but almost there!) - it would be a travesty to have your line of thinking after all I have learned.
You are the type of programmer that cause start-ups to fail and go bankrupt. These ideas you have aren't realistic, that is the reason why they weren't implemented.
Apart from the fact that it would be incredibly and exceedingly difficult to port DirectX to Linux/UNIX - those OSes have such non-factor Desktop Market-shares (speaking of computer desktop users, what gamers fall into) that it wouldn't be worth the investment anyways.
Borland International, Inc. has two programming tools called Delphi and C++Builder. In 2001 they ported Delphi to Linux and named it Kylix. By the time 2003 came along the project was cancelled. They had to rewite their entire Visual Component Library for Linux to use Qt (CLX it was called there) and it was buggy. By that time both Delphi and C++Builder were ported to Linux. Part of the biggest issue, however, was the existence of 10-20 popular Linux distros in use which made it near impossible to support Linux as a host OS for a native application (Jave and web applications are fundamentally different).
The entire VCL had to be REWRITTEN to be cross-platform because of the Win32 dependencies of it. They rewrote it to use Qt as an underlying graphics framework: CLX was only an abstraction of Qt which was only an abstraction of Win32/Xlib. This is only an application framework - nothing on the level of a system component like DirectX (so much of a system components that it can't even be uninstalled after you install it). Please do tell me how DirectX can be ported to Linux/UNIX more easily than Borland's VCL. Those are hundreds of thousands - millions (developers, licenses, marketing, support, etc.) of USD wasted in this product. Microsoft is not stupid - they tried it with Macintosh - an infinitely better Consumer OS than Linux, especially, now that it's a UNIX-type also with more marketshare. Good Luck.
Reference: Borland sold the DevTools devision off: http://www.codegear.com for information on the projects they have that didn't fail horribly.
Then you fling insults around at people like it's no big deal to do so. I think if you take this attitude with you it's goign to be difficult finding a job in programming.
Lol? Don't be stupid, and you won't be called out as stupid...
Not may people know everything about how a computer works or how each programming langauge works or how each operating system works.
No, I just know how the Operating Systems I have studied work. I administered a Unix network in the Navy (HP-UX). I know how UNIX works (and Linux also). Programming languages only differ in semantics and the scope of capabilities that their developers or standards committee wishes for them. We can get rid of programming languages and use 1's and 0's and what I said still makes sense as long as the Windows and UNIX/Linux platforms differ.
This is not like porting something that was originally coded for Windows Vista to Windows XP (back porting), this is a cross platform port of a system component and it is difficult. It's like saying you can go recompile Windows a device drive on Linux - an ignorant statement to make, at best.
In any case, this has very little to do with what the discussion was about. DirectX is not portable to Linux, and making it portable to Linux would require several extensive rewrites of it. The Linux and Windows driver models aren't even equivalent. Do you know what DirectX encompasses? It is only partly comparable to OpenGL (which is quite limited in scope, comparatively).
Most people specialize in a certain aspect of it and these people are the ones likely to know the best answers. Not us who are for the most part are guessing based on some general knowledge that we have gained through reading some programming books or taking some computer/programming classes.
Disagree. I am not guessing. I am telling you the facts. If that is the way you think about what you are saying, then you really don't have the right to post anything in this thread. At least have a little faith in what you're telling people. Know what you're talking about, or shut the hell up.
Yes, there are Domain Specialties, but these concepts are domain-independent and do not require any experties (i.e. if you don't have a Ph.D. and are an expert in AI, STFU). Let's not go there.
Comments
That's a nice tactful advantage that you give, but servers as well as business website that run on high-cost mainframes and other expensive systems (IBM, Sun, HP hardware, etc.) get hacked all the time. A lot of luck plays its part in hacking (as well as skill). You just have to hope that these security vulnerabilities were not patched up in the server's OS, and hacking into the system doesn't always prove to be a vulnerability in the server operating system. There could be critical networking software which had a security vulnerability as well - like the web server (IIS and Apache both have to get patched, in addition to the Operating system and other applications/libraries) or database server. Most systems use third party or hardware firewalls, and that can be an issue that is out of control with the developers of the server operating system. That doesn't make sense..,
Windows has had such a separation for a long time - since the NT3-4 days which goes all the way back to 1992. It's called not running on an account with Admin Privileges. Windows has had several levels of account access since Windows NT, but with the migration from Windows 9x to NT based systems like Windows 2000 and later Windows XP, users insisted on running their machines in a manner that was very 9x-like, and hence extremely unsecure. If you run on a normal "User" account in Windows, a virus/trojan cannot install itself on you machine because you account does not have the priviledges. To install software using a normal User account on Windows, you HAVE to "Run As..." the application and supply the credentials of a Power User or System Administrator. There is little difference between Windows and Linux in that respect. Run As... = sudu = su -c ... etc. etc.
The only difference is that Windows users did not "grow" up using computers that had such finely grained security aspects enabled by default. Most OEM systems come with a premade Administrator account (You have to have one, outside of the in-built Administrator account) and users simply use that with no regards for security.
Vista UAC is just a layer on top of what Windows already had, it is similar to Defense+ and other such type of mechanisms in Anti-Virus and Firewall applications that annoy you and ask you if you want to allow an application to do this, or that. It has nothing to do with account security; and the notion that running Windows on a normal user account would disallow the installation of applications, and, accessing/changing of system files/settings by malicious applications unless you had a blank or template Administrator password for that application to use... Unfortunately, that is also the default on alot of OEM Windows Machines (since the OEM install does not prompt for a password on XP Pro-based systems like the installation CD/normal installation), and Windows Home Edition installs by default with a Blank Administrator password. In the end, it's up to the user to change these things, though, and they just aren't educated enough, as a whole, to know these things (Windows has a very BROAD user spectrum, unlike Linux).
Try harder? I don't know what else to say. You claim to know so much about both OSes, yet you don't know the difference between account security and User Access Control. UAC is exactly what it is, control. It isn't "restraint", and that's what normal Windows User Accounts and Linux accounts (not in the Root group) are. Accounts that restrain the user to performing tasks that cannot alter or change the system in any sort of detrimental fashion.
Have you tried installing a program on a Windows normal User account yet (in the Users group, and not belonging also to either the Power User or Administrator groups in addition)? I bet you run Windows under an Admin account? Lol.
XP User Account Types:
For example, if I want a normal User Account that can change network settings (in case you need to repair your connection, change your wireless network conection, etc.), use databack facilities; I can add the user to the three groups that encompass that functionality.
This user will not be able to install applications on the machine without running the setup application AS an account with Power User or Administrator Priviledges:
The account will also not be able to edit the registry or any folders other than his own folder ( C:Documents and Settings<User Name> ). Have fun getting virus infected on a Normal User account (you'd actually have to try a bit to succeed, to be honest), although you can still pass on virus infected files (if you have no anti-virus that will catch it, or if you use some crappy AV program like that shoddy GPL ClamWin crap that doesn't have an on-access scanner).
Also note that you can also run a command as another user from the command line (similar to sudo/su -c). You can also log in as another user on the command line to run other applications from the commandline (both GUI and console applications/commands, similar to using the su <UserName> command and supplying the login credentials in Linux/Unix). The difference between the Linux/Unix command line and Windows command line these days is highly cosmetic, especially with the porting of many Unix tools to he Windows operating system (i.e. Entire Operating Environments like Interix/MS Services for Unix and Cygwin that on Windows, or binary ports of Utilities from one Unix/Linux to Windows).
LOL @ Apple, which is basically a BSD kernel with Apple sugar on top. Apple had their own Operating System (pre-OSX Mac OS ending with the 9.x versions), and it was crappy. They owe alot to Open Source, too bad they don't give much back. I would expect most Open Source zealots to had Apple and Coninical more than they hate Microsoft. But alas, blind fanboyism gets the best of them.
I don't even wanna talk about their [Apple's] dongles and limiting of installing their OS only on overpriced Apple systems which use the same hardware as the average Intel Machine... You would hardly be smiling about them if they had to run on even a fraction of the machine configs that Windows has to run on (they control which configs they run on to only hardware they approve and test personally). People complain about Linux/BSD with hardware compatibility, and it would be the same as Apple if they went for a broader market. Anyways, they have to sell their overpriced machines to survive, and let's not forget that if it wouldn't be for MS Apple probably wouldn't even still be in existence.
P.S. My system will last just as long as yours. I dare any spyware or virus to install itself on my computer running under accounts with limited credentials, and with Admin accounts locked down (NTLM enabled and STRONG passwords). I can personally try to execute a document/image with a keylogged embedded in it and it will fail to install (I've tried, that's what Virtual Machines are for, testing stuff :P). Vista, XP, 2000, and NT4 - all the same (consumers didn't have ready access to NT-based systems until Windows XP).
I like the new ubuntu Linux. It's a lot more user friendly then past Linux distributions. It's still not as easy to use as Windows in terms of installing drivers via a GUI. Many times you will have to type Linux commands in a terminal window to get something done. Firefox doesn't look quite as good in Linux. I still prefer Internet Explorer as it seems to display most web pages correctly. Linux is very secure as you can't modify anything without entering the administrator password. Windows Vista is somewhat like that as well, but not quite the same. Linux isn't targeted for viruses because it's not used that much. You are likely safer browsing the web with it most of the time. Linux has a lot of free software from the community that you can install. If you don't have the software/driver included in the GUI it can be a pain to install the package/driver. I haven't had a lot of success using wine so far. Virtualbox is a good choice to be able to run Windows programs if needed, but can't run games. VMware is working on support for 3D acceleration in a virtual evironment.
Ubuntu isn't harder than the other distributions... All (or at least most) distributions use the same core, with a few minor differences. Some distributions made it a little harder, others made it a bit easy. But it's all pretty much the same. What IS different between distributions is stability. Ubuntu is pretty stable I guess, as it's so popular. But it's less easy, for me, than Sabayon, because Sabayon comes with pre-installed fully working ATI drivers.
The problem lies with OpenGL still working worse than DX. Game designers not focussing on Linux (more and more seem to go for C#/XNA which is aimed at pc/xbox. When they used C++ Linux at least had a chance.). And uptill a few months ago, broken drivers. Since ATI hired that company behind SuSe (forgot its name), things are going smoothly. BTW; Nvidia actually performs better on Linux/OpenGL than on Windows/DX!
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
Ubuntu isn't harder than the other distributions... All (or at least most) distributions use the same core, with a few minor differences. Some distributions made it a little harder, others made it a bit easy. But it's all pretty much the same. What IS different between distributions is stability. Ubuntu is pretty stable I guess, as it's so popular. But it's less easy, for me, than Sabayon, because Sabayon comes with pre-installed fully working ATI drivers.
The problem lies with OpenGL still working worse than DX. Game designers not focussing on Linux (more and more seem to go for C#/XNA which is aimed at pc/xbox. When they used C++ Linux at least had a chance.). And uptill a few months ago, broken drivers. Since ATI hired that company behind SuSe (forgot its name), things are going smoothly. BTW; Nvidia actually performs better on Linux/OpenGL than on Windows/DX!
The only problem with that is it's a lot easier to install and run a game in Winows then to try and get it to work with wine. Most games are made to use windows and directx. There is probably the biggest issue aside from not having all Linux operations incorporated into the GUIs that are available.
That is true, but Microsft is making it hard for linux/mac to break through. They've been focussing on their C# with XNA. Developers go for it, because honestly, C# is a great language. But C# offers no possibilities to use it on linux/mac... People might complain about Microsoft, but they're damn smart. Just keep an eye out for companies releasing mmorpg's for pc/xbox, it is made with C#, which is MS's program language. You'll quickly see how fast MS has taken over the game world, and preventig developers from even trying to focus on other OS's.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
I do some programming myself and I believe C++ is still used a lot. Not all companies want to convert their code to c# and XNA. Also C# can't be used for consoles like PS3 and WII. C++ can I believe. Overall I prefer .NET Framework and XNA myself because it's easier to find/impliment the code you need faster and get it to work. .NET and .XNA are supposed to run on linux at some point "like java" though so I wouldn't say that Microsoft is trying to exclude everyone.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
Directx is just another API like the Windows API, but has 3D and other code that is written just for games. XNA is is a layer on top of directx to make it easier to code just like .NET is a layer on top of the windows API. In truth I'm sure Microsoft could make directx installable on other OS if they really wanted to do so. I would like to use another OS other then Windows as I don't like the way Microsoft $ makes you activate every copy your buy. They do make some nice products, but they charge a rediculous amount of money for them. I'm also supicious of what Microsoft $ puts in their OS. I wonder if they have code they sends them your information even though they don't really use it as of yet.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
Directx is just another API like the Windows API, but has 3D and other code that is written just for games. XNA is is a layer on top of directx to make it easier to code just like .NET is a layer on top of the windows API. In truth I'm sure Microsoft could make directx installable on other OS if they really wanted to do so. I would like to use another OS other then Windows as I don't like the way Microsoft $ makes you activate every copy your buy. They do make some nice products, but they charge a rediculous amount of money for them. I'm also supicious of what Microsoft $ puts in their OS. I wonder if they have code they sends them your information even though they don't really use it as of yet.
Okay, you seem to be misunderstanding a lot of things.
First of all, Microsft's .NET isnt framework installable on other operating systems. Mono is NOT Microsoft .NET. Mono is a .NET Implementation for Linux based on the C#/VB Language and CLR standards published by Microsoft for their .NET languages and "platform".
DirectX can not be made installable on other Operating Systems because of the Windows API dependencies - there are too many. DirectX is low-level software for windows, almost on the level of a Device driver. It isn't some DLL you copy to an application directory. That is why getting some games to run under WINE or Cedega is very difficult - and not all of them work making those solutions the source of skepticism. Lol... There is no Windows API on Linux (well, there's Cedega and Wine, but like I said above...), so you cannot simply move DirectX or any games written for DirectX over to Linux without major code overhauls (or hacks).
Another issue is that DirectX is not directly comparable to OpenGL. You have things like DirectDraw, Direct3D, DirectSound, DirectPlay, Animation, etc.. That is a huge/broad API range and those have ALOT of Win32 API dependencies. DirectX is so huge, that it is not possible to even support most of the games in existence that use it on Linux because it is extremely hard to provide compatibility for all its functionality across all parts of it... Cool, the 3D works, but now you have no sound... Or the sound works, but now you can't use you joystick, etc. etc.
.NET has Win32 API dependencies, that is why all the libraries cannot be cross platform. How can Microsoft release Windows.Forms Libraries for Linux, when it has Win32 API dependencies? All libraries like that have to be rewritten. Managed DirectX has DirectX dependencies, so again, cannot be cross platform.
3D applications either have to be tested under an emulation layer like WINE or Cedega throughout their entire development cycle to ensure that they will run correctly on Linux, or they have to be coded with OpenGL and use 3rd party libraries that are cross platform for things that OpenGL lacks, but is present in DirectX. DirectX is more of a game engine that OpenGL can hope to be. OpenGL is most just a 3D Graphics API and requires alot more add-ons to reach DirectX-type functionality.
C and C++ or cross platform languages, but you can't automatically assume that an application written for one OS will run on another OS unless you either stick to the default libraries (dictated by the standard), or make sure that all APIs that you use when developing a game are available on all target operating systems.
If your Macintosh application has Cocoa dependencies, you have to rewrite the GUI to something like Qt or GTK before it will compile and run o n Linux or Windows, because the libraries simply don't exist there.
Can you imagine the maintenance nightmare Microsoft would have if it released .NET for Linux, or XNA for Linux. There are like 1000 Linux distributes with subtle differences that can break a software package in existence. It's too costly and hardly intelligent. The money they save supporting their own OS is much > the net revenue they're generate if they had to support something like Linux. Apple computers are a much better market (of course, they have software for Macs so kinda obvious) because their platform is controlled by Apple which makes delegating support MUCH easier.
No matter how many times you tell users that you only support RHEL, Ubuntu, and SuSE: they will always zerg your forums with support incidents for Slackware, Mandriva, Fedora, and other more obscure distros. They might even complain about a distro they compiled themselves!
Edit; meh, I agree to the last post of the previous page then... First time I hate being the first post of the page, heh.
You know it, the best way to realize your dreams is waking up and start moving, never lose hope and always keep up.
This IS Microsoft you're talking about, if they can make a profit from it, they won't stop. The only way they'll change, is with a court order, something which the European parliament loves to do BTW. It won't be pc/xbox exclusive for ever, but Microsoft does want it to.
And you said it yourself, C# is faster, and since C# it should also go as fast as C++... Time is money, a lot of people like the xbox, etc. Forums recommend new learning programmers (like myself) to start learning C# rather than C++. Not only because C++ is harder, but they say it has some points which need some polishing, and which got old. Microsoft is working hard on C#, so it's pretty polished, and up-to-date.
Correct me if I'm wrong, but the original Windows OS was actually conded using the C language. Windows is still uses that orginal code to run even though it has added on to it with new versions of the OS. C++ is C with object oriented programming. Basically it replaces the C langauge for the most part. In the end some things will always have to be done using C++ as not everything will be possible using a high level langauge like C#. .NET is just a layer on top of Win32 which is a library of windows code. It makes it easier to find and impliment the code. This is good as long as maximum speed isn't an issue. Also .NET was surposed to be like Java in that it would be platfor indepentent. You just have to install the .NET runtime on the OS and most code should work. I don't think they have gotten to that point yet though.
.net isn't platform independent, by far. If it would, they would have made Mono for linux. Of course, Mono seems to do just fine, but it's not the same, just a good replacement. C# can be used for other OS's of course, at least I think so - if you can find the correct IDE. It's XNA that becomes the problem. Although i'm not sure if XNA excludes all possibilities for other OS's, but I'm pretty sure it'll get hard.
Directx is just another API like the Windows API, but has 3D and other code that is written just for games. XNA is is a layer on top of directx to make it easier to code just like .NET is a layer on top of the windows API. In truth I'm sure Microsoft could make directx installable on other OS if they really wanted to do so. I would like to use another OS other then Windows as I don't like the way Microsoft $ makes you activate every copy your buy. They do make some nice products, but they charge a rediculous amount of money for them. I'm also supicious of what Microsoft $ puts in their OS. I wonder if they have code they sends them your information even though they don't really use it as of yet.
Okay, you seem to be misunderstanding a lot of things.
First of all, Microsft's .NET isnt framework installable on other operating systems. Mono is NOT Microsoft .NET. Mono is a .NET Implementation for Linux based on the C#/VB Language and CLR standards published by Microsoft for their .NET languages and "platform".
DirectX can not be made installable on other Operating Systems because of the Windows API dependencies - there are too many. DirectX is low-level software for windows, almost on the level of a Device driver. It isn't some DLL you copy to an application directory. That is why getting some games to run under WINE or Cedega is very difficult - and not all of them work making those solutions the source of skepticism. Lol... There is no Windows API on Linux (well, there's Cedega and Wine, but like I said above...), so you cannot simply move DirectX or any games written for DirectX over to Linux without major code overhauls (or hacks).
Another issue is that DirectX is not directly comparable to OpenGL. You have things like DirectDraw, Direct3D, DirectSound, DirectPlay, Animation, etc.. That is a huge/broad API range and those have ALOT of Win32 API dependencies. DirectX is so huge, that it is not possible to even support most of the games in existence that use it on Linux because it is extremely hard to provide compatibility for all its functionality across all parts of it... Cool, the 3D works, but now you have no sound... Or the sound works, but now you can't use you joystick, etc. etc.
.NET has Win32 API dependencies, that is why all the libraries cannot be cross platform. How can Microsoft release Windows.Forms Libraries for Linux, when it has Win32 API dependencies? All libraries like that have to be rewritten. Managed DirectX has DirectX dependencies, so again, cannot be cross platform.
3D applications either have to be tested under an emulation layer like WINE or Cedega throughout their entire development cycle to ensure that they will run correctly on Linux, or they have to be coded with OpenGL and use 3rd party libraries that are cross platform for things that OpenGL lacks, but is present in DirectX. DirectX is more of a game engine that OpenGL can hope to be. OpenGL is most just a 3D Graphics API and requires alot more add-ons to reach DirectX-type functionality.
C and C++ or cross platform languages, but you can't automatically assume that an application written for one OS will run on another OS unless you either stick to the default libraries (dictated by the standard), or make sure that all APIs that you use when developing a game are available on all target operating systems.
If your Macintosh application has Cocoa dependencies, you have to rewrite the GUI to something like Qt or GTK before it will compile and run o n Linux or Windows, because the libraries simply don't exist there.
Can you imagine the maintenance nightmare Microsoft would have if it released .NET for Linux, or XNA for Linux. There are like 1000 Linux distributes with subtle differences that can break a software package in existence. It's too costly and hardly intelligent. The money they save supporting their own OS is much > the net revenue they're generate if they had to support something like Linux. Apple computers are a much better market (of course, they have software for Macs so kinda obvious) because their platform is controlled by Apple which makes delegating support MUCH easier.
No matter how many times you tell users that you only support RHEL, Ubuntu, and SuSE: they will always zerg your forums with support incidents for Slackware, Mandriva, Fedora, and other more obscure distros. They might even complain about a distro they compiled themselves!
Directx should not be dependent upon the Windows API. it is it's own API that uses C++. The only reason the API can't work on other OS is because Microsoft writes it so that it will only istall under certain OS. For instance Directx 10 can only install under Vista. Being that all Windows are based on the orginal Windows API I'm sure that Microsoft could have made it installable on Windows XP, but they want everyone to buy Vista so they make it only for Vista.
You're getting fanatic about the whole Microsoft wants you to buy Vista.
Boo... Hoo...
DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel?
Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System.
If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
You're getting fanatic about the whole Microsoft wants you to buy Vista.
Boo... Hoo...
DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel?
Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System.
If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
I don't agree. I believe anything that was written in C/C++ can be used on another OS. Yes there will need to be changes made to the runtime to make it work on another OS, but that doesn't mean it can't or shouldn't be done. .NET is surposed to be Microsofts answer to Java, but how can it be if it's not capable of making applications for other OS then Windows? As for directx 10 I do believe they could have easily made it installable on Windows XP. The two OS and in fact all Windows OS are built on the same code that was written in the C language. You can even see the way Microsoft milks the money out of their current OS. Look at how many versions they have split it up into. Some programs can only be installed with Buisness or Ultimate editions. I like to use the Windows OS a lot, but I find that Microsoft is getting rediculous with their money making schemes.
Java has different JVMs coming from different vendors, and not the same codebase.
Microsoft even had J++ which was certified for some early levels of Java (the libraries and syntax, disregarding the proprietary extensions).
.NET being cross platform is achieved by the standard that dictates how .NET works under the hood. The Common Language Runtime and it's type system, etc. Just because something is written in C or C++ doesn't guarantee cross platform. The only thing cross platform about C and C++ are the syntax and the standard libraries - that is why these libraries are standardized.
That is like saying that MFC should be able to run on Linux because it is a C++ class library, even when it is so tightly coupled to the Win32 API.
Do you think Linux kernel drivers should be able to run on Windows because they are cross platform? Have you ever wondered why driver support is so horrible on Linux for so many consumer hardware devices even though the code contains alot of C or C++?
Java runs on different platforms because it is C++ and also because the necessary modifications have been made to facilitate that - also, all of Java's libraries are written in Java (the Runtime and compiler are written in C/C++) - just like Microsoft .NET (Libraries written in C# maybe with some C++ interop code, I haven't looked at the code).
The problem with cross platform .NET isn't what language it is written in. That is a fundamental misunderstanding of this that you have. The fundamental problem with .NET is the library dependencies that it has. It is tightly coupled to the Win32 API and that requires such a large portion of it to be rewritten for other platforms (a HUGE portion of the BCL) that porting it would be a bad.
This is the same as Borland's Visual Class Library. When Borland released Kylix (Delphi for Linux) they had to rewrite their VCL using Qt because the VCL is tightly coupled to the Win32 API. Why would .NET be any different, when it is much bigger than that. In the end the investment proved to be too much for the little benefit that was gotten from that project. It was filled with bugs and there were 1000 Linux distros out there with users bugging Borland about problems when they didn't want to pay for a commercial (i.e. supported) Linux distro (SuSE, RHEL, Mandrake).
Stop assuming that C/C++ code is instantly portable, when there are 3rd party library dependencies involved. If there is a library only available on Linux, then the software simply will not compile on Windows. That is why these cross platform and open source libraries are so popular. The Win32 API, however, is not one of them.
Most of the Mono libraries as well as pretty much the entire toolset [that mirrors what they have that is comparable to Microsoft .NET] is pretty much a complete rewrite and re-implementation of the existing solution on Windows.
C/C++ != cross platform. The only time you can guarantee cross platform compilation is when you are using the standard libraries. That is where the protection of the language standard ends. That doesn't even include the fact that almost all compiler vendors have proprietary extensions that prevent software from compiling with other compilers (which can impede cross-platform compilation). There was a LONG time when the Linux kernel was impossible to compile with other Linux compilers (like Intel's compiler) because they were dependent on proprietary extensions. I don't know what the state of that is today, since Intel supports now a large number of GCC extensions, but that is the way things used to be for alot of Linux software and libraries developed with GCC.
Again I don't care for your Anti-Microsoft stuff. You have proven in this thread to lack fundamental knowledge about the design of Linux, Windows, and the various characteristics and libraries in dicussion.
There is no way Microsoft .NET or DirectX can be recompiled on Linux with "a few changes". The changes required would be so huge that it would probably be easier to rewrite it. The CLR and C#/VB standards are there to aid other vendors in providing solutions that would offer compatibility with the Microsoft offerings. People who want them are free to write their own and/or support a solution already in development (e.g. Mono). Please do tell me that you would be willing to rewrite system components for your Operating System, or something as huge as the .NET Framework/platform to run on an incompatible operating system that offers little to no benefit (or even competition) to you business strategy. Microsoft is a business, not the Goodwill. They are not there to provide solutions to competing platforms, especially given how they have released more than enough information to aid them in providing their own solution.
If you want DirectX and .NET for Linux, you are more than encouraged to form a business/corporation and pay developers 6-8 figure salaries to develop it for you, and those who want it - like they have.
This is not a Linux vs. Windows or Microsoft vs. The World discussion. I am just setting the record straight because what you say is false to the point of laughable.
You're getting fanatic about the whole Microsoft wants you to buy Vista.
Boo... Hoo...
DirectX has Windows API dependencies, many. To claim otherwise just makes you look stupid. You are basically claiming that DirectX can be compiled on other platforms with minimal changes, which is highly ambitions and quite retarded. You actually are trying to tell us that Microsoft refused to use its own [rather comprehensive] Win32 API when writing DirectX, in favor of reinventing the wheel?
Even .NET libraries have comprenensive and heavy Win32 API dependencies, and it offers its own libraries that are seemingly aimed at replacing it... DirectX isn't a productivity application written with a 3rd party [portable] windowing library like Qt or GTK, it's is system level software designed by Microsoft for the Windows Operating System.
If you want cross-platform graphics, Windows/Visual Studio comes with OpenGL libraries - use those instead. Stay away from DirectX. DirectX is not the way to go if you are developing a game for both Windows and Linux. In fact, it's quite a stupid decision and most other developers [period] would laugh at you for even thinking it is not dependent on Windows.
I don't agree. I believe anything that was written in C/C++ can be used on another OS. Yes there will need to be changes made to the runtime to make it work on another OS, but that doesn't mean it can't or shouldn't be done. .NET is surposed to be Microsofts answer to Java, but how can it be if it's not capable of making applications for other OS then Windows? As for directx 10 I do believe they could have easily made it installable on Windows XP. The two OS and in fact all Windows OS are built on the same code that was written in the C language. You can even see the way Microsoft milks the money out of their current OS. Look at how many versions they have split it up into. Some programs can only be installed with Buisness or Ultimate editions. I like to use the Windows OS a lot, but I find that Microsoft is getting rediculous with their money making schemes.
Again, fundamental misconception of the "concept".
Java has different JVMs coming from different vendors, and not the same codebase.
Microsoft even had J++ which was certified for some early levels of Java (the libraries and syntax, disregarding the proprietary extensions).
.NET being cross platform is achieved by the standard that dictates how .NET works under the hood. The Common Language Runtime and it's type system, etc. Just because something is written in C or C++ doesn't guarantee cross platform. The only thing cross platform about C and C++ are the syntax and the standard libraries - that is why these libraries are standardized.
That is like saying that MFC should be able to run on Linux because it is a C++ class library, even when it is so tightly coupled to the Win32 API.
Do you think Linux kernel drivers should be able to run on Windows because they are cross platform? Have you ever wondered why driver support is so horrible on Linux for so many consumer hardware devices even though the code contains alot of C or C++?
Java runs on different platforms because it is C++ and also because the necessary modifications have been made to facilitate that - also, all of Java's libraries are written in Java (the Runtime and compiler are written in C/C++) - just like Microsoft .NET (Libraries written in C# maybe with some C++ interop code, I haven't looked at the code).
The problem with cross platform .NET isn't what language it is written in. That is a fundamental misunderstanding of this that you have. The fundamental problem with .NET is the library dependencies that it has. It is tightly coupled to the Win32 API and that requires such a large portion of it to be rewritten for other platforms (a HUGE portion of the BCL) that porting it would be a bad.
This is the same as Borland's Visual Class Library. When Borland released Kylix (Delphi for Linux) they had to rewrite their VCL using Qt because the VCL is tightly coupled to the Win32 API. Why would .NET be any different, when it is much bigger than that. In the end the investment proved to be too much for the little benefit that was gotten from that project. It was filled with bugs and there were 1000 Linux distros out there with users bugging Borland about problems when they didn't want to pay for a commercial (i.e. supported) Linux distro (SuSE, RHEL, Mandrake).
Stop assuming that C/C++ code is instantly portable, when there are 3rd party library dependencies involved. If there is a library only available on Linux, then the software simply will not compile on Windows. That is why these cross platform and open source libraries are so popular. The Win32 API, however, is not one of them.
Most of the Mono libraries as well as pretty much the entire toolset [that mirrors what they have that is comparable to Microsoft .NET] is pretty much a complete rewrite and re-implementation of the existing solution on Windows.
C/C++ != cross platform. The only time you can guarantee cross platform compilation is when you are using the standard libraries. That is where the protection of the language standard ends. That doesn't even include the fact that almost all compiler vendors have proprietary extensions that prevent software from compiling with other compilers (which can impede cross-platform compilation). There was a LONG time when the Linux kernel was impossible to compile with other Linux compilers (like Intel's compiler) because they were dependent on proprietary extensions. I don't know what the state of that is today, since Intel supports now a large number of GCC extensions, but that is the way things used to be for alot of Linux software and libraries developed with GCC.
Again I don't care for your Anti-Microsoft stuff. You have proven in this thread to lack fundamental knowledge about the design of Linux, Windows, and the various characteristics and libraries in dicussion.
There is no way Microsoft .NET or DirectX can be recompiled on Linux with "a few changes". The changes required would be so huge that it would probably be easier to rewrite it. The CLR and C#/VB standards are there to aid other vendors in providing solutions that would offer compatibility with the Microsoft offerings. People who want them are free to write their own and/or support a solution already in development (e.g. Mono). Please do tell me that you would be willing to rewrite system components for your Operating System, or something as huge as the .NET Framework/platform to run on an incompatible operating system that offers little to no benefit (or even competition) to you business strategy. Microsoft is a business, not the Goodwill. They are not there to provide solutions to competing platforms, especially given how they have released more than enough information to aid them in providing their own solution.
If you want DirectX and .NET for Linux, you are more than encouraged to form a business/corporation and pay developers 6-8 figure salaries to develop it for you, and those who want it - like they have.
This is not a Linux vs. Windows or Microsoft vs. The World discussion. I am just setting the record straight because what you say is false to the point of laughable.
I really disagree with you still. If you want to laugh at me for what I say thats OK with me. Windows API is not neccessarily Win32 API. It can be Win16 or Win64 depending on the OS. Microsoft calls it the Windows API. Second I realize things like dlls are compiled just for the Windows API and only work with the Windows API. I also know that the STD libraries are the only ones that work on all platforms. That doesn't mean that the code can't be changed to work on other platforms. Microsoft may not be good will, but they can modify their code to work with other OS if they wanted. Obviously MFC is a lot different then Directx. MFC is basically the Windows API in a more object oriented structure and is used to build programs using the WIndows API. .NET is a bit different. .NET has it's own runtime similar to Java. .NET is basically a layer to access the code in the Windows API which makes it easier for people to program. Accessing the Windows API using C or C++ can be an ugly buisness. A lot of this comes from the fact that Microsoft continues to build upon the original Windows API written in C instead of building something new. Being that .NET is just a layer to access the Windows API dlls and the code within them it's very possible for Microsoft to develop an installable runtime for other OS that is coded for them. It doesn't seem farfetched to me except that Microsoft is making a lot of money. At any rate I am not anti Microsoft, but as I said their prices and money making schemes are getting silly of late. If you are happy with one company controlling everything and setting any price/rules they want for their product thats fine with me. Personally I don't like it. I would like to see some competition.
Win32 API is Windows API. It is a term that sprung up in the mid-90s to differentiate it from the Win16 API. One is for 32-bit applications and one is for 16-bit applications. There is also Win64 which includes APIs that can be used neither in 16 nor 32 bit applications.
If you don't understand any of this, that is the reason why you disagree.
You simply don't know what you're talking about.
I don't laugh at you, but I did write these essays to hopefully educate you on some of these things.
If you still believe that Windows API and Win32 API are different things than you need more help than I can give you.
I didn't read the rest of your post, because I would only end up writing another essay trying to debunc the false stsatements in your post. Everything that needs to be said are in my other posts. Feel free to read them.
Must be getting desperate if you are now trying to argue that Windows API and Win32 API is not the same thing. Windows 16/32/64-Bit Application Programming Interfaces = Windows API.
I'm suprised you would even go along with this argument. It's a rhetorical question to ask any distinction between the two (beyond the obvious i.e. you can't use 32-bit functions in Win 3.1x except for those supported by Win32s subsystem).
Just stop... This is beyond educational and bodering on the rediculous.
I'm sorry, but I said that in my post. Perhaps you did not read the post. All I said was Microsoft terms it the Windows API because there are different flavors of it. Yes I know that Win16 is the old 16 bit version of the Windows API that ran 16 bit applications. I know that Win32 is the current incarnation of Windows that will only accept up to 2 gig of memory and doesn't fully utilize the 64 bit proccessors in existence today. Then there is the Win64 which will be the future of Windows and is already in use by some people which allows for more then 2 gig of memory and also allows for 64 bit applications to be run on it if they are coded to take advantage of it. Strangely I'm not sure what any of this has to do with the points I made in my previous post as I'm pretty sure I was accurate on my points. First you compared MFC to Directx which is wrong. MFC is the Windows API using C++ basically. It's an easier way to build Windows applications. Directx is it's own API. Even though it has some Windows dependencies the runtime should be able to be installed on older verisons of Windows OS at the very least. In essence it should be able to be modified to work on another OS. Weather that is to difficult and a waste of Microsofts time is another issue.
MFC is not the Windows API. There is no reason to rewrite the Windows API in C++, since the C code is callable from C++. Lol. Where the hell do you get these retarded ideas from. MFC is a wrapper around the Windows API. It is what we call an Application Framework. There were other frameworks. For example, Borland's ObjectWindows Library used to compete with MFC. Now Borland has the Visual Component Library for Delphi and C++Builder. There is also Qt, wxWidgets, FOX, etc. Anything that can be done with these frameworks can be done with the Windows API. They are just there to ease development and make applications easier to maintain and structure (they are object oriented frameworks)
Think what you want. I'm tired talking to you. This is beyond rediculous, and you definitely aren't a software developer (like I am) because you wouldn't even think twice about embarassing youself posting this dribble.
You were not accurate on your points. All of your points are incorrect and WRONG. You actually have no damn clue what the hell your talking about. Go to Wikipedia or something and get a clue, IMO. I just realized that I never really met a stupid person before, until I started posting on this forum in this thread.
ROFL. Win32 has nothing to do with how much RAM windows can access. That is a design in the OS, not the API. DID YOU KNOW THAT THERE ARE 32-BIT VERSIONS OF WINDOWS SERVER (WIN32) THAT CAN ACCESS UP TO AND OVER 4GB RAM? Please, continue to talk this shit and own yourself on pretty much every point. Win64 is not all that different from Win32 except it includes functions that are exclusive to 64-bit architectures. Same for Win32, it included functions that were not included in 16-Bit Windows. All Windows OSes are backwards compatible, for the most part (Win32 can run Win16 Apps, Win64 can run Win32 Apps).
Also, Windows XP 32-Bit can access almost 3.5 GB of RAM. Please be more incorrect. Maybe you can only access 2GB because you have a crappy MOBO with only 2 DDR RAM slots for 2GB Max.
The way you are explaining this is not only wrong, but beyond rediculous. You are pretty much incomprehensible of this so I will have to say farewell and quite reading and posting in this thread.
Bye Bye friend. Hope you learn something soon.
P.S. I used to think no one was stupid until I started participating in this thread. First the Linux shit (which the person never replied to my posts on that cause he knew he was dead wrong) and now this dreadfully obvious Windows stuff which doesn't even relate to the topic of the thread...
Most CPUs are designed so that the contents of a single integer register can store the address (location) of any datum in the computer's virtual memory. Therefore, the total number of addresses in the virtual memory – the total amount of data the computer can keep in its working area – is determined by the width of these registers. Beginning in the 1960s with the IBM System/360, then (amongst many others) the DEC VAX minicomputer in the 1970s, and then with the Intel 80386 in the mid-1980s, a de facto consensus developed that 32 bits was a convenient register size. A 32-bit register meant that 232 addresses, or 4 GB of RAM, could be referenced. At the time these architectures were devised, 4 GB of memory was so far beyond the typical quantities (16 MB) available in installations that this was considered to be enough "headroom" for addressing. 4 GB addresses were considered an appropriate size to work with for another important reason: 4 billion integers are enough to assign unique references to most physically countable things in applications like databases.
However, by the early 1990s, the continual reductions in the cost of memory led to installations with quantities of RAM approaching 4 GB, and the use of virtual memory spaces exceeding the 4-gigabyte ceiling became desirable for handling certain types of problems. In response, a number of companies began releasing new families of chips with 64-bit architectures, initially for supercomputers and high-end workstation and server machines. 64-bit computing has gradually drifted down to the personal computer desktop, with some models in Apple's Macintosh lines switching to PowerPC 970 processors (termed "G5" by Apple) in 2002 and to 64-bit x86-64 processors in 2003 (with the launch of the AMD Athlon 64), and with x86-64 processors becoming common in high-end PCs.
The emergence of the 64-bit architecture effectively increases the memory ceiling to 264 addresses, equivalent to approximately 17.2 billion gigabytes, 16.8 million terabytes, or 16 exabytes of RAM. To put this in perspective, in the days when 4 MB of main memory was commonplace, the maximum memory ceiling of 232 addresses was about 1,000 times larger than typical memory configurations. Today, when over 2 GB of main memory is common, the ceiling of 264 addresses is about ten billion times larger, i.e. ten million times more headroom than the 232 case.
Most 64-bit microprocessors on the market today have an artificial limit on the amount of memory they can address, because physical constraints make it highly unlikely that one will need support for the full 16.8 million terabyte capacity. For example, the AMD Athlon X2 has a 40-bit address bus and recognizes only 48 bits of the 64-bit virtual address[1]. The newer Barcelona X4 supports a 48-bit of physical address and 48 bits of the 64-bit virtual address.
The main point is that Vista 64 bit can use more memory and I never said it was tied to the OS/API in my post. I was a bit off in my numbers of how much is the maximum RAM a 32 bit OS can use sorry. You are wrong in your saying that it's tied to the OS though. As stated in the previous paragraph it's tied to the CPU. You might say that it's tied to the API though as Win32 API is restricted to 4 gig of RAM.
The Microsoft Foundation Class Library (also Microsoft Foundation Classes or MFC) is a library that wraps portions of the Windows API in C++ classes, including functionality that enables them to use a default application framework. Classes are defined for many of the handle-managed Windows objects and also for predefined windows and common controls.
I was more or less correct in my assesment here. If you access the Windows API directly using C++ you are basically coding it in the C language. C++ adds object oriented progamming functionality to the C language. MFC uses this object oriented programming to create "wrappers" as you said which are used to more easily make programs using the Windows API. Basically this is what I said in my posts without using the term wrappers.
I don't believe that you have a good understanding of programming if you think that MFC and Direct X are comparable. You have yet to address this, but as you said MFC is a wrapper around the Windows API. This means it's basically the Windows API, but it's got C++ object oriented code wrapped around it to make it easier for the programmer to build programs with the Windows API. DirectX is it's own API indepedent of the Windows API. It has it's own code for outputing to the screen, taking input from the keboard, mouse, and other input devices, and whatever else you need. It was made to work with the Windows API, but it can be modified to work through other OS I'm sure. It might take a lot of work to do so, but I'm sure it's possible. That is the only point I was trying to make.
You also made a point that Winows APIs are similar/backwards compatible. If you had actually read my posts thats what I said and if they are backwards compatible that means that DirectX 10 runtime should be installable on Windows XP at the very least. Microsoft makes it only available for Vista because they want people to buy it.
Just thought I'd mention you are very rude and did not seem to read my post accurately for the most part. You took only the points I made minor mistakes on and then used points I made in previous posts like they were your points. Please if you are going to insult someone at least get things right.
Now have fun feeling like you are the guru of coding and know everything about programming.
You're still 100% wrong, and don't change the subject.
Lol.
Looks like you skipped ComSci 101...
100% wrong about what exactly? You may be right that it's to difficult to make Directx available for other OS as it would cost Microsoft to much money, but you have also be wrong on some of the points you made. It seems like you think you know a lot, but in actuality you know about as much as I do. Then you fling insults around at people like it's no big deal to do so. I think if you take this attitude with you it's goign to be difficult finding a job in programming. Not may people know everything about how a computer works or how each programming langauge works or how each operating system works. Most people specialize in a certain aspect of it and these people are the ones likely to know the best answers. Not us who are for the most part are guessing based on some general knowledge that we have gained through reading some programming books or taking some computer/programming classes.
Excuse me for going back on topic, but I have a few linux game links to post.
djl.tuxfamily.org/index_en.php Des Jeux Linux is a linux gaming repository and game manager, inspired by Valve's Steam service. Lots of interesting features and tools, check it out!
www.playdeb.net/ PlayDeb is a Debain/Ubuntu games repository, dedicated to providing up to date versions of games, installable directly from their webpage.
happypenguin.org/ The Linux Game Tome is a list of most games available for Linux, free and non-free. The site is a tad archaic, but the game list gets updated regularly.
libregamewiki.org/Main_Page The Libre Game Wiki is a wiki dealing with free as in speech games, all working on linux.
So yeah, lots of cool linux games between those sites and services, esspecially djl. I'd be much obliged if OP updates his post.
Hail DnDOnlinegames!
100% wrong about what exactly? You may be right that it's to difficult to make Directx available for other OS as it would cost Microsoft to much money, but you have also be wrong on some of the points you made. It seems like you think you know a lot, but in actuality you know about as much as I do.
Do you work for Microsoft? I don't, I know for sure you don't. Cuase if you did, you'd know better. All I know is that you are wrong. Anything beyond that isn't really a factor in the context of what this discussion has become. If you are still trying to prove me wrong after having given you MUCH proof of how you are (and you have given me nothing?), I would have to say you are dumber than I had thought you were...
My comment about ComSci I was a bit in jest, but also quite serious. Indeed, most people around here who go into Computer Science or related fields (Engineering, e.g.) do take several ComSci-related courses in High School. In other words, this know this shit before they graduate high school. 5 Computer Science courses in High School, Years of ComSci-related training in the Navy (alot of that Targetted at UNIX but also includes custom/embedded systems), and years of College later (I didn't graduate yet, but almost there!) - it would be a travesty to have your line of thinking after all I have learned.
You are the type of programmer that cause start-ups to fail and go bankrupt. These ideas you have aren't realistic, that is the reason why they weren't implemented.
Apart from the fact that it would be incredibly and exceedingly difficult to port DirectX to Linux/UNIX - those OSes have such non-factor Desktop Market-shares (speaking of computer desktop users, what gamers fall into) that it wouldn't be worth the investment anyways.
Borland International, Inc. has two programming tools called Delphi and C++Builder. In 2001 they ported Delphi to Linux and named it Kylix. By the time 2003 came along the project was cancelled. They had to rewite their entire Visual Component Library for Linux to use Qt (CLX it was called there) and it was buggy. By that time both Delphi and C++Builder were ported to Linux. Part of the biggest issue, however, was the existence of 10-20 popular Linux distros in use which made it near impossible to support Linux as a host OS for a native application (Jave and web applications are fundamentally different).
The entire VCL had to be REWRITTEN to be cross-platform because of the Win32 dependencies of it. They rewrote it to use Qt as an underlying graphics framework: CLX was only an abstraction of Qt which was only an abstraction of Win32/Xlib. This is only an application framework - nothing on the level of a system component like DirectX (so much of a system components that it can't even be uninstalled after you install it). Please do tell me how DirectX can be ported to Linux/UNIX more easily than Borland's VCL. Those are hundreds of thousands - millions (developers, licenses, marketing, support, etc.) of USD wasted in this product. Microsoft is not stupid - they tried it with Macintosh - an infinitely better Consumer OS than Linux, especially, now that it's a UNIX-type also with more marketshare. Good Luck.
Reference: Borland sold the DevTools devision off: http://www.codegear.com for information on the projects they have that didn't fail horribly.
Then you fling insults around at people like it's no big deal to do so. I think if you take this attitude with you it's goign to be difficult finding a job in programming.
Lol? Don't be stupid, and you won't be called out as stupid...
Not may people know everything about how a computer works or how each programming langauge works or how each operating system works.
No, I just know how the Operating Systems I have studied work. I administered a Unix network in the Navy (HP-UX). I know how UNIX works (and Linux also). Programming languages only differ in semantics and the scope of capabilities that their developers or standards committee wishes for them. We can get rid of programming languages and use 1's and 0's and what I said still makes sense as long as the Windows and UNIX/Linux platforms differ.
This is not like porting something that was originally coded for Windows Vista to Windows XP (back porting), this is a cross platform port of a system component and it is difficult. It's like saying you can go recompile Windows a device drive on Linux - an ignorant statement to make, at best.
In any case, this has very little to do with what the discussion was about. DirectX is not portable to Linux, and making it portable to Linux would require several extensive rewrites of it. The Linux and Windows driver models aren't even equivalent. Do you know what DirectX encompasses? It is only partly comparable to OpenGL (which is quite limited in scope, comparatively).
Most people specialize in a certain aspect of it and these people are the ones likely to know the best answers. Not us who are for the most part are guessing based on some general knowledge that we have gained through reading some programming books or taking some computer/programming classes.
Disagree. I am not guessing. I am telling you the facts. If that is the way you think about what you are saying, then you really don't have the right to post anything in this thread. At least have a little faith in what you're telling people. Know what you're talking about, or shut the hell up.
Yes, there are Domain Specialties, but these concepts are domain-independent and do not require any experties (i.e. if you don't have a Ph.D. and are an expert in AI, STFU). Let's not go there.
Lol. Pwn yourself some more, sir.