Remote-Anything
Techni
sche Ecke

Home

English Deutsch Français

Startseite | Kaufen | Produkte | Fragen | Kundenmeinungen | Presse | Preise | Über uns | Support

Ab und zu gehen bei TWD Industries auch technische Anfragen ein. Andere Benutzer wiederum wollen wissen, wie wir es fertigbringen ein Produkt herzustellen, das mehr Funktionen hat, als das sperrige 80 MB PCanywhere von Symantec... und dabei nur 80 KB einnimmt!

Nachstehend wird erklärt, wie wir das gemacht haben:

RA wurde von Software-Ingenieuren entwickelt, die vorher für die fünftgrössten Software-Herausgeber tätig waren. Die Wahl von Architektur und Implementierung in RA basieren alleinig auf Kriterien der Effizienz, und nicht etwa auf mangelnder Erfahrung oder "strategischen" Bündnissen (wie z.B. der Art von Bündnis, die die letzte Version Ihres Word-Processors derart verlangsamt, dass Sie alle zwei Jahre einen neuen Computer kaufen müssen)

Wir haben lediglich versucht RA (und den DS) von Anfang an so optimal wie möglich zu gestalten.

  • RA benutzt Fremdbibliotheken nur, wenn der Sourcecode verfügbar und auf andere Betriebssysteme übertragbar ist.

  • RA benutzt keine Windows-Internals, wie z.B. System-Hooks oder Low-Level-Drivers.

  • RA wurde in C++ Code programmiert, der auf andere Betriebssysteme übertragbar ist, und der es uns ermöglicht jetzt auch Mac- und Unix-Versionen in Angriff zu nehmen. 

  • Die Übertragbarkeit bringt einige interessante Nebeneffekte mit sich, die den RA-Code:

    • kleiner machen (ein Rad neu zu bauen machte weniger Aufwand, als der vergebliche Versuch ein schiefes Rad zum Rollen zu bewegen)

    • schneller machen (ein Rad neu zu bauen machte weniger Aufwand, als der vergebliche Versuch ein schiefes Rad auf Touren zu kriegen)

    • zuverlässiger machen (ein Rad neu zu bauen stellte sich als sicherer heraus, als die Benutzung eines schiefen Rades)

    • einfacher in Wartung und Verbesserung machen (wir benutzen keine fertigen "Black Boxes", die wir im Bedarfsfall nicht abändern können)

  • Optimierung ist zwar eine aussterbende Kunst, jedoch haben wir unser Bestes gegeben, um RA klein und schnell zu halten.

  • Dazu haben wir eine einfache, logische Methode angewandt:

    • es muss funktionieren (Alpha-Versionen)

    • es muss gut funktionieren (Beta- und Verkaufsversionen)

    • es muss schnell sein (kostenlose Updates)

  • Wir stehen auf dem Standpunkt, dass RA-Benutzer unsere bestmögliche Feedback-Quelle sind

Trotz all unserer Anstrengungen, hatte RA auch ein paar Bugs. Sobald ein Bug gefunden wird, werden die korrigierten Versionen so schnell wie möglich geliefert, meist innerhalb von weniger Tagen, manchmal sogar innerhalb von Stunden. 

Von Zeit zu Zeit kam es vor, dass RA nicht sonderlich gut auf einer der 24 bestehenden Win32 Windows-Versionen lief (hinzu kommen noch die Service-Packs, die Versionen von Internet Explorer und MS Applikationen, die das System verändern (wie Office oder IIS) etc.
Man hat es also mit mehr als 400 verschiedenen Plattformen zu tun. Da kommt Freude auf...)

2007  - Windows Vista (8 versions planned under this name)
2003  - Windows 2003 Server
2002  - Windows XP Media Center
2002  - Windows XP Tablet
2001  - Windows XP                             (new GUI)
2000  - Windows Millennium - 4.90.3000
2000  - Windows 2000
1999  - Windows 98SE - 4.10.2222 A
1998  - Windows 98 - 4.10.1998
1997  - Windows NT Server
1996  - Windows NT4                           (new GUI)
1996  - Windows 95 OSR2.5 IE4 - 4.00.950C
1996  - Windows 95 OSR2.1 USB - 4.00.950B + USB
1996  - Windows 95 OSR2 FAT32 - 4.00.950B
1996  - Windows CE                             (hand-held PCs)
1996  - Windows 95 SP1 - 4.00.950a
1995  - Windows 95 - 4.00.950            (new GUI)
1995  - Windows NT3.5.1
1994  - Windows NT3.5
1993  - Windows NT3.1                         (NT introduced)
1993  - Windows for Workgroups 3.11 (free 3.1 upgrade)
1993  - Windows 3.11                           (free 3.1 upgrade)
1992  - Windows for Workgroups 3.1   (network support)
1992  - Windows 3.1
1990  - Windows 3.0

