• Welcome to Powerbasic Museum 2020-B.
 

News:

Forum in repository mode. No new members allowed.

Main Menu

Legacy and state-of-the art technology

Started by Theo Gottwald, February 27, 2012, 11:01:04 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Theo Gottwald

I got a nice statement from Jose today, which i see as of high value, so i want to share it with you here.
I tweaked it just a bit, so its most clear in this context.

QuoteMany people are so worried with backwards compatibility that don't learn/use anything new until they are being forced to.
Then want to learn in 2 hours matters that may require years of study.

Some people even extend backwards compatibility to Windows 95!
I even know a guy that uses Internet Explorer 6!
(TG/Comment: No i can't use it anymore :-( )

The problem is that they work fine with older OSEs, but not with the new ones.

Microsoft has listed as legacy graphics:

   GDI
   GDI+
   Monitor Configuration
   OpenGL
   Picture Acquisition
   Windows Color System
   WPF Bitmap Effects

The current new graphics technologies are:

Direct2D/DirectWrite (that use DirectX under the hood)
Windows Image Adquisition (WIA)
Windows Image Component (WIC)

Windows 8 will introduce a new technology called:
DirectComposition.

All of them are low-level COM, not standard functions (there are a few standard functions, but are simple helpers)[/b]

My headers allow to use all of them except DirectComposition, because I don't have the SDK headers for Windows 8.

Legacy is not the same that deprecated. Legacy means that they are available, but harder to use because you have to work with physical pixels instead of DIPs (device independent pixels) and therefore you have to do the conversions by yourself.

CWindow is using exactly the same methodology (i.e. it uses DIPs) as the new M$ technologies. Therefore, is already compatible with them. I work for the present and the near future, not for past. The past never comes back.


Paul Elliott

#1
Ok, I get it now ( I think ). I'll quit joining in on these posts between you people ( because I've got no
idea of the background between you ).

But now I'm confused because Theo's post has been edited at least twice and it is not clear
who really said what. I'm going back to programming ( at least the compiler doesn't change
itself every couple hours ).


José Roca

The "I even know a guy that uses Internet Explorer 6!" was a private joke to Theo and it is out of context. I couldn't care less of which browser he or others use.

Theo Gottwald

#3
I have added another statement that puts light on these topics now.
Jose say these things so easy, because he is a natural genius.

About the IE 6. If its about me, I was most happy with Windows 2000.

But as Jose says "The Past is not coming back".

And therefore i also had to change to Win7/x64 and i will also change to CWindows of course (using Firefly 3.5),
and be most compatible with the future, in any new project.

There is nothing older then old bananas and old software.

Patrice Terrier

#4
There must be probably a direct relation between the programming language being used and the age of the programmer.

Because i am using different programming tools, i am also reading other forum, and i am amazed to see how different the preoccupations could be from one forum to another.

Also very instructive is to learn about the programming languages being used to build very large applications, and how they could be used by a pool of programmers.

Some are still arguing that the market is not, yet, mature for 64-bit, or that Ipad/Mac are not getting more and more popular.
Legacy and state-of-the art technology are just the reflect of these differences, one is the past, while the other is the present (not even the future).

8)


Patrice Terrier
GDImage (advanced graphic addon)
http://www.zapsolution.com

Christopher Boss

When it comes to so called legacy software, there are many different worlds that use software for different reasons.

For example, why is Windows XP still so popular even though is is 10 years old now ?

Because in the business world, companies get tired of "planned obsolescence".

Computer manufacturers and software makers want customers to constant upgrade and to simply throw away their older hardware/software.
While consumers in general are fooled by the "keep up with the Jones" mentality and are willing to keep going into debt to maintain their lifestyles, businesses can ill afford to do this because it can mean the difference between staying in business or closing up.

Because of this many a smart businessman tries to keep using their computer resources as long as possible. The fact that Windows 7 is finally going past the 10 year old Windows XP as far as userbase, even though now all the talk is about Windows 8 says something. Because Windows XP has proven itself as reliable , stable and it can run most modern software, many have little reason to upgrade.

While their will always be a market for the "bleeding edge" in software, there will also be a strong market for development tools for so called legacy systems for many, many years to come. Especially when companies use inhouse programmers so they can choose their development tools to continue to maintain older systems.

To appreciate how important backward compatibility is consider two examples:

Windows

Just so they would not lose business customers Microsoft actually offered "downgrades" for operating systems (by Windows Vista or 7, but get a downgrade to XP). They added a VM with Windows XP on Windows 7 Professional so customers would not get stuck not being able to run Windows XP apps. Even with Windows 8, as much as they might wish they could simply phase out the Desktop and the WIN32 API,  they feel the need to maintain the Desktop and the WIN32. Do you get the feeling they are nervous about losing business customers if Windows 8 were not able to run long time Windows XP apps ?

OpenGL

The OpenGL 3.0 specs basically deprecates the majority of OpenGL API's programmers have been using for years. But what actually occurred was that Video card/chip manufacturers realized that if they stopped supporting much of what is in OpenGL 1.0 to 2.0, then they would lose customers. People want to maintain their current software (ie. games, etc.) and don't want someone to take that away. So the major graphic card/chip makers (NVidea, AMD/ATI) have made a commitment to maintaining backward compatibility with OpenGL 1.0/2.0, while offering all the new stuff in 3.0 and 4.0.

Do you see the picture here ?

Backward compatibility is a must, since the market dictates what people will purchase.

Now of course at some point Microsoft may get the guts to phase out the lagacy API's, but it will be very risky when they do. For example, lets say they try it with Windows 9 a few years from now. Could that lead to a total failure like Windows Vista was ? It could if they aren't careful.

