Kodachrome layering and development

Recent Classifieds

Forum statistics

Threads
199,126
Messages
2,786,540
Members
99,818
Latest member
Haskil
Recent bookmarks
1

Gerald C Koch

Member
Joined
Jul 12, 2010
Messages
8,131
Location
Southern USA
Format
Multi Format
Nicholas Wirth never intended Pascal to be a real programming language. It was designed to illustrate various programming algorithms for his books. Then someone decided to create a Pascal compiler. IIRC Wirth was not happy about this. He did intend Modula-2 to be a programming language but it never caught on. Then there was ADA; a language designed by a committee.

C was developed at Bell Labs. It gets its name as it succeeded a language called B. It is the de facto language of Unix machines. The UNIX operating system is written in C as are many of its utilities like the VI editor. It is my personal favorite of all languages. When computer memory was very expensive C was the only choice as it produced the most compact executables. Interestingly you can write a C interpreter with only two pages of C code.

Bell Labs also developed LISP to write the telephone books. I once met someone who liked to program in LISP. He was the only person so inclined.
 
Last edited:

Theo Sulphate

Member
Joined
Jul 3, 2014
Messages
6,489
Location
Gig Harbor
Format
Multi Format
Perhaps we should have a "sticky" (permanent) article for Kodachrome. This thread is a good candidate because Flavio has made a nice synopsis.
 

Sirius Glass

Subscriber
Joined
Jan 18, 2007
Messages
50,411
Location
Southern California
Format
Multi Format
It has been said that "Algol is a great improvement over all its descendants."
 
Last edited:

Sirius Glass

Subscriber
Joined
Jan 18, 2007
Messages
50,411
Location
Southern California
Format
Multi Format
Perhaps we should have a "sticky" (permanent) article for Kodachrome. This thread is a good candidate because Flavio has made a nice synopsis.

Sean forbid!!
 

Theo Sulphate

Member
Joined
Jul 3, 2014
Messages
6,489
Location
Gig Harbor
Format
Multi Format
Sean forbid!!

Why? Rather than rehash and revisit the same material every few months in new threads, it can all be summarized into this single thread, with the reference information provided by Flavio already embedded for others to use.

Another option: Kodachrome forum.

:whistling:
 

Sirius Glass

Subscriber
Joined
Jan 18, 2007
Messages
50,411
Location
Southern California
Format
Multi Format
Go see all the crap and nastiness that was posted in the dreaded Kodachrome has been deleted thread. That is part of what drove PE's comment in post #15. Those that lived through it, would rather not see it again.
 

Theo Sulphate

Member
Joined
Jul 3, 2014
Messages
6,489
Location
Gig Harbor
Format
Multi Format
A search yields 409 threads where "Kodachrome" appears only in the title. I can't tell which one is the "dreaded Kodachrome has been deleted" thread - then again, it may be deleted.

It's odd that there would be nastiness in a Kodachrome thread.
 

Photo Engineer

Subscriber
Joined
Apr 19, 2005
Messages
29,018
Location
Rochester, NY
Format
Multi Format
Poor Sam. All he wanted was help. I guess I should make sure he knows that no one is mad or upset with him. It's just APUG.

PE
 

Sirius Glass

Subscriber
Joined
Jan 18, 2007
Messages
50,411
Location
Southern California
Format
Multi Format
A search yields 409 threads where "Kodachrome" appears only in the title. I can't tell which one is the "dreaded Kodachrome has been deleted" thread - then again, it may be deleted.

It's odd that there would be nastiness in a Kodachrome thread.

Search under the sign-on name for the two letter troll. He is the one who got nasty with some of us when we told him that magenta is a color.
 

flavio81

Member
Joined
Oct 24, 2014
Messages
5,074
Location
Lima, Peru
Format
Medium Format
Flavio, you must read the monograph on the "C" language by the inventor who claims he devised the language as a jest.

PE

Never heard of this until you mentioning. Googling, i found this:

http://www.stokely.com/lighter.side/unix.prank.html
https://www.gnu.org/fun/jokes/unix-hoax.html

