1 คะแนน โดย GN⁺ 2023-07-05 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Sourcegraph เปลี่ยนไปใช้ monorepo แบบไม่เปิดเผยต่อสาธารณะ
  • รีโพซิทอรีนี้ (sourcegraph/sourcegraph-public-snapshot) เป็นสำเนาสาธารณะของรีโพซิทอรี sourcegraph/sourcegraph ก่อนการเปลี่ยนผ่าน

1 ความคิดเห็น

 
GN⁺ 2023-07-05
ความคิดเห็นจาก Hacker News
  • พูดในฐานะ CEO ของ Sourcegraph ตอนนี้ Sourcegraph ถูกแยกออกเป็น 2 ผลิตภัณฑ์คือ code search และ Cody
    Cody ยังคงเป็นโอเพนซอร์สภายใต้ไลเซนส์ Apache 2 ในไดเรกทอรี client/cody* ของรีโพซิทอรี และมีแผนจะแยกออกเป็นรีโพซิทอรีใหม่ที่เป็นโอเพนซอร์ส 100% ในเร็ว ๆ นี้
    หลักการด้านไลเซนส์คือให้เครื่องมือสำหรับนักพัฒนารายบุคคลเป็นโอเพนซอร์ส และคิดค่าบริการกับบริษัท
    รุ่นโอเพนซอร์สแบบฟีเจอร์จำกัดของ code search แทบไม่มีทั้งนักพัฒนารายบุคคลและบริษัทใช้งานเลย และการใช้งาน Sourcegraph code search ก็เอนเอียงไปทางบิลด์ทางการที่ไม่ใช่โอเพนซอร์สอย่างมาก ยิ่งกว่าเคสอย่าง Google Chrome เทียบกับ Chromium หรือ VS Code เทียบกับ VSCodium เสียอีก
    การดูแลทั้งสองรุ่นเป็นภาระต่อทีมวิศวกรรม และประโยชน์ที่ผู้ใช้ได้รับก็น้อยมาก
    รายละเอียดเพิ่มเติมอยู่ที่ https://github.com/sourcegraph/sourcegraph/issues/53528#issu...
    มีการประกาศการเปลี่ยนแปลงไว้ใน changelog และ PR แล้ว และการพัฒนาทั้งหมดก็ทำในที่สาธารณะ
    ตามแผนจะมีการแยก monorepo ขนาดใหญ่ออกเป็นรีโพซิทอรีโอเพนซอร์ส 100% สำหรับ Cody และรีโพซิทอรีแบบปิดซอร์สสำหรับ code search แล้วจะเขียนบล็อกโพสต์ในสัปดาห์นี้
    สำหรับโค้ดสาธารณะสามารถใช้ได้ที่ https://sourcegraph.com และสำหรับโค้ดส่วนตัวก็ยังใช้ Sourcegraph code search ได้ฟรีต่อไปใน self-hosted free tier
    พูดอีกอย่างคือ นักพัฒนารายบุคคลยังคงรัน Sourcegraph code search ได้ฟรี 100% และไม่มีผลกระทบต่อลูกค้า
    • Sourcegraph มีให้เฉพาะ อิมเมจที่ไม่ใช่โอเพนซอร์ส เท่านั้น กระบวนการบิลด์ก็ทั้งยากและพังมานานมาก และแม้แต่ตัวแอปเวอร์ชันโอเพนซอร์สเองก็มักใช้งานพังอยู่บ่อย ๆ
      แค่ค้นหา issue ไม่กี่นาทีก็เจอผลลัพธ์เกี่ยวข้องเยอะพอสมควร: https://github.com/sourcegraph/sourcegraph/issues/43231, https://github.com/sourcegraph/sourcegraph/issues/43203, https://github.com/sourcegraph/sourcegraph/issues/6790, https://github.com/sourcegraph/sourcegraph/issues/6783
      ถ้ามีคนบิลด์ได้ไม่กี่คน และต่อให้บิลด์สำเร็จผลลัพธ์ก็พังทุก ๆ ไม่กี่รีลีส การที่เวอร์ชันโอเพนซอร์สมีผู้ใช้น้อยก็เป็นเรื่องธรรมดา
      VS Code และ Chromium นั้นบิลด์ง่ายและหาเวอร์ชันที่มีคนบิลด์ไว้ล่วงหน้าได้จากหลายที่ ด้วยลักษณะและความนิยมของมัน
      ผมอาจติดตั้ง Chromium บิลด์ “ไม่ทางการ” จากรีโพซิทอรีของดิสโทร แต่คงไม่เอาโค้ดของตัวเองไปใส่ใน Sourcegraph บิลด์ไม่ทางการที่ทำโดยคนแปลกหน้าบน GitHub
      การเปรียบเทียบสองกรณีนี้ค่อนข้างไม่ยุติธรรม และยังมีปัญหาอื่นที่ขัดขวางการนำโอเพนซอร์สไปใช้ด้วย
      อยู่ช่วงหนึ่งที่ Docker image ทางการของ Sourcegraph รวม ไลเซนส์ฟรี 10 ที่นั่ง มาด้วย ซึ่งเพียงพอสำหรับหลายคน เลยไม่ได้มองหาทางเลือกอย่างบิลด์โอเพนซอร์ส
      การแจ้งการเปลี่ยนไลเซนส์และการปิดผลิตภัณฑ์ผ่านบล็อกเล็ก ๆ ในไฟล์ changelog หรือเมื่อมีใครสักคนพูดถึงประเด็นนี้ใน GitHub Issues นั้น ไม่ถือว่าเป็นการประกาศที่เพียงพอสำหรับการเปลี่ยนแปลงแบบนี้
      การไม่ยึดหลัก open-first การจำกัดผลิตภัณฑ์ด้วยปลั๊กอินเฉพาะ enterprise อย่างที่คนอื่นในโพสต์นี้พูด การไม่แจกบิลด์โอเพนซอร์ส และการเปลี่ยนไลเซนส์โดยไม่ประกาศล่วงหน้า ทั้งที่ก่อนหน้านี้ก็ได้ประโยชน์จากการตลาดฟรีในเชิงบวกจากคำว่าโอเพนซอร์ส เรื่องนี้ทำให้รู้สึกขมขื่น
      ยิ่งช่วงนี้มีหลายบริษัททำแบบนี้กันมากเพราะเรื่องอัตราดอกเบี้ย ก็ยิ่งเป็นแบบนั้น
    • ผมพยายามผลักดันการนำ SourceGraph มาใช้ที่ทำงานมานาน แต่สุดท้ายก็ถูกขัดขวางตั้งแต่ขั้นพิจารณา เพราะ การดีพลอยเวอร์ชันโอเพนซอร์สแทบเป็นไปไม่ได้เลย
      ผมไม่ได้คิดว่าการรับรู้ของ Sourcegraph ที่ว่าเวอร์ชันโอเพนซอร์สไม่ประสบความสำเร็จนั้นผิด และการปิดซอร์สก็น่าจะง่ายกว่าอย่างแน่นอน
      แต่ผลลัพธ์ก็คือพวกเขาคำนวณแล้วว่าความพยายามในการเปิดช่องทางรับผู้ใช้แบบนี้ไว้ ไม่คุ้มกับจำนวนคนที่เข้ามาทางนั้น จึงกลายเป็นว่าช่องทางหนึ่งถูกปิดลง
      ยังมีอีกความเป็นไปได้หนึ่ง ซึ่งผมเห็นด้วยมากกว่าว่าช่องทางนั้นอาจไม่ได้ถูกเปิดกว้างพอที่จะมีโอกาสประสบความสำเร็จตั้งแต่แรก
    • ถ้าจะ “คิดเงินกับบริษัท และทำเครื่องมือสำหรับนักพัฒนารายบุคคลให้เป็นโอเพนซอร์ส” ก็ไม่ควรใช้คำว่า Open Source
      ถ้ามีข้อจำกัดแบบนี้ มันก็ไม่ใช่โอเพนซอร์ส และก็ดูไม่ซื่อตรงอย่างเห็นได้ชัด
      ไลเซนส์แบบนี้ไม่ได้รับการรับรองจาก OSI
    • ผมเป็นหนึ่งในไม่กี่คนที่ใช้เวอร์ชันโอเพนซอร์สอยู่ และค่อนข้างชอบมัน ดังนั้นการเปลี่ยนแปลงครั้งนี้จึงน่าผิดหวัง
      ปัญหาของ Sourcegraph คือมันเข้าถึงยากสำหรับนักพัฒนาที่ทำโปรเจกต์ส่วนตัว
      ไม่มีแพลนแบบโฮสต์ให้ใช้ และโปรเจกต์ของผมก็เปิดเป็นโอเพนซอร์สได้ไม่ง่ายเพราะเรื่องนายจ้าง
      ตอนที่ Sourcegraph App ออกมา ผมตื่นเต้นมาก เพราะมันทำให้ลองใช้ Sourcegraph กับโปรเจกต์ของตัวเองได้โดยไม่ต้องตั้งค่า self-hosted ที่ซับซ้อน
      ผมถึงขั้นทำให้ scip-clang ใช้งานได้กับโปรเจกต์ที่อิง Bazel และยังลองตั้งค่า docker-compose ใน homelab ด้วย
      ตอนนี้ code search ถูกเอาออกจากแอปแล้ว และยังมีการเปลี่ยนแปลงแบบนี้อีก ทำให้ผมกังวลว่าในอนาคตอาจใช้ Sourcegraph กับโปรเจกต์ส่วนตัวไม่ได้เลย
      นี่เป็นโอกาสที่พลาดไป
      นักพัฒนารายบุคคลที่ใช้ผลิตภัณฑ์กับโปรเจกต์ส่วนตัวสามารถกลายเป็นผู้สนับสนุนที่ทรงพลังได้ และนักพัฒนาคนนั้นก็อาจโน้มน้าวให้นายจ้างซื้อผลิตภัณฑ์นี้ได้ด้วย
      ถ้าเป็นไปได้ผมก็ยินดีจ่ายเงิน แต่สำหรับคนคนเดียว 5,000 ดอลลาร์ต่อปี นั้นยากจะอธิบายความคุ้มค่า
    • ผมคิดว่าคอมเมนต์ทั้งหมด รวมถึงเนื้อหาวิพากษ์วิจารณ์ในนี้ ล้วนยุติธรรมและผ่านการไตร่ตรองมาอย่างดี
      ถ้าอยากคุยต่อหลังจากโพสต์นี้หลุดจากหน้าแรกของ HN ก็เข้ามาใน Discord ได้ที่ https://discord.gg/rDPqBejz93

