per tiled object...
Printable View
per tiled object...
For deciding on a platform for application development you have to look at the EXTERNAL requirements and constraints, and then base it on the following (which is an enhanced version of my previous list)
0) Does it met the requirements?
1) How robust is the program?
2) How maintainable is the program?
3) How long did the program take to write?
4) How long does the program take to run?
Where "priority 0" HAS to be met.
ANY other approach is at best a "poor decision making process" and at worse malfeasance
Quote:
Originally Posted by TheCPUWizard
That depends on when they were written, and whether you intend to support the NEW project for xxx years...
Agreed... :wave:Quote:
Originally Posted by dglienna
I would presume that the requirements were written shortly before the selection of a platform, and that any non-"throw away" program will be in use for at least 1-3 years.....
What about the indication made earlier about not using apis in VB, using only the native VB6 functions and only the VB6 documents vs all of the dot net documents and framework.Quote:
Originally Posted by Arjay
This would result in an unfair test. VB.net is one component of VS dot net just like VB6 is one component of VS6. If we were to use all the documention for dot net then we should also be able to use all the documentation for VS6 which includes the apis.
Also testing for speed in graphics as the primary test is more slanted toward dot net. This was never the strong point in VB unless apis are used.
Some valid points there, no question. There are MANY different comparision sets that are available and different ones apply to different situations.Quote:
Originally Posted by WillAtwell
So far, this thread has been about versions of Visual Basic, and NOT about Visual Studio. (I have had similar threads with VC++ 6.0 - but that is primarily about the fact that that compiler was notoroiusly non-compliant with the ISO standard)
So, I would put forth that the valid comparision is to either install a VB specific SKU, or to do a FULL install of just the VB Component of Studio onto a "fresh" Windows Install. The capabilities of this configuration would be an "apples-apples" compare.
A comparision of what you can accomplish using Visual Basic as your primary tool, but leveraging additional material (for both versions) is also a valid comparision, but I think we can all agree that it is a DIFFERENT comparision.
The same is true for comparing implementations. It is important to know that certain techniques which are optimal for one environment are poor for a different environment. But this is a difference in HOW you accomplish a goal, and is almost never a good measure of how EFFECTIVELY the goal CAN be implemented (using the metrics from my previous posts.
I was never the one to propose graphics as a primary of even seconday test. With the exception of Game Development, the majority of applications use very little graphics, and where graphics are used, the performance demands are typically very low. I would guess-timate that of all the (non-game) programs written (commercially) in the past decade that well under 10% of them had graphics capability as the primary focus.Quote:
Also testing for speed in graphics as the primary test is more slanted toward dot net. This was never the strong point in VB unless apis are used.
Looking back over this thread (after removing the diatribes and diversions) there is actually A LOT of very good information.
Yes, vb6 wasn't about graphics speed. Even if you were wanting graphics speed, you would have known to use apis, opengl, or directx( in any language ). Using bitblt is fine when you only doing simple 2d stuff, but I would used getdibits if you render it more than once.
Vb6 fully supported apis. It even came with an api viewer just for vb6. So that tells me that vb6 supports the use of apis.
The .net is your "api" and although it does have the ability to use "external" apis, this is not what the .net is used for and it is discouraged. It is "bad" programming unless you have to do such a thing and which case you shouldn't have to.
All the .net examples are cheap shots. Perhaps I will come up with a more qualified program, but this can't be done in one day or one setting :(.
Perhaps I will write it in c++ and vb6. I now what one will win from those two ;)
I suppose I will get started, but I don't know how much I will get done :(. I will use some of my previous work to get more done faster.
No one has ever said that VB6.0 (and 5.0 and 4.0 and ) didn't SUPPORT external API's. But using them is not "programming IN VB"Quote:
Originally Posted by Joeman
The API Viewer was a direct result of this (I used it often). Since VB did not know that the proper parameters were for an external API, it was quite common to have bugs (often missing or overusing ByVal). And EXTERNAL tools was required to get this information.
Another way to look at it is to take a machine which has NO VB on it and another which has NO .NET on it.
Now install VB6.0 on the first and look at the items that were added to the machine.
Then install VB.NET on the second and look at the items that were added to the machine.
These file lists make up a very reasonable definition of "what is included with the language".
Instead of trying to come up with comparisions (especially since you have previously posted that you have only limited experience ( <6,000 hours or 3 years full time) with both C++ and .NET, why dont you just come up with a "requirements document" for a sample operation. Then let people who are at all different skill levels with with each environment implement the requirements using the best techniques. Let the results be rated based on the qualifications I gave earlier.
This is really the ONLY way to do truely valid comparisions of the overall advantages that are achieved with a given platform.
It would be really great if this could be done at (or near) some major conference. Make it a competition with each environment having teams in four different experience levels. Set it up so that the task must be worked on by a team of 3-5 people, and the results subjected to both performance and quality reviews.
I am resonably confident (would place a decent amount of money) on the following two results:
1) On average for a given skill set level, the .NET teams would turn in higher scoring solutions
2) On average there would be a smaller gap in scores between novice and expert for .NET, with VB 6.0 being a fairly close contender. C++ would have the largest differential.
That is incorrect. You can use any api that language gives you with libraries, activex files, dlls or whatever. If you can type it in vb6 and it compiles, you wrote that in vb6. Now if you want to say otherwise, fine.Quote:
Originally Posted by TheCpuWizard
I suppose I can't get an opengl control for vb6, use it and say I built it in vb6? What did I build in it? If you want to restrict users that use vb6 from what is giving to them by mircosoft to use so they can do what they want with them because you want to say that your not programming in vb with apis is weird. Anyone knows that if the language support these so called apis, you are programming with those apis in that language.
Now for my experience part. So what. I have to learn somehow and I personally think I am making good progress. Sure my code isn't special, but noones is when they are just starting.
I guess I will post my work. I will create another new project if I feel like it.
I am sure you will bash it in the .net if you keep calling using apis in the vb6 not vb6.
There are 2 methods:
1 is using point by point
2 is using apis which you probably not going to beat unless you use some 3d accelerated app. We will see.
I will port this to c++ if I want to. I suppose I can't use apis in c++ since it willl make my c++ code turn into another language.........
I included the exe that is compiled for people who do not have vb6. If you don't trust running it, dont.. just recompile it. Also really do compile it and don't run it in p-code. The first method is the slowest.. you have to wait.
So now you know what I want you to do in c#
One more thing about my project. I didn't get finished with the last method. I was going to send all the rotated images back into an array of 360 so the processing of rotations are finished and rotate the finished images again to compare the difference.
for ex in peusdo code
images = rotate360()
for i = 1 to 360
render(image[i])
next i
Well, my only comments at this point are:
Suppose two people are to race around the block on foot. Part way through, one guy hops on a bike, just because it was there. He gets to the finish line and declares himself the winner.
Was the race fair? After all, he got to the finish line first, and that's what counts, right?
Obviously, to truly know which person is faster, both need to take the same course by the same means. They may not have the same footwear, but both will be on foot. No performance-enhancing drugs, no cutting across lawns. It is after all a contest, so simply getting to the finish line isn't the point. Contests aren't about real-world scenarios, otherwise they wouldn't make those runners in the Olympics jump over a bunch of hurdles or make the skiers zig-zag around flags. Hitting a golf ball into a hole or knocking down bowling pins are intentionally challenging. The constraints are by design, and nobody is supposed to cheat.
Some recent comments suggest that VB6 isn't particularly suited for heavy graphics. I never claimed it was, but I wonder what it means that the .net rewrite Gremmy posted was far slower. But enough about that...
My second code sample should be a fair test, so I'm very interested in seeing the results any rewrites of it in .net.
Still missing the point.
The race isn't about racing on foot, it's about getting to the destination (i.e there are no limits on the mode of transportation used).
If you were racing on foot, and there was a bicycle, an automobile or a taxi available to help you get to your destination, wouldn't you want to use one?
Maybe for a small race (i.e a small utility application), you would choose to still remain on foot.
What about a larger 1500 mile race (a large application that interacts with other applications)?
Would you still remain on foot?
Perhaps in some specialized cases, like racing up a wooded area, racing on foot would be faster; however most of the time (and especially on longer races) a bicycle or automobile will get you to your destination faster.
So I take it that you disagree with the restriction that was placed on VB6 about using apis?Quote:
Originally Posted by Arjay
No. If I was racing on foot then that would indicate that I was supposed to remain on foot. If I got on a bike I would be cheating and would get disqualified.Quote:
If you were racing on foot, and there was a bicycle, an automobile or a taxi available to help you get to your destination, wouldn't you want to use one?
Who would enter a foot race of 1500 miles?Quote:
Maybe for a small race (i.e a small utility application), you would choose to still remain on foot.
What about a larger 1500 mile race (a large application that interacts with other applications)?
Would you still remain on foot?
The point is that if you let one racer use a race car and force the other to run on foot in wooden shoes it is not a valid contest.Quote:
Perhaps in some specialized cases, like racing up a wooded area, racing on foot would be faster; however most of the time (and especially on longer races) a bicycle or automobile will get you to your destination faster.
By that reasoning, they should let participants in the Tour de France drive cars, just because it's faster.Quote:
Originally Posted by Arjay
By that reasoning, someone attempting to solve a Tower of Hanoi game should just pick up all the disks at once and set them on another rod.
By that reasoning, when playing Monopoly, players should put aside the dice and just move their pieces wherever they want to go.
By that reasoning, both teams in a football game should have their own ball, so they don't have to fight over it. That way both teams can each make as many touchdowns as they want. It's easier that way.
Is this code:Equivalent to this code?Code:X = 0
For I = 1 To 10
X = X + 1
Next
The end result is the same, but the work they do is most certainly not. So if we use a loop such as that to test the speed, you can't just set the value of X and claim it did the same thing faster.Code:X = 10
Again the point is missed.Quote:
Originally Posted by WizBang
We are talking about a contest where the only rule is that you have to arrive at the destination and the one who arrives fastest is the winner.
How you get there is up to the contestent.
In a contest like this, the details of the method of transportation are not important.