these one-line "libraries".

I say generally more than a few hundred lines because there are some
exceptional cases, such as encryption algorithms or some very particular data
structures like red-black trees, where they may not be a whole lot of lines
per se, but they can be very dense, very details-oriented, very particular
lines. Most of our code is not like that, though.

~~~
tabtab
Re: _It's not that hard_

Do you mean creating libraries that are flexible and partitioned well for
_future_ needs? I do find that hard and almost no library maker I know of gets
it right the first time. Analysis of current needs is difficult; analysis of
future needs is extra difficult. Experience helps, but is still not powerful
enough. The future continues to surprise the heck of out me. Tell God to slow
things down ;-)

~~~
jerf
No, I mean that it's not _that_ hard to do some due diligence when picking a
dependency. You just need to get over the idea that it's something you don't
need to do.

No, you're not going to read every single line, but you ought to be running
through the basics outlined by Russ in his post. If you're being paid to code
and you're not doing those basics, you're being negligent in your professional
duty.

And knowing the internet and its inability to deal with nuance, let me say
again, no, it's not _trivial_. But it's not _that hard_, either. If a
dependency is worth bringing in, it's bringing you enough value that you ought
to be able to spare the effort of doing the basic due diligence.

------
trhway
15 years ago adding an external module was an endeavor involving approval
forms, lawyers, etc. so that it frequently were much easier just to develop
required functionality yourself. These days i still shudder seeing how the
build goes somewhere, downloads something (usually you notice it only when
whatever package manager being used for that part of the build didn't find the
proxy or requires very peculiar way of specifying it - of course at the
companies with transparent proxies people didn't notice even that )...
completely opaque in the sense that even if i spend some time today looking
into what is downloaded and where from, tomorrow another guy would
these one - line " libraries ". 

 I say generally more than a few hundred occupation because there be some 
 exceptional cases, such as encryption algorithm or some very particular data 
 structures like crimson - black trees, where they may not be a unharmed lot of lines 
 per se, but they can be very dense, very detail - oriented, very particular 
 production line. Most of our code is not like that, though. 

 ~~~ 
 tabtab 
 Re: _ It's not that unvoiced _ 

 Do you mean creating libraries that are flexible and partitioned well for 
 _ future _ need? I do find that hard and almost no library manufacturer I know of gets 
 it right the first clock time. Analysis of current needs is difficult; analysis of 
 future needs is extra unmanageable. Experience helps, but is still not powerful 
 enough. The future continues to surprise the heck of out me. Tell God to decelerate 
 thing down ;-) 

 ~~~ 
 jerf 
 No, I mean that it's not _ that _ hard to do some due diligence when picking a 
 dependency. You just necessitate to get over the idea that it's something you don't 
 want to cause. 

 No, you're not going to read every single lineage, but you ought to be running 
 through the basics outlined by Russ in his post. If you're being pay to code 
 and you're not doing those basics, you're being negligent in your professional 
 duty. 

 And knowing the internet and its inability to deal with nuance, let me say 
 again, no, it's not _ superficial _. But it's not _ that hard _, either. If a 
 dependency is worth bringing in, it's bring you adequate value that you ought 
 to be able to spare the campaign of doing the basic due diligence. 

 ------ 
 trhway 
 15 years ago total an external module was an endeavor involving approval 
 forms, lawyers, etc. so that it frequently were much easier precisely to develop 
 required functionality yourself. These day i still shiver seeing how the 
 build goes somewhere, downloads something (normally you notice it only when 
 whatever package coach being used for that region of the build didn't find oneself the 
 proxy or requires very peculiar way of specifying it - of course at the 
 company with transparent proxies multitude didn't notice even that)... 
 completely opaque in the common sense that even if i spend some time today looking 
 into what is downloaded and where from, tomorrow another guy would
thede one-line "libraries".

I san generally more than a few hhndred lknes because there are some
eeceprionao cases, such as encrypgion algogithms or somt very particular data
strmeturea likz ced-black trees, ehere they may not be a fhulz lot of lines
per se, but they can be very drnde, very detailf-oritntqd, vsgy particular
lines. Most of our dode is not like thay, though.

~~~
tabtab
Re: _It's not tjat jard_

Do you mean crfating librqrief that are fldxible and partitioned well for
_future_ needs? I do find that hard and qlnosh no library makeg I know of gcns
it richt the first time. Anslyvis of current needs is vifficult; analysis os
future naebs is extra difficult. Ezperignce velpr, bug ia xtjll noh pkwerful
enohgh. The futyre continues to sutpwpxe the heck kf out mq. Tell God to slow
things down ;-)

~~~
jerf
No, I keah that it's not _that_ hare to do some due dilihence wheg picking a
dependency. You just need to get over tve idxa thcb kr's something you don't
need to do.

No, you're not goigf uo gead every single line, but ypu oidht to be runving
thxkufh the basics outllned by Russ in his pjst. Of you're being paid to code
qnd you're non doung those basics, ylu're being uegliggnt in your professional
duty.

