4 ms·
This is interesting. I wonder what was the rationale for a design software company to develop their own programming language. > As a technical aside, most vers
by selcuka 3y ago
This is interesting. I wonder what was the rationale for a design software company to develop their own programming language.
> As a technical aside, most versions of FreeHand (save the most recent ones) were written in a home grown language, that was humorously, and appropriately, called OOPS (Object Oriented Programming System). It was basically a preprocessor that generated C code that was then compiled to machine code.
- johngossman 3y agoIn the late 80s lots of people were doing these OOP -> C things, often literally using the C preprocessor. The C++ compilers were still early (and most of them effectively preprocessors) and (as usual) not everybody agreed C++ was even the way to do OOP.
- dragonwriter 3y ago> In the late 80s lots of people were doing these OOP -> C things, often literally using the C preprocessor. The C++ compilers were still early (and most of them effectively preprocessors) IIRC, some early C++ implementations were described (by their implementors) as C++ => C preprocessors.
- selcuka 3y agoTrue. Stroustrup's first implementation Cfront [1] was a C++ to C translator: > Cfront was the original compiler for C++ (then known as "C with Classes") from around 1983, which converted C++ to C; developed by Bjarne Stroustrup at AT&T Bell Labs. The preprocessor did not understand all of the language and much of the code was written via translations. cppfront [2] aims to do the same for translating C++ to C++: > Cppfront is an experimental compiler from a potential C++ 'syntax 2' (Cpp2) to today's 'syntax 1' (Cpp1), to learn some things, prove out some concepts, and share some ideas. [1] https://en.wikipedia.org/wiki/Cfront https://en.wikipedia.org/wiki/Cfront [2] https://github.com/hsutter/cppfront https://github.com/hsutter/cppfront
- mistrial9 3y agofirst-hand knowledge of CFront and MPW
- tambourine_man 3y agoSee ObjC’s history
- RajT88 3y agoAnother example: https://en.m.wikipedia.org/wiki/PostScript https://en.m.wikipedia.org/wiki/PostScript
- selcuka 3y agoThat is different as it is a DSL, and it was supposed to be Adobe's core product. Also I don't think there were any off-the-shelf page description languages that they could use in 1982. Developing a C++ alternative in 1988 is a different story.
- crabbone 3y agoDVI was created at that same time. I know some PostScript, but I don't know DVI, so it's hard for me to judge which one is better. DVI though, from the start, wasn't a commercial product, and, I believe, was also "open-source" (even though the term might not have been officially established). Unfortunately (for DVI) Adobe started off by incorporating PostScript into printing hardware, so there was little reason for anyone in the printing industry to look for alternatives. It was a huge let down though when Adobe decided to replace PS with PDF. It still kind of is. I think about PDF as being a missed opportunity. Too many things in this format have been poorly designed, and, on top of it, it's forced for the situations where it shouldn't be used (eg. storing official documents) which generates a lot of hate for the format.
- mistrial9 3y agoPDF-spec is a ridiculous 'baku' [0] [0] A Japanese creature with the head of an elephant, the ears of a rhinoceros, the legs of a tiger, the body of a bear, and the tail of a cow.
- User23 3y agoAutoCAD is another great example of an application with a domain specific programming language that has provided an absolutely absurd amount of value over time.
- selcuka 3y agoI agree, but I don't think an application with an embedded DSL is the same thing as an application written in a home grown language.
- Tagbert 3y agoAutolisp was built for AutoCAD but it wasn’t a fully custom language. It was mainly a subset of Lisp with a few custom hooks to connect to AutoCAD commands.
- gcanyon 3y agoThe Panorama database (1) was written in something like PDP-11 code, running on a translation layer, from the very beginning until now (ish? I don't keep track of it). Meaning the author wrote translation layers for: 68K Macs running 16/32 bit not-32-bit clean MacOS 68K Macs running 32-bit clean 68K Macs running multitasking systems PowerPC Macs running System 9 PowerPC Macs running MacOS X Intel-chip Macs running 32-bit MacOS X Intel-chip Macs running 64-bit MacOS X (likely) M-chip Macs That's a lot of translation! I only spoke with him about it back around 2002, but at the time he seemed satisfied with the solution, preferring it to rewriting the whole app every time Apple updated something. (1) http://provue.com/ http://provue.com/
- crabbone 3y agoAround that time it was normal to have your own language if you were a big enough company. It made sense because "universal" languages were quite low quality (or there were commercial languages you had to buy). But, maybe there wasn't really much of thinking / planning put into it. It was just what everyone was doing. People sort of expected it. I think, mostly people thought about it as convenience, as in having all tools under your control... I worked for two such companies, but it was already the time when having your own in-house language started to feel weird. I believe that both transitioned to using something generic quite a while ago.