יש שני חלקים במדריך הזה
החלק הראשון הוא הפתרון לבעיה שלך, יש שם צילומי מסך, זה דיי קל
החלק השני נוגע לאם אתה באמת רוצה להשתמש באנדרואיד סטודיו (בשביל לבנות אפליקציות, ולא התקנת רק בשביל האימולטור)
ואז צריך (חייבים) להתקין תעודה על הגריידל, וזה יותר מסובך (אם אתה צריך את זה, אני ממליץ על התקנת jdk חלופי, יש שם הוראות)
@החפץ-בעילום-שם-0
עכשיו אני רואה את הצילום מסך (גם אני נטפרי...)
עכשיו רואים שהגדרת טוב את ה jdk
בבניה הראשונית זה לפעמים יכול לקחת הרבה זמן, כי הוא מוריד ערמות על גבי ערמות של ספריות...
אם החיבור איטי זה יכול לקחת הרבה זמן
דווקא הבניות שאחר כך יותר מהירות בדרך כלל
ביצעת את מה שהצעתי? (התקנת jdk חלופי)
יש בלינק ההוא הוראות מפורטות
אז אני אשאל אחד אחד
התקנת jdk ידנית? (צריך jdk 17, ניתן להוריד מפה)
התקנת שוב את התעודה של נטפרי בדרך הרגילה? (ה jdk החדש שהורדת והתקנת, עדיין בלי התעודה של נטפרי, אבל תוכנת ההתקנה הסטנדרטית של נטפרי מזהה את גירסאות ה java שמותקנות במחשב ומתקינה בעצמה את התעודה על ה jdk החדש, את תוכנת ההתקנה של התעודה אפשר למצוא כאן)
שינית את הגדרות אנדרואיד סטודיו להשתמש ב jdk החדש? (ההוראות של נטפרי כאן)
במידה וביצעת את ההוראות, אנדרואיד סטודיו אמור להשתמש ב jdk עם התעודה, ולא אמורה להיות שגיאה
@החפץ-בעילום-שם-0
דבר ראשון, כפי שכתוב בקישור שהבאתי, לא מספיק להתקין תעודה בתוכנת אנדרואיד סטודיו, צריך להתקין ב jdk שעליו ה gradle רץ
אני ממליץ על שיטה 2 שמובאת שם, שימוש בjdk חלופי
השיטה הראשונה, גם יותר מסובכת, וגם תוקעת אחר כך עדכונים של אנדרואיד סטודיו (מניסיון)
דבר שני, יכול להיות שהתקנת טוב את התעודה וכעת יש שגיאת גריידל אחרת בכלל...
אבל זה כנראה לא המקרה, סביר שלא התקנת טוב את התעודה
תנסה להשתמש ב jdk חלופי, ואם עדיין יש תקלה, תעלה לכאן שוב את השגיאה
ברגע שיש vpn נטפל לא יכולים לראות לאיפה אתה גולש, ולכן הם לא נותנים לך לגשת לזה
אבל הם כן יכולים לראות לאן ה vpn הווירטואלי שלך גולש, אז זה אותו הדבר (ברגע שאתה משתמש ב vpn וירטואלי אז החלפת סים כביכול? החיבור עדיין נטפרי)
הvpn הווירטואלי זה דבר שקורה בתוך המכשיר, אז זה אותו המכשיר שנכנס לאותם כתובות, רק תוכנה אחרת נכנסת בשבילך מבחינת נטפרי אין הבדל
כן יש להם בעיה עם vpn אמיתי, שזה שרת אחת שאתה מחובר אליו והוא מחובר בשבילך, ואותו השרת לא נמצא בנטפרי, וכל החיבור שהם רואים זה החיבור שלך לvpn ולא רואם לאיזה כתובות ה vpn ניגש בשבילך
ב vpn אמיתי הם לפני ה vpn, ב vpn וירטואלי הם אחריו
@דודי-ענהאל לכאו' הבעיה היא בסים, משום שנטפרי חוסם VPN של אחרים וקיידרואיד בכלל זה..
לא קשור
קיידרואיד זה vpn וירטואלי, זה רק במכשיר עצמו
זה לא vpn אמיתי
לנטפרי לא משנה אם הם רואים את מה שיוצא מהמכשיר, או את מה שיוצא מה vpn שבתוך המכשיר
vpn אמיתי זה שרת vpn, ואם vpn אמיתי יש בעיה, כי אז נטפרי לפני ה vpn
אם יש שרת vpn שלו בעצמו יש חיבור נטפרי, אז לא יהיה לנטפרי בעיה, אבל חוץ מלנטפרי בעצמם אין דבר כזה
נ.ב. אני לא רוצה לומר את דעתי על אפליקציית זינג
זו ממש לא הוכחה שפלאטר טובה אלא להפך
אבל זה לא נכון, כי מי שכתב את האפליקציה הזאת, הוא גרוע, לא פלאטר גרועה
לא הייתי מגדיר בכלל את פלאטר כנישה, איפה שלא חיפשתי לעבוד בארץ בפיתוח אפליקציות רצו או פלאטר או REACT NATIVE, זה היה נראה שאפילו לא מכירים את השם של קוטלין. היום פלאטר לדעתי יותר פופולרי מREACT NATIVE
נכון לגמרי, אבל כל העניין של פיתוח אפליקציות הוא בעצמו יחסית נישה
אין כל כך הרבה מפתחי אפליקציות
אני לא הבנתי מה זה משנה עדיין מה קורא אחרי הקלעים, וגם כשאני כותב בקוטלין בשביל הJVM, אז זה מוציא לי קובץ JAR, בשביל זה אני אכתוב בJAVA??
ואחת מהסיבות שאני אוהב את קוטלין זה שאני יכול להשתמש בכל ספריית JS דרך קוטלין JS
kotlin נבנתה בשביל להחליף את java, לא את js
אם אני רוצה את היתרונות של js על פני קוטלין אז עדיף להשתמש ישר ב js
אם אני ארצה את היתרונות של java על פני קוטלין, אני אכתוב בjava
אבל ל java אין בכלל יתרונות על פני קוטלין , אז זה לא רלוונטי
אני חושב שאיך לנהל את הDEPENDENCIES בפייתון זה ממש לא נוח, צריך לייצר VIRTUAL ENV ולהוריד אותם עם PIP כלומר שאם תריץ את זה על מחשב אחר זה לא יעבוד, בסקריפט קוטלין אתה רק כותב את הDEPENDENCIES בראש הקובץ והוא מוריד אותם אוטומטי ומנהל לבד שזה רק בשביל הקובץ הזה
בפייתון יוצרים קובץ, requirements.txt של ה DEPENDENCIES
ואז פשוט
pip install -r requirements.txt
וכל ה DEPENDENCIES יורדות לבד
ברוב פרויקטי הפייתון בגיטהב עם הרבה DEPENDENCIES יש קובץ כזה
ובנוגע ליצירת venv
א. לא חובה, כמו שגריידל לא חובה
ב. ה ide יוצר לבד venv, כמו שבגריידל ה ide שם אותו לבד כשאתה יוצר פרויקט חדש
הספרייה הזאת נראית כמו ספריית צעצוע, לאנשים שרק עכשיו מתחילים פייתון
אם כבר הייתי מזכיר בהקשר הזה את ספריית tkinter המובנית בפייתון, או את ספריית pyside
אבל בגדול, פייתון לא כל כך טובה ליצירת ui
וודאי ש compose יותר טוב
לדעתי הם בוודאי רוצים לעשות את זה, ולכן הם מפתחים ספריות רשמיות משלהם בשביל JUPYTER, וכו
בוודאי שהם גם רוצים את זה, איפה שהוא בסוף רשימת הרצונות
הם לא עושים דברים מידי רציניים בשביל מפתחים חדשים
הם משקיעים במי שכבר יודע קוטלין, וזה בסדר
זה ממש לא המטרה הראשית או המשנית שלהם
@לא-מתייאש
אתה צודק, טעיתי בנוגע להבנה מה זה התיעוד שם
דיברת על טייפים דינמיים בקוטלין, אז עשיתי גוגל "kotlin dynamic types", אבל על פי הדוגמאות שנתת נראה שהעיקרון דומה
הדוגמה שנתת על פיענוח json היא דוגמה טובה למה שפה סטטית קשה לנתונים
יש את האופציה של טייפ סטטי, שאין צורך להתייחס, זה די מעצבן על כל json שיש לי לכתוב data class
והאופציה של ה"דינמי" היא לא באמת דינמית, כי אחרי שהמרת את ה json ל jsonElement
צריך לכל נתון לדעת איזה טייפ הוא ולהמיר ידנית לטייפ המתאים
(ומה קורה אם השרת שלך מחזיר לפעמים json כזה ולפעמים אחר? כמובן, בוא נעשה if לכל מבנה json שיכול לקרות)
4 שורות
אמנם לא כולל בדיקת תקינות ה json (את הקוד הזה כתבתי כמעט בעל פה ואני לא זוכר את כל הפונקציות שקימות, מה לעשות)
אז נניח כולל בדיקת תקינות 5 שורות
ובלי להתעסק עם טייפים
ובלי לקמפל
ולכן כנראה שמרוב החשק של JETBRAINS של להחליף את כל שפות של רמה גבוהה לשפה אחת מושלמת
אני לא חושב שזה מה שהם רצו לעשות
הם רצו לבנות java מודרנית, והם הצליחו, ובגדול
לא חושב שהיה שם מישהו שאי פעם חשב להחליף את פייתון
נכון ש kmp מיועד לכל הפלטפורמות, אבל מי שיכתוב ב kmp יהיה רק זה שכבר עכשיו כותב אפליקציות אנדרואיד, או קוטלין בכללי
לכל שפה יש את היתרונות שלה, ומקרי השימוש שלה, וזה דבר טוב
כי שפה אונברסלית לדעתי תצא, "כלום מהכול"
שפה סטטית זה לא חסרון, ממש לא
גם שפה דינמית זה לא חיסרון
אלו פשוט שפות שונות, למטרות שונות
לא חייבים בכלל להשתמש בטייפ סטטי שהעובדים עם json וכו',
באמת לא שמעתי על טייפים דינמיים בקוטלין, אז תודה שחידשת לי
אז עשיתי גוגל והגעתי לדף הזה: https://kotlinlang.org/docs/dynamic-type.html
(בהנחה שהבנתי נכון את מה שכתוב שם)
זה נראה כאילו לכתוב משתנה בלי טייפ בכלל
זה דרך מאוד נחמדת לעקוף את ה"בעיה" (לניתוח נתונים ai וכו, סטטי זו בעיה) שקוטלין היא שפה סטטית, אבל אז אין לך בכלל טייפים
בפייתון יש טייפים, רק שהם דינמיים
אתה חוזר על זה אבל קוטלין היא גם שפה של סקריפטים ללא קמפול (או של שנייה) ולכן אפשר להשתמש בקוטלין אפילו עם jupyter
אפשר עם 40 שפות, אבל פייתון זה בכלל בלי קמפול, בלי שניה
והבעיה היא לא הזמן אלא הצורה שבה עובדת שפת אינטרייפר לעומת שפת קומפלייר
זמן הקימפול הוא רק בעיה אחת, אבל גם אם זה מיידי לגמרי זה לא אינטרייפר
בפייתון אתה לא יכול להשתמש בgradle ולכן כשתריץ פרוייקט תצטרך גרסה כזה של פייתון, אין סוף הגדרות כמו שיש לספריא כדי להריץ את השרת שלהם בלוקלי, איפה שעם gradle הכל אוטומטי, תריץ את הפרוייקט ב10 שנים זה עדיין יעבוד, ואין סוף יתרונות לקוטלין ועדיין לא מצאתי יתרון אחד לפייתון חוץ מהספריות.
אתה לגמרי צודק!
gradle זה כלי ממש יעיל ונוח! (למתקדמים, אבל עדיין)
אבל אם אתה מגיע למצב שאתה צריך גריידל, באמת עדיף לכתוב בקוטלין!
אבל, (האבל צריך לבוא ) לא מגיעים למצב שצריכים גריידל.
מה כבר ביקשתי, לכתוב סקריפט?
אם הפריוקטים גדולים ומורכבים עדיף קוטלין
כי עד עכשיו אמרתי רק שבכל היתרונות שהבאת קוטלין או שווה או יותר טוב
ניכר שלא ירדתי לסוף דעתך, כי לא הצלחתי להבין מדבריך יתרונות של קוטלין בהקשרים של סקריפטים, אוטמציות, ai, וניתוח נתונים
בהחלט הבנתי מדבריך יתרונות של קוטלין בתוכנות ופרויקטים מורכבים @לא-מתייאש כתב בשאלה | מה רע בפייתון:
חוץ מזה שאני לא מבין איך אפשר לאהוב אינדנטצייה.
מסתבר שאפשר, האינדטצייה באמת מאוד מוזרה, אבל אנשים מתרגלים ואפילו נהנים
בעיקר אנשים שהתחילו בפייתון
אבל זה כבר עניין של טעם אישי
לסיכום ההבדל ביננו
גם אני חושב שקוטלין היא שפה מצוינת ומוצלחת ומהטובות כיום
אבל לדעתי, קוטלין טובה במה שהיא טובה, ליתר דיוק מאוד טובה
ובאמת לא טוב לכתוב בפייתון מערכות מאוד גדולות, או שדורשות יציבות
אבל קוטלין היא לא שפת סקריפטים
ונכון שאפשר לכתוב סקריפטים, אבל היא לא נבנתה עבור זה, ולא מותאמת עבור זה
ואין שום דבר רע בעובדה הזאת
כי קוטלין מצוינת בתחומים שהיא מצוינת בהם
פשוט זה לא הגדרת התפקיד שלה, לא הגדרת המטרה שלה, לא בנו אותה בשביל שיכתבו בה סקריפטים, או פרויקטים קטנים עד בינוניים
יש דבר שמאוד בולט בהבדל בין קוטלין לפייתון, זה ממש לא נכון תמיד ואולי אפילו לא רוב הפעמים אבל בכל זאת
בקוטלין אתה כותב קוד שעושה דברים
אתה כותב תוכנה, שרת, אפליקציה, שיעשו את מה שהם צריכים לעשות, ויעשו את זה טוב
אבל בפייתון, הגדרת המטרה שונה
אתה לא רוצה לכתוב קוד שעושה דברים,
אתה רוצה לעשות את הדברים בעצמם!
אתה לא רוצה לכתוב תוכנה של חישובים מתמטים, אתה פשוט רוצה ישר לעשות את החישובים המתמטיים!
כשאתה רוצה לאמן מודל ai, אתה לא צריך גריידל וארכיטקטורה וכו
אתה פשוט רוצה לאמן את המודל
זה פשוט לא בדיוק השוואה בין קוטלין לפייתון, הם פשוט שונים
כל אחד עושה טוב את מה שהוא טוב בו
אני אתן דוגמה מופרכת, זה כמו לומר "פייתון יותר טובה מ sql"
זה פשוט לא בדיוק השוואה, לא קשור
על זה, אני מסכים, צריך להבין מה זה JVM, GRADLE לפחות, אבל עוד פעם כפי שאמרתי, לדעתי עדיין כדאי ללמוד אותם, כי זה כלים ממש ממש חזקים ולי יהיה מאוד קשה היום לפתח משהו בלי זה
את כל היתרונות של הJVM, של GRADLE,
אז נראה שאני לא כל כך יודע מה היתרונות של gradle ו jvm
כי הם כלים מאוד חזקים לפרויקטים גדולים ויציבות וכו
אבל לצרכים האלו (, וכו ai, data sciense) הם הרבה פעמים, כאב ראש, כי הרבה פעמים לא כותבים פרויקט, אלא פשוט שימוש חד פעמי
מה היתרונות שהכלים האלו נותנים לי בתחומים האלו?
אז זהו, אם היו משתמשים בפייתון רק לפרוייקטים קטנים, הייתי חושב אחרת, אבל לא, הספרייות העקיריות בAI זה פייתון, DATA SCIENCE גם, ואני לא מבין למה, זה לא פרוייקטים קטנים
אלו לא פרויקטים קטנים, אבל אלו פרויקטים של להתעסק עם נתונים (והרבה נתונים)
ולהתעסק עם נתונים בשפה סטטית זה כאב ראש, הרבה טייפים וקוד ארוך
בפייתון זה שורות בודדות
להתעסק עם json, csv sqlite אלו דוגמאות מאוד בסיסיות ומאוד שימושיות, פשוט הרבה יותר נוח
פייתון פשוט הרבה יותר נוחה, והקושי של קוטלין לא שווה את זה, כי יש את פייתון
והקטע שזה אינטרייפר ולא קומפלייר זה מאוד משמעותי, כי הרבה פעמים כותבים בניסוי וטעיה, או בלהריץ שלב אחד, ואז לכתוב את הקטע השני, וכו וכו (במילים אחרות - jupyter notebook)
אמרתי כבר שהדעה שלי לא פופולרית בזה, כלומר שאני לא מסכים עם כל אלו שמשתמשים בה אפילו בשביל סקריפטים, AI, וכל הדוגמאות שנתת. והסיבה שהיום אם הייתי צריך לעשות את זה, הייתי עושה את כל זה בקוטלין, ונכון אני בתוך הניש הקטנה הזאת שעושה את כל זה בקוטלין כי לדעתי זה היום השפה ההכי טובה ואף שהיא לא פופולרית, כי לדעתי כל זה היא תעשה יותר טוב. ואני מבין שזה הרבה יותר דברים שצריך ללמוד כדי לעשות את זה בקוטלין אבל אני עדיין חושב שכדאי.
יש הרבה יתרונות לקוטלין, אבל לפייתון אין מתחרים
הקהילה והספריות: גם אם לא היה שום דבר טוב בפייתון, עדיף לכתוב בה כי יש הרבה יותר ספריות לצרכים האלו, ולקוטלין אין, אז עדיף לכתוב בה מאשר לכתוב את כל הספריות מאפס
פייתון היא אינטרייפר, קוטלין היא קומפלייר, בהתחשב בכך שאני צריך לחכות 2 דקות עד שזה מסיים לקמפל (לכל הפחות במחשב שלי, אבל פייתון במחשב שלי רץ מיידית) , על כל שינוי הכי קטן בקוד, זה מאוד מכביד! אז אני מאוד מבין למה כותבים בפייתון, לצרכים האלו אינטרייפר הרבה יותר מתאים, לכתוב ולהריץ
קוטלין היא קשה, לא קלה למתחילים
ואני יודע שיכול להיות שתחשוב אחרת, אבל אתה כבר מתקדם מאוד בקוטלין, והשאלה היא על מתחילים
וזה בלי להזכיר גריידל (שוב, למתחילים), וכמה גרסאות jvm יש בעולם
קוטלין היא סטטית, פייתון היא דינמית
וזה יתרון משמעותי לאלו שורצים לכתוב קצר ומהר, ורוב העולם רוצה לכתוב קצר ומהר
נראה שאתה מסתכל על כמה הביצועים של הקוד טובים אחרי שכותבים אותו
אם יבנו כמו שצריך את הקוד, יכול להיות שהיא תעשה את זה יותר טוב
אבל השאלה היא כמה קשה וכמה זמן לוקח לכתוב את זה, לא כמה טוב היא תעשה אחרי שכתבו את זה
ובקוטלין זה יהיה הרבה הרבה יותר קשה ואיטי, וזה לא שווה
וזה בלי קשר לעניין שחסר לקוטלין ספריות לענינים האלו
ומעניין אותי, מה היתרונות של קוטלין בהקשר הזה
כי לי נשמע די ברור שקוטלין זה לאפליקציות ופרויקטים מורכבים, ופייתון בשביל פרויקטים קלים וסקריפטים
אז מסקרן אותי למה אתה חושב אחרת
פייתון לא נועדה למלא חיסרון של שפה לשרתים, או לתוכנות ואפליקציות
ברוב אלה היא באמת לא מידי מצליחה, רק בפיתוח backend היא יותר מצליחה, (flask, django), אבל עדיין זה לא השימוש העיקרי בה
זה פשוט לא המטרה שלה
פייתון נועדה למלה חיסרון של כל מה שבאמצע
לא כל התכנות בעולם נכתב בשביל שרתים תוכנות ואפליקציות
סקריפטים, אוטמציות, (לא תאהב את זה, אבל גם) ai, מתמטיקה וניתוח נתונים, ועוד הרבה דברים אחרים
ואת זה היא עושה יותר טוב מכל השפות האחרות
ולכן היא גם אחת משפות התכנות הפופלריות ביותר