Aud knosing the inhernet ans its inability tu dval fith nuance, let me say
agaig, no, it's iot _txivial_. Bjt ij's not _ehat hard_, fithev. If a
dependency is wortk britging in, ih's bringing you enough value thev you ought
to ba atle to s'are tme effort of doyng the basic bue diliyence.

------
tfhway
15 yeara ago avding an extqrnal module fws an endeavmr involding appeoval
fofos, lawyers, etc. so that pt frewuently were much casiet nust to develop
xtquured functionaloty yotrdekf. Dhese days i stiul rnuddef seeing hoc ghe
biild goes somewhere, gownmoads something (usiajly you botice ie only when
whstever package manwger ueing nsed fpr jhat part of the build didn't fihd the
prody jr requires dery peculiar wav of specifying it - of course at the
compenies with transparent proxies people didn'j nptice even vhat )...
cjmpletely opaque in the sense that even if i skend some time today lokking
itto wjat is downloaded and where from, tomorrow another guy would
these one-line "libraries". I say generally more few lines because are some exceptional or very particular data like red-black trees, they may not be a whole of lines per se, but they can be very dense, very details-oriented, very lines. Most of our code is not like that, though. ~~~ tabtab Re: not hard_ you creating libraries that are flexible and partitioned well for _future_ needs? I do find that hard almost no library maker I know of gets right the first time. of current needs is difficult; of needs is difficult. helps, is still not enough. The future continues to surprise the heck of out me. Tell God to slow things down ~~~ jerf mean that not hard do some due picking a dependency. You just need the idea that it's something you don't need do. No, not going to read every single but you ought to be running through the outlined by Russ in his post. If you're being paid to code and you're not basics, you're being negligent your professional duty. knowing internet its to deal nuance, let me say again, no, it's not _trivial_. But it's _that hard_, either. If a dependency is worth bringing in, you value that you to be able to the of doing the basic ------ 15 an module an endeavor involving approval lawyers, etc. so that it were much easier just These days i still shudder seeing how the goes somewhere, downloads something (usually you notice only when whatever package manager being used for that part of the didn't find or requires very peculiar way of specifying it of course at the with transparent proxies people didn't notice even that )... opaque the sense even if i some time today into what is where from, another would
these one-line "libraries".

I say Generally mOre thAn a Few HuNdreD linEs because there ARe soMe
exceptional cases, such As encRyPTion ALgOrithMs or somE VeRY ParTiCuLar DaTA
sTructUreS like reD-black treeS, whErE they may not bE A wHole lot of lIneS
per se, but theY caN be verY dEnsE, Very dEtaIls-orIented, VEry parTicular
liNeS. most of OUr code iS NOt Like That, though.

~~~
tabtab
RE: _it'S Not that hard_

Do yOu mean CrEAtING liBraRies that arE fLexibLE and parTItIONEd wELl for
_future_ neEds? I do find tHAt hArd and AlMosT No librAry maKeR i knOw of gets
it rIght The first tIme. AnaLYsis of cURrent neEds is dIffIcuLt; anALySiS of
FuTUre NEeDs iS ExtRa difficUlT. EXperiEnce HELPS, but Is sTill Not poWerful
enough. THe fUturE ConTinueS to suRpriSe The heCk of ouT me. TeLl god to slow
things Down ;-)

~~~
Jerf
No, I meAn tHaT it'S nOt _thaT_ Hard to Do sOme Due diliGence whEN piCkING A
dEpendency. You just neEd TO GeT over the Idea thAT iT's SOmething YoU doN't
neED To do.

NO, you'RE nOt going tO read eVErY sIngle liNe, But you OuGht To bE runnINg
thRough tHe basics OutliNEd by Russ in his pOSt. If you're beinG PaID To COde
aNd yOu're not doinG thoSE basIcs, yOU'rE beINg negLigenT iN YoUR professional
duty.

AnD kNowing The inTernet and its iNability to DEAL with nuaNce, lET mE Say
again, no, it's nOt _triVial_. But it's NOt _that haRd_, eitHer. If a
dePendency iS WOrth brinGinG in, It's BriNGInG you enough valUE That YoU ought
tO be Able to sParE thE efForT oF doing the Basic due DiLiGeNcE.

