Začnem s RTL/2, jazykom v reálnom čase s dôrazom na (a) opätovný vstup a (b) škaredosť. Jediný príklad kódu, ktorý môžem nájsť, je tento zo stránky Wikipédie. Napriek tomu to stačilo na vyvolanie traumatických spomienok.
kód:
TITLE Hello World; LET NL=10; EXT PROC(REF ARRAY BYTE) TWRT; ENT PROC RRJOB() INT; TWRT("Hello World#NL#"); RETURN(1); ENDPROC;
The
EXT PROC
vyhlásenie je vtiahnuť do TWRT
zo štandardnej knižnice, aby sme mohli niečo vypísať. RRJOB()
je ekvivalentom main()
.RTL/2 (alebo aspoň verzia, ktorá mi bola spôsobená) prišla s nepríjemným runtime prostredím, ktoré bežalo na DOS PC a na jeho napísanie ste museli použiť strašne nepriateľský editor. Netreba dodávať, že mimo chemického priemyslu Spojeného kráľovstva získal len malú trakciu a teraz je úplne mŕtvy. Učil som sa to ako súčasť modulu v reálnom čase na univerzite, asi pred 30 rokmi.
Kedysi som sa zaujímal o počítačové jazyky, takže som si ich stiahol a chvíľu sa pohral a oni sa posunuli ďalej. Napísal som nejaké veci v ABC (predchodca Pythonu) na svojom Atari ST pre zábavu. Niektoré jazyky montáže môžu byť trochu drsné. Napísal som nejakú montáž SHARC. Okrem toho by som nepovedal, že som toho napísal v mnohých iných jazykoch dosť na to, aby som to mohol spočítať (všetky veci ako zapnuté a vypnuté). Na vysokej škole sme mali dvoch profesorov, ktorí boli veľkými fanúšikmi ADA, takže sme to museli použiť na niekoľkých hodinách. Napísal nejaké Lisp a Prolog. Videl som malého Cobola, ale nikdy som to nemusel písať. Musel som však napísať knižnicu, ktorá importovala dáta plochého súboru Cobol.
Najhorší jazyk však bol proprietárny jazyk mediálnej spoločnosti. MTL: Morris Templating Language. Mimo webových stránok novín Morris doslova neexistoval. Pokúsil sa zjednodušiť bežné veci, aby umožnil rýchlejší vývoj vecí, ako sú kalendáre, zoznamy, grafy atď., ale v skutočnosti sa takmer nikdy nepoužíval vo väčšine nehnuteľností, pretože v zriedkavých prípadoch bolo niečo potrebné, bolo to mimo pracovnej doby ľudí ako ja, takže si povedali jebnúť na to a urobili grafiku
Ach... zabudol som na jednu... na mieste, kde som pracoval, sme vytvorili akýsi „jazyk“ pomocou XML. Je dosť ťažké vysvetliť, ako to fungovalo, ale v skutočnosti to bolo celkom skvelé. Bolo to na streamovanie veľkých súborov XML... ale nie ako XSLT... ako integrácia s databázou a kopa ďalších vecí.
Najstaršie sú Fortran a COBOL. Najneobvyklejší bol IBM JCL. Ale COBOL aj JCL boli na veľmi krátky čas. Fortran počas trvania môjho diplomu.
Čo bolo dosť mrzuté, bolo, že som bol človek UNIX & C skrz naskrz, ale musel som sa spojiť s databázou na IBM mainframe prostredníctvom úloh extrahovania údajov napísaných vyššie. Nenávidel to!
Najstarší? = ZÁKLADNÉ
Najčudnejšie? = LISP, MIPS a TCL/Tk, ale tie boli použité v mojom bakalárskom programe ako vyučovacie jazyky.
Najpodivnejšie, že som skutočne použil IRL? = ColdFusion približne v časovom rámci Macromedia.
Tiež som urobil nejakú x86 montáž. Mám tiež brata matematika, takže som mu pomáhal robiť Fortran.
(Žiadny z troch, ktorých by som sa dotkol znova, keby som mohol. Vždy hovorím, že veľa CS študentov hovorí, že milujú C, keď študujú. A uchovávajú si na to peknú spomienku... kým nebudú musieť napísať C za peniaze.)
To by boli podľa mňa najstaršie/najhoršie. (Nastiest môže zahŕňať aj súbory .bat.)
Urobil som tiež nejaké zostavy 6502, 68k, C64 Basic a Blitz Basic (to sa mi páčilo, to je to, čo zo mňa urobilo programátora).
Čo sa týka nezvyčajnosti, pomohol som známemu napísať „C+-“, bizarný vlastný C/C++ mashup ich univerzity. prečo? PREČO? Boli to nejaké hrozné kurzy algoritmov. Prečo by trávili čas písaním bizarného obskúrneho jazyka, keď ich učebné osnovy TAK ŤAŽKO SILI? Aké plytvanie.
och... úplne som zabudol spomenúť OOF... Objektovo orientovaný Fortran. V roku ~ 1991 sme v ňom urobili úlohu pre paralelné programovanie.
SQL je dosť divné. Rád používam názvy stĺpcov ako "FROM", "WHERE" a "DISTINCT", aby to bolo lepšie.
Najčudnejšie? Prolog, veľa zábavy
Najneobvyklejšie? Port OS v zostave pre „rekonfigurovateľnú“ architektúru ARC. Je/bola to špecifikácia ISA a implementácia referenčnej mikroarchitektúry, ktorá explicitne ponecháva priestor pre inštrukcie rozšírenia špecifické pre čip, registre, stav architektúry a tak ďalej. V zásade optimalizované na navrhovanie funkcionality ASIC, ktorá je pevne integrovaná na úrovni potrubia inštrukcií s pomerne všeobecným jadrom CPU.
Oh, tiež som výslovne napísal nejaký PostScript pre môj bakalársky kurz teórie/dizajnu/princípov programovacích jazykov.
Teraz sa preč.
Tiež COBOL a IBM JCL.
Sysadmin, ale robil som trochu COBOL a NATURAL v starej práci.
Najčudnejšie? Magna8 pod GCOS8. Jazyk rýchleho vývoja generujúci COBOL na starom sálovom počítači Bull, ktorý mal môj zamestnávateľ. Magna8 bolo "funkčné programovanie" predtým, ako to bola vec. Mali ste (v zásade) zadávať príkazy v akomkoľvek starom poradí a dávalo by to zmysel celej veci a vygenerovať na to program COBOL. V skutočnosti autori jazyka vedeli, že bez pomoci toho veľa nezmôže, takže ste zadali aj čísla riadkov v konkrétnych rozsahoch (rozsahy pre každý "modul", IIRC) a potom som musel zobrať výstup COBOL, zistiť, čo je zlé, a potom napísať ďalší riadok čísla. bleh.
Najnechutnejší? 80286 Montáž. dvojité krvácanie.
Najneobvyklejšie? Forth. Deep Blue C skončil na druhom mieste, ale Forth vyhral.
Nikdy som nepracoval s ničím mimoriadne starým, zvláštnym, odporným alebo nezvyčajným, ale množstvo nepraktických, frustrujúce, zle zdokumentované, nekompletné skriptovacie jazyky dodávateľa, s ktorými som musel bojovať prekvapenie.
Posledný zamestnávateľ mal pre svoj vlajkový produkt viacero vlastných konfigurácií DSL.
Divné a/alebo škaredé? Sendmail.cf a sendmail.mc, jeho bastard dieťa s makro procesorom M4.
RPG (RPG3) a IBM CL by boli moje najneobvyklejšie.
Napísal som tiež niekoľko makier VBA v Exceli na zadávanie údajov do IBM PCOMM pomocou mriežky pixelov a pomocou klávesov sendkey na automatizáciu úloh, ako je navigácia v ponukách a aktualizácia súborov hodnotenia. Ušetril som doslova tisíce človekohodín manuálneho zadávania údajov, no bál som sa, že sa niečo pokazí, pretože to bol motor celého cenového systému a doslova pomocou Excelu robiť veci „vložiť Y do 24. riadka a 36. stĺpca na obrazovke, stlačiť kláves Enter“ a celý deň bežať len na bicykli medzi tisíckami obrazovky
Tiež veľmi pôvodný C++, predtým ako existoval kompilátor, keď bol prevedený na stredný C. Čo, samozrejme, znamenalo, že ladenie bolo zábavné (ale aspoň to nevychrlilo stránky s chybami šablón).
Čo ma tiež núti premýšľať o metaprogramovaní šablón C++ - a nie v dobrom slova zmysle!
- Základné na TRS-80 (začiatok osemdesiatych rokov na strednej škole)
- Basic, Forth, nejaká verzia C všetko na 8-bitovom Atari
- Pascal, C, Modula-2 na Atari ST
- HyperTalk
- VAX Pascal a Turbo Pascal
Veľa kníh o rôznych jazykoch, ako je napríklad Prolog (rád čítam knihy o rôznych jazykoch, aj keď ich nikdy nepoužijem)
Java (v tom čase to bolo pre mňa aj tak nejasné - mal som pracovný projekt vziať Mac + dotykovú obrazovku + Java a niečo s tým urobiť. Našťastie to bolo zrušené skôr, ako bol napísaný jediný riadok kódu.)
VAX Basic - prvá skutočná práca, ktorú som mal ako programátor, zahŕňala toto.
Činnosti kódovania založené na C# a .NET teraz pohlcujú môj pracovný život, ale nie sú nejasné.
Bol tam aj domáci funkčný jazyk, ktorý môj vysokoškolák používal na kurzy CS II. Jeho syntax bola do istej miery modelovaná na Prologu, keďže sa v priebehu kurzu používali chrbtom k sebe. Jeho najvýraznejšou črtou bola veľmi jednoduchá syntax pre lenivé vyhodnocovanie konkrétnych výrazov. Myslím, že to bolo len lepenie $
pred nimi na označenie thunk. Vďaka tomu bolo veľmi jednoduché učiť koncepty, ako sú generátory, ktoré produkovali nekonečné zoznamy, ale iba vtedy, keď boli spotrebované.
Skauti PL/1
Domáci základný
Vysoká škola ForTran
Pascal
Modul-2
Smalltalk 85
PDP 8 ASM
Práca RPGII
COBOL
PL/SQL
C
Obchodné objekty
Smalltalk bol najpodivnejší, RPGII bol kód určený len na zápis. V rokoch 1983 až 1998 som si dobre zarobil tým, že som mohol upravovať RPG. Bavilo ma robiť PL/SQL rýchlejšie
V RPG sú číselné premenné dlhé 2 písmená, booleany sú 2-ciferné čísla, väčšie ako, menšie a rovné ako boli pozície na karte s 80 stĺpcami. Komentáre idú od stĺpca 81 do 96.
Konfiguračný súbor Sendmailu je jednoducho zlý.
Keď sa pozriem späť, pôvodný AMOS Basic bol dosť zvláštny a škaredý jazyk. Syntax bola všadeprítomná, niektoré bity sú akýmsi prirodzeným jazykom-y, niektoré bity sú viac podobné c, všetko sa robí pomocou kľúčových slov skôr než API, takže sú ich doslova stovky, bez akejkoľvek konzistencie v ničom, a tak veľa z nich je skutočne WTF materiál. A potom je tu vložený animačný jazyk AMAL
Tiež urobil trochu práce na mainframe Univac série 1100 (to bol v tom čase hlavný stroj univerzity). 36-bitové slovo a fungovalo s použitím Ones' Complement, takže malo kladnú a zápornú nulu
Mali sme kurz programovacích jazykov, ktorý sme mali asi 8 úloh a každá úloha musela byť napísaná v inom jazyku... takže Smalltalk, Prolog, Lisp, C, ADA, OOPascal (Borland) a niektoré ďalšie.
Mám silnú túžbu písať programy v Algole.
Bolo to úžasné. Viem, že existujú spoiler tagy, ktoré by som mohol použiť, ale nechcem to komentovať a kaziť článok ostatným. Trochu príliš dlho, musím sa priznať, že som to preletel...
Akademické využitie - x86 montáž alebo Ada. Nie som si istý prečo, ale miloval som prácu v montáži, hoci som nikdy nemusel robiť nič zložitejšie ako niekoľko úloh na vysokej škole. Ada sa učila na mojej univerzite, pretože sme mali niekoľko obranných spoločností, ktoré sa intenzívne prijímali z našej školy a konkrétne hľadali túto zručnosť. Nikdy som si to poriadne nezabalil.
Profesionálne použitie - starý C++. Už 20 rokov robím asi 95 % vývoja v Jave, ale momentálne dohliadam na veľkú kódovú základňu C++ z 90. rokov. Existuje obrovské množstvo zložitosti vyplývajúcej z 1) vyžmýkania prijateľného výkonu z hardvéru z 90. rokov a 2) implementácie funkcií od začiatku, ktoré sú teraz štandardom vo väčšine jazykov.
Chyba v kódovaní, ktorú som spomínal v poslednom pre-P.S. odsek tohto príspevku bol výsledkom strašného obmedzenia riadiacej štruktúry znázornenej v "Jednoduchý program FORTRAN II" v článku na Wikipédii. IIRC I mal trojcestnú vetvu, ktorá za určitých okolností išla na nesprávne číslo výpisu. Trvalo mi 14-hodinových dní od utorka do skorej nedeľnej rannej sprchy, kým som túto chybu rozpoznal, po vylúčení chyby kompilátora (predtým som našiel jednu predstavenú rozšírením C-E-I-R).
Hlavným rozšírením C-E-I-R na FORTRAN II bola implementácia logické trojcestné vetvenie, ak príkaz vetvenia mal v stĺpci 1 na zdrojovej karte 'B' (pre booleovskú hodnotu). Podmienka v zátvorkách príkazu by potom implementovala '*' ako operátor AND a '-' ako exkluzívny operátor OR v výraz a číslo prostredného príkazu z troch nasledujúcich po zátvorke by bolo rozvetvené na, ak by bol výraz vyhodnotený ako NEPRAVDA (Myslím). Toto rozšírenie umožnilo písať programy, ktoré porovnávali 6-znakové (dĺžka 7090 slov) reťazce textu, čo umožnilo možné písať programy, ktoré COBOL-61 úplne zjednodušil. Napriek tomu mal môj šéf opustiť program Fáza 1 opísaný v tom istom poslednom odseku v COBOL-61, takže mohol byť rozšírený na opravu chýb vytlačených kľúčom do nesprávneho stĺpca vo formáte RCA-PERT vstup. Neurobil; musel som manuálne opraviť chyby, ktoré zistila fáza 1.