פרק מספר 487 של רברס עם פלטפורמה - באמפרס מספר 85: רן, דותן ואלון באולפן הוירטואלי עם סדרה של קצרצרים שתפסו את תשומת הלב בתקופה האחרונה - בלוגים מעניינים, דברים מ- GitHub, וכל מיני פרויקטים מעניינים או דברים יפים שראינו באינטרנט וחשבנו לאסוף ולהביא אליכם.וכמיטב המסורת לאחרונה - גם לא מעט AI, כי על זה הצעירים מדברים בזמן האחרון.🎗️00:53 דותן(דותן) כן, אז האייטם הראשון - למי שמכיר LSP, אז זה פרוטוקול של VS Code, נראה לי ששם זה הומצא, והוא בא להגיד...(רן) אני חשבתי שב-Vi, האמת . . . חשבתי שב-Vim המציאו את זה. שם לפחות נתקלתי בזה בפעם הראשונה . . . (דותן) לדעתי . . . האמת, אני לא יודע. בראש שלי LSP הגיע במקור מ-VS Code, ועשה את דרכו ל-Neovim והתגלגל.וזה אומר, שאם אתה רוצה לייצר Plug-in לעורך שלך - כדי, נגיד, לעשות Refactoring, לעשות דברים חכמים בקוד.אז אתה יכול לכתוב בעצמך LSP Server, שיש לו Instance אחד במערכת שלך בדרך כלל - וה-Editor שלך מדבר איתו בפרוטוקול מסודר, בפרוטוקול LSP.וככה אתה מקבל את הפונקציונליות הזאת, בלי לכתוב משהו ספציפי ל-IDE.כי אם אתם זוכרים, אז נגיד JetBrains, יש להם את ה-SDK שלהם, ואם נלך אחורה ל-NetBeans גם כן, וכו' וכו'.זאת התקופה שהיית כותב Plug-in לכל Editor בנפרד.(רן) זאת אומרת, יש הפרדה בין ה-Frontend -שזה בעצם ה-IDE, וזה יכול להיות JetBrains, זה יכול להיות VS Code, זה יכול להיות Vim - לבין ה-Backend, שמממש את הלוגיקה של השפה עצמה.(דותן) נכון, כן.אז סתם כאילו לפתוח רגע את הנושא - כל אחד יכול להוריד LSP לשפה שלו.אגב, יש LSP טובים, ויש פחות טובים.בדרך כלל, אם לשפה יש LSP Server - נגיד ל-Lua או ל-Python וכו' - זה אומר שההשקיעו שם די הרבה בצורה טובה.אז פה יש LSP Server שהוא בעצם מעניין - הוא LSP AI, וגם ככה נקרא הפרויקט.שזה אומר שאפשר לקחת את הפרויקט הזה ולחקור, להתעמק בו - ולהוסיף לו AI,או לקחת חלק מה-Provider-ים שלו, ואז ליצור איזשהו “Copilot משלכם” [עם בלאק-ג’ק?]הוא בא ארוז עם כמה וכמה Extension-ים.נגיד, אם רוצים לעשות “Local AI Copilot” כזה, אז אפשר להתחיל מהפרויקט הזה.כלומר, משלכם - או להשתמש בפרויקט הזה בתור איזשהו Driver ל-AI מקומי.(רן) כן, שאלה - אני לא יודע אם צריך לבדוק את זה, אבל בדרך כלל, הכלים האלה שעושים Code Completion, או בכלל שעוזרים לך לכתוב קוד, הם צריכים לקבל Context. כ-Context לא רק, נגיד, איפה ה-Cursor שלך כרגע נמצא וכמה שורות לפני ואחרי, אלא הרבה דברים נוספים, כמו נגיד איזה קבצים כרגע פתוחים, לפעמים אפילו מסתכלים על יותר מזה - על הפרויקט, לפעמים גם על תיעוד וכו'.השאלה אם כל זה קיים בתוך ה-Language-Server-Protocol? כי כשהוא הוגדר, אני מניח שלא חשבו על Use Case כזה . . . השאלה אם זה קיים פה ויודע לעבוד עם זה?(דותן) האמת שהשאלה טובה . . . מה שאני התעסקתי עם LSP זה רק Per-Document, זאת אומרת - מה שאתה עובד עליו כרגע.לא דווקא השורה, אלא כל המסמך.אני רוצה להאמין שיש יכולת לדחוף לו עוד Context, אבל לא בדקתי את זה ספציפית.כן, זה כנראה אלמנט חשוב לדברים כאלה.מה שאני יכול להגיד - אחד מה-LSPs שאני מכיר לעומק זה ה-LSP של Rust.שם יש פרויקט שנקרא Rust Analyzer, וזה סוג של “מוח” כזה מאוד מאוד מורכב, שנוצר כדי לנתח את הקוד שלך ב-Rust.על “המוח” הזה הרכיבו LSP, ואז בעצם נולד איזשהו Server, שמשתמש ב-Rust Analyzer כדי לנתח את הקוד שלךוכל הפרויקט הזה מנתח את כל הקוד, בשלמותו.אז אני מניח שיש דרך לעשות את מה שאתה מתכוון אליו.(רן) אוקיי, אחלה.(אלון) סתם בדיקת עובדות - VS Code אכן התחילו עם זה ראשונים, ל-LSP.(דותן) כן, זה מעניין - יש הרבה דברים טובים ב-VS Code.שזה נחמד, כאילו... (אלון) יצא ל-Microsoft משהו טוב בסוף . . .(רן) הסטה קצרה, בערך באותו נושא - אתמול בערב קיבלתי אימייל ש-GitHub Copilot הוא עכשיו בחינם לכולם.אז המלחמת ה-Code Completions או ה-AI Coding Assistants, מתחממת - הזכרנו את זה גם בפרקים הקודמים [482 Bumpers 84].יש את Cursor ואת Windsurf ולא מעט אחרים.עד עכשיו Copilot היה בתשלום, עכשיו הוא בחינם - לדעתי, ל-2,000 Completions בחודש, אם אני זוכר נכון, ומעל זה זה כבר בתשלום.אבל הנה - רף התשלום הולך ויורד, והתחרות מתחממת.(דותן) כן, זה מודל טוב של ה... כי אתה מתחיל, וזה ממש כמו סם.כאילו, ברגע שאתה מתחיל לצרוך את זה, אז אתה תתקע, ואז...עד אז, כל הזמן שואלים “זה מנוון? זה מנוון?”אבל אני לא יודע אם זה באמת …