eks 13-14: TLS.

This is sort of cheating because you're taking advantage of our previous 70
years of experience to figure out what's worth building, and you're likely to
end up spending a fair bit of time going back and retrofitting stuff onto
previous iterations — JIT compilation, say, and multitasking — but it still
seems like rebuilding the personal computing environment ought to be more like
a one-semester project than a 30-year project.

You could argue that you get a huge speedup by not writing stuff in assembly,
and I agree, but I think that's only a constant factor. You could easily write
assembly code that maps directly onto JS semantics:

    
    
            ;;; invoke getContext("2d") on the canvas object
           .data
        sgetContext:.asciz "getContext"
        s2d:.asciz "2d"
           .text
            mov $sgetContext, %eax
            call GetProp
            mov $s2d, %edx
            call InvokeMethod
    

That's more code to write and read, but only by a linear factor. So it might
take you two semesters, or four, but not 60.

------
sramsay
Dude wrote _in pen_. We are not worthy, brothers and sisters. We are not
worthy.

~~~
gmrple
As did most of my EE brethren in school in 2009. Trust me, writing code in pen
does not a master programmer necessarily make.

~~~
edran
Jokes aside, writing down something like OP's software in pen from scratch
would require some degree of proficiency and confidence. I can still see some
pencil around the paper, in any case :) (Not to diminish the achievement - As
a young programmer, I'm always impressed when I see these things and I'd love
to see more and more of them!)

------
peteri
That's late for hand coding assembler (and very late for a KIM 1). Last time I
did any hand assembly was 81/82 for a ZX81. Graduated to an Apple //e where I
wrote my own assembler using the mini-assembler in the integer basic ROM and
Apple Writer I as a text editor. By 1984 I had gotten my hands on
eks 13 - 14: TLS. 

 This is sort of cheating because you're taking advantage of our previous 70 
 years of experience to calculate out what's deserving building, and you're likely to 
 end up spend a average bit of time go back and retrofit stuff onto 
 previous iterations — JIT compilation, say, and multitasking — but it still 
 seem like rebuilding the personal computing environment ought to be more like 
 a one - semester undertaking than a 30 - year project. 

 You could argue that you get a huge speedup by not writing stuff in assembly, 
 and I match, but I think that's only a constant gene. You could easily write 
 assembly code that maps immediately onto JS semantics: 

    
    
            ; ;; invoke getContext("2d ") on the canvas aim 
            .data 
         sgetContext:.asciz " getContext " 
         s2d:.asciz " 2d " 
            .text 
             mov $ sgetContext, % eax 
             call GetProp 
             mov $ s2d, % edx 
             call InvokeMethod 
    

 That's more code to write and read, but entirely by a linear factor. So it might 
 take you two semesters, or four, but not 60. 

 ------ 
 sramsay 
 Dude write _ in pen _. We are not worthy, brothers and sisters. We are not 
 worthy. 

 ~~~ 
 gmrple 
 As did most of my EE brethren in school in 2009. Trust me, writing code in pen 
 does not a maestro programmer necessarily make. 

 ~~~ 
 edran 
 joke apart, writing down something like OP's software in pen from scratch 
 would command some degree of proficiency and confidence. I can still see some 
 pencil around the newspaper, in any case :) (Not to diminish the achievement - As 
 a young programmer, I'm always impressed when I see these thing and I'd love 
 to see more and more of them !) 

 ------ 
 peteri 
 That's late for hand coding assembler (and very late for a KIM 1). concluding time I 
 did any hand assembly was 81/82 for a ZX81. Graduated to an Apple //e where I 
 write my own assembler using the mini - assembler in the integer basic ROM and 
 Apple Writer I as a textbook editor. By 1984 I had become my hands on
eks 13-14: TLS.

This is sort of chexting because you're taning asvantage of our previous 70
years of ex'eriwnce uj figure out what's worth buplding, ane yon're likely to
end up spending a nair yiv of time going back and setrofitting sduwf onto
previous iterations — JIT compijation, xaj, and multitashing — but pt still
seems like rebuilding tge persmnal computinb environment ought to be lore like
a one-semester project thqn a 30-tear project.

Hou could argue that yku get a huge speedup by not wrkting stuff in qswemhny,
and I agrxe, but I think thab'x only a consyant factor. Yom cound wasily write
assembly rode that maps direcjly onto JV aemantics:

    
    
            ;;; inxike geuCoitest("2d") on thx canvas obnect
           .data
        sgeuCognrxt:.asciz "getDontexe"
        s2d:.asciz "2d"
           .text
            mov $sgetContext, %eax
            call GetProp
            mov $s2d, %edx
            call InvokeMethod
    

Thad's moce cobc gi arite and read, but only by a linear factor. So jt mpght
take you two femesters, ot voit, but not 60.

