Re: Win32 API future ...?
Just something to add to WizBang's post is that Moore's Law is failing us faster than we think. Not too long ago Intel was planning to have 5Ghz chips out by now, but that is way out of the question. As hardware is reaching its limits (like single CPU processors are nearly at their limit) we will see that the speed of most applications will not keep increasing. Multi-core hyperthreading processors are already planned and will be available faster than many realize (some are already available). Concurrency is becoming more and more of an issue now and "dumbed down" programmers will certainly not enjoy the inherit complications that arise with threads (not that anybody enjoys it, but "dumbed down" programmers will likely just skip threads instead of realizing that they are necessary).
Quote:
Originally Posted by WizBang
Win95 consumes about 300 megs with a clean install, and each new version continued to bloat the thing, such that xp takes 1.5 GB, requires more memory, and is notably slower
AND continues to be bugged. I will give Microsoft the credit of making XP much better than its previous Windows editions (did anybody ever use ME? I might go as far to say as that was the WORST o/s I ever used. Crashed on everything). Some argue that since Windows is the most popular O/S it will be the target of the most crackers, which although valid, still does not explain the massive amounts of bug-fixes that get slapped onto Windows every soo often. Did anyone look at the size of SP2? "Server pack" was an understatement. It basically updated the whole operating system! Although every app has its bugs, generally not everything is bugged. Windows suffers from the fact that each new version just modifies and builds on the previous one, meaning that it inherits the bugs and holes in the old one.
I'm crossing my fingers for Longhorn and I hope that it does not suffer from the same problems as previous versions of Windows. I find the fact that it is being rewritten in .NET promising, not because it is .NET, but because it is actually being rewritten.
Although I appreciate the massive effort that Microsoft puts into Windows, I have never been able to get myself to actually like Windows as an operating system. I want too, but the bugs just ruin it for me
Re: Win32 API future ...?
Quote:
Originally Posted by Ben_Phillips
Actually I think SQL Server IS being incorporated with Visual Studio 2005
The developer version of SQL Server is already available.
What I was referring to is whether Microsoft will rewrite the next version of SQL Server or Exchange Server in .NET, to prove that .NET is server ready.
I don't think they will. I think they'll continue to develop these products in C++.
Re: Win32 API future ...?
Ben,
When Java came out, I was at Comdex expo in Moscow, sitting in Sun booth, being handed the first russian translated "Introduction to Java" 15 page document. I was 15 and that was the 1994:)
And you ?
Re: Win32 API future ...?
Quote:
Originally Posted by WizBang
Only that you can produce a program in less time and with less effort. This will IMHO lead to programmers becomming less like programmers, because something else is doing more of the thinking and actual work.
Quote:
Originally Posted by WizBang
It's like a painter who, instead of actually having and using talent to paint a portrait, simply takes a photo of the subject, runs it through a computer program to add some fake brush strokes, and prints it out.
Quote:
Originally Posted by WizBang
I suppose one reason why I dislike the whole .net thing is that I see programming as a kind of art. I LIKE the hard work it takes to make something truly good. This applies to any discipline, whether it be programming, woodworking, music composition, culinary arts, etc, etc..
i have only been programming for 2 yeas (i am 19), but i think programming has to be fun. I like programming. And what i like about it, is that i have to use my logic and my imagination to make that some code becomes an amazing application (i like game programming), while i have to use those "logic words" (if, else,while,for,etc...) i think programming wont lose it escence.
What do i care if instead of using pointer i use references, or that the compilers takes care about memory managment??.
Better for me, the same logic and imagination but with a "prettier" and clearer code and in less time.
The argument you are saying is like the arguments that ASM programmers would say about the ones who use C/C++ or other "high level languages"....
.NET tech/languages is not THAT different from c/c++ to say that programming will lose its "magic" (art o whatetever you want to say about it) if you use it.
I program in c/c++ (for games), but currently i'm doing a "project" in c#, and have done many in java (for my school of course) and i think is not THAT different to say that......
Re: Win32 API future ...?
But you've already programmed in C++. A programmer that starts out with C# (or worse VB), will not have to worry about memory management, pointers, etc, which is obviously convenient, but not necessarily good. There is a lot of code out that is slowed down from the lack of knowledge about what goes on behind the scenes. One major problem I've observed with garbage collected programmers is excessive allocations. This is especially problematic when allocating an Object just to be used once, or inside of a loop that loops hundreds of times allocating new Objects each time it iterates.
I think managed languages are great and fun to use (particularly Java, and D [which isn't really managed but w/e]), but I think too much dumbing down of the languages will end up hurting the community in the end.
Re: Win32 API future ...?
Quote:
but I think too much dumbing down of the languages will end up hurting the community in the end
I think that's a bit harsh.
Firstly, let me say again that I came to .NET with a great deal of skepticism. Having worked in a VB6 environment (not for long I might add) I had a huge amount of predjudice about .NET. I started off learning VB.NET - mainly because I wanted to teach my son a programming language. I still didn't like it : but I started to think "maybe this isn't as bad as I thought it was" mainly because of the object orientation - which didn't exist in VB6.
This made me think that I really should go and learn C#.
I don't think that .NET is a 'dumbing down' of a language - yes it's easier to write UIs and memory is managed for you and it's hardly the holy grail of languages but as I've said time and time before I think it's great at object orientation.
Is promotion of design over implementation details dumbing down ? I certainly wouldn't say so. In fact good programming design I would say is harder than hacking things to get them to work. Mainly because it involves a great deal of artistry - and certainly from my experience in commerical programming not everyone can do it.
Yes I still code in C++ - and I still write segments of code in machine language for raw speed but to 'put them all together' I use .NET.
Comparing .NET to VB6 isn't really fair. VB6 grew from a rapid prototyping (at best) and tutorial (at worse) purpose. I would quite happily go back in time and shoot the person who's idea it was to turn it into anything but that. As I've said before (yet again) I think it's pursuaded far too many people that they can develop commercial applications when they can't. And been flamed for it.
Yes .NET isn't perfect, and yes you can decompile it. And yes this is a HUGE problem. I still love it now though.
Even though about 2 years ago I remember getting into such a discussion as this AGAINST .NET on this very forum. (or at least I think I do).
Maybe I just have a writing style which people automatically flame ? Oh well... the story of my life. :blush:
Actually no-one has mentioned the most obvious use of .NET in future : that of mobile devices. As mobile phones and PDA's combine (which they will in no doubt do in future) having a standardised framework on top of which your applications are built (with dlls and exes whose sizes are tiny) is a great advantage. Java will be fighting it out with .NET in this arena of course and it remains to be seen who will win. However it is worth considering.
Darwen.
Re: Win32 API future ...?
I think the future of programming is in cross-platform developing and rationalized software
Re: Win32 API future ...?
Actually maybe we're all just frightened of having an influx of not-so-good people into the industry ?
As programming languages get easier surely this is going to inject more and more people as base-level programmers ?
Isn't quality going to suffer because of this ?
I would argue that with all the outsourcing to second world countries that this is already happening with C++ anyway. Price versus quality again.
One of the biggest advantages of .NET is the fact that if you write horrible code you are punished speed-wise. In a huge way too.
I went on holiday recently for 2 weeks. When I came back I found that a project had been started on the first day of my holiday and was written in C#.
The application took 20 seconds (yes - you did read right) to start up. I had one look at the code and wasn't surprised. It was the worst piece of code I'd possibly ever seen. If it was up to me I'd have sacked the person responsible on the spot (or move them onto testing - anything so long as it was as far away from programming as possible).
This guy had been writing awful code in C++ for - well as long as anyone has known him. However it ran fine (apart from when it came to maintain it of course).
He applied the same methodologies of 1000 line functions to his C# and was sorely punished for his ineptitude.
By the way : I rewrote the application and startup time was as expected for a .NET application taking JITting into account (i.e. about a second or two).
Just an example of how bad design is punished by .NET.
Darwen.
Re: Win32 API future ...?
So you're saying .NET will find its niche in the mobile world? I can see how thats plausible (Java is horribly slow on phones, and according to your statistics .NET is approx 2x faster [Java is 3x as slow as C++ on average)). In the future I'm sure mobile devices will have a big market, but I think we still have a few years before it becomes a major market (as I stated earlier, the vast majority of programmers do not code for mobile devices, and the market doesn't change overnight).
Heres what I've decided too do. Since this debate is past the point of being meaningful, I'll try using .NET for a serious project (specifically C#, VB is not even in the question). I have no specific ideas in mind, but I will not do anything too time consuming (except in the tiny chance that I will like it). This way I'll know more specific features and can give a more professional opinion than the one I have formed. Will I like it enough (or at all) to use it for serious programming? Probably not. BUT I will be able to perform better in a debate like this (I would recommend to darwen to try Java, I know people who would blow up if they heard Java called a "hobbiests" language ;) )
Re: Win32 API future ...?
I'm pleased that all my work on this forum has made at least two people consider .NET.
This is not a dumbing down of programming - it's a transferrance of emphasis from getting things to work to a good program design.
I believe I've already said this.
And I hope my articles on Assembler give me a little credibility in this area.
My "Introduction to Assembler" article is the top article at the moment.
I like assembler, I like C++ and I like C#. I use each language appropriately. In other words, I pick whichever language is the best in providing a solution to my current task.
Darwen.
Re: Win32 API future ...?
Quote:
Originally Posted by Ben_Phillips
I'll try using .NET for a serious project (specifically C#, VB is not even in the question).
Quote:
Originally Posted by Ben_Phillips
(I would recommend to darwen to try Java, I know people who would blow up if they heard Java called a "hobbiests" language ;) )
Thats good. Knowing more laguages/technologies wont hurt anybody!.
Maybe you can mix them up.
For example, you could use java for a server, c# for an app that needs connection with webservices or so and c/c++ for doing some graphics......
Re: Win32 API future ...?
Quote:
... or so and c/c++ for doing some graphics......
At present I'm writing an application which needs high quality graphics. This is written using .NET, C++ and machine language.
I'm only using C++ to mediate between the two, in a static dll.
I'm using .NET rendering of text to a bitmap (4x size on screen) to calling (using p/invoke) to a C++ dll (not optimised because it's 2002 C++ standard) calling Assembler (compiled in MASM) to place surrounds and blurred shadows on the bitmaps. The text is then scaled down to correct size to produce antialiasing (using Assembler).
I can render 5 rows of 30 characters accurately (i.e. no problems with Times New Roman Italic 'f'") at 160ms.
That's on a 2.8GHz laptop with 256Mb of RAM.
This isn't the fastest that I've ever seen (I used to work for Xara) but I've already proven that GDI+ is pretty darned fast considering. This is 10 times faster than anyone else in my particular market.
And what does .NET do ? It manages the whole rendering process. The entire UI to the application is written in .NET (C#).
EDITED:
.NET creates the bitmaps. .NET requests the bitmap size from my dll (in C++ and Assembler). It creates a 32-bit DIB bitmap which is filled from my dll. All the alpha-blending (i.e. the transparency overlay) is handled by calls in .NET. All my dll does is to produce a 32-bit bitmap with appropriate alpha channel. .NET does the rest.
Please stop trying to tell me that .NET is slow. It isn't.
Also please stop trying to tell me that .NET can't be used for graphical applications. I have proven it can.
You need to know enough about it - same as any programming language - and work with it, not against it.
EDIT AGAIN:
I could have written my .NET code in C#, VB.NET, Delphi.NET or C++.NET. I wouldn't have mattered one jot. I have proven that used correctly .NET can be an effective language - because it interfaces so well with dlls.
I have given away far too much in this post about my future plans, but I really believe in .NET as a management language (i.e. like C++ manages calls to Assembler) and that's the way I feel it should be treated.
Darwen.
Re: Win32 API future ...?
Quote:
Originally Posted by darwen
Comparing .NET to VB6 isn't really fair. VB6 grew from a rapid prototyping (at best) and tutorial (at worse) purpose. I would quite happily go back in time and shoot the person who's idea it was to turn it into anything but that. As I've said before (yet again) I think it's pursuaded far too many people that they can develop commercial applications when they can't. And been flamed for it.
This is exactly the point I was making! I agree that vb lures many into trying to be a programmer when they just aren't the sort who should attempt it. That's how I see .net, because of possibly even more of this kind of thing.
Quote:
Originally Posted by darwen
Actually maybe we're all just frightened of having an influx of not-so-good people into the industry ?
As programming languages get easier surely this is going to inject more and more people as base-level programmers ?
Isn't quality going to suffer because of this ?
Absolutely. Again a point I've been making.
Quote:
Originally Posted by darwen
One of the biggest advantages of .NET is the fact that if you write horrible code you are punished speed-wise. In a huge way too.
True again, but it's not as much of an advantage when everything is slower than it can obviously be, because the bad programmers won't actually know they wrote bad, slow code. If a lousy programmer has a fast machine compared to the average user, he's even less likely to notice. And of course many of these same individuals do exactly that - they go and get the most powerfull system they can get their hands on, believing that as a programmer, it is somehow necessary for them to be ahead of the curve in that regard. This leads to more slow/buggy programs all over the place, thus more end users find that their systems are too slow, and/or crash a lot. The first thing they do is download all the service packs, and if they're lucky this won't hurt (too much). When that's not enough, they decide they must "upgrade" to the newest OS, which of course only compounds the problem, so then they go and buy new hardware, and the entire process starts all over again, because the "programmer" knows the end users might be catching up to his level of hardware. It's a vicious cycle without end. Now, I'm all for advances, but for the right reasons. We aren't actually getting the benefits of the new technology when these sorts of things happen, and from what I see, .net will make this problem larger.
There is good reason for learning math problems without a calculator first. Then once you have a good understanding of how it works, a calculator makes more efficient use of your time. The same goes for programming. If you are already proficient in something like C++, then .net will be like candy, but you'll know when you've written horrable code. On the other hand, starting in .net will (for most) be worse than starting in vb.
As for longhorn being written (even partially) in .net, that's highly doubtful IMO. It may be designed to favor .net code though, which would of course encourage programmers to use it if win32 is turned into a bottleneck. Perhaps this is part of the plan? By getting a bunch of apps built in .net out there, this would lay the groundwork for longhorn, since moving from the current OS would ostensibly help speed-wise. Get enough of that momentum going, and presto - a new OS takes the market share once again, which it can't otherwise do if the move to it made everything slower by comparison. So essentially, they both create a problem and then a solution. Nice trick.
Re: Win32 API future ...?
Quote:
Originally Posted by darwen
Please stop trying to tell me that .NET is slow. It isn't.
Also please stop trying to tell me that .NET can't be used for graphical applications. I have proven it can.
in comparsion with c/c++ yes it is. And that is something nobody can negate.
When i say for graphics, i meant 3D graphics (sorry, that was my fault).
As far as a i know, .NET (with c#) has only 2 commercial games.
By that i dont mean you cant do it, but it is still in a growing procces (in that area of course), and while .NET 2.0 (or "newer" versions) comes out i think no big company will risk to make a game with .net if they still have c/c++....
I also beleive .NET is the future.....thats why i'am moving from java (to c#), but i wont leave c/c++ and J2ME....at least for a while.
Re: Win32 API future ...?
Quote:
So essentially, they both create a problem and then a solution. Nice trick.
Absolutely WizBang. I totally agree with you.
Let me tell you a little anecdote :
I had my annual staff appraisal today.
It was done by the Project Leader (there's only 2 people on my project, myself one - so he's my immediate superior and I sit almost next to him).
He asked me a simple question.
Out of 100 software companies how many do you think adheres to even one philosophy of object orientation - for example never writing the same code twice ?
I replied to him statistically zero - you'd have to go to 10,000 companies to even find one or two which took object orientation seriously enough to implement real code sharing - in whichever form be it libraries or dlls.
I really hope that with the .NET languages companies will HAVE to adhere to even the basic object orientation rules : that you don't write anything twice.
If they don't they'll end up with horrendously slow applications.
This is all because of the JITting of course - if you have a piece of code duplicated all over the place then it all has to be JITted individually. However if you have a single function called in many places it only has to be JITted once.
I know this isn't going to happen.
I've said for a long time that programming isn't considered to be a profesision by any government.
Look at the other professions : lawyers, architects, doctors, nurses, surveyors... all have to pass an additional qualification after their degrees to ensure quality in their particular profession.
Anyone can be a programmer. Road sweeper one day to training course to programmer. This of course is a generalisation, but you can see what I'm saying.
It's about time that governments considered our profession important enough to start exerting the kind of standards that other professions require their students to meet.
Until that happens the whole industry will be lost.
Whether you write in C++ or .NET it doesn't matter. What matters is that you should have attained a certain level of competency. Otherwise we will continue to be flooded with VB6-like programmers who mess up the industry and pursuade our clients that applications are full of bugs and are generally awful.
Darwen.