• Welcome to the new Internet Infidels Discussion Board, formerly Talk Freethought.

A Successor of C++?

K&R was written in the stone age, but was very important. There were other good books.

The alternatives to C were Pascal, Basic and a few others.

The idea with C was cross platform portability. Keep application code separate from anything platform specific.

One of the puproses of BIOS was you make a call to BIOS which in term accesses system features like a serial port. Different moterboards might have different hardware but the same BIOS calls. I ended up writing my own drivers,

My last job a few years back was consulting for a software entrepreneur who wanted to get into high end audio.

He developed a math tool oriented to finance and banks which included a scripted language. Matlab for banks. Made a lot of money.

He had one software engineer. He had a tool that took a scripted language and created code for most platforms.

The tool was around 20k and 5k per seat.

That is the future of software. Industry wants to reduce cost. As in engineering tools progressively reduces the number of engineers.


My license is out of date but I have a Cadence schematic capture and PCB design tool Orcad and Allegro.
When I bought it it was around 5K.

It allowed me to do the work that when I started in the 8-s required a team of skilled labor. Draftsmen are almost a thing of the past. With CAD tools engineers usually do their own drawings.

It is always using the right tool for the job. If oiu are creating a business app with a GUI the MS Visual Basic may be the right tool.

What made Borland C++ popular IMO was it had extensions to create windows with IO functions, You did not need to learn the MS Foundation Classes. The original MS suite had around a dozen books.
 
I don't see why you all persist with this habit in the age of code editors with tab-completion
Mostly because a lot of C development still happens in notepad.exe.

Depending on how regulated the industry is, depending on how old the shop is, some shops may still be compiling fortran in Borland.

Being able to expend the mental effort to understand what programmers tend to call things and why, and pick meaning from context is invaluable when dealing with ancient and very particular code bases.

Rest assured things are getting easier, but occasionally you will still have to wade through manually supplying basic library functions that were written in notepad because that's how the aircraft simulator sister company in England does it...
I was not aware Borland had a Fortran compiler. You could link to a Fortran object library if the C calling functions were right. Intel provides a free Fortran math library which can be integrated into C development platforms. You can use it with MS Visual Studio.
 
I don't see why you all persist with this habit in the age of code editors with tab-completion
Mostly because a lot of C development still happens in notepad.exe.

Depending on how regulated the industry is, depending on how old the shop is, some shops may still be compiling fortran in Borland.

Being able to expend the mental effort to understand what programmers tend to call things and why, and pick meaning from context is invaluable when dealing with ancient and very particular code bases.

Rest assured things are getting easier, but occasionally you will still have to wade through manually supplying basic library functions that were written in notepad because that's how the aircraft simulator sister company in England does it...
I was not aware Borland had a Fortran compiler. You could link to a Fortran object library if the C calling functions were right. Intel provides a free Fortran math library which can be integrated into C development platforms. You can use it with MS Visual Studio.
The problem is part of the requirements structure and compliance in part of the industry. Essentially, at least for one of the shop I was referencing, they are required to do things in asinine ways because of... Fuck if I even know.

Some projects I've had to work on in 10+ year old IDE versions, including an ancient version of MS Visual Studio, because they were built on and for windows 98 systems...

And you would think that regulated industries wouldn't use such obsolete pieces of shit but the regulations tend to be the source rather than the balm.
 
I don't see why you all persist with this habit in the age of code editors with tab-completion
Mostly because a lot of C development still happens in notepad.exe.

Depending on how regulated the industry is, depending on how old the shop is, some shops may still be compiling fortran in Borland.

Being able to expend the mental effort to understand what programmers tend to call things and why, and pick meaning from context is invaluable when dealing with ancient and very particular code bases.

Rest assured things are getting easier, but occasionally you will still have to wade through manually supplying basic library functions that were written in notepad because that's how the aircraft simulator sister company in England does it...
I was not aware Borland had a Fortran compiler. You could link to a Fortran object library if the C calling functions were right. Intel provides a free Fortran math library which can be integrated into C development platforms. You can use it with MS Visual Studio.
The problem is part of the requirements structure and compliance in part of the industry. Essentially, at least for one of the shop I was referencing, they are required to do things in asinine ways because of... Fuck if I even know.

