Joel Spolsky

Joel Spolsky
Joel Spolsky 2014-06-18.jpg
Joel Spolsky på Stack Exchange London-kontoret, juni 2014.
Född 1965 (57–58 år)
Albuquerque , New Mexico, USA
Nationalitet Amerikanskt, Nya Zeeland , israeliskt, dubbelt medborgarskap
Alma mater Yale universitet
Yrke(n)

Mjukvaruutvecklare VD, Stack Exchange Network medgrundare, Stack Overflow , Fog Creek Software och Trello
Hemsida joelonsoftware .com

Avram Joel Spolsky (född 1965) är en mjukvaruingenjör och författare. Han är författare till Joel on Software , en blogg om mjukvaruutveckling, och skaparen av projektledningsmjukvaran Trello . Han var programledare i Microsoft Excel- teamet mellan 1991 och 1994. Han grundade senare Fog Creek Software 2000 och lanserade Joel on Software -bloggen. 2008 lanserade han Stack Overflow -programmerarens Q&A-sajt i samarbete med Jeff Atwood . Genom att använda programvaran Stack Exchange som driver Stack Overflow, Stack Exchange Network nu värd för över 170 fråge- och svarsplatser.

Biografi

Spolsky föddes av judiska föräldrar och växte upp i Albuquerque , New Mexico, och bodde där tills han var 15. Han flyttade sedan med sin familj till Israel , där han gick gymnasiet och avslutade sin militärtjänst i fallskärmsjägarebrigaden . Han var en av grundarna av kibbutzen Hanaton i Nedre Galileen . 1987 återvände han till USA för att studera på college. Han studerade vid University of Pennsylvania i ett år innan han flyttade till Yale University , där han var medlem av Pierson College och tog examen 1991 med en BS summa cum laude i datavetenskap .

Spolsky började arbeta på Microsoft 1991 som programledare i Microsoft Excel- teamet, där han designade Excel Basic och drev Microsofts Visual Basic for Applications- strategi. Han flyttade till New York City 1995 där han arbetade för Viacom och Juno Online Services . År 2000 grundade han Fog Creek Software och skapade Joel on Software -bloggen. Joel on Software var "en av de första bloggarna som skapades av en företagsägare".

2005 samproducerade Spolsky och medverkade i Aardvark'd: 12 Weeks with Geeks , en dokumentär som dokumenterar Fog Creeks utveckling av Project Aardvark , ett verktyg för fjärrhjälp.

2008 grundade Spolsky Stack Overflow , en webbplats för frågor och svar för mjukvaruutvecklare, tillsammans med Jeff Atwood . Han fungerade som VD för företaget tills Prashanth Chandrasekar efterträdde honom i rollen den 1 oktober 2019. Spolsky förblir företagets ordförande.

2011 lanserade Spolsky Trello , ett onlineprojektledningsverktyg inspirerat av Kanban- metodik.

2016 tillkännagav Spolsky utnämningen av Anil Dash som Fog Creek Softwares nya VD, med Spolsky som fortsätter som Stack Overflows VD och som styrelseledamot i Fog Creek Software. Företaget har sedan dess döpts om till Glitch .

Han är författare till fem böcker, inklusive User Interface Design for Programmers och Smart and Gets Things Done . Han är också skaparen av "The Joel Test".

Spolsky myntade termen fix it två gånger för en processförbättringsmetod. Det innebär en snabb, omedelbar lösning för att åtgärda en incident och en andra, långsammare lösning för att förhindra att samma problem uppstår igen genom att rikta in sig på grundorsaken . Hans användning av termen Shlemiel the painter's algorithm , med hänvisning till en algoritm som inte är skalbar på grund av att han utförde för många överflödiga åtgärder, beskrevs av salon.com:s Scott Rosenberg som ett exempel på bra skrivande "om deras övärld på ett sätt som vinner respekt från sina kollegor och uppmärksamhet från utomstående."