ถ้าอยากแชร์ฟีดแบ็กหรือข้อไม่พอใจโดยตรงก็บอกมาได้ ถ้าโอเคก็สามารถเปิดเผยไฟล์บันทึกเสียงได้ด้วย

  • ถ้ากำลังมองหาเครื่องมือค้นหาโอเพนซอร์สสำหรับค้นหาแบบ grep เร็วบ้าคลั่ง ในหลายรีโปหรือโมโนรีโปขนาดใหญ่ ขอแนะนำ livegrep อย่างมาก: https://github.com/livegrep/livegrep
    เดโมอยู่ที่ https://livegrep.com/search/linux
    Stripe เคยใช้และค่อนข้างได้รับความนิยม และบ่อยครั้งแม้แต่การค้นหาในรีโปเดียว livegrep ก็ยังเร็วกว่า ripgrep บนเครื่องโลคัล
    บทความรีวิว: https://www.alexdebrie.com/posts/faster-code-search-livegrep...
    บทความสะท้อนอิทธิพลของผู้สร้าง nelhage: https://blog.nelhage.com/post/reflections-on-performance/, บทความด้านสถาปัตยกรรม: https://blog.nelhage.com/2015/02/regular-expression-search-w...

    • https://oracle.github.io/opengrok/ ก็เป็นโอเพนซอร์สเช่นกัน และรวดเร็วกับฐานซอร์สโค้ด ขนาดมหึมา ระดับเหมือนเอา Android ทั้งหมดมารวมกับ Linux kernel ทั้งก้อน
    • ยังมี https://github.com/boyter/cs ที่กำลังพัฒนาโดยเล็งไปที่ขนาดเล็กกว่า
      ถ้าไม่ใหญ่เกินไปก็มักทำงานได้ดีกับหลายรีโปเช่นกัน
    • livegrep เป็น grep เวอร์ชันเว็บ ที่ใช้ได้ดีตามตัวอักษร
      แต่ก็ชัดเจนว่าไม่ใช่ตัวแทนของ Sourcegraph ที่สามารถเข้าใจโค้ดฐานจริง ๆ ไล่ตามเส้นทางโค้ด และค้นหา references ได้
  • ไม่ควรสร้างสตาร์ตอัปบนสมมติฐานว่าผลิตภัณฑ์ของคนอื่นจะห่วยไปตลอดกาล
    จากการปรับปรุง GitHub Search ครั้งล่าสุด เป็นไปได้ว่า Sourcegraph สูญเสียความเกี่ยวข้องไปแล้ว
    GitHub Search แบบเก่าใช้อัลกอริทึมที่แทบจะแย่ที่สุดเท่าที่จะเป็นไปได้
    มันทิ้งเครื่องหมายวรรคตอนและช่องว่างทั้งหมด ค้นหาได้แค่ identifiers, ไม่รองรับ pattern, ค้นหาแบบใส่เครื่องหมายอัญประกาศก็ไม่ได้ และเมตาอาร์กิวเมนต์ที่พอใช้ได้แทบมีแค่ filename:xyz
    ตอนนี้ GitHub ปรับปรุงความสามารถค้นหาพื้นฐานแล้ว Sourcegraph ก็อาจอยู่ในความเสี่ยง
    เคยใช้ Sourcegraph ที่ Lyft ซึ่งตอนนั้น Lyft แทบจะมีงบเสียไปกับเครื่องมือซอฟต์แวร์ได้ไม่จำกัด ส่วนที่ Databricks เคยติดตั้งเวอร์ชันโอเพนซอร์สไว้ แต่ไม่มีใครสนใจมันเลย

    • GitHub Search จะทำให้ Sourcegraph หมดความหมายก็ต่อเมื่อโค้ดทั้งหมดโฮสต์อยู่บน GitHub เท่านั้น
      เริ่มเบื่อมากกับการที่ โซลูชันเฉพาะ GitHub ถูกยกให้เป็น “มาตรฐานอุตสาหกรรม”
      รวมถึง vendor ที่ออกแค่การเชื่อมต่อกับผลิตภัณฑ์ที่ใช้ได้บน GitHub เท่านั้นด้วย
      Git เป็นโปรโตคอลแบบกระจายศูนย์ ดังนั้นได้โปรดปฏิบัติกับมันแบบนั้น
    • ถึง GitHub Search จะห่วยน้อยลงแล้ว แต่มันก็ยังแย่แบบประหลาดอยู่ดี ทุกวันนี้ก็ยังดาวน์โหลดรีโป GitHub ลงมาแล้วใช้ grep ตรง ๆ เป็นประจำ
    • คิดว่า GitHub Search ไม่น่าจะมาแทน Sourcegraph ได้
      GitHub ไม่ได้ฟรีโดยเฉพาะสำหรับองค์กรเอกชนขนาดใหญ่ และ Sourcegraph ก็มีความสามารถในการค้นหาดีกว่า GitHub มาก
    • สงสัยว่ายังมี niche ฝั่ง enterprise เหลืออยู่หรือไม่ สำหรับคนที่ไม่ได้ใช้ GitHub แบบคลาวด์หรือ GitLab ฯลฯ
      เท่าที่เข้าใจ เวอร์ชัน on-premises ของ GitHub ยังไม่มีแผนจะใส่ความสามารถค้นหาโค้ดแบบใหม่
  • สงสัยว่ามีใครใช้เวอร์ชันเปิดจริง ๆ บ้างไหม
    จำได้ลาง ๆ ว่าเคยดูเมื่อ 2-3 ปีก่อน แต่ฟีเจอร์ที่น่าสนใจจริง ๆ หายไปหมด
    ราคา enterprise ตอนนั้นอยู่ราว 100 ดอลลาร์ต่อเดือนต่อผู้พัฒนา ซึ่งเกินจริงแบบสิ้นเชิง และเห็นชัดว่าตั้งเป้าหาลูกค้ารายใหญ่ที่มีงบไม่จำกัดเท่านั้น
    ตอนนี้เหมือนราคาจะเปลี่ยนแล้ว และมี “Enterprise Starter” ที่ เริ่มต้น 5,000 ดอลลาร์ต่อปี แต่แม้จะมีรายการต่าง ๆ มากมาย ก็ยังไม่ชัดเจนอย่างยิ่งว่าข้อจำกัดจริงคืออะไร
    ผมสนใจผลิตภัณฑ์นี้จริง ๆ และมันอาจเป็นส่วนเสริมที่ดีในชุดเครื่องมือของเรา แต่ความไม่โปร่งใสของราคาน่าผิดหวัง

    • เวอร์ชันโอเพนซอร์สไม่มีอิมเมจ Docker แบบ prebuilt อย่างเป็นทางการ จึงต้อง build เอง และการ build แบบโอเพนซอร์สก็พังอยู่เป็นเวลานาน
      เมื่อ 1-2 ปีก่อนเคยสัญญาว่าจะซ่อมหรือออกอิมเมจโอเพนซอร์สอย่างเป็นทางการ แต่ก็ไม่เกิดขึ้น
      สุดท้ายมีคนหนึ่งทำ release train ที่ใช้งานได้บน GitHub และปล่อยคอนเทนเนอร์โอเพนซอร์สออกมา ซึ่งบน Docker Hub มียอด pull เกิน 10,000 ครั้ง
      สำหรับอิมเมจไม่เป็นทางการก็ถือว่าเยอะมาก
      ถ้าเครื่องมือของ third party ที่ไม่ใช่แกนหลักของอินฟราต้องให้ติดต่อฝ่ายขาย ผมก็มักจะหลีกเลี่ยง
      อย่าทำให้บริษัทต้องเสียเวลาไปคุยกับฝ่ายขายเพราะแค่ไม่กี่ไลเซนส์ แค่มีช่องกรอกตัวเลขกับปุ่มซื้อก็พอแล้ว
      ความเชื่อมั่นที่มีต่อ Sourcegraph ก็ลดลงเหมือนกัน เพราะดูเหมือนจะเปลี่ยนทิศทาง ราคา และกติกาหลายครั้งต่อปี
    • เคยติดตั้งเวอร์ชันโอเพนซอร์สในบริษัทเล่น ๆ แล้วซิงก์รีโปราว 750 รีโป
      ได้ใส่แพตช์บางอย่างเพื่อรองรับ OAuth2 proxy และเอา telemetry ออก
      ตัวซอฟต์แวร์เองยอดเยี่ยม เร็วมาก และทำงานตามที่ตั้งใจไว้
      ผ่านไปไม่กี่เดือนมีผู้ใช้ลงทะเบียน 70 คน แต่คนที่ลองใช้จริงรวมทั้งหมดมีแค่ 3 คน
    • ทำให้นึกถึงราคา full user ของ New Relic ที่ 400 ดอลลาร์ต่อเดือน
    • ตอนนี้ดูเหมือนกำลัง pivot ไปทาง AI อย่างแรง และแทบไม่อยากยอมรับด้วยซ้ำว่าผลิตภัณฑ์ฝั่งอ่านยังมีอยู่
      แปลกมากจริง ๆ
    • ผมว่าไม่ยุติธรรมนักที่จะบอกว่าการจ่าย 100 ดอลลาร์ต่อเดือนไม่ได้ถ้าไม่มี “งบไม่จำกัด”
      งบเราค่อนข้างจำกัด แต่ก็ยังจ่ายให้หลายผลิตภัณฑ์มากกว่านั้น
      ถ้าเป็นเครื่องมือที่เพิ่ม productivity หรือช่วยธุรกิจได้ ก็มีคุณค่าพอจะจ่าย
  • ไลเซนส์เปลี่ยนไปเกือบ 3 สัปดาห์แล้ว แต่ บล็อกโพสต์ release 5.1.0 ไม่ได้พูดถึงข้อมูลนี้เลย
    ตอนนี้ก็ยังไม่มีประกาศอย่างเป็นทางการ
    ดูเหมือนว่าผู้ทำ Sourcegraph open source container จะแจ้งว่า release train ของตัวเองจบลงแล้ว: https://github.com/jensim/sourcegraph-release-train/

  • การรองรับในช่วงเดโมไม่ค่อยดีนัก, การรองรับ C++ ที่ซับซ้อนก็ยังไม่พอ, ผสานกับระบบบิลด์ C++ สมัยใหม่ได้ไม่ดี และราคาก็แพงเกินเหตุ
    พวกเขาผลักดันฟีเจอร์ “campaign” อยู่เรื่อย ๆ แต่สำหรับเรา มันเป็นเครื่องมือรีแฟกเตอร์อัตโนมัติที่ซับซ้อนเกินไป และยังรองรับระบบบิลด์ที่ไม่เป็นกรรมสิทธิ์และใช้กันอย่างแพร่หลายของเราไม่ได้ด้วยซ้ำ
    เราเอาเงินค่าไลเซนส์นั้นไปจ้างนักพัฒนา 2 คนสำหรับงานรีแฟกเตอร์โค้ดแทน และหลังจากนั้นพวกเขาก็สร้างเครื่องมืออื่น ๆ ได้อีก โดยไม่ต้องจ้างใครเพิ่มมาคอยดูแลการเชื่อมต่อบริการที่ย่ำแย่
    ตอนคุยกับเรา ก็ยากจะบอกได้ว่าพวกเขาหาตลาดเฉพาะทางเจอแล้ว
    ตอนนี้อาจจะดีขึ้นแล้วก็ได้

    • จากการที่ยังใช้ชื่อเก่าว่า “campaign” ดูเหมือนว่าคุณน่าจะประเมิน Sourcegraph เมื่อราว 2.5 ปีก่อนหรือเก่ากว่านั้น
      หลังจากนั้นมีการเปลี่ยนแปลงไปมาก
      ไม่นานมานี้เพิ่งเปิดตัวอินเด็กเซอร์ใหม่ scip-clang(https://about.sourcegraph.com/blog/announcing-scip-clang) และนำไปใช้สร้างดัชนีโค้ดเบสขนาดใหญ่อย่าง Chromium ได้สำเร็จ
      อินเด็กเซอร์นี้อาศัยฐานข้อมูลคอมไพล์แบบ JSON ซึ่งเหมือนกับอินเด็กเซอร์ตัวเก่า lsif-clang และสามารถสร้างได้ง่ายจาก CMake, Bazel, Meson, Make เป็นต้น
      ช่วงหลังยังรองรับ การนำทางโค้ดข้ามรีโพซิทอรี สำหรับ C++ แล้วด้วย: https://about.sourcegraph.com/blog/c-cpp-cross-repo
    • น่าสงสัยว่าราคาไลเซนส์มันแพงขนาดไหนกัน ถึงจ้างนักพัฒนาได้ตั้ง 2 คน
    • อยากรู้ว่าใช้ระบบบิลด์อะไร
      ผมคิดว่าทุกวันนี้ฐานข้อมูลคอมไพล์แบบ JSON น่าจะสร้างได้ค่อนข้างดีแล้ว
      เช่น ใน language server ของ VS Code ก็ใช้เหมือนกัน
  • https://github.com/sourcegraph/sourcegraph/issues/53528#issu... ดูเหมือนจะเป็นคอมเมนต์ที่มีคนฝั่งโปรเจ็กต์สรุปเหตุผลว่าทำไมถึงเปลี่ยน

    • ส่วนที่สะดุดตาคือดังนี้
      Sourcegraph บอกว่าจะยังคงทุ่มเทให้กับ Zoekt ซึ่งเป็นเอนจินค้นหาโค้ดโอเพนซอร์ส และจะอัปสตรีมการเปลี่ยนแปลงต่อไป: https://github.com/sourcegraph/zoekt
      ซอร์สโค้ดจะยังคงเปิดเผยต่อสาธารณะต่อไป
      นักพัฒนารายบุคคลยังสามารถใช้ Sourcegraph ได้ฟรีต่อไป ทั้งกับโค้ดสาธารณะบน sourcegraph.com และโค้ดส่วนตัวในฟรีเทียร์แบบ self-hosted
      บอกว่ามีนักพัฒนารายบุคคลหรือบริษัทเพียงน้อยมากที่ใช้รุ่นค้นหาโค้ดแบบจำกัดซึ่งเป็นโอเพนซอร์ส และคนส่วนใหญ่แบบท่วมท้นคือ มากกว่า 99.9% ใช้ผลิตภัณฑ์องค์กร
      ต่อไปการดูแลสองรุ่นพร้อมกันเป็นภาระอย่างมากต่อทีมวิศวกรรม และให้ประโยชน์กับผู้ใช้น้อยมาก
    • เมื่อไม่กี่เดือนก่อน พวกเขาเอาไลเซนส์ Enterprise ฟรีที่อนุญาต 10 ที่นั่งนักพัฒนาออกไป และบริษัทเล็กบางแห่งคงกำลังชะลอการอัปเดตพร้อมดูรุ่นโอเพนซอร์สอยู่ แต่ตอนนี้คงไม่ใช่แล้ว
    • ดูเหมือนว่าไม่มีใครใช้รุ่นโอเพนซอร์ส และพวกเขาไม่อยากดูแลสองรุ่นที่ไม่มีใครใช้
      มีเขียนไว้อีกว่าจะมีรุ่น self-hosted ฟรีให้บุคคลทั่วไป แต่ผมหาไม่เจอบนเว็บไซต์
  • โดยรวมแล้วผมไม่เคยชอบ ผลิตภัณฑ์แบบ open core
    ในฐานะคนที่สร้างอะไรบางอย่าง การวางอุปสรรคไว้ต่อหน้าผู้ใช้และจำกัดขอบเขตการใช้งานผลงานของตัวเองมันให้ความรู้สึกขาดความเป็นช่างฝีมือ
    การตัดสินใจที่จงใจขัดขวางวิธีที่ผู้คนใช้ผลิตภัณฑ์ บางครั้งก็ให้ความรู้สึกว่าเกิดจากความโลภล้วน ๆ
    ถ้าลองจินตนาการถึงโลกที่ Sourcegraph เป็นซอฟต์แวร์เสรีทั้งหมด ลูกค้าองค์กรก็น่าจะยังยอมจ่ายเงินเพื่อโฮสต์ Sourcegraph แบบ on-premises อย่างปลอดภัยอยู่ดี
    เพียงแต่คงไม่สามารถคิดค่าบริการตามจำนวนที่นั่งได้
    พวกเขาคงต้องตั้งราคาผลิตภัณฑ์ให้ต่ำพอ เพื่อไม่ให้ลูกค้าประหยัดเงินก้อนใหญ่ด้วยการจ้างวิศวกรมาดูแล Sourcegraph แบบ on-premises เอง
    ผมสงสัยว่า Sourcegraph หรือผู้ประกอบการ open core รายอื่นเคยประมาณการไหมว่า ถ้าเปลี่ยนไปเป็นซอฟต์แวร์เสรีทั้งหมดแล้วจะเสียลูกค้าและรายได้ไปมากแค่ไหน
    การสร้างซอฟต์แวร์เสรีแล้วเก็บค่าโฮสต์อาจเป็นฐานของธุรกิจที่ยั่งยืนได้ แต่ก็น่าจะยากที่จะให้ผลลัพธ์ในระดับที่เงินร่วมลงทุนคาดหวังจากการลงทุนที่ประสบความสำเร็จ
    พูดตรง ๆ ผมคิดว่าโครงสร้างพื้นฐานจะเป็นซอฟต์แวร์ปิดแบบกรรมสิทธิ์ก็ไม่เป็นไร
    เพราะถ้าคุณกำลังเขียนโปรแกรมที่ความปลอดภัยสำคัญ การเปิดโค้ดของโครงสร้างพื้นฐานอย่างเสรีก็อาจเท่ากับให้กระสุนแก่ผู้โจมตีจำนวนมาก
    ถ้าคุณเชื่อในพลังของระบบอัตโนมัติและการสร้างซอฟต์แวร์คุณภาพสูง ก็สามารถสร้างซอฟต์แวร์เสรีที่มีโค้ดโครงสร้างพื้นฐานเป็นกรรมสิทธิ์ได้ โดยที่ติดตั้งและดูแลในโครงสร้างพื้นฐานของลูกค้าได้ง่ายและปลอดภัย และมีภาระในการปฏิบัติการฝั่งผู้โฮสต์ต่ำมาก
    แนวทางแบบนี้อาจนำไปสู่ธุรกิจที่แข็งแรงมากได้
    ผมสงสัยว่าทำไมเราไม่เห็นธุรกิจแบบนี้มากกว่านี้

  • https://github.com/sourcegraph/sourcegraph/commit/3cd931ef54... มีข้อมูลเพิ่มเติมอยู่นิดหน่อย แต่ก็ไม่ได้มาก

    • โดยทั่วไปแล้วก็มักคาดหวังว่า ประกาศการเปลี่ยนไลเซนส์ ควรออกมาก่อนที่จะลงมือทำการเปลี่ยนแปลงนั้น
  • อยากรู้ว่ามีระบบค้นหาโค้ดโอเพนซอร์สตัวไหนที่ดีสำหรับเชื่อมต่อ Git repository ราว 100 แห่งให้ใช้งานบนเว็บได้
    ไม่ต้องการใช้การค้นหาของ GitHub เพราะค้นหากว้างเกินไปและไม่รองรับ repository อย่าง GitLab เป็นต้น
    เคยดู Debian code search https://github.com/Debian/dcs มาก่อน แต่รู้สึกว่าน่าจะต้องลงแรงพอสมควรเลยยังไม่ได้ศึกษาต่อจนจบ
    แต่ https://github.com/Debian/dcs/blob/main/howto/building.md ดูเข้าถึงได้ค่อนข้างง่าย
    มี Zoekt ที่ Sourcegraph พูดถึงด้วย https://github.com/sourcegraph/zoekt แต่ยังไม่แน่ใจว่าใช้งานได้ดีแค่ไหน
    ถ้ามันดีมากจริง ก็สงสัยเหมือนกันว่าทำไม Sourcegraph เวอร์ชันโอเพนซอร์สถึงเคยมีอยู่
    จากที่มีการพูดกันว่าช่วงหลายปีที่ผ่านมา Sourcegraph เวอร์ชันโอเพนซอร์สตามหลังไปมาก ก็ดูเหมือนไม่มีแผนจะ fork อย่างจริงจัง
    GCS release https://github.com/google/codesearch ดูเหมือนจะถูกโอเพนซอร์สออกมาโดยไม่มี frontend
    ด้านบนยังมีคนแนะนำ Livegrep https://github.com/livegrep/livegrep กับ OpenGrok https://oracle.github.io/opengrok/ ด้วย
    น่าลองใช้มาก แต่ถ้ามี Docker Compose config ที่ใช้งานได้เลยก็น่าจะช่วยให้เริ่มต้นได้ง่ายมาก
    ยังมี Eureka https://github.com/Rajeev-K/eureka ด้วย
    ดูมีพลังน้อยกว่า แต่ก็น่าจะ deploy ได้ง่ายกว่า

    • Google codesearch ไม่ใช่ “ผลิตภัณฑ์” ที่ใช้งานได้จริง
      Livegrep(https://github.com/livegrep/livegrep) ได้แรงบันดาลใจมาจากมันและใช้งานได้ดีพอสมควร
      Zoekt เดิมก็เป็นโปรเจกต์โอเพนซอร์สของ Google แต่หยุดการบำรุงรักษาไปแล้ว และ Sourcegraph รับช่วงต่อ
      มันเป็นแกนหลักของการค้นหาแบบ regex/ลิเทอรัลพื้นฐานส่วนใหญ่ใน Sourcegraph
      โค้ดของ Mozilla สามารถค้นหาได้ผ่าน Searchfox(https://searchfox.org/) ซึ่งใช้ตัวทำดัชนีของ Livegrep ร่วมกับตัวทำดัชนี Git ของตัวเองและฐานข้อมูล cross-reference ตามภาษา
      OpenGrok(https://github.com/oracle/opengrok) ก็เป็นที่รู้จักพอสมควร แต่รู้สึกว่า UI แย่กว่าทางเลือกอื่น ๆ เล็กน้อย
    • สำหรับ repository ขนาดเล็กและการใช้งานผ่าน command line ก็มี cs: https://github.com/boyter/cs
    • ยังมี Hound ด้วย: https://github.com/hound-search/hound