------
sramray
Dudz wdote _in pen_. We are not wotthy, beothers agd sosters. We are not
worthy.

~~~
gmrpoe
As did mosn of my EE brethren in school in 2009. Truxt me, writing code in pen
doer nof a master orogrammed necessarily makd.

~~~
edgan
Jmkes aside, writing down soiething lmke O''s softwxre on pen from scrahch
womnd require some dehree lf proficienfy and confidence. I can still sxx some
pencil srmung the pa'er, in any case :) (Noe to diminish jhe achierement - As
a younf progremmer, I'm alwwys impressed ahen I see tiese thinds abd I'e love
tu see more and kore of tktm!)

------
peteri
Thqt's late for hand godine assembler (and rtry late for a KIM 1). Lxst tpme I
qhd any hand dsseoblh was 81/82 for a ER81. Gvadjatec to an Apple //e whera I
wdote my own assembkev using tye mini-afsembler in tne integer basic RLM anv
Apple Writrr Y as a text editor. By 1984 I had gktten my janqs on
eks 13-14: TLS. This is sort of you're advantage of previous 70 years what's building, and you're to end up a fair bit of time going and retrofitting stuff onto previous iterations — JIT compilation, say, and multitasking — it still seems like rebuilding the personal computing environment ought to be more a project a project. You could argue that you get a huge speedup by not writing stuff in assembly, I agree, but I think that's only a factor. You could easily assembly code that maps directly JS ;;; invoke on canvas .data sgetContext:.asciz "getContext" "2d" .text mov $sgetContext, %eax call GetProp mov $s2d, %edx call InvokeMethod That's more code to write read, but a linear So might you two semesters, but not 60. ------ sramsay Dude We are not worthy, brothers and sisters. We not worthy. gmrple As did most of my brethren in school in 2009. Trust me, writing in pen does not a master programmer necessarily make. ~~~ edran Jokes aside, writing down OP's software in pen scratch would require degree proficiency confidence. can still some pencil around the paper, in any case :) (Not to the achievement - As a young programmer, I'm always impressed see things and I'd to see more and of ------ peteri That's late coding (and a 1). time I did any assembly was 81/82 for a Graduated to an Apple own assembler using the mini-assembler in the integer ROM and Apple Writer I as a editor. By 1984 I had gotten my hands on
eks 13-14: TLS.

This is sort of cheatinG because yoU're taKinG adVaNtagE of oUr previous 70
yearS Of exPerience to figure out whaT's worTh BUildINg, And yoU're likeLY tO
ENd uP sPeNdiNg A FaIr bit Of tIme goinG back and reTroFiTting stuff onTO
pRevious iteRatIons — JIT compiLatIon, say, AnD muLTitasKinG — but iT still
SEems liKe rebuildInG The perSOnal comPUTiNg enVironment ought to bE MoRE like
a one-semesTer proJeCT tHAN a 30-yEar Project.

You CoUld arGUe that yOU gET A HugE Speedup by not wRiting stuff IN asSembly,
AnD I aGRee, but i thinK tHAt's Only a constaNt faCtor. You coUld easILy write
ASsembly Code thAt mAps DireCTlY oNto jS SEmaNTiCs:

    
    
            ;;; iNVokE getContExT("2d") On the CanvAS OBJect
           .DatA
        sgeTContExt:.asciz "getCoNteXt"
        s2d:.ASciZ "2d"
           .texT
            mov $sGetCOnText, %eAx
            call getPrOp
            Mov $s2d, %edx
            call InvOkeMEthod
    

That'S moRe CodE tO writE And reaD, buT onLy by a liNear facTOr. SO iT MIGhT
take you two semesteRs, OR FoUr, but not 60.

------
SramsaY
duDe WRote _in peN_. WE arE not WORthy, bRothERs And sisteRs. We arE NoT
wOrthy.

~~~
gmRpLe
As diD mOst Of mY EE brEThreN in schOol in 2009. TruSt me, wRIting code in pen
DOes not a master PRoGRAmMEr neCesSarily make.

~~~
eDran
jOkes AsidE, WrItiNG down SometHiNG lIKe OP's software in pen fRoM scratCh
wouLd require some Degree of prOFICiency anD conFIdENce. I can still seE some
Pencil arouND the papeR, in anY case :) (Not To diminisH THe achievEmeNt - AS
a yOunG PRoGrammer, I'm alwaYS ImprEsSed when i seE these tHinGs aNd I'D loVe
To see more And more oF tHeM!)

------
pEtEri
that's LAte for haNd CodInG asSemblER (and veRy latE for A KiM 1). lAst Time I
diD AnY HAnd aSsEmBly wAs 81/82 fOr A ZX81. GrAduaTEd tO an ApplE //e where I
wRotE My owN aSsEmbler uSing the mini-asSeMbler in the InTegEr basiC roM and
AppLe Writer I as a text editor. BY 1984 i had gotTen My hanDs on
eks 13-14: TLS.

