אני רוצה לתרום קוד לאחד מהפרויקטים האלה – איך אוכל להתחיל?

האם יש שפה אחת שמשמשת במיוחד עבור רשתות חסימות?

אני לא יודע לתכנת – האם אוכל לקפוץ ישר לתכנות בלוקצ’יין?

לפני כמה חודשים היה לי העונג להנחות פאנל של ארבעה מתכנתים פעילים של NEO בכנס Devo NEO Dev. נושא הפאנל היה תכנות כללי של בלוקצ’יין, אולם אזהרה נוספת הפכה את פאנל המשתתפים המסוים הזה למעניין מאוד: כל ארבעת המתכנתים השתמשו בשפה שונה לבחירה לעבודה על פרויקט NEO.

אחד מהם העדיף את שפת C # של האסכולה הישנה, ​​אחר הפיק סקריפטים של פייתון, ושלישי הציג את האפליקציה יישום ה- Javascript הפופולרי. & המשתתף הרביעי דן בהתרגשות בשפת NEO הספציפית לתחום.

שתי מחשבות דבקו בי לאחר הפאנל:

  1. למהדר ה- NEO יש תמיכה רצינית בפיתוח רב-שפות
  2. עקומת הלמידה לתכנות בלוקצ’יין היא אכזרית ונרגשת מאוד בגלל היעדר משאבים מאורגנים, במיוחד עבור מפתחים חדשים

מאמר זה נועד להתייחס לנקודה מספר 2. מקסימום האפקטיביות של מדריך זה מחייב צמצום הקהל הצפוי לנישה צרה: חדש & מתכנתים זוטרים המעוניינים לפרוץ במיוחד למרחב הבלוקצ’יין. למפתחים ותיקים, מתכנתים, & מהנדסי תוכנה מעיינים – הסעיף הבא עשוי לספק תועלת מסוימת, אולם סביר להניח שתמצאו אותם בסיסיים. מהנדסים בכירים יכולים למקסם את זמנם על ידי גלילה לשפה מוכרת לפי בחירה, & מתחילים לקרוע את משאבי הלמידה המצורפים & תיעוד.

אז אתה חושב שתרצה לפרוץ לתכנות בלוקצ’יין אה? נתחיל בהגדרה נוספת מה כרוך בתכנות בלוקצ’יין.

תעשייה חדשה

באופן כללי, נושאים שמעניינים אותך באופן אישי & קל יותר ללמוד להתיישר עם הערכים שלך מאשר לשנן משהו ללא שחרור ללא קנייה ברורה; אני מאוד מדגיש שעיקרון זה חל יותר ויותר בתחום מורכב, מתפתח במהירות כמו תכנות בלוקצ’יין. לפני שנתחיל, בואו נבדוק כמה מהאתגרים העומדים בפני מפתח בלוקצ’יין בתעשייה המתפתחת.

ראשון & בראש ובראשונה הסתירה הציבורית המתמשכת בין מה ש”בלוקצ’יין “בדיוק עושה או לא כרוך בו. השקיע זמן בקריפטו-טוויטר & יתברר עד כמה קהילות הצפנה השבטיות, & בקושי, קהילות הפיתוח שלהן הפכו להיות. שבטיות לא מסומנת מובילה באופן טבעי לשיחות מוטות על איזה תוכן אובייקטיבי אמור להיות, ומוסיפה שכבה נוספת של ערפול למפתחים נכנסים.

לאחר מכן, עם רוב הפרויקטים בשלב ה testnet שלהם & עם פרויקטים חיים המתעדכנים ללא הרף, מזגנים, & נפילה קורבן לפריצות, זה לא מפתיע לראות תיעוד לא שלם & מדריכים לא גמורים. שכבת הארץ מתפתחת במהירות, מה שמצריך איטרציה עקבית – שום משימה לא קלה עבור אף צוות.

אחרונה היא הסטיגמה האמיתית שתכנות הבלוקצ’יין מסובך & מורכב ממספר שדות מצטלבים הדורשים הבנה בסיסית לפחות של הדברים הבאים: כלכלה, קריפטוגרפיה, מטבע, מבני נתונים, מדיניות פיננסית & פיזיקה. למידה אפילו רק את החלקים בתחומים אלה הרלוונטיים לתכנות בלוקצ’יין לוקח זמן רב להבין – אין כאן קיצורי דרך.

