Koji je najstariji, najčudniji, najopasniji ili najneobičniji jezik na kojem ste ikada kodirali?

Pretpostavljam da sam imao relativno sreće -- nikad se nisam bavio MUMPS-om ili kdb/q-om ili APL-om ili sličnim ezoterijskim jezicima. Puno se žalim na Perl, pa bi to bio moj glas za najčudnije/najopasnije. Najstariji bi vjerojatno bio Lisp. Najgluplji bi bio Windows4GL -- Ingresov proizvod koji je manje sposoban klon PowerBuildera.

Neki ljudi smatraju COBOL biti čudan jezik jer, na temelju dizajna Grace Hopper za FLOW-MATIC,
COBOL izjave imaju sintaksu sličnu engleskoj, koja je dizajnirana da bude samodokumentirajuća i vrlo čitljiva. Međutim, opširan je i koristi više od 300 rezervirane riječi. Za razliku od moderne, sažete sintakse kao što je y = x;, COBOL ima sintaksu sličniju engleskom (u ovom slučaju, MOVE x TO y).
Kliknite za proširenje...
Odjel obrane podržavao Hoppera jer su "poslovne" aplikacije ranih 1960-ih bile kodirane Asemblerski jezici 2. generacije programera koji ne znaju više od elementarne algebre, a koji su bili u kratka nabava. I sam sam to radio oko godinu dana, tako da sam naučio COBOL za 1 tjedan ravno 1969. Problemi su nastali kada su takve aplikacije
izdržao.

Takve aplikacije izdržao jer su utjelovili poseban organizacijski zahtjevi. Trebali su obraćenje, kao ovdje,

Od sredine 1994. do početka 1996. bio sam vodeći programer na projektu pretvaranja 2100+ programa NYC-a Integrirani sustav financijskog upravljanja Agencije za financijske informacijske usluge s IBM-ovog OS/VS COBOL-a na IBM-ov COBOL II. Projekt, za koji je bilo predviđeno da će trajati malo više od jedne godine rada, na kraju je trajao oko pet godina rada.

Najprije minimalna pozadina. FISA je osnovana nakon financijske krize u New Yorku 1975. ("Ford to City: Drop Dead!") kako bi riješila dva problema: (1) nije postojao proračun za cijeli grad u odnosu na stvarni knjigovodstveni sustav. (2) Razne gradske agencije plaćale su zaposlenike za koje nisu imale proračunske stavke. FISA je angažirala istaknutu konzultantsku tvrtku za izgradnju dvaju sustava: (1) integriranog sustava financijskog upravljanja i (2) upravljanja plaćama Sustav koji se—osim što radi sve uobičajene stvari koje radi sustav obračuna plaća—zakačio na IFMS kako bi osigurao da nijedan zaposlenik koji nije u proračunu ne dobije plaćeno.

Oba ova sustava napisali su različiti timovi izvođača koristeći IBM-ov OS/VS COBOL kompajler. Temeljni problem je bio u tome što je OS/VS COBOL kompajler bio samo prerađena verzija IBM-ovog originala COBOL-65 kompajler F-razine prije standardizacije ANSI, mogao je rukovati izjavama koje su IBM proširenja, a ne dio CODASYL COBOL-65. Neka od tih proširenja ispunila su trenutne potrebe koje je ANSI zadovoljio kasnije različitom sintaksom/semantikom, ali neka od tih proširenja formirala su izvornu razinu podjezik za otklanjanje pogrešaka (COBOL je izvorno dizajniran za pisanje aplikacija za skupnu obradu) koji nedisciplinirani programeri nisu mogli odoljeti korištenju za neotklanjanje pogrešaka kodirati. IBM je napisao svoj COBOL II ANSI-85-kompatibilni kompajler od nule koristeći nedavno razvijene CS tehnike, i nije ponovno implementirao F-level ekstenzije...

Kliknite za proširenje...

IBM je smatrao nužnim/korisnim dodati proširenja F-razine iz 1965. zbog brzog načina na koji je COBOL usvojen. Ali COBOL-ov čudna sintaksa engleskog jezika napravio je lako za dodavanje takvih proširenja, samo zahtijeva dodatne rezervirane riječi.
.
Ananke je rekao:

LabView je jezik koji sam koristio i koji mi se najmanje svidio. Djelomično zato što je baza koda s kojom sam se pomešao uključivala "virtualne instrumente" (labview za "modul") koji zahtijevaju tri monitora da u potpunosti stanu na zaslon odjednom, i bi li IT ili moj PI platili toliko zaslona za skroman doktorat student?

Kliknite za proširenje...
To je usran, iako prilično uobičajen, LV stil kodiranja. Potprogrami, ljudi, potprogrami.

Iskreno govoreći, LV je jedan od rijetkih jezika u kojem je, zbog metafore ožičenja, moguće napisati kod koji doslovno izgleda kao tanjur špageta. S obzirom na kodiranje bojom (koje vam govori tip podataka koji teče kroz svaku žicu), vjerojatno tjestenina primavera.

Bilo je, zapravo, nekoliko ljudi koji su mogli slijediti "šifra špageta" s puno GOTO-ova. Jedan od njih bio je programer po imenu Jerry iz NYC Transit Authority. Drugi je bio (tada nedavno promoviran) Kapetanica Grace Murray Hopper, kojemu sam postavio pitanje o GOTO-u u COBOL-u iz publike na sesiji jesenske zajedničke računalne konferencije 1973. Njezin je odgovor bio "Problem je što ljudi ne uče dovoljno čvrstu geometriju". Očito nije znala da ima rijedak talent.

Od 1983. do 1984. bio sam programer za Computer Sciences Corp., koja je izgradila rani sustav dijeljenja vremena čiji je primarni korisnički jezik bio Fortran 77. Dao sam sve od sebe da napišem strukturirani kod, ali jednom sam morao modificirati tuđi program napisan u njemu klasični Fortran stil. Napisano je s puno trosmjernih grana, koje sam imao velikih poteškoća pratiti.

DavidH je rekao:
Bilo je, zapravo, nekoliko ljudi koji su mogli slijediti "šifra špageta"
Kliknite za proširenje...
Možete pisati sranja na bilo kojem jeziku, neki od njih su tome pogodniji od drugih. Radio sam na mnogim C projektima gdje postoji samo jedan izlaz iz funkcije, sve postavlja određenu pogrešku i radi "goto end;" koji odmotava sve čisto i na jednom mjestu. Predivno je. Također sam vidio cijelu funkciju pretprocesora koja se zove u, koja ne uzima argumente, tako da biste dobili samo u; usred funkcije bez objašnjenja. Pitao sam nekoga gdje je to definirano u kodu i što radi i dobio odgovor "dobro je poznato".

Kao što je ranije spomenuto, čini se da Perl privlači ljude koji žele udariti čelom u tipkovnicu i dobiti kohezivni kod, ali ne imati da se tako piše.

Općenito, sve dok osoba nije nevjerojatno inteligentna i kodirana do krajnjih granica svojih sposobnosti, obično ste dobro. Držite se ideje da kod ima dvije funkcije, jedna je natjerati računalo da nešto učini, a druga je učiniti ono što radite lako razumljivom osobi koja ga čita.

Morao sam učiti Algol u školi. Svoje "programe" pisali smo rukom, a instruktor ih je ocjenjivao. Nije bilo računala na kojem bi ih pokrenuli.

U ranim 80-ima igrao sam se s nekim 8-bitnim kućnim računalima, većinom s njihovim vlastitim divljim individualnim verzijama BASIC-a. Najčudniji je vjerojatno bio onaj u Sinclairu ZX81.

U 90-ima sam radio neke stvari u TCL-u. Nedavno sam nastavio; TCL je od tada prešao dug put i savršeno odgovara skupu problema s kojima radim. Ali tada nisam bio osobito vješt s TCL-om i zaboravio sam... uglavnom sve. Bio sam Pascal programer jako dugo i navikao sam se na razne funkcije visoke razine s kojima se mogu igrati. TCL je puno drugačiji u načinu na koji radi stvari. Nije stvarno teško, samo sam se ustalio. TCL je malen i ima mnogo zanimljivih trikova u rukavu. A što se tiče jezika za koji se pretpostavlja da je gotovo mrtav, njegovi dijelovi sigurno prolaze okolo; SQLite je bio izvorni TCL-ov rukovatelj bazom podataka, a njegove grafičke ekstenzije su prenesene kao Perl/Tk i Tkinter pod Python.