Some projects I've had to work on in 10+ year old IDE versions, including an ancient version of MS Visual Studio, because they were built on and for windows 98 systems...

And you would think that regulated industries wouldn't use such obsolete pieces of shit but the regulations tend to be the source rather than the balm.
Change is always to be avoided in highly regulated environments, because change is difficult, expensive, and risky.

"If it's not broke, don't fix it" implies "If it was originally set up using Windows 98, we will always use Windows 98".
 
I don't see why you all persist with this habit in the age of code editors with tab-completion
Mostly because a lot of C development still happens in notepad.exe.

Depending on how regulated the industry is, depending on how old the shop is, some shops may still be compiling fortran in Borland.

Being able to expend the mental effort to understand what programmers tend to call things and why, and pick meaning from context is invaluable when dealing with ancient and very particular code bases.

Rest assured things are getting easier, but occasionally you will still have to wade through manually supplying basic library functions that were written in notepad because that's how the aircraft simulator sister company in England does it...
I was not aware Borland had a Fortran compiler. You could link to a Fortran object library if the C calling functions were right. Intel provides a free Fortran math library which can be integrated into C development platforms. You can use it with MS Visual Studio.
The problem is part of the requirements structure and compliance in part of the industry. Essentially, at least for one of the shop I was referencing, they are required to do things in asinine ways because of... Fuck if I even know.

Some projects I've had to work on in 10+ year old IDE versions, including an ancient version of MS Visual Studio, because they were built on and for windows 98 systems...

And you would think that regulated industries wouldn't use such obsolete pieces of shit but the regulations tend to be the source rather than the balm.
Change is always to be avoided in highly regulated environments, because change is difficult, expensive, and risky.

"If it's not broke, don't fix it" implies "If it was originally set up using Windows 98, we will always use Windows 98".
Implying it wasn't always broke and most of what "isn't broke" is actually broke as hell with seventeen layers of duct tape "fixing" it, and while it works, it costs 10x as much and not for any reasonable purpose, and that this is now part of the development process.

The risk involved with 17 layers of duct tape is immense, but somehow it is invisible because all that unnecessary risk is layered under a pile of unnecessary Band-Aids.
 
I don't see why you all persist with this habit in the age of code editors with tab-completion
Mostly because a lot of C development still happens in notepad.exe.

Depending on how regulated the industry is, depending on how old the shop is, some shops may still be compiling fortran in Borland.

Being able to expend the mental effort to understand what programmers tend to call things and why, and pick meaning from context is invaluable when dealing with ancient and very particular code bases.

Rest assured things are getting easier, but occasionally you will still have to wade through manually supplying basic library functions that were written in notepad because that's how the aircraft simulator sister company in England does it...
I was not aware Borland had a Fortran compiler. You could link to a Fortran object library if the C calling functions were right. Intel provides a free Fortran math library which can be integrated into C development platforms. You can use it with MS Visual Studio.
The problem is part of the requirements structure and compliance in part of the industry. Essentially, at least for one of the shop I was referencing, they are required to do things in asinine ways because of... Fuck if I even know.

Some projects I've had to work on in 10+ year old IDE versions, including an ancient version of MS Visual Studio, because they were built on and for windows 98 systems...

And you would think that regulated industries wouldn't use such obsolete pieces of shit but the regulations tend to be the source rather than the balm.
In our free market economy you are free to set up your own shop and structure ir anyway you want. As it grows you would be forced to structure it.

If you want to play the role of the anarchist 'Lone Coder' against the world then you get what you get.

Structure, compliance, and standards came about about because software became a chaotic mess. Not just software, doucument control in general.

At one place I worked at the wrong firmware got installed and it was discovered when the system was not working right. It turned out nobody had a clue what the correct revision was.

I don't know what ou mean by regulated industries. I worked in aerospace and defense.

At an aerospace company I worked at we used an Oracle sytem that cast around $300k in 90s dollars. It controlled revisns, chnage approval, and access to all software, darawings, abd documnets.

I was hardware not software. When a new Boeng priduct software build was done it was a multi day event. Boeing obsevers and company company quality control was involved. Each step though release to the document system was observed.