שבטיות, תיעוד אקראי & יסודות מסובכים. כל סימני האזהרה לטיפוס תלול מעלה. על מנת להניע את עצמך בצורה נאותה באמצעות חסמי הכניסה הללו, זה עוזר לחפור בבירור מה בדיוק תכנות בלוקצ’יין פירושו מלכתחילה. בנוסף, זה עשוי לעזור לחשוף …

מדוע אתה רוצה ללמוד תכנות בלוקצ’יין? על איזה פרויקט אתה רוצה לעבוד ספציפית? איזו (ים) בעיות אתה מנסה לפתור?

פירוק תכנות בלוקצ’יין

אם אתה כבר יודע באיזה פרויקט אתה רוצה לעבוד בקדחתנות, קודו – אני מציע לעבור לאגרי GitHub של הארגונים או Ctrl-Fing את שפת הבחירה כאן לקרוא קדימה. החלק הבא יועיל ביותר לאלה שלא ממש מצליחים לאתר בדיוק איזה פרויקט & מיומנות / שפה נדרשת מתאימה להם ביותר כנקודת קפיצה למפות הדרכים הפוטנציאליות ללמידה.

באופן כללי, תכנות בלוקצ’יין יכול להיות שלוש דברים שונים:

  • פריסת הנפקת מטבע ראשונית (ICO)
  • בניית חוזה חכם או אפליקציה מבוזרת (DAPP)
  • תרומה לקיים או פריסת בלוקצ’יין חדש

שקול היטב את שלוש האפשרויות שתוארו לעיל, שכן כל אחת מהן מציעה מגוון שפות שונות & עקומות למידה. בנוסף, הם אמורים לעזור לך להתקרב צעד נוסף לבירור המדויק שלך הַעֲדָפָה. פילוח נוסף לקריטריונים לשפה נמצא ממש מעבר לפינה; עם זאת, אל תשכח כי העדפה אישית מנצחת את כל מה שמניע את עצמך באמצעות למידה של מיומנות חדשה.

בהנחה שמהנדס תוכנה יומי אחד מעוניין באותה מידה ללמוד על כל שלושת סוגי תכנות הבלוקצ’יין – לאילו קריטריונים אחרים הם יכולים לפנות כדי להאיר על אור בדרך הידידותית ביותר?

  • מטרה כללית לעומת שפות ספציפיות לתחום
  • קריאות תחביר & עקומת למידה

על ידי סקירה של שלושת הקריטריונים הללו תהיה לנו סוף סוף מסגרת הקשר מוצקה שממנה אנו חלים על רשימת השפות שלנו.

מטרה כללית לעומת ספציפית לתחום

סיווג כלים בין איכויות איכותניות הוא לעתים רחוקות ברור – שפות התכנות אינן שונות. כאן, נחלק את כל שפות התכנות האפשריות של בלוקצ’יין לשתי קטגוריות שונות: שפות ספציפיות לתחום & שפות למטרות כלליות.

בדרך כלל, שפה ספציפית לתחום (DSL) היא שפת מחשב שתוכננה & מתאים במיוחד ליישום מסוים. שפה למטרות כלליות (GPL), כפי שהשם מתאר כראוי, היא שפה הניתנת להחלה רחבה בתחומי תכנות רבים.

שפה למטרות כלליות

שפות למטרות כלליות הן השפות שככל הנראה שמעת עליהן כגון Java, Javascript, Ruby, C++, & פִּיתוֹן. בין השפות הכלליות ניתן למצוא דרכים אינסופיות לסווג אותן עוד יותר לפי איכות & הבדלים כמותיים & קווי דמיון כגון קריאות, קומפילציה, הקלדה קפדנית, חזית / גב, וכו ‘… כלל אצבע טוב לגבי ידידותיות בפעם הראשונה הוא כדלקמן:

Javascript, Python, & רובי בדרך כלל קלים יותר למצטרפים חדשים כיוון שיש להם פחות עקומת למידה בעוד ש- C++ & ל- Java בדרך כלל לוקח יותר זמן ללמוד מהקופסה.

