Powerbasic Museum 2020-B

General Category => General Discussion => Topic started by: Theo Gottwald on February 27, 2012, 11:01:04 PM

Title: Legacy and state-of-the art technology
Post by: Theo Gottwald on February 27, 2012, 11:01:04 PM
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.

Title: Re: Legacy and state-of-the art technology
Post by: Paul Elliott on February 28, 2012, 12:20:16 AM
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 ).

Title: Re: Legacy and state-of-the art technology
Post by: José Roca on February 28, 2012, 01:23:45 AM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on February 28, 2012, 07:42:21 AM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Patrice Terrier on February 28, 2012, 10:54:12 AM
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)


Title: Re: Legacy and state-of-the art technology
Post by: Christopher Boss on February 28, 2012, 05:36:15 PM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Patrice Terrier on February 29, 2012, 10:17:23 AM
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
Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on February 29, 2012, 01:31:02 PM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on February 29, 2012, 07:30:39 PM
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. 
Title: Re: Legacy and state-of-the art technology
Post by: José Roca on February 29, 2012, 09:46:26 PM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on March 01, 2012, 12:13:05 AM
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.
Title: Re: Legacy and state-of-the art technology
Post by: José Roca on March 01, 2012, 02:43:39 AM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on March 01, 2012, 07:11:24 AM
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.
Title: Re: Legacy and state-of-the art technology
Post by: Patrice Terrier on March 01, 2012, 03:16:23 PM
I couldn't see how the new API are bloated.

::)

Title: Re: Legacy and state-of-the art technology
Post by: Paul Squires on March 01, 2012, 04:31:53 PM
:)

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.
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on March 01, 2012, 04:33:32 PM
Quote
I couldn't see how the new API are bloated.

When I said that I was thinking more of things like Office, Visual Studio, etc.

You know, the more I think about such terms as 'deprecated', 'legacy', 'vintage', etc, the more I'm inclined to think that all that matters to me anymore is whether it works or not, and that's a simple 'yes'/'no'.

Does DOS work with 32 bit Win 7?

Yes.


Does DOS work with 64 bit Win 7?

No.

Does PowerBASIC work with Windows 8?

Yes.


KISS principal revisited.
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on March 01, 2012, 04:54:28 PM
So I guess we all have our roots in DOS.  Here where I work its still very much with us.  In fact, I'd go so far as to say issues related to it are pretty much the focal point of a lot of my difficulties.

About 14 years ago I computerized all our extensive field data (and I mean field, forest, etc.) acquisition activities with DOS data collector programs.  That pretty much revolutionalized our systems.  About 5 years ago we were no longer able to purchase the DOS data recorders upon which my programs ran.  From before that time though I created Windows CE programs to replace the DOS programs.  However, the field folks like the DOS programs so much they just about won't use the Windows CE programs, which I feel are just as good if not better.  At this point our fleet of DOS data recorders is getting really old, and are beginning to fail.  Rather than learning to use the Windows CE programs on the newer data recorders, the folks have been spending all kinds of money for repairs to keep the old DOS data recorders going.  Just the other day I saw a bill for around US $4500 to repair 4 old data recorders!

Then about a year and a half ago our supplier of Data recorders (Juniper Systems of Utah - www.junipersys.com) decided to stop manufacturing the Windows CE units I had written the programs for, and had turned to Windows Mobile.  I hate Windows Mobile with a passion!  Windows CE is a really neat operating system, and Windows Mobile is a badly hacked screwed up version of Windows CE. 

Everything is up in the air around here now.  We're looking for new devices to collect our field data.  Some of the folks in the central office want to go to tablet PCs running full Windows instead of Windows CE.  However, those devices seldom have real keypads, and battery life isn't so good, or so I hear.  Plus they are bigger and heavier than the nice small compact units we have been using.   
Title: Re: Legacy and state-of-the art technology
Post by: Christopher Boss on March 01, 2012, 05:47:18 PM
I have a long time customer from the my days of custom programming which has a machine shop (manufacturing of custom parts for machines) and I created a DOS apps which handles job estimating, job tracking, invoices and shipping. Eventually I created a 16 bit Windows version using VB 2.0 and later made a 32 bit version using VB 5.0 Pro.

They really liked the DOS version and some prefered it over the windows version. I made both so they could be used together, some using a DOS version and others a Windows version. The software was networked using a proprietary "mirror imaging" database engine, so multiple servers could be used and if one failed it could be removed and the system still kept going.

When I created the Windows version using VB, I knew that a Windows UI just would not cut it. Instead I used some "tricks" to emulate the DOS version so other than menus and a few icons, the primary UI emulated the DOS version quite closely. I used tricks like using dozens of static controls to simulate a DOS screen, using the Terminal Font so the text was fixed width and looked like the DOS screen. I even was able to impliment scrollable screens like I did with the DOS app (that was written in assembler for the DOS app) and the keyboard input was the same (ie. press enter to move from field to field). I even simulated a DOS cursor.

Now the Windows version was not a console app, but a real Windows GUI app, which simply emulated DOS like screens. Yet it could also have things like screen icons for better mouse support, etc.

What is important is not what technology is used, but the user experience. I rarely had to write manuals for my custom software because they were so easy to use and just because I was porting to Windows did not mean that should change.

In some ways Metro in Windows 8 is going back to the DOS days in being full screen and not have any of the "chrome" (window borders, etc.) we are used to with Windows GUI apps.
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on March 01, 2012, 08:03:40 PM
That's really interesting Chris!  I see you know the issues very well.   