If I relaesd test software, firmware, of programmable logic code there were three documents. One was a code description. One was a build from scratch document. A quality control engineer would watch someone oter than me build the software to the dcument, put it into something, and verify it worked.

If you looked at formal code I wrote it would look like this.

int foo(int x,int y){

// function to add two integer numbers
// x,y integer inputs
// z sum of x and y

int z;
z = x + y;
return(z);
}

A simple example but that is the idea.

Software and computers grew without any structure, it all evolved. So things are what they are. It that is keeping you up at night maube a career change is in order:D.

Companies do not spend money unless they have to, hence a lot of legacy software and hardware. I'd see that as opportunity not a problem.

I trived on difficult situations.
 
I think K&R'book C Programming Lqnguage was seminal. There should be a statue to those guys.
Now that I have free time on the weekend I've decided to occupy myself by (re-learning) C by reading K&R. In my day job (and night job) I use higher-level scripting languages, so C is just a curiosity to me.

One thing that stands out to me is that even simple code examples in K&R are sometimes pretty hard to read, and I'm putting unnecessary mental effort into parsing it. In fact, a lot of the code that you folks write on here is hard to read, even with the indentation restored.

When K&R was written, there was no such thing as IntelliSense. Programmers in the 70's were motivated to give brief names to all of their symbols. It makes it easier to type those names over and over again, but the reader has to do quite a bit more work remembering what all those single-letter variables and abbreviated constant names are doing. I don't see why you all persist with this habit in the age of code editors with tab-completion.

Sometimes I think programmers take perverse pride in obfuscating their own code.

"I need to write a function that checks if a string is null-terminated.

"Maybe I should call it 'int is_null_terminated_string(char *string, int max_length)'?

"Nah, let's throw in some vague names and weird abbreviations so other programmers have to read the docs to figure out what this function does and what arguments they need to provide.

"Let's go with 'int null_check(char *str,int b_max)' That way no-one else will know what it means and they'll have to read the explanatory comment I put directly underneath the function name."
In the old days we often had compiler limits that were relevant. You could name it is_null_terminated_string but the compiler might silently give you the is_nulled function instead. I've worked with systems with even fewer significant characters.
 
In the old days we often had compiler limits that were relevant. You could name it is_null_terminated_string but the compiler might silently give you the is_nulled function instead. I've worked with systems with even fewer significant characters.

My very first C coding was very trivial . . . and had a bug. I was writing firmware in the Hardware Bureau and some guy in the Software Bureau wrote a test program for us. I knew zero about C but thought I could make a trivial change:

WAS:
int ctlword;
...
whatever(ctlword);

WANTED:
int ctlword;
int ctlword2;
...
whatever(ctlword);
whatever(ctlword2);

But it didn't work. :-( Guess what? The compiler silently ignored all but the first six characters of an identifier.


Nobody's asked me to write up the Saga of the Worst Programming Project Ever, but I can divulge the punchline. After delivering the system (for VAX Unix) the customer decided he wanted it ported to IBM Unix. (IBM made them an offer they couldn't refuse.) The project chief asked for my advice; she planned on quoting One Million dollars as the fee for the porting! I was too stunned to think; I should have offered to do the entire thing for $200 grand or so.

One of the miscellaneous issues for the port would have been the IBM compiler's restrictions on identifier length. The code was FULL of crap like

#define RMIS_PARTNUM_001_REJECTED ABC_MIS_PARTNUMBER001_REJECTED
#define RMIS_PARTNUM_002_REJECTED ABC_MIS_PARTNUMBER002_REJECTED
#define RMIS_PARTNUM_003_REJECTED ABC_MIS_PARTNUMBER003_REJECTED
 
Only six characters? That identifier length limit reminds me of the earlier versions of Fortran, which had that limit.  Fortran - the original high-level programming language, a C-like one.
 
Compilers had quirks that sometimes required work arounds.
 
Only six characters? That identifier length limit reminds me of the earlier versions of Fortran, which had that limit.  Fortran - the original high-level programming language, a C-like one.
This reminds me of highschool with a TI-81 programming with all of 24 variables, one for each letter.
 
Back
Top Bottom