co vim, tak napriklad pro Atari 2600 se vyvijelo na nejakem minipocitaci, snad od General Electric. Takze predpokladam, ze meli crosscompiler, loader do Atari 2600 (tj. cartridge s RAM namisto s ROM) a mozna i debugger, ale mozna to tehdejsi programatori zvladli i bez debuggeru :)
Bez debuggeru to zvládají (musejí zvládat) i někteří současní programátoři. ;-) Nemyslím si, že by to bylo tak těžké u takto jednoduchých věciček. V 80. letech nám na programování jednoduchých her taky stačil jen monitor v IQ-151 a čtverečkovaný papír. :-) A to jsme byly děcka...
Zajímavé, jak se zapomínají staré jednoduché postupy a skoro nikdo si nedovede představit, že na vrabce se dá jít i s něčím příhodnějším, než s kanónem. Třeba s prakem, jakkoli se to zařízení může zdát primitivní a pro nezkušeného nepoužitelné. Stačí jen trocha cviku.
Pokud jde o to v čem to psali, tak bych skoro dal ruku do ohně za to, že nic vyššího než Assembler to rozhodně nebylo. Vyvíjet pro takto malé platformy v něčem vyšším než v Assembleru je záležitostí posledních 10 let. Je zapotřebí si uvědomit věc, kterou spousta lidí neustále odmítá přijmout, totiž to, že vyšší jazyky se používají v první řadě z důvodů přenositelnosti (nejen mezi různými platformami, ale i v rámci jedné) - a to jak programů, tak vývojářů. Další důvod - že se v tom vyvíjí rychleji - se velmi nadhodnocuje. Skutečnost je však taková, že programátor v Assembleru je srovnatelně produktivní, jako programátor ve vyšším jazyku. Ale to už je malinko off topic.
Zapomněl jste na ještě jeden podstatný faktor - široká dostupnost knihoven pro vyšší jazyky.
Ale tomu se stejnou produktivitou [pro větší/složitější projekty] nevěřím. Máte nějaký odkaz? Případně; pokud to měří počtem řádků kódu, tak to možná platí, ale to je, jaksi "hrušky s jablkama".
Obecne je to uplne stejny problem jak pro assemblery, tak pro HLL ;-) Neni totiz zadny duvod, aby pro assemblery neexistovaly rozsahle knihovny nebo jeste lepe makra pro volani dejme tomu ceckovych funkci a funkci jadra. Taky neni duvod pro to, aby volani te funkce vypadala takto skarede:
mov eax, parametr_X push eax mov eax, parametr_Y push eax call function_XYZZY ...
kdyz to muze pres makro vypadat uplne "obycejne":
function_XYZZY(parametr_X, parametr_Y)
viz http://en.wikipedia.org/wiki/High_Level_Assembly
(hmm nekde zkusim pro ukazku dohledat sva makra pro volani funkci OpenGL pro MASM...)