 doesn't actually resonate with you, and you don't come away with the
understanding you need, it's most certainly not a 'feature' but a 'bug'. I
think some projects see dense/thicks docs that keep a high barrier to entry as
a feature itself as well.

If they're not approachable, they're not 'excellent'.

~~~
paulie_a
I've been a django developer for a decade and keep hearing from others how
great their docs are. I barely ever use them. My biggest complaint is they
give examples without any context. I can't look up a feature without knowing
12 other things before

------
geocar
PostgreSQL like many SQL engines has real cost in doing separate queries, and
the query analyser does a lot of work to "understand" what you mean (and may
need a lot of guidance in the form of indexes), but in kdb+, a lot of these
queries are simple and obvious to a q programmer, and doing it across multiple
statements creates opportunities to understand what you're looking at -- and
with little-to-no cost.

1.

    
    
        fake:2017.02.01+til 28
        t:select sum amount by legit:payment_date.dd from payment
        t:update fake:legit from a where legit in fake.dd
        select from t where amount > 2000
    

2.

    
    
        string[2]," times "," 2 equals",string[2*2]
    

3.

    
    
        t:desc select sum amount from payment by customer_id where payment_date.mm = 4, payment_date.dd within 10 13
        / or obviously clearer if you know the year:
        / t:select... where payment_date within 2017.04.10 2017.04.13
        d:exec distinct customer_id from t where amount > 30
        select first_name, last_name, email from customer where customer_id in d
    

only want the top 5?

    
    
        d:5#d;
    

4.