LOL!!

But in reality, the C language was invented by Kerningan & Ritchie and described by them in the "The C programming language" book, which is a textbook example (no pun intended) of how a programming language should be described; a VERY good book (have read it like 2 times)

C is far from perfect and indeed you can write code that resembles garbage (see the "International Obfuscated C Code Contest"), but it was a milestone in programming languages!!
 

flavio81

Member
Joined
Oct 24, 2014
Messages
5,074
Location
Lima, Peru
Format
Medium Format
Nicholas Wirth never intended Pascal to be a real programming language. It was designed to illustrate various programming algorithms for his books. Then someone decided to create a Pascal compiler. IIRC Wirth was not happy about this. He did intend Modula-2 to be a programming language but it never caught on. Then there was ADA; a language designed by a committee.

C was developed at Bell Labs. It gets its name as it succeeded a language called B. It is the de facto language of Unix machines. The UNIX operating system is written in C as are many of its utilities like the VI editor. It is my personal favorite of all languages. When computer memory was very expensive C was the only choice as it produced the most compact executables. Interestingly you can write a C interpreter with only two pages of C code.

Bell Labs also developed LISP to write the telephone books. I once met someone who liked to program in LISP. He was the only person so inclined.

I've written code in the following programming languages -- and here's my take on each one, just to keep things off topic so we don't discuss that-color-reversal-film-that-is-long-gone.

Or in any case, on-topic, since the topic is "Kodachrome layering and development" :cool:

Assembler (i8086): Fun, extreme speed, but not useful for real life stuff.
BASIC (Atari Basic, Quick Basic, Microsoft Basic): My first entry into this world
LOGO: Also my first entry into this world of programming but 15 years later you realize the language was more advanced than just a "kid's language". A bit similar to FORTH.
FORTH: Beautiful, fast, elegant, extensible... and a nightmare to write any program longer than 50 lines
RPL: Used for programming HP48 calculators. A strange combination of Forth with control structures. Strange.
ALGOL-60: like PASCAL but stripped-down
PASCAL: like Delphi but stripped-down
Delphi: I used it with the Borland tools, rather good (easy to use, powerful, nice) general purpose language
PROLOG: Fantastic, amazing, beautiful programming language, however never wrote a "real" program with it. You know, one that does nice user-interaction for input and output. Learning PROLOG blew my mind since it is not an imperative language, unlike all the ones listed above.
C: Concise, fast, useful programming language which I liked a lot and used a lot
C++: Adds way too much stuff to C, gives you a lot of options and possibilities but I doubt that there is a single person on the earth that knows how to use all the features of the latest C++ standard. It was extended way, way too much. But you can do things that Java does not allow you to do.
Java: Useful general-purpose language that i've used a lot, however it has a lot of annoying things like properties with getters/setters (Yuck), insane standards (like the first EJB specification), awful restrictions (example: no multiple inheritance), general insanity (like use of equalities/comparison operators) and the exception system is a nightmare. The classic example of a language that forces you into writing a lot of "boilerplate code".
Java popularized the idea that you have to know "design patterns" by heart and that's a Good Thing. Well, it is NOT. Basically you have to learn many of those "design patterns" because the language is not powerful enough and thus you have to code by hand many things that the language should have supported from a start.
C#: Like java but without so much insanity and ridiculousness. A very good language. I've used it a lot for serious (commercial) stuff.
PHP: PHP is SH*T, period. No further comments required.
Oracle PL/SQL: Horrible programming language for writing stored procedures.
Microsoft Transact-SQL: Acceptable programming language for writing stored procedures.
Javascript: Really powerful scripting language, but for big programs i think it inevitably will turn into a big mess.
Python: Currently my favorite programming language. It's a scripting language (with its advantages), it allows many programming paradigms (something important in 2016), it is multi-platform, elegant, easy to learn, concise, well-documented, and it has a huge amount of libraries out there. I don't want to return to the java world after Python. Ah, and Python makes programming "generic" code really easy (compared to java) and this in itself is a major, major advantage.