שימו לב, העורך נמנע מלהגיב על השנייה & השלכות מדרגה שלישית של עולה חדש שמתחיל בקבוצת שפות כזו או אחרת. ישנם דיונים מרובים על פני תכונות נוספות של שפות אלה, כגון אילוץ מתחילים להבין סוגים משתנים תחילה באמצעות שפה מוקפדת בקפידה אותה אנו עוקפים כדי למקסם את השימוש כאן עבור מפתח חדש המתקרב למרחב הבלוקצ’יין..

המקצוען הגדול ביותר למצטרפים חדשים המושגים מטרה כללית הוא היכולת המיידית ליישם את השפה במספר עצום של תחומים מחוץ לתכנות הבלוקצ’יין. למרבה הצער, הצד השני של אותו מטבע יוצר חסרונות עבור אותם עולים חדשים המעוניינים להצטרף לשוק העבודה מכיוון שסביר להניח שתתמודד ישירות מול קשישים. & מהנדסי תוכנה ותיקים מתחומים אחרים עם ניסיון של שנים בהנחיית השפה הכללית.

שפה ספציפית לתחום

כדי לספק הקשר, בואו נחזור אחורה מתכנות הבלוקצ’יין. זהו אמנם תחום תכנות חדש למדי, אך הרעיון של תחום תכנות חדש עצמו אינו כל כך חדש – אינך צריך להסתכל רחוק מדי מעבר למילה התאומה-אחרונה למידת מכונה לראות את זה. כמה תחומי תכנות נוספים, אשר עדים גם להתפתחות טבעית של שפה מסוימת או יותר ספציפית לתחום הם: סטטיסטיקה (R, MatLab), שאילתת מסד נתונים (SQL), ממשק משתמש אינטרנט (HTML, CSS).

מתכנתים של בלוקצ’יין ספציפיים לדומיינים מבוקשים מאוד עם מעט מאוד היצע: שפות צעירות אלה, שמטרתן היחידה היא אחת או יותר משלוש אפשרויות התכנות של בלוקצ’יין המפורטות לעיל, ללא ספק מציעות את הדרך הברורה ביותר לנחיתה של מיקום בתעשייה בקריירה..

מכיוון ששפות אלה תוכננו מהיסוד עם בלוקצ’יין & בהתחשב בהנדסת חוזים חכמה, מפתחים מנוסים עשויים להתקשות בכוונון מחדש של מסגרות הפניה קודמות משפות אחרות.

בעוד חדשים, עם הרגלי תכנות חדשים של צפחה, נשענים על כל הדרוש כדי להתחיל בפריסת קוד בפרויקטים בהווה או בעתיד..

שוב, על ידי עקיפת יסודות התכנות האמיתיים ביותר שנמצאים בשפה למטרות כלליות, אפשר למצוא את עצמו בחסרון משמעותי בהמשך הדרך אם השפה הספציפית לתחום לפי בחירתו תיפסל איכשהו..

התרשים הבא מפרק את מאגר נקודות הכניסה האפשריות לתכנות הבלוקצ’יין מפילוח DSL / GDL; שפות שקופות / רחוקות הן שפות לֹא מכוסה באורך:

קריאות תחביר & עקומת למידה

שפות תכנות שונות מציעות רמות קריאות שונות בהתבסס על כמה שהן פשוטות או מורכבות תחביר הוא. תחביר מתייחס לאיות המיועד & כללי דקדוק של שפת תכנות. בדרך כלל, קריאות התחביר מתואמת עם התלילות של עקומת הלמידה; קוד קשה לקריאה עושה קוד קשה ללמוד. שוב, בהחלט יש יוצאים מן הכלל לכלל זה, אולם למטרתנו קשר לינארי זה מתקיים.

נשתמש בשתי תכונות תחביר מרכזיות, אך נפוצות, בשפת התכנות כדי ליצור הבנת קריאות במיוחד עבור מפתחים חדשים & שפות תכנות של בלוקצ’יין. הנפוץ מבין מושגים אלה הוא הקלדה משתנה לעומת הקפדה על משתנה.

הקלדה רופפת לעומת הקפדנית

