home   C, C++, C#, Java
& Similar Languages
Return to the main screen
ANSI Standard C, C++, C# and Similar Languages used by William P. Fritz
Also see "Use of Platforms", "Use of Basic", "Skill relationships", or return to the main menu


Year  Compiler/IDE Environment Apps
1979  Pascal/ADA Apple II/II+ and DEC PDP-8
Client
1981-84  Fortran77 IBM 360/4000 MVS TSO
HWF
1986  Borland Turbo C, MS Quick C MS/IBM-DOS 2.01
TQ
and
Success, Inc
1987  Microsoft Professional C MS/IBM-DOS 2.11
1988  Borlands C version 3.0 MS/IBM-DOS 2.11
1990  Symantek ThinkC Apple Macintosh System 7
1990  Borland's C/C++ v4.5 MS DOS, Win16, GDI, MS Windows 3.1
1991  Microsoft Professional C/C++ Win16, GDI, MS Windows 3.1 - release and updates
1992  Borlands C/C++ v4.5 Win16, GDI, MS Windows 3.1
1994  Microsoft Professional C Win32, GDI, MS Windows 95 - release 1996
1996  Microsoft Visual C/C++ v3 Win32, MS Windows 98
1998  Microsoft Visual C/C++ v5 Win32, MS Windows 98 v2, NT
   Microsoft Visual J++, Interdev
 Sun Java v2.0, HotJava
Browser client and virtual machine Clients
1999  Microsoft Visual C/C++ v6, Java Win32, MS Windows 2000; browsers
2000  Microsoft C#, Java MS .Net, browsers iE5, Netscape 4.6, SQL 2000  
 Borland C/C++ v6.0, Java Windows 98, NT, OWL; browsers; t-SQL  
Now  Microsoft C/C++/C#
 Visual Studio 2005, 2008, 2012, 2019

 JavaScript
 Firefox, Firebug