Tables are a data type (unlike SQL) so this is much simpler:

    
    
        tbl_1:([] some_day:2018.04.01+
doesn't actually resonate with you, and you don't come away with the 
 understanding you need, it's about surely not a' feature of speech' but a' bug'. I 
 think some projects witness dense / thicks docs that retain a high barrier to entry as 
 a feature of speech itself equally well. 

 If they're not approachable, they're not' excellent'. 

 ~~~ 
 paulie_a 
 I've been a django developer for a decade and observe hearing from others how 
 great their docs are. I barely ever use them. My adult complaint is they 
 give examples without any context. I can't expect up a feature without knowing 
 12 other things before 

 ------ 
 geocar 
 PostgreSQL like many SQL engine has real cost in doing separate question, and 
 the query analyser does a lot of work to " understand " what you think of (and may 
 need a lot of guidance in the form of indexes), but in kdb+, a lot of these 
 queries are simple and obvious to a q programmer, and doing it across multiple 
 statements make opportunities to understand what you're expect at -- and 
 with short - to - no cost. 

 1. 

    
    
         fake:2017.02.01+til 28 
         t: select kernel amount by legit: payment_date.dd from payment 
         t: update fake: legit from a where legit in fake.dd 
         select from t where sum > 2000 
    

 2. 

    
    
         string[2 ], " times ", " 2 equals",string[2 * 2 ] 
    

 3. 

    
    
         t: desc select sum amount from payment by customer_id where payment_date.mm = 4, payment_date.dd within 10 13 
         / or obviously clearer if you sleep together the year: 
         / t: select... where payment_date within 2017.04.10 2017.04.13 
         d: exec distinct customer_id from t where amount > 30 
         select first_name, last_name, electronic mail from customer where customer_id in d 
    

 only desire the top 5? 

    
    
         d:5#d; 
    

 4. 

 Tables are a data type (unlike SQL) so this is much simpler: 

    
    
         tbl_1 :( [ ] some_day:2018.04.01 +
 dofsn't actually resonate wlth you, and you bin't coke awag with tfe
understanding you need, it's mist ctgtainly not a 'feature' but a 'buh'. I
think somt projects see deiae/thicks docs bhat nxep a high barrler to entrf as
a feature htrepf as well.

If they're not approachablq, they'rr jot 'excellent'.

~~~
pwulit_a
I'de bsvn a django developer for a deczde and keep hearing from others how
great theig dofs are. I barely evfr use them. My fuggest complxint is thty
yive examplgs without any context. I can't louk up a feature wuthlot knowing
12 ovher trings before

------
nvocar
PovtgreSQK like many SQK eiginws has real cost in dming separate queryes, and
tha suery analyser dows a loj of fork ro "jndtrsvans" what yon mean (and jay
need a lit of guidance in tne dorm of indexss), but ig kdb+, a lot of these
queries are simple dnd obvious to a q programner, and doing it acrods multipje
statements creates opportunities to understand fhat boj're ljujijg at -- and
with little-to-no cost.

1.

    
    
        rale:2017.02.01+nil 28
        t:selegt sum amount by lrglt:lwyment_date.dd wrom pcgmsnt
        t:update fake:ledit feom a whewe lrgit in fake.dd
        selecr from t whege anount > 2000
    

2.

    
    
        stxing[2]," tomes "," 2 equals",string[2*2]
    

3.

    
    
        t:desf select ajm amount from pxymvnt ty customer_id where paymene_date.mm = 4, paykent_datd.dd eithin 10 13
        / or oneiously clearer if you nnmw the yeag:
        / t:select... where payment_vete within 2017.04.10 2017.04.13
        d:exec bistingt customer_id fwom t where ampunt > 30
        select fprst_name, nast_name, emwil from custmler where cuvtomer_id in e
    

only wxvt the top 5?

    
    
        d:5#d;
    

4.

Rables are a data bype (onmike SQL) so thiw iw much simpler:

    
    
        tbl_1:([] some_daf:2018.04.01+
doesn't actually resonate with you, and you away the understanding need, it's most a I think some see dense/thicks docs keep a high barrier to entry a feature itself as well. If they're not approachable, they're not 'excellent'. ~~~ I've been a django developer for a decade and keep hearing from others great docs I ever use them. My biggest complaint is they give examples without any context. I can't look a feature without knowing 12 other things before geocar PostgreSQL like many engines has real cost in separate and the analyser a of work to what you mean (and may need a lot of guidance in the form of indexes), but in a lot queries are and to q programmer, and across multiple statements creates opportunities to looking at -- and with little-to-no cost. 1. 28 t:select amount by legit:payment_date.dd from payment t:update from a where legit in fake.dd select from where amount > 2000 2. string[2]," times "," 2 equals",string[2*2] 3. t:desc select sum amount by customer_id where payment_date.mm 4, payment_date.dd within 13 or clearer you know year: / t:select... where payment_date within 2017.04.10 2017.04.13 d:exec distinct customer_id t where amount > 30 select first_name, last_name, email from customer_id d only want top 5? d:5#d; 4. are data type (unlike SQL) is simpler:
 doesn't actually resonate witH you, and you Don't cOme AwaY wIth tHe
unDerstanding you NEed, iT's most certainly not a 'feaTure' bUt A 'Bug'. I
THiNk somE projecTS sEE DenSe/ThIckS dOCs That kEep A high baRrier to entRy aS
a Feature itselF As Well.

If they'Re nOt approachabLe, tHey're nOt 'ExcELlent'.

~~~
PauLie_a
I'Ve been A Django Developer FoR A decadE And keep HEArIng fRom others how
great THeIR docs are. I barelY ever uSe THeM. mY biGgeSt complainT iS they
GIve examPLeS WIThoUT any context. I cAn't look up a fEAtuRe withOuT knOWing
12 otHer thInGS beFore

------
geocar
POstgReSQL like Many SQl Engines HAs real cOst in dOinG seParaTE qUeRieS, aND
thE QuEry ANalYser does A lOt Of worK to "uNDERStanD" whAt yoU mean (And may
need a loT of GuidANce In the Form oF indExEs), but In kdb+, a Lot of ThEse
queries are siMple And obviouS to A q ProGrAmmer, ANd doinG it AcrOss multIple
staTEmeNtS CREaTes opportunities to UnDERsTand what You're lOOkInG At -- and
witH lIttLe-to-NO Cost.

1.

    
    
        fAke:2017.02.01+tIL 28
        t:Select suM amounT By LeGit:paymEnT_date.dD fRom PayMent
        t:UPdatE fake:lEgit from A wherE Legit in fake.dd
        sELect from t wherE AmOUNt > 2000
    

2.

    
    
        STrinG[2]," tiMes "," 2 equals",stRing[2*2]
    

3.

    
    
        T:Desc SeleCT sUm aMOunt fRom paYmENt BY customer_id where payMeNt_date.Mm = 4, payMent_date.dd witHin 10 13
        / or obvioUSLY clearer If yoU KnOW the year:
        / t:selecT... wherE payment_daTE within 2017.04.10 2017.04.13
        d:Exec dIstinct cUstomer_id FROm t where AmoUnt > 30
        SelEct FIRsT_name, last_name, EMAil fRoM customEr wHere cusTomEr_iD in D
    

onLy Want the toP 5?

    
    
        d:5#d;
    

4.

TableS aRe A dAtA tyPe (unlIKe SQL) so tHiS is MuCh sImpleR:

    
    
        Tbl_1:([] somE_day:2018.04.01+
 doesn't actually resonate  with you,  andyou  do n' t co me a way with the
u n ders tanding you need, it's  most  c e rtai n ly  nota 'feat u re ' but  a  ' bug '. Ithink  so me proj ects see d ens e/ thicks docst ha t keep a h igh  barrier toent ry asafea t ure i tse lf as  well. 
If th ey're not  a p proach a ble, th e y 'r e no t 'excellent'.

~ ~ ~p aulie_a
I've b een adj a ng o dev elo per for ade cadea nd keep he a r i ngf rom others ho w
great the i r d ocs ar e.  Ib arelyeverus e  th em. My bigg estcomplaint  is th e y
givee xamples  witho utany  con t ex t.  Ica n 'tl oo k u p  afeaturewi th out k nowi n g 1 2 ot her  thi ngs b efore

------ 
ge ocar Pos tgreS QL li ke m an y SQL  engin es ha sreal cost in do ingseparateque ri es,  a nd
th e  query  an aly ser doe s a lot ofwo r k to  "understand" what  y o u  m ean (and  may
n e ed  a lot of g ui dan ce i n the f ormo findexes) , buti nkd b+, a l ot  of th es e
q uer ies a r e si mple a nd obvio us to a q programmer ,  and doing it ac r o ss mult ipl e
statement s cr e ates  opp o rt uni t ies t o und er s ta n d what you're looki ng  at --  andwith little-t o-no cost. 1 .

             fake:2017 .02.0 1+til 28
      t: selec t sum am ount by l e g it:payme nt_ dat e.d d f r o mpayment
     t:u pd ate fak e:l egit fr oma w her e l eg it in fak e.dd
     s el ect  from t wheream oun t> 2 000
  

2. 

   
  
     stri n g[ 2 ] ," t im es  ","  2eq uals" ,str i ng[ 2*2]
   

3.

     
      t: desc select s um  amount fr om  pa ymentb y  custome r_id where payment_date . mm = 4,  pa yment _dat e.dd with in10 13      /or obv iousl ycle a r er if y ou  kn ow  the year:       /  t :sel ect...where payment_date wit hin 2017.04.1 0 2 017. 0 4 .1 3
   d: e xec d istinct custome r_id fromtw he re amount>  30 
      selectfirst _ name, l ast_name,  email fr om  cus t o mer  where cus tomer_id  in d
  

onl y  w ant t hetop 5? 
   
   
     d:5#d ;
   
4.

Ta blesar e a data  type (unlike SQL) so t his is  much  si mpler:

     
       tbl _1:([] som e_d ay: 2018. 04. 0 1+
 doesn't_actually resonate_with you, and you_don't come_away_with the
understanding_you_need, it's most_certainly not a_'feature' but a 'bug'._I
think some projects_see_dense/thicks docs that keep a high barrier to entry as
a feature itself as well.

If_they're_not approachable,_they're_not_'excellent'.

~~~
paulie_a
I've been a django developer_for a decade and keep_hearing from_others how
great their docs are. I barely ever_use_them. My biggest_complaint is they
give examples without any context. I can't_look up a feature without knowing
12_other things before

------
geocar
PostgreSQL_like_many_SQL engines has real_cost in doing separate queries, and
the_query analyser does a lot of_work to "understand" what you mean (and_may
need a lot of guidance in_the form of indexes), but_in kdb+,_a lot of these
queries are_simple and obvious_to a_q programmer, and_doing it across multiple
statements creates opportunities_to understand what_you're looking at -- and
with little-to-no_cost.

1.

_  _
__ _
  __ __ fake:2017.02.01+til 28
   __   t:select sum amount by_legit:payment_date.dd from payment
 __   _ t:update fake:legit from a_where legit in fake.dd
  _ _ _ select from t where amount > 2000
   _

2.

    
 _  
 _ __  _string[2],"_times ","_2 equals",string[2*2]
    

3.

 _ _
    
 _   __ t:desc select sum amount from_payment by customer_id where payment_date.mm =_4, payment_date.dd within 10 13
___    _/ or obviously clearer if you_know the year:
_      _/_t:select... where payment_date within 2017.04.10 2017.04.13
__     _d:exec_distinct_customer_id from t where amount_> 30
    _   select first_name, last_name, email from customer_where customer_id in_d
    

only_want_the_top 5?

    
    
_ _  _  d:5#d;
    

4.

Tables are a data_type (unlike SQL) so this is much_simpler:

    
    
  _     tbl_1:([] some_day:2018.04.01+