כל התכנות משתמש בהרחבה במשתנים; עם זאת, אין פשוט סוג משתנה רגיל אחד – ישנם רבים, כל אחד עם מאפיינים ייחודיים. בטח שמעתם כמה מהסוגים המשתנים הללו כמו מחרוזות, מספרים שלמים, & בוליאנים. כל שפת תכנות ממנפת את הסוגים הטבעיים הללו בתחביר שלהם; עם זאת, כל שפה מרבדת את סוגי המשתנים הללו עם הגיון משלהם המפנה למשתנים. כמה שפות, כמו פייתון & Javascript, אפשר למפתחים להשתמש במשתנה “var” יחיד: var דוגמא = “צירוף מרכזי.” גמישות זו מאפשרת למפתחים לעקוף את התהליך המייגע לוודא שכל סוג משתנה מוגדר כראוי בכל שורה. שפות המסתירות הקצאת משתנים ברמה נמוכה ידועות כשפות מוקלדות באופן רופף.

הקטגוריה האחרונה, שפות מוקפדות בקפידה, מורכבת מתחביר יותר מילולי, אם כי תיאורי יותר. הכרזת משתנים בשפות מוקפדות מורכבת מהכרזה ספציפית על סוג המשתנה המקורי שהמפתח מתכוון להשתמש בו: חוּט דוגמא = “צירוף מרכזי.” אם אתה משווה זאת להצהרה המשתנה הקודמת, שים לב ל”מחרוזת “המודגשת. הקלדה קפדנית זו של משתנה היא ההבדל המרכזי בתחביר בין שפה שהוקלדה באופן רופף & שפה מוקפדת בקפדנות. ההבדל בתחביר אינו מצטמצם כלל להצהרת משתנים בלבד, זו תכונה מרכזית לעיצוב שפה הרווחת בכל מכל השפות.

שניהם מודפסים באופן רופף & שפות מוקפדות בקפידה מציעות המון מקצוענים & חסרונות פשרות. אחד הפשרות החשובות שיש לקחת בחשבון למצטרפים חדשים הוא עקומת הלמידה הקשורה לשני הסוגים. באופן כללי, שפות שהוקלדו באופן רופף מציעות תחביר ידידותי יותר למצטרפים חדשים & לכן מחסום כניסה נמוך יותר; עם זאת, החיסרון המיידי הגדול ביותר שיש לקחת בחשבון הוא פער רציני של ידע בסיסי בהנדסת תוכנה בכל הנוגע לאינטראקציה עם סוגים משתנים.

נצל מידע זה ככל שתרצה לנכון, אנו מפרידים ויזואלית את מאגר שפות התכנות שלנו בבלוקצ’יין על ידי הקלדה רופפת & תחביר מוקלד בקפידה למטה:

נוף השפה

סוף סוף אנחנו בקטע הליבה של מאמר זה, שהוא קטלוג ברמה גבוהה & סקר שפות התכנות הזמינות של בלוקצ’יין. עבור כל קטע נציג בקצרה את השפה, נסכם את מטרתה המיועדת בסביבת הבלוקצ’יין, נסקור את כל הפרויקטים או המסגרות המצויים כעת., & סוף סוף ציין את משאבי הלמידה למידע נוסף.

ג++

C ++

בואו נתחיל עם השפה העתיקה ביותר ברשימה: C ++. הוצג לראשונה על ידי מר ביארנה שטרוסטרופ אחד בשנת 1985, C ++ נוצר כהרחבה של שפת C המקורית. הרעיון היה לשמור על הגמישות, הביטחון & יעילות של C, אך כדי לייעל את השפה לתהליכים מוכווני אובייקטים יותר. לפיכך, מה שמוביל לכך ש- C ++ היא שפה מונחית עצמים בעוד ש- C נשארת מכוונת תהליכית.

C ++ היא שפה עוצמתית במיוחד, אולדסקול, תחום-כללי, פופולרית למדי לתכנות ליבה בלוקצ’יין.

עם זאת יש להזהיר את המפתח החדש. כשפה מוקפדת בקפדנות עם תחביר מיושן יחסית לחבריה, עקומת הלמידה היא מאוד תָלוּל. זה כנראה הכי קשה לשפה שמפתח חדש יקפוץ אליו; עם זאת יש לציין כי הידע הבסיסי שהושג באמצעות דחיפת עקומת הלמידה C ++ הוא שאין שני לו. כאמור, עולם הבלוקצ’יין נשען בכבדות על C ++ כך שלא תמצא מחסור במשאבי למידה:

ליבת ביטקוין: https://github.com/bitcoin/bitcoin