Bavio sam se FORTH-om, jednom davno. Bio sam oduševljen konceptom, ali implementacije su bile... Sirovi. I dok je vjerojatno dobro funkcionirao za kontrolu stroja, za što je izvorno dizajniran, nije odgovarao stvarnom softveru koji sam želio napisati. TCL me dosta podsjeća na FORTH, osim što s njim možete pisati prave programe.

BitPoet je rekao:
Možete pisati sranja na bilo kojem jeziku, neki od njih su tome pogodniji od drugih. Radio sam na mnogim C projektima gdje postoji samo jedan izlaz iz funkcije, sve postavlja određenu pogrešku i radi "goto end;" koji odmotava sve čisto i na jednom mjestu. Predivno je. ...

...

Općenito, sve dok osoba nije nevjerojatno inteligentna i kodirana do krajnjih granica svojih sposobnosti, obično ste dobro. Držite se ideje da kod ima dvije funkcije, jedna je natjerati računalo da nešto učini, a druga je učiniti ono što radite lako razumljivom osobi koja ga čita.

Kliknite za proširenje...
Problem je bio u tome što — sve do ranih 1970-ih —najviše programi su bili napisani ili na asemblerskim jezicima za računala druge generacije ili na Fortranu—koji je do Fortrana II bio temeljno asemblerski jezik neovisan o stroju s usađenim mogućnostima matematičkog izražavanja i rukovanja nizovima. Tako su mnogi programeri bili prisiljeni da opsežno koriste GO TO na jeziku na kojem su kodirali, misao oni su bili dobro na pisanje i čitanje "sranje".

Praćenje moje iskustvo pronalaženja neuhvatljive greške u svom programu RCA Phase 3, I pročitajte Dijkstrina priopćenja ACM-a iz 1968.Go to izjava koja se smatra štetnom"pismo i shvatio da nisam tako dobar s GO TO. Dakle, kada sam naučio COBOL 1969., moj prvi program slijedio je smjernice "strukturiranog programiranja" @BitPoet opisuje kako je gore citirano.

Sve do sinoć sam uspio zaboraviti svoj posao analitičara za kontrolu projekta u Odjelu za financije, koji je trajao manje od godinu dana 1972-73. iz Grupe za upravljanje uslugama NYSE-a. Osim dizajniranja baze podataka računalnih operacija za predloženi Finance MIS, otklonio sam pogreške postojećeg Finance Basic MIS-a programe i razvijene procedure za naplatu računalnog vremena i razvojnih usluga za NYSE i AMEX odjelima. Spajanje naše grupe u SIAC uslijedilo je otpuštanje svih zaposlenika.

Postojeći MIS programi Finance Basic napisani su u PL/Ivjerojatno IBM sistemski inženjer. Ono što čini taj jezik IMHO vrijednim spomena u ovoj temi je, kao što članak na Wikipediji kaže u pododjeljku "Problemi s programerima",

Mnogi su programeri sporo odmicali COBOL ili Fortran zbog percipirane složenosti jezika i nezrelosti PL/I F kompilatora. Programeri su bili oštro podijeljeni na znanstvene programere (koji su koristili Fortran) i poslovne programere (koji su koristili COBOL), uz značajnu napetost, pa čak i nesklonost između skupina. PL/I sintaksa posuđena iz sintakse COBOL i Fortran. Dakle, umjesto da uoče značajke koje bi im olakšale posao, Fortran programeri tog vremena primijetili su COBOL sintaksu i imali mišljenja da se radi o poslovnom jeziku, dok su COBOL programeri primijetili Fortran sintaksu i gledali na nju kao na znanstveni Jezik.