Now I find a better route to take is to design software with the ability to be dynamic. Know what operating system it is running on and to dynamically use what ever is available for that operating system.  I know I get a lot of grief because I still support as far back as Windows 95, but few appreciate that my libraries are dynamic. Rather than use some fixed API's, I poll the OS to see what version of Windows it is and then using LoadLibrary and GetProcAddress I can load specific API's depending upon the operating system. I do the same with theme support. I provide drawing commands which can draw using themes, but if themes are not present it uses alternate API's to draw using the GDI.

I strongly feel that backward compatibility is a plus and not a negative.

Now as far as new technologies in Windows, with Windows 8, it won't simply be a matter of using our old code and then simply adding some new technologies. We can write Desktop apps they way we use to, but if we want to write Metro apps then it will require a totally new set of API's. Even the PB compiler will have to change drastically (I am sure they are considering this right now and have some plans). A PB compiler for Metro will require a total change of the API's its runtime uses and all of our current coding styles will be obsolete. It definitely will be a "brave new world" when it comes to Metro development.

It will be interesting to see how well businesses and corporations take to Metro. Metro could end up being a "hit" with consumers and tablets and yet a failure in the business world.

Patrice Terrier

Chris,

Using a compiler to produce piece of softwares, is very different than using a end-user specific or commercial software.

When you are yourself creating components for the software industry, you have to conform to today's standard, and give to your users what they are asking for.

When C, C++, C# or WinDev users are asking me for a 64-bit version, go figure what i must tell them...

This suicide policy, already forces the most talented programmers to move to legacy compilers  ;D
Patrice Terrier
GDImage (advanced graphic addon)
http://www.zapsolution.com

Theo Gottwald

QuoteFor example, why is Windows XP still so popular even though is is 10 years old now ?

Chris, the problem is that new hardware does not come anymore with drivers for XP.
One day the old computers break down and people are forced to buy a new one.

And they know they will be forced to new OS'es also.

As developer we should work for the future, not for the past.
Even if we like it and even there are good reasons. The past will not come back.

Frederick J. Harris

I like to try to do things the way Chris does.  I try to make my software as compatible for as many older OS as possible so that I'm not part of the problem of forcing people to upgrade just because my program won't work on Windows 2000 for example.  Its my opinion that just about all the big dollar folks in the hardware/software business try to force obsolescense as soon as is marginally ethically possible simply because its not in their interests to do otherwise. 

For example, its not in Microsoft's interests to produce anything but bloatware because if their new version of Office runs well on a consumer's older machine there is little incentive for the consumer to buy a new computer with a new operating system.  The more bloat they produce the more it helps them, plus the more it helps hardware manufacturers because they have to keep increasing specs to run the bloat.  It just feeds on itself on and on.

And at this point its all coming home to roost for Microsoft because they can't get their bloat to run on tablets with low end hardware with any possibility of decent battery life.  Just my opinion. 

José Roca

Quote
I try to make my software as compatible for as many older OS as possible so that I'm not part of the problem of forcing people to upgrade just because my program won't work on Windows 2000 for example.

It would be hard to find somebody that can beat me. I have been doing maintenance work for a very big DOS multiuser vertical application until 31 december 2011. It has been being sold and used for about 25 years. And I mean that I have been working on it during all that time, doing the needed changes because of new laws, e.g. traceability. Also changes to use laser printers because it was no longer possible to buy a matricial one, etc. I think that "vintage" is a more appropriate name than "legacy" for that application.

I'm talking about denying developers and users the ability to use new technologies because they can not be used in older OSes.

Frederick J. Harris

Funny you should mention DOS Jose!  Somehow I never pictured you as a DOS kind of guy, but I guess I'm wrong!

The amazing thing about DOS is that it seems to keep on going, even though its dead.  It just doesn't know its dead, I guess.  I know as soon as I put XP Mode on my Win 7 x64 one of the 1st things I tried was my suite of DOS data recorder programs which work off of a menu system that is driven by the old int 33h mouse interrupts, and other strange stuff, and lo and behold, it worked perfectly! 

And then there's the whole VB6 thing.  I never suspected that would work in Win 7, but it does.  Not absolutely perfect, but close enough to be highly usable.  So I guess what I'm saying is that I can't fault Microsoft on the backwards compatibility thing.

José Roca

Quote
Funny you should mention DOS Jose!  Somehow I never pictured you as a DOS kind of guy, but I guess I'm wrong!

I did wonders with PB for DOS 3.5, FabsPlus (a superfast B-Tree database manager written in assembler), QuickPak Pro (an excellent collection of routines in assembler) and UltraShell (an utility that swaped memory out of conventional memory during a shell).

Windows programming has been just a hobby for me.

Theo Gottwald

Quotehe more bloat they produce the more it helps them, plus the more it helps hardware manufacturers

For us its also somehow a chance.
Because the increase computing power, each year, for mostly nothing else them games, Internet and e-mail,
can make our non-bloated PB-Programms fly to new targets.

Patrice Terrier

I couldn't see how the new API are bloated.

::)

Patrice Terrier
GDImage (advanced graphic addon)
http://www.zapsolution.com

Paul Squires

:)

I finally retired my last DOS program in March of last year. It was a PB/DOS compiled accounting program that used Bullet for the database (that's another extremely fast B-tree/dbase engine written in assembly). The Windows version of the program is so much easier to maintiain and modify and dealing with the underlying SQLite database is easy too.
Paul Squires
FireFly Visual Designer SQLitening Database System JellyFish Pro Editor
http://www.planetsquires.com