אדמונית אדווה: https://github.com/ripple/rippled

C ++ הדרכה: https://www.cplusplus.com/doc/tutorial/

Javascript

Javascript

JavaScript היא שפת תכנות לתסריט מקליד באופן רופף הנתמכת על ידי כל הדפדפנים הגדולים; זוהי השפה העיקרית המשמשת לשיפור ה- HTML הסטטי & דפי CSS לממשקי משתמש מלאים. כמה ממשקי משתמש נפוצים אלה כוללים אנימציות, דפים מרעננים, תפריטי משתמשים & תיבות דו-שיח, מפות אינטראקטיביות וכו ‘…

שפה זו שמפעילה את כל התנהגויות דפי האינטרנט בדפדפנים המודרניים, Javascript, מעולם לא הייתה אמורה להשאיר את שכבת המצגת ברמה הגבוהה ביותר של אפליקציית אינטרנט. עם זאת, לא ניתן להכחיש ש- Javascript המריא, במיוחד עבור עולים חדשים, בצורה חסרת תקדים. כאשר Node.JS מציב תחילה את צד שרת Javascript, ואז Angular / React / Vue בעצם שכתוב ה- HTML / CSS מחסנית בצד הלקוח, ה- Javascript בערימה מלאה הפך לכל הזעם. מבלי להתעמק יתר על המידה ניתן לומר לפחות קומץ מפתחים ותיקים יגנוחו על המלצה זו. אמנם יכול להיות שיש הכשר עם תלונות אלה, אך אין בכך כדי להפוך את המשפט הבא כלא נכון:

Javascript מאוד ידידותי למתחילים, מתבגר, & מעוגן כעת בכל חלקי ערימת האינטרנט המודרנית.

עבור Javascript, הרץ הקדמי בתמיכה בבלוקצ’יין הוא פרויקט הבלוקצ’יין ליסק. דף הנחיתה שלהם מדבר נפח במונחים של אמונתם בבניית מערכת אקולוגית שלמה של בלוקצ’יין ב- Javascript: “ליסק מקל על מפתחים לבנות ולפרוס יישומי בלוקצ’יין ב- JavaScript.”

משאבי למידה

ליסק: https://lisk.io/

פִּיתוֹן

פִּיתוֹן

שפת תכנות מודרנית יחסית, פייתון הוא לעתים קרובות המועדף על המצטרפים החדשים – ומסיבה טובה! פיתון תוכנן על ידי גווידו ואן רוסום עם פשטות תחביר & קְרִיאוּת מעל הכל. מאז שחרורו, פיתון התפוצץ כשפה פשוטה אך עוצמתית עם תמיכה קהילתית מאסיבית המובילה לשילוב פיתון ממש בכל מקום – מספריות ממשק משתמש באינטרנט כגון Flask וכלים חיוניים בלמידת מכונה כמו NumPy.

בעוד שעם פייתון מקומי לא ניתן לתרום טכנית לבלוקצ’יין קיים, לכתוב אפליקציות מבוזרות או להחזיק הצעת מטבע ראשונית, זו תהיה טעות להשאיר את פייתון מחוץ לרשימה זו מכיוון שלכל מערכת אקולוגית אחת של בלוקצ’יין יש ציבור אחד או יותר. כלים שנכתבו ב & לפייתון.

משאבי למידה

מדריך יסודות Blockchain של IBM – https://developer.ibm.com/courses/all/ibm-blockchain-foundation-developer/

גלישת אתרים של אתריום – https://web3py.readthedocs.io/

ללכת

ללכת

שפת התכנות GO (קיצור של GOLang) היא שפת תחום-כללית מודרנית יחסית שפותחה בגוגל בשנת 2007 & נחשף לשימוש ציבורי בשנת 2012. GO תוכנן כשפה רב-תכליתית חזקה, והיה ניסיון לשלב את התחביר. & ידידותיות למשתמש של שפות מודרניות כמו פייתון & Javascript, עם הביצוע & יתרונות אבטחה של שפות ישנות ומורכבות יותר כמו C.