The really tricky part for me with my programs was that I had 'optimized' the typical [ENTER] key navigation away, and data entry was in a grid type format with rows and columns.  Of course, back in the DOS world I don't believe we called them grids - at least for me, that terminology came with Windows.  So the data is all fixed width, and the cursor jumps to the next field automatically after the required number of keystrokes for each field - usually two or three.  And after each record an auto-counter increments and a new row starts - all automatically.  That wasn't overly hard to accomplish in DOS, but was totally brutal in Windows. 

I sometimes get the impression that some folks haven't faced these issues, and when one mentions that DOS is in some ways and for some things superior to Windows (or any GUI OS) one is treated with condemnation to the effect that one can't adopt to change, one is stuck in the past, so on and so forth.   I think that new is usually better - but not always.



Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on March 01, 2012, 09:10:35 PM
Thats a general problem, Frederick.
Intel and Microsoft are large shareholder driven companies.

As such they work different then companies that are driven by a "boss owning a comapny with his family in the 4 th generation".

A shareholder drivne comapny has a sold-driven boss who is only there for a limited time.
Whats before or after that time is "not his bussiness".

What counts is the money he makes while he is there, It's the qucik money.
Not the long-term bussiness.

And this is the underlying fact why you can never plug in a CPU from last generation into anewer mainboard.
And why allst uff must be as incompatible as possible, so you are forced to buy as much stuff as possible new each time you upgrade.

PowerBasic can still compile the oldest PowerBasic programs.
While this is of course not the case with VB.NET - and i am quite sure that even the VB.NET programs will be invalid soon and replaced by new paradigms, needing new education, new programs and new services from MS.

While i can still compiule my oldest PB-Source codes with jjust a few changes.

The biggest problem arises in data-migration.
When the CD, DVD, Blue-Ray ... will be replaced with quite new devices, that can not read the old formats anymore. Then we'll just burn a good part of our people's data and histroy in the fire of comemrcial progress.

Many of us may still have interesting games, programs and otehr stuff for old devices or on floppies that will not make it into the future. THats the problem of data-migration.

Atlantis died  in the Water.
Lemuria was eaten by the volcanic fire.
Will our civilization be taken away by the air or will we remove all reminders to our civilization ourself by "data-migration"  :o :o


Title: Re: Legacy and state-of-the art technology
Post by: Patrice Terrier on March 02, 2012, 09:22:45 AM
Comparing vertical and horizontal markets is inappropriate.

By the way Chris, you seems to be very concerned by Metro, and my opinion is that it will be probably the next Microsoft's fiasco.
Whithout the usual desktop, most users will get lost, a PC is not a tablet and vice et versa.

...


Title: Re: Legacy and state-of-the art technology
Post by: Christopher Boss on March 02, 2012, 03:44:23 PM
While there are some issues with Metro IMO, so far it appears pretty nice on a tablet.

I have Windows 8 Consumer Preview installed on an ExoPC tablet and it does make a difference for tablets.

The app store is really nice and the sandbox environment should be a lot safer.

Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on March 02, 2012, 05:16:06 PM
QuoteWhithout the usual desktop, most users will get lost, a PC is not a tablet and vice et versa.

Patrice, go to YOUTUBE and type "MWC 2012 Keynote Windows 8".
There is Video >1 hr showing you all the new bells and whistles of windows 8.

And of course the desktop is still there as before. Don't worry.

They have just painted a lot of new black dots on the bug's backside.
But it has still 6 legs and they are still too short.

The good thing about is that it will boot rather fast now.
And as a talented programmer you can start now making Apps for the windows 8 App-Store.

Don't take that easy, that sounds like an interesting bussiness, definiteily more interesting (from financial standpoint) then making Add-Ons for PB-Users.

Consumer Preview Windows 8 (http://preview.windows.com)
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on March 02, 2012, 07:35:53 PM
The app store idea sounds good to me to Theo.  Might be a way to earn some dollars/marks whatever it is one needs to live! :)

You know, given the desire of nearly everyone involved in the whole grand plot to make everything become obsolete as fast as possible, its just beginning to give me the feeling of total futility.  A carpenter or bricklayer or engineer  tries to make things to last, perhaps for hundreds of years.  Everything we create is useless after a short few years.
Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on March 03, 2012, 07:51:14 PM
QuoteA carpenter or bricklayer or engineer  tries to make things to last,

That was the case in old Germany until 1944, that things have been calculated and built for 1000 years.

After that date, things changed. Today we bult for the next 20 years.
And this is not true for computer software!

With some luck its true for houses.

The best thing fror the building company is, if these new buldings collapse after exactly 20 years from themselves.
And then directly from perfect state into dust. Thats how they are built and how they are calculated.

Even prisons where you might thing that they should be solid.
And i know a lot of examples.

These time any thing that is made has a "Living time" that is planned directly when its designed.
It should not live any longer because this would destroy its market, and would also make its destruction uneeded difficult..

Even in cars, a lot of parts are just in a way designed that they fail after a specified amount of time and usage.
While it would not be much more cheap to have much better parts, companies do not want that because they earn  a clearly calculated amount of money with spare parts.

We are not living in times of "anything built forever". These times are gone.
Large companies do not calculate like this. Maybe thats one of the reasons why they got large?
Title: Re: Legacy and state-of-the art technology
Post by: Frederick J. Harris on March 04, 2012, 01:44:23 AM
I guess I'm gonna become a sculpter!  ;D
Title: Re: Legacy and state-of-the art technology
Post by: Theo Gottwald on March 04, 2012, 07:57:44 AM
Most sculpts from before 1945 have been destroyed here after the war.
And if times change, be sure, the actual sculpts will be destroyed  :-X

If you want to leave something that will persist, you open a .... school and educate children and teachers.
Living things have the longest persistence.