Regading LISP: I have never used LISP but want to use it on the future. Probably the most powerful language available, although syntax is horrible. It's amazing that it is at the same time one of the first invented languages.
 
Last edited:

Theo Sulphate

Member
Joined
Jul 3, 2014
Messages
6,489
Location
Gig Harbor
Format
Multi Format
Algol 60 was full of surprises. Read the old articles by D. Knuth in the 1960's issues of CACM or ACM Journal (which are online).

For example, people didn't realize a statement could be passed as a parameter.

As an embedded firmware engineer, I love assembly languages (originally IBM 360 and have gone all the way to ARM). I've also written microcode to control specialized processors.

My main language is C - I've never liked C++'s overloaded syntactical constructs. My current favorite is Python: an extremely powerful and elegant language.
 

flavio81

Member
Joined
Oct 24, 2014
Messages
5,074
Location
Lima, Peru
Format
Medium Format
Algol 60 was full of surprises. Read the old articles by D. Knuth in the 1960's issues of CACM or ACM Journal (which are online).

For example, people didn't realize a statement could be passed as a parameter.

A big breakthrough for 1960! For me this is a "must" in a programming language, and I use it a lot.
(Of course, passing a function as a parameter is trivial in assembly -- you just pass as a parameter the memory address to the routine's entry point.)

As an embedded firmware engineer, I love assembly languages (originally IBM 360 and have gone all the way to ARM). I've also written microcode to control specialized processors.

That means you are a Real Programmer.
The equivalent in photography would be a Real Photographer: One that considers his 6x7 SLR a "compact, easy to carry camera for miniature format", and complains whenever he can't get his favorite film in Ultra Large Format (ULF). He does action photography with manual focus plate cameras. And knows that the best camera is the camera you have with you at the moment, and that a fuzzy/non-perfect/grainy picture is much better than no picture at all!

My main language is C - I've never liked C++'s overloaded syntactical constructs. My current favorite is Python: an extremely powerful and elegant language.

Great minds think alike!
 

Theo Sulphate

Member
Joined
Jul 3, 2014
Messages
6,489
Location
Gig Harbor
Format
Multi Format
Well, passing a function pointer or having an array of function pointers is common today. It's essential in many embedded applications - the usual vtbl array.

But Algol 60 allowed passing a single statement as a parameter: a statement that was executed in the called function.

Algol also predated C's ternary operator, e.g.

Algol: j := if ( x > y) then w else z

C: j = (x > y) ? w : z;

or even:

rc := somefunction( if (x > y) then w else z)


It seems that on a monthly basis Knuth was discovering ramifications in Algol's BNF specification that even the Committee didn't realize the consequences of initially. That's part of the reason for the Revised Report on the Algorithmic Language Algol 60.

This was a hot topic because compiler writers wanted to generate code based on the language's BNF description - that is, not generate code ad hoc. To do that reliably they had to ensure all valid programs would behave the same way across different machines. The problem is that they didn't realize all the ramifications of what the BNF description implied in numerous places - the question then became what, exactly, would the code generator in a particular compiler produce.

Another example related to parameter passing was the creation of the "thunk": for certain parameters at compile-time, the compiler could not determine or generate an evaluation of what should be passed. Thus, the compiler generated a "thunk" of code which, at run-time, determined how to evaluate and pass the parameter.

--

Of course magenta is a color. I can see it, so it's a color.
 
Last edited:

Photo Engineer

Subscriber
Joined
Apr 19, 2005
Messages
29,018
Location
Rochester, NY
Format
Multi Format
Flavio, I believe that those are the references. I would have to go way back to check.

A thunk here was defined as an interface area between 16 bit and 32 bit code, or 32 and 64 bit coded that allowed data to be passed over Intel "segments".

And in the early days, we only had Assembly and interpreted BASIC to work with on both the Apple and the IBM PCs. I did a lot of programming in Assembly including early TSR programs for the IBM and DOS addon programs for the Apple ][.

PE
 

flavio81

Member
Joined
Oct 24, 2014
Messages
5,074
Location
Lima, Peru
Format
Medium Format
And in the early days, we only had Assembly and interpreted BASIC to work with on both the Apple and the IBM PCs. I did a lot of programming in Assembly including early TSR programs for the IBM and DOS addon programs for the Apple ][.
Another Real Programmer in da house!
I assume you needed to do Assembly on the Apple ][ because it was way way faster than Applesoft Basic. And from what i've seen, that Basic was very limited compared to other Basics of the time? (I did not use it, i used "Turbo BASIC" for the Atari -- no relationship to Borland TurboBASIC, it was a very powerful basic interpreter made in germany. And came with an optional compiler!

The mark of a true devotee.

LOL! I was going to say the same.
From the times when Apple was cool and with substance.
 

Sirius Glass

Subscriber
Joined
Jan 18, 2007
Messages
50,411
Location
Southern California
Format
Multi Format
Real programmers programmed in machine language, assembly language and FORTRAN II, or IV.
 

Wallendo

Subscriber
Joined
Mar 23, 2013
Messages
1,409
Location
North Carolina
Format
35mm
Another Real Programmer in da house!
I assume you needed to do Assembly on the Apple ][ because it was way way faster than Applesoft Basic. And from what i've seen, that Basic was very limited compared to other Basics of the time? (I did not use it, i used "Turbo BASIC" for the Atari -- no relationship to Borland TurboBASIC, it was a very powerful basic interpreter made in germany. And came with an optional compiler!
...
The original BASIC for the Apple ][ was called "integer BASIC" which was coded by hand by Steve Wozniak. Applesoft BASIC was a much improved language developed by Microsoft (back when they were all friends).

I played around with AppleSoft and later the Beagle Compiler, but never wrote anything of any importance. I guess I'm like those guys who spend hours on APUG but never get around to taking photographs (I'm often guilty of that, but I do try).
 