GO היא שפה מורכבת – מה שאומר שהיא פועלת ישירות בתוך מערכת הפעלה. תכונה זו מאפשרת גמישות מרבית בכל הנוגע לשימוש ב- GO למספר חלקים של פרויקט בלוקצ’יין. רוצים לתרום ישירות לבלוקצ’יין קיים? ל- Ethereum יש פרוטוקול SDK שנכתב ב- GO. רוצים לכתוב חוזה חכם? מכסחת הבלוקצ’יין מבד Hyperledger Fabric של קרן לינוקס מכסה את זה.

משאבי למידה

תיעוד Go – https://golang.org/doc/

לך את’ריום – https://github.com/ethereum/go-ethereum

בד Hyperledger – https://github.com/hyperledger/fabric-sdk-go

מוּצָקוּת

מוּצָקוּת

מוצקות היא כמו JavaScript שפה ספציפית לתחום שנעשה על ידי צוות את’ריום (גאווין ווד, כריסטיאן ריטוויסנר, אלכס ברגסאשי, יואיצ’י היראי & אחרים) ליצירת אפליקציות מבוזרות בפלטפורמת את’ריום. זה ללא ספק המותאם ביותר & DSL המיינסטרים שראה אימוץ רב בקהילת את’ריום & תעשיית הבלוקצ’יין.

לכל מי שמעוניין לבנות dApp או להחזיק ICO, סולידיות היא מעין אחת הדרכים הכי פשוטות לצלול ישירות ללב כל זה. מאז פיתוח המוצקות החלה לפני המזלג הקשה של את’ריום, היא מרתה למרבה המזל כל השפעה הנדסית על חלק מהמחלוקת האזרחית, כפי שמעידים שניהם Ethereum Classic & Ethereum ממשיך תמיכה במוצקות. יתר על כן, צוות Cardano הודיע ​​לאחרונה גם על תמיכה ב- Solidity – מה שהופך את Solidity לתכנות ה- DSL היחיד בתכנות הבלוקצ’יין הנתמכות במספר רשתות חסימות..

השפה עצמה נוצרה עם עדיפות לאימוץ מפתחים, מה שהוביל לתחביר הדומה באופן מכוון ל- Javascript הפופולרי מתמיד, עם, כמובן, כמה פיתולים.

משאבי למידה

האקדמיה לקונסנסיס – https://consensys.net/academy/

תיעוד יציבות – https://solidity.readthedocs.io/en/v0.4.24/

בסגירה

ביטקוין & טכנולוגיית הבלוקצ’יין תמשיך לחולל מהפכה בדרך הנתונים & נכסים מועברים – ברור שההשפעה תהיה גלובלית & אגנוסטית בתעשייה. לא משנה מאיפה תתחיל, צעד ראשון בלימוד אחת מהשפות הללו הוא כבר צעד ראשון מהותי. אי אפשר להפריז בחוסר ההתאמה בביקוש ההיצע למערכת מיומנויות זו.

ההערכות הטובות ביותר ממקמות את מספר המפתחים הפעילים ברחבי העולם, בסביבות ~ 20M. עם זאת הערכות בתעשייה קובעות כי פחות מ -1 בכל עצום 1000 מפתחים פעילים מרגישים בטוחים במיומנות שלהם להחשיב עצמם מתכנתים של בלוקצ’יין & פונים באופן פעיל לתפקידים פתוחים. עבור נוטים פחות אריתמטיים, זה אומר שיש בערך כ -20 אלף מתכנתים של בלוקצ’יין.

תכנות 1

אם זה נראה הרבה בואו נסתכל על מיקרוסופט – עם מספר עובדים של בערך 100k בואו נניח שיש להם לפחות צוות תמיכה אחד לכל מהנדס תוכנה, שמשאיר אותנו עם כ -50 אלף מתכנתים. בצד השני, ענק הבנקאות גולדמן זאקס מונה כיום ~ 9 אלף מתכנתים & מהנדסים.

העניין הוא – המחסור הזה במתכנתים של בלוקצ’יין הוא אמיתי מאוד & התשובה לדיאלוג הפנימי שלך אבל האם זה מאוחר מדי בשבילי להתחיל ללמוד מאפס? הוא לא. עבור מפתחים, משקיעים, & הרגולטורים וכל האחרים המעורבים זה עדיין ימים ראשונים מאוד.

השאלה היחידה היא באיזה פרויקט אתה רוצה להתחיל לעבוד & איזו בעיה אתה רוצה להתחיל לפתור?

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me