Programeri COBOL-a i Fortrana gledali su na njega kao na "veću" verziju vlastitog jezika, i obojica su bili donekle zastrašeni jezikom i nisu ga bili skloni prihvatiti. Drugi faktor bio je pseudo-sličnosti s COBOL-om, Fortranom i ALGOL-om. To su bili PL/I elementi koji su izgledali slično jednom od tih jezika, ali su radili drugačije u PL/I. Takve frustracije ostavile su mnoge iskusne programere s žutim pogledom na PL/I, a često i aktivnom odbojnošću prema jeziku.

Kliknite za proširenje...

Programi koje sam naslijedio trebali su biti napisani u COBOL-u, iako je IIRC program koji je čitao vrijeme računala iz IBM OS/360 log datoteka imao aspekte asemblerskog jezika. Nisam ih morao ispravljati - samo program za naplatu vremena programera. AFAICT jedini razlog zašto su ovi programi napisani na PL/I je taj što taj je jezik bio ponosni proizvod IBM-a.

Posao IBM-ovih sistemskih inženjera usmjeren na prodaju bio je pomaganje kupcu s tehnologijom. Oni sigurno nisu bili stručnjaci za aplikacije, kao što su pokazale nedostajuće značajke programa za naplatu vremena programera. Morao sam obaviti sve svoje ispravljanje pogrešaka i proizvodnju tijekom kasne noći ili ranog jutra, na stvarnim računalima koja su pokretala NYSE on-line tijekom dana.

Malo je lakše imati višestruke povrate u C++ u usporedbi s C-om. Destruktori će počistiti za sobom pa obično ima puno manje posla prije povratka. Iako zapravo morate pisati u C++-u, a ne samo raditi C stvari u datoteci koja završava na .cpp.

Ah, jedan ulaz, jedan izlaz. Jedno od načela pokreta za strukturirano programiranje. Još uvijek me trza kad izgovaram stražarske klauzule. Napravljen za neki stvarno ružan kod, normalno. Ali ako primijenite modernu metodologiju "izdvajaj dok više ne možeš izvlačiti", ne bi bilo tako loše.

Napisao sam par programa oko 100LOC programa u BASIC-u i FORTRAN-u na papiru na završnim ispitima u srednjoj školi. Dobio 200/200 u CS-u.

johnsonwax je rekao:

U 90-ima (možda već u 80-ima) postojala je baza podataka koja je koristila vizualni programski jezik poput dijagrama toka. Zabavno za igrati, jebena noćna mora raditi bilo što vrijedno.

Kliknite za proširenje...
Ovo zapravo nije ista stvar, ali možda je ista ideja.

Houdini je program za vizualne efekte. U potpunosti se temelji na čvorovima, a njegovi čvorovi idu od vrlo niske razine do čvorova visoke razine koji su omotači za one niske razine. Također ima dobro osmišljen način pregledavanja svih podataka koje čvorovi prenose.

To nije eksplicitno programski jezik, ali ja na njega gledam kao na vizualni programski jezik. Također nije toliko opskuran jer se koristi u cijeloj industriji vizualnih efekata.

Što se tiče stvarnog programskog jezika, najbliži najčudnijem su Extendscript (stvar tipa JavaScript za automatizaciju Adobe proizvoda) i MEL (ugrađeni skriptni jezik za 3d softver Maya)

Najnoviji post na blogu

Rocket Report: Sljedeći korak Rocket Laba u ponovnoj uporabi, motor Blue Origin eksplodira
September 25, 2023

Teško je dati pozitivan rezultat za motor koji je eksplodirao na ispitnom postolju. BO je očekivao da će uspjeti.Čini se da je ovo velika stvar na ...

Rocket Report: Sljedeći korak Rocket Laba u ponovnoj uporabi, motor Blue Origin eksplodira
October 06, 2023

Teško je dati pozitivan rezultat za motor koji je eksplodirao na ispitnom postolju. BO je očekivao da će uspjeti.Čini se da je ovo velika stvar na ...

Guidemaster: odabir pravog tableta za svaki slučaj upotrebe
September 25, 2023

Nisam siguran da recenziju mogu shvatiti ozbiljno kada je činjenica da Samsung Galaxy Tab S8 Ultra ima utor za microSD karticu i da nije stavljena...