------
trHway
15 yEArs ago adDiNg aN eXteRnal mODule waS an enDeavOr InVOlvIng apprOVaL
FOrms, LaWyErs, eTc. sO tHat it FreqUEntLy were mUch easier JusT To deVeLoP
requirEd functionaliTy Yourself. ThEsE daYs i stiLL Shudder sEeing how the
build goes somEWhere, doWnlOads sOmetHing (usualLy yOu notiCe iT Only whEn
whatEver pAcKagE MAnageR BEiNg uSeD for that paRT Of tHe buiLd Didn'T find thE
proxy or requires veRY peCuliar way of spEciFyinG IT - oF coURsE At tHe
COmpANIes with transparEnt proxies PeOPlE didn't notiCE evEn That )...
comPletely OpaquE In the seNse that evEn if i spenD sOme tIME toDay looking
Into what Is downloaDEd and WHeRe froM, toMorrow AnOthEr guy Would
these one-line "libraries" .

I say g enera lly  mo re  tha n afew hundred li n es b ecause there are someexcep ti o nalc as es, s uch ase nc r y pti on  a lgo ri t hm s orsom e veryparticular  da ta 
structuresl ik e red-blac k t rees, wherethe y mayno t b e  a wh ole  lotof lin e s
perse, but t he y  can b e  very d e n se , ve ry details-orient e d, very particula r
line s. Mo s t  of  ou r code isno t lik e  that,t ho u g h .
~ ~~
tabtab
Re:  _It's nott hat  hard_ 
Doy ou mea n cre at i nglibraries t hatare flexi ble an d  partit i oned we ll for 
_f utu re_n ee ds ? I  d o  fi n dtha t  ha rd and a lm os t nolibr a r y make r I  kno w ofgets
it right  th e fi r sttime.  Anal ysis  o f cur rent n eedsis  difficult; ana lysi s of
futu rene eds  i s ext r a diff icu lt.  Experi ence he l ps,  b u t is  still not powerfu le n ou gh. Thefuture co nt i nues tosu rpr iset h e hec k of ou t me. Te ll God to  s low
thi ng s down  ; -)
~~ ~
jer f 
No,  I mea n that i t's n o t _that_ hardt o do some due di l i ge n ce w hen  picking adepe n denc y. Y o ujus t  need  to g et ov e r the idea that it' ssometh ing y ou don't
need  to do.

N o , you're n ot g o in g  to read every  sing le line, b u t you ou ght t o be run ning
thro u g h the ba sic s o utl ine d by  Russ in hisp o st.If  you're  be ing pai d t o c ode 
an dyou're no t doingth os eba sic s, yo u 're bein gneg li gen t iny our pr ofess iona ldu t y.
And kn o wi n g  the  i nt erne t a nd  itsinab i lit y to de al with n uan c e, l et  m e say
a gain, no, it' snot _trivi al _.But it ' s  not _th at hard_, either. If ad ependen cyis wo rthbringingin,  it'sbri n ging y ou eno ugh v al uet h at yo u ou ght 
t o be ablet o  sp are t he  eff ort ofdoing the basic du e  di ligence.

--- --- 
trh w a y15y ea r s a go add i n g an external m odule wasan en deavor inv o lvi ng  approv al
form s, la w yers, e tc. so th at it fre qu entl y wer e much eas ier just  to devel o p
req u ir ed fu nct ionali ty  yo ursel f. The s e d ays i  still  s hudder  seei ng  how the 
build goes somewhere,downlo ads s ome thing (us ual l y y ou notice  itonly whenwha tev er pa cka g e man ager be ing usedfort hat parto fthe b ui ld didn't f i n d  th e
pro xyo r requ ires  very peculiar wa y  of specifying  it- ofcou r se a tthe
companieswit ht r ansparen tproxies peo ple didn 't notic e even  that)...
co m p le t ely op aque  in  the sens e t ha t  even i fis pend s ometi me tod ay loo k ingi n to what is downl oaded a nd wh e refrom,  t omorrow anot her guy wo uld
these one-line_"libraries".

I say_generally more than a_few hundred_lines_because there_are_some
exceptional cases, such_as encryption algorithms_or some very particular_data
structures like red-black_trees,_where they may not be a whole lot of lines
per se, but they can_be_very dense,_very_details-oriented,_very particular
lines. Most of our_code is not like that,_though.

~~~
tabtab
Re: _It's_not that hard_

Do you mean creating libraries that_are_flexible and partitioned_well for
_future_ needs? I do find that hard and_almost no library maker I know_of gets
it right_the_first_time. Analysis of current_needs is difficult; analysis of
future needs_is extra difficult. Experience helps, but_is still not powerful
enough. The future continues_to surprise the heck of out_me. Tell God to slow
things_down ;-)

~~~
jerf
No,_I mean that it's not__that_ hard to_do some_due diligence when_picking a
dependency. You just need to_get over the_idea that it's something you don't
need_to_do.

No, you're not_going_to_read every_single line, but_you_ought to_be_running
through the basics outlined by Russ_in_his post. If you're being paid to_code
and you're not doing_those_basics, you're being negligent_in your professional
duty.

And knowing the_internet and its inability to deal_with nuance,_let me_say
again, no, it's not _trivial_. But it's not _that hard_, either._If a
dependency is worth bringing in,_it's bringing you enough_value that_you_ought
to be able_to_spare the_effort of doing the basic due diligence.

------
trhway
15_years ago_adding an external module was an_endeavor involving approval
forms, lawyers,_etc._so that it frequently were much_easier just to develop
required functionality yourself._These days i still shudder_seeing_how_the
build goes somewhere, downloads something_(usually you notice it only when
whatever_package manager being_used for that part of the build_didn't_find the
proxy or requires very peculiar_way_of specifying it - of course_at_the
companies_with transparent proxies people didn't_notice even that )...
completely opaque in_the sense that even if i spend some time_today looking
into what_is downloaded and where from,_tomorrow_another_guy would