1987  - Windows/386   (multi-application)
1987  - Windows 2.0    (overlaping windows)
1985  - Windows 1.0    (development began in 1981)
1981  - Licensed MS-DOS to IBM (and PC-clone vendors)
1980  - Got QDOS (DR CP/M cloned in 6 weeks) for $50,000
1975  - Microsoft founded

Zwischen 1995 und 2003,
brachte Microsoft 7 Windows-Vollversionen raus
Das bedeutet im Durchschnitt 
1 neue Version jedes Jahr...
und das für ein Betriebssystem!
(im allgem. sollte man ein Betriebssystem nur alle 10 Jahre oder so wechseln).

Meist lag es an Versionsproblemen der System-DLLs. Die Probleme der Windows-DLLs sind äusserst zeitaufwendig und frustrierend. Dem hinzu kommt noch, dass Benutzer dies nicht verstehen: Da  Windows nicht abgestürzt ist, sieht es für den Benutzer so aus, als hätte unser Programm einen Bug, nicht aber der Code von Microsoft. 

Der Benutzer kann sich also nicht vorstellen, dass die traurige Wahrheit anders aussieht: "Windows" ist keine Plattform, sondern eher eine zusammengewürfelter Haufen von Betriebssystemen, die von verschiedenen Teams geschrieben wurden, die manchmal versucht haben so etwas wie Kompatibilität in die ganze Angelegenheit hereinzubekommen. Das ist zwar für den Benutzer nicht ersichtlich, wohl aber für einen Programmierer. Je nach der Windows-Version, die zu benutzen Sie beabsichtigen, ändert sich sogar die Art und Weise wie diese programmiert wurde. Schlimmer noch: Windows-API bietet Funktionen, die - wenn sie schon einmal für alle Windows-Versionen verfügbar sind (was nur selten vorkommt) - in den verschiedenen Windows-Versionen nicht die gleiche Verhaltensweise an den Tag legen. Sie können funktionieren, oder nicht funktionieren, unterschiedlich ausfallende Resultate liefern, oder einfach nur Ihre Applikation oder Ihr System zum Abstürzen bringen (Ja!). Manchmal muss der Programmierer ihnen verschiedene Werte zuordnen, um sie dazu zu bringen korrekt zu funktionieren. Sie können auch der Grund dafür sein, warum Ihre Applikation sich nicht aufrufen lässt, selbst wenn Sie die fehlerhafte Funktion gar nicht benutzen (Sie müssen beim Starten herausfinden, welche Windows-Version benutzt wird, und ob alle Funktionen, die Sie benutzen möchten, verfügbar sind)

Diese Schlamperei ist zwar schlimm, liesse sich aber noch ertragen, wenn sie zumindest entsprechend dokumentiert wäre. Aber selbst wenn Sie bei Microsoft jährlich eine Prämie für das MSDN-Abonnement zahlen, werden Sie die Erfahrung machen, dass diese Dokumentation genügend Irrtümer und fehlende Information aufweist, um Ihnen jeden Tag des Lebens zu verderben. Sie können dort sogar Funktionen finden, die zwar dokumentiert, jedoch im Microsoft C++ Compiler gar nicht implementiert wurden...

Wenn Sie ein Programm für Windows schreiben, müssen Sie es mit den folgenden Bugs aufnehmen:

  • jene, die Sie selber schreiben (leicht zu finden und zu beheben)

  • die des Compilers (kniffelig aufzuspüren und einfach zu korrigieren - wir mussten viele fehlende Aufrufe selbst schreiben)

  • die, in der Microsoft-Dokumentation (am Ende kommen Sie zwangsläufig an einen Punkt, wo Sie Ihre 'eigene korrigierte' Version des MSDN erstellen)

  • die, aller verschiedenen Windows-Versionen (schwer zu isolieren und zu identifizieren und schwer korrigierbar)