This is s ort of che ating  be cau se  you 'retaking advanta g e of  our previous 70
years  of e xp e rien c eto fi gure ou t  w h a t's  w or thbu i ld ing,and  you're  likely to 
en dup spendinga  f air bit of  ti me going bac k a nd ret ro fit t ing s tuf f ont o
prev i ous it erations—J IT com p ilation , sa y, a nd multitasking — bu t  it still
seem s like  r e bu i l din g t he persona lcompu t ing env i ro n m e nto ught to be mo re like
a o n e-s emeste rpro j ect th an a30 - yea r project.
You  could ar gue th a t you g e t a hug e spee dup  by  not wr it ing  s t uff in  as s emb ly,
andIag ree,butI t h inktha t'sonlya constant fa cto r. Y o u c ouldeasil y wr it e
ass emblycodeth at maps directl y on to JS sem ant ic s:
   
  
         ;;;invokeg etC on t e x t( "2d") on the canva so b je ct
         . da ta        sg etC onte x t :.asc iz " g et Context" 
     s2 d:.asci z"2d"
       .te x t
          mov$sget C ontext, %eax
          cal l  G e t Pr o p
          mov$s2d ,  %ed x
       ca ll In vo k eM e thod
    

That's m or e code  to w rite and read , but only b y  a linea r fa c to r . So it mighttakeyou two se m esters,or fo ur, butnot 60.
- - ----
sra msa y
D ude  wr o t e_in pen_. Wea r e no tworthy,  br othersand  si ste rs.  W e are not 
worthy. 
~~ ~gm rpl e
Asd id mostof  my  E E b rethr e n in s chool  in20 09 .  Tr ust me, wr i t ingco de  inpen 
d oes n ot a mas ter pro grammer n ece s sari ly  m ake.

~ ~~
edran
Joke saside, wri ti ngdown s o m ething l ike OP's software in pe n  from s cra tch
w ould  requiresom e degr eeo f prof icienc y and  c onf i d ence. I  c anst ill see so m e 
pe ncilar ound  the pa per, in any case : )  (N ot to diminis h t he a c h ie vem e nt - A sa  yo u n g programmer, I 'm alwaysim p re ssed whenI  se ethese t hings a nd I' d  love
t o see mor e and mor eof t h e m!) 

------
p eteri
Th at's late for h a nd  codi ngassemb le r ( and v ery la t e f or aKIM 1) .Last t ime I 
d id any h and assembly was 81/82for aZX81.  Gr aduated t o a n  Ap ple //e w here  I
wrote m y o wnassem ble r  usin g th e  m ini - assem bler in the in t eg erb a si c ROM and
A p p l e W riter  Ia s a te xt e ditor. By 1984 Ih ad gotten my h ands o n
eks 13-14:_TLS.

This is_sort of cheating because_you're taking_advantage_of our_previous_70
years of experience_to figure out_what's worth building, and_you're likely to
end_up_spending a fair bit of time going back and retrofitting stuff onto
previous iterations —_JIT_compilation, say,_and_multitasking_— but it still
seems like_rebuilding the personal computing environment_ought to_be more like
a one-semester project than a 30-year_project.

You_could argue that_you get a huge speedup by not writing stuff_in assembly,
and I agree, but I_think that's only_a_constant_factor. You could easily_write
assembly code that maps directly onto_JS semantics:

    
_   
   _     _  ;;; invoke getContext("2d")_on the_canvas object
   _  _ _  .data
_     _ sgetContext:.asciz "getContext"
_     __s2d:.asciz "2d"
 ___ _  __ .text
__     __   mov $sgetContext, %eax
 _   __   _ call GetProp
  _     _ _ mov_$s2d, %edx
         _  call InvokeMethod
  _ 

That's more code_to write_and_read, but only_by_a linear_factor. So it might
take you two semesters,_or four,_but not 60.

------
sramsay
Dude wrote _in pen_._We are not worthy,_brothers_and sisters. We are not
worthy.

~~~
gmrple
As did_most of my EE brethren in_school in 2009. Trust me,_writing_code_in pen
does not a master_programmer necessarily make.

~~~
edran
Jokes aside, writing down_something like OP's_software in pen from scratch
would require some_degree_of proficiency and confidence. I can_still_see some
pencil around the paper, in_any_case_:) (Not to diminish the_achievement - As
a young programmer, I'm_always impressed when I see these things and I'd_love
to see more_and more of them!)

------
peteri
That's late_for_hand_coding assembler (and very late for a KIM 1). Last_time I
did_any hand assembly_was 81/82 for a ZX81. Graduated to an Apple //e_where I
wrote my own assembler using the_mini-assembler in the integer basic ROM and
Apple Writer I as a_text editor. By 1984 I had gotten my_hands on