Win32, .Net, MS Windows 200x/XP, SQL 2005... , .
W3C HTML v5 web applications for
Firefox, Opera, Safari
C#.Net or VB.Net with ADO.Net and SQL on the back end and Ajax on the front.
WPF, XAML and Silverlight have been combinations supplying little personal interest or benefit
Nuget and GetHub provide convenient automated control of 3rd party assemblies.
Screen sample of a few C IDEs
  • Traditional Advantages
  • Compiler efficiency, speed
  • Reliability and predictability
  • Direct use of facilities when known
  • Complete control of memory if unmanaged
  • Referencing and dereferencing pointers
  • Polymorphism and OOP optimized in the development environment
  • Event-driven methods and simplified object-oriented interfaces
  • Security of compiled code with some compilers
  • Potential Disadvantages
  • Stability becomes dependent upon...
    • Middleware (MFC, ATL, dat.sys, app generators),
    • Transitory standards (DDE, OLE, OLE2, COM, .dll
    • Browser container variations in W3C standard interpretations
    • Proprietary (non ANSI) libraries and databases
  • Obscurity of standard language characteristics depending on the platform
  • Side effects introduced from optimization with some compilers
  • Development time often increased when using components
  • Traditional memory control reduced through instantiation and reflection
Copyright , William P Fritz
All Rights Reserved
Return to the main screen
    Overview
   
Since the 70s, I was periodically involved in the creation of programs which invoked processor capabilities at a foundational level. Data storage and programming command sequences were directly manipulated through actual numeric machine language and ASCII assembly language. As development environments progressed, interpretation and presentation techniques evolved to integrate both access to rudimentary processes as well as presentations of the expressions of code. There are specific common denominators which are always present in programmed systems, but may not be accessible through the tools used for development. I will briefly review how operating systems have dealt with emergence of multitasking and how that has affected my use of the C/C++ programming environment.

Simultaneous with the previous section on the use of basic, I recognized the need for more efficient and reliable code. There are numerous advantages to the compiled code of C. In 1986-1989, I migrated a major portion of the TQ System code into C for DOS. Borland Turbo C and Microsoft Quick C were both used, and it began a decade-long pattern of using several development environments with the same code in order to take advantage of the features of each. After it was established in the marketplace, I extended the code using Symantec’s ThinkC running on a Macintosh. At the time, it was the only environment that provided immediate emulation of the code in a separate window from the one in which code was being edited. Using the API of System Seven, I completely restructured the original essentially teletype character of the DOS code into the windowing environment. When Microsoft Windows 3.1 was released, it had solved their problem with fonts, used a nearly-identical API (Win16 v System 7) and the distribution for MS-based products was already established. Consequently, using preprocessor directives on the Mac code, I was able to very quickly bring the windowing version of my product to market. From 1993 to 1995, this code was refined during the expansion of product expressions of this code. When MS Windows 95 was released in 1996, the code was free from Intel’s segmented architecture, and all calls were to an OS written in native C. This created opportunities for significant product enhancement. It was during this period that the obscure invocation of the IUnknown engine was necessary for commercially released products. I successfully struggled to find the new facilities in the OS, which resulted in the continuation of my successful product in an environment where companies like Lotus and WordPerfect were unable to bridge the migration. The solution for most developers at this time was an increasing reliance on the middleware which incorporated immediate solutions. By minimizing my use of third party software, including MS DLLs, my service and licensing overhead did not increase. By this time, the Borland’s C/C++ environment had been surpassed by the MS Visual Environment, although there remained advantages to the Borland-compiled code. In order to isolate program development from the API, a series of libraries were developed by others, such as MFC and ATL.

The original API has only recently regained general popularity as a vehicle, because many libraries were eventually recognized as unnecessary and part of a new instability evoked by problems with versioning and backward compatibility. In 1997, unrelated problems with my business required a several year hiatus from intensive support of this system. During these 8 years, approximately 2 man-years of effort have been available for the development of this large project. Current efforts have included the significant additions of graphics and features that have specific usages in selected vertical markets. Although the code remains as a desktop application, one of my goals is to complete some very original features that use sockets in networked environments. Just as the original release of product in 1989 required five years of completed development, the next release of this software will again create a new genre based on extraordinarily innovative processes. This work has been funded by my consulting business which generates income as an architect and for which I use the most appropriate coding techniques to achieve the clients’ objectives. I have had very few clients willing or able to invest the large amount of time required to create something in C/C++ as opposed to other application generation techniques. C/C++/C# has again become an important platform due to a number of events in the development marketplace. Interesting, the original instantiation of modules was simply called TSR (Terminate and Stay Resident). This ability to spawn and make libraries available has evolved through DDE, OLE, OLE2 and COM. The .Net runtime libraries have provided access in various containers through the use of many MS languages. No discussion of C would be complete without the mention of these current issues, as well as the present reliance on the inheritance of OOP and event-driven asynchronous techniques. I have watched the original loop upon which events are driven in C become more obscure. VB never even had direct access to it. The path from the original low-memory interrupts inherent in the microcomputer hardware to today’s environment of invocational modules has been a gradual route predicated by marketing priorities. Databases on different hardware, global metadata and the magic of ERP have created specializations which are each labor consuming. Efforts like Rational Rose to be pseudocode translators for business objectives are interesting vehicles which I have used to help with design are, in my opinion, unlikely to replace the need to understand the scope of systems computing. Daily use of Java in the creation of client-sided web sites for customers has become my most practical usage of this type of architecture. My deep experience with the C/C++ environment has provided a comprehensive scope of the current environments, which benefits my ability to architect and program using any tools.

Those aspects of development were important during the execution of the following projects. They are each detailed elsewhere on this site.

Various Clients, Direct and via other Consulting Organizations using .Net since 2000
Architecture, Programming and Testing; eCommerce, B2B, B2C
C#.Net (and VB.net) version 2.0 for Microsoft web applications using Visual Studio 2003, SQL Studio, Visual Source Safe & Firebug
Web.UI (master pages, server-sided controls), ADO.Net (objects, tables, views, bound objects), MS SQL (stored procedures), Security.Membership, Roles, HTML 4.01, CSS 2.0, javaScript, Ajax
eCommerce on IIS 6.0-8.0 (2003) for MS Internet Explorer, Firefox (Netscape 9,) Opera, and Safari DOMs

Decades of Architecture, Development and Migration -TQ Systems.   Development of Questionnaire Automation Engines -
In 1977-1981, I wrote a laboratory data system on a DEC PDP-11 system. Subsequently, it evolved into the Research Information Processing Systems (RIPS, 1981-1984) that I wrote and implemented at Hunt-Wesson Foods.
The principles of these perspectives were used in the TQ System for 802.3 networks for 8086 touchscreens with HP TCL. (1984-1989)
This has been migrated through Basics, C, C++, Win16/32, ASP and HTML for use on different platforms for different objectives.
See pages about the TQ System and Success Inc(1989-1997) for more information.

IWay software, 2 Penn Plaza, New York, NY - Java, XML

Gauss Interprise (Magellan, Opentext), Irvine, CA - Win32, Borland C/C++ v 6.5

SEI-IT Information Technologies, Los Angeles, CA - The .Net alpha and beta version white papers were studied, reviewed and incorporated into proposals.

Dynamic Pathways Company, Newport Beach, CA - 15 years of development
Microsoft Certified for DOS, Windows 3.1, 95 & 98. 1M lines of code.
Borland C/C++, versions 3.0-6.5, MS Visual Studio, Visual C/C++, v5-6.0, Win32 API (1982-1997 full time)

Memorial Hospital, Pediatrics Department, Long Beach, CA - Motorola 6502 machine language.
Go to the Top of this page.
See more detail and examples and
also see "Use of Basic", "Use of Platforms", "Skill relationships", or return to the main menu
Return to the main screen