Die meisten Bugs in Windows lassen sich nur schlecht isolieren, weil sie nur in einer oder zwei der existierenden Windows-Versionen auftreten. Ein Programmierer kann nicht jede neue Zeile seines Codes auf 14 PCs ausprobieren. Dazu leben Programmierer nicht lang genug. Ein Spitzeningenieur kann das zwar tun, aber es gibt niemanden, der alle Funktionen eines Programmes auf 400 PCs austesten könnte - was nötig wäre, wenn man einigermassen sicher sein wollte, dass das Programm sich stabil auf einer unstabilen Plattform wie Windows verhält.

Not convinced? OK. Here is a piece of Microsoft Office Visual Basic's source code: (yes, it's real)

//  Function:   RunCommandEx
//  Synopsis:   runs the given command in the current session, more robust
// than RunCommand
//  Arguments:  none
//  Returns:    S_OK if success
//  History:    October 3, 2000 - created [name withheld to protect the guilty]
HRESULT RunCommandEx(LPCWSTR szCmdLine) {
     DWORD dwTry = 0;
     HRESULT hResult = S_OK;

     // try run command 3 times at most
     while (dwTry<4) {
          hResult = RunCommand(szCmdLine);
          if (hResult!=E_FAIL) {
               // we succeeded
               break;
          }
          dwTry++;
     }
     if (dwTry==4) {
          ATLTRACE(L"COuld start the command even we tried 4 times\n");
          ASSERT(FALSE);
     }
     return hResult;
}

Robust? Safe? Clean? Useful? Hmm... not really.

What Microsoft developers think about it? An internal Microsoft memo sent to Bill Gates on Febuary 21, 1997 is clarrifying the question :

"The Windows API is so broad, so deep, and so functional that most ISVs would be crazy not to use it. And it is so deeply embedded in the source code of many Windows apps that there is a huge switching cost to using a different operating system instead. It is this switching cost that has given the customers the patience to stick with Windows through all our mistakes, our buggy drivers, our high TCO total cost of ownership, our lack of a sexy vision at times, and many other difficulties. Customers constantly evaluate other desktop platforms, but it would be so much work to move over that they hope we just improve Windows rather than force them to move. In short, without this exclusive franchise called the Windows API, we would have been dead a long time ago." 

-
Aaron Contorer, Microsoft head of C++ development

Why Windows is so frustrating -even for Microsoft employees? Microsoft never tried to deliver technology, what they did was to apply a very high tax to the whole IT market. Today, Microsoft is so rich that that even governments can't enforce justice decisions against it.

Mann sollte meinen, dass es ausreicht, wenn Programmschreiber Code für lediglich eine Version von Windows schreiben. Da jedoch alle zwei Jahre eine neue Hauptversion von Windows herauskommt, hätten diese Programme nur wenig Chancen gekauft zu werden. As John Walker, founder and CEO of Autodesk, Inc. stated it : "If you want to enter the Gates, you have to pay the Bill". Again and again, every year.

Bitte helfen Sie uns. Wenn Sie ein Problem mit RA haben, lesen sie die meistgestellten FRAGEN, und wenn wir Ihnen sagen, dass es sich um einen Windows Bug handelt, glauben Sie bitte nicht, dass wir das nur sagen, weil wir etwas gegen Microsoft haben. Es handelt sich um eine technische Tatsache und nicht etwa um eine faule Ausrede, die wir benutzen, wenn RA nicht plangemäss funktioniert. Ob man die Vorgehensweise von Microsoft nun billigt oder nicht, so muss man ihnen zumindest den Verdienst zuerkennen, dass sie die Computerindustrie einen grossen Schritt vorwärts getrieben haben. 

Wir bei TWD Industries versuchen lediglich die Welt besser zu machen - für jeden.

Startseite | Kaufen | Produkte | Fragen | Kundenmeinungen

*

Presse | Preise | Über uns | Kontakte


Copyright © 1998-2007 TWD Industries SAS
Alle Rechte vorbehalten