RPC

Member
Joined
Sep 7, 2006
Messages
1,630
Format
Multi Format
Real programmers programmed in machine language, assembly language and FORTRAN II, or IV.

I took a Fortran IV programming course in college in 1974 at the urging of my brother, a Computer Science major. The computer was an IBM 360. A stack of punch cards was used to feed the program into the computer by an operator, one card for each command line of the program, all typed on a punch machine by the programmer. Later you would get the printout and see what bugs there were, if any, then it could be back to the drawing board. A very time consuming class but made it easier for me to learn Basic when I bought my first computer in '83, a TRS-80 Color Computer.
 

Sirius Glass

Subscriber
Joined
Jan 18, 2007
Messages
50,411
Location
Southern California
Format
Multi Format
The original BASIC for the Apple ][ was called "integer BASIC" which was coded by hand by Steve Wozniak. Applesoft BASIC was a much improved language developed by Microsoft (back when they were all friends).

I played around with AppleSoft and later the Beagle Compiler, but never wrote anything of any importance. I guess I'm like those guys who spend hours on APUG but never get around to taking photographs (I'm often guilty of that, but I do try).

The interesting thing about BASIC for the Apple ][ was that the computer already had integer basic and floating point basic in the ROM. The disk for floating point basic allowed the user to get to the floating point basic that they had already paid for before buying the disk! It was easy to patch the computer to allow floating point basic without the disk. That is selling someone something they already had.

Another example of the was the IBM 7494. It was very expensive to upgrade it to have a clock that was twice as fast. I got bored with the assignment of speeding up the software we were using. I decided to look at the difference in the faster and slower models. I saw that the only difference was that there was an upgraded board for the faster version. I sat down with the schematics of both boards and checked it component by component and wire by wire. The only difference was that in the faster computer a jumper wire was cut. I cut the jumper wire and doubled the speed of the software! All the software ran twice as fast!
 
Photrio.com contains affiliate links to products. We may receive a commission for purchases made through these links.
To read our full affiliate disclosure statement please click Here.

PHOTRIO PARTNERS EQUALLY FUNDING OUR COMMUNITY:



Ilford ADOX Freestyle Photographic Stearman Press Weldon Color Lab Blue Moon Camera & Machine
Top Bottom