Spolsky gjorde ett framträdande på WeAreDevelopers Conference 2017 och berättade hur utvecklare skriver manuset för framtiden. I sitt tal berättar Spolsky om hur mjukvara äter upp världen, hur den blir mer uppenbar i vardagen när människor interagerar med mer mjukvara dagligen och hur utvecklare hjälper till att forma hur världen kommer att fungera. allt eftersom tekniken fortsätter att utvecklas. Han använder metaforen "vi är bara små grönsaker som flyter i mjukvarusoppa", och hänvisar till vår ständiga användning av programvara för de mest vardagliga aktiviteter, inklusive arbete, sociala nätverk och till och med ta en taxi.

I december 2019 avslöjade Spolsky att han var ordförande för en simuleringsstartup med öppen källkod som heter HASH.

Privatliv

2015 tillkännagav Spolsky sitt äktenskap med sin man Jared på sociala medier och sin blogg. Han bor på Upper West Side Manhattan . 2022 adopterade Joel och Jared en hund som heter Cooper.

Schlemiel målarens algoritm

Inom mjukvaruutveckling är en Shlemiel the painter's-algoritm (ibland, Shlemiel the painter-algoritmen , inte att förväxla med " Painter's algoritme" ) en metod som är ineffektiv eftersom programmeraren har förbisett några grundläggande problem på de allra lägsta nivåerna av mjukvarudesign . Termen myntades 2001 av Spolsky, som använde ett jiddischskämt för att illustrera en viss dålig programmeringspraxis: Schlemiel (även återgett med Shlemiel) är att måla de prickade linjerna längs mitten av en väg. Varje dag målar Schlemiel mindre än han målade dagen innan, och klagar över att det beror på att han för varje dag kommer längre bort från färgburken och att det tar längre tid för honom att gå tillbaka och sätta färg på sin pensel.

Den ineffektivitet som Spolsky drog en analogi till var den dåliga programmeringsmetoden med upprepad sammanlänkning av nollterminerade strängar i C -stil . Det första steget i varje implementering av C-standardbiblioteksfunktionen för sammanlänkning av strängar är att bestämma längden på den första strängen genom att kontrollera varje tecken för att se om det är det avslutande nolltecknet . Därefter kopieras den andra strängen till slutet av den första.

I Spolskys exempel uppstår "Schlemiels" när flera strängar är sammanlänkade:

           
           
         
           strcat  (  buffert  ,  "John"  );  // Här läggs strängen "John" till bufferten  strcat  (  buffer  ,  "Paul" )  ;  // Nu läggs strängen "Paul" till den  strcat  (  buffert  ,  "George" )  ;  // ... och "George" läggs till den  strcat  (  buffert  ,  "Ringo" )  ;  // ... och "Ringo" läggs till det 

slut är längden på "JohnPaul" (eller, mer exakt, positionen för det avslutande nolltecknet) känd inom ramen för strcat () men kasseras när funktionen är . Efteråt, när strcat() blir tillsagd att lägga till "George" till "JohnPaul", börjar strcat() med det allra första tecknet i "JohnPaul" (som är "J") igen bara för att hitta det avslutande nolltecknet. Varje efterföljande anrop till strcat() måste beräkna längden igen innan ett annat namn kopplas samman till bufferten . Analogt med att Schlemiel inte bär färghinken (eller strängens längd) med sig, måste alla efterföljande strcat() s "gå" längden på strängen igen för att bestämma var den andra strängen ska kopieras. Allt eftersom mer data läggs till i bufferten med varje anrop till strcat() , kommer det avslutande nolltecknet också längre bort från början, vilket innebär att efterföljande anrop blir allt långsammare.

Problemen som illustreras av Spolskys exempel uppmärksammas inte av en programmerare som använder ett högnivåspråk och har liten eller ingen förståelse för hur språkimplementeringen fungerar, inklusive vissa grundläggande kunskaper om dess underliggande principer och funktioner.

Publikationer

Se även

externa länkar