בשנת 1920 הציג את יצירותיו בדרזדן ובברלין לפני שעקר לדיסלדורף, שם פגש את ד"ר הנס קוך (Hans Koch), אורולוג חובב אמנות שתמך באמנים והציג תערוכה של דיקס. במהלך 1921 צייר דיוקן של ד"ר קוך וכך התוודע לאשתו של הרופא, מרתה אליזבת קוך (Martha Elisabeth Koch, במקור לינדנר Lindner), אז בת 26 ואם לשני ילדים. השניים ניהלו רומן ולאחר תקופה קצרה עזבו יחד לדרזדן. ד"ר קוך ניהל באותה תקופה רומן עם אחותה הגדולה של מרתה ואולי בשל כך לא נטר טינה לדיקס ונשאר עמו בקשר טוב עד פטירתו ב-1952. בשנת 1923 התחתן דיקס עם מרתה ולאחר ארבעה חודשים נולדה בתם הראשונה, נלי. בהמשך אותו עשור נולדו להם עוד שני ילדים, אורסוס ויאן. הם נשארו נשואים עד פטירתו של האמן.
אובייקטביות חדשה ומחאה אמנותית.
בשנת 1924 התארגנו דיקס ואמנים אחרים יוצאי מלחמת העולם הראשונה בתערוכה קבוצתית נודדת בשם "לא עוד מלחמה". ספרו "המלחמה" יצא אף הוא בשנה זו, ותואר מאוחר יותר על ידי אחד המבקרים כאחד הספרים בעלי ההשפעה החזקה ביותר נגד מלחמות. בתקופה זו עשה שימוש רב בתצלומים של חיילים גרמנים שנפצעו וגופם התעוות כתוצאה מהמלחמה.
ב-1925 הציג דיקס את יצירותיו בקונסטהאלה מנהיים (Kunsthalle Mannheim) כחלק מתערוכה משותפת של כמה אומנים, ביניהם מקס בקמן, ג'ורג' גרוס, ואחרים, ואשר נשאה את השם "אובייקטיביות חדשה" (אנגלית: New Objectivity, גרמנית: Neue Sachlichkeit). שם זה הפך במהרה לשמו של זרם תרבותי חדש בגרמניה. תרבות זו נוצרה מתוך השבר הגדול שהביאה מלחמת העולם הראשונה: אובדן של מיליוני חיילים צעירים, משבר כלכלי חריף והתמוטטות כמעט מוחלטת של מעמד הביניים. בניגוד לציפיות לפני המלחמה, שמצב האנשים בגרמניה ישתפר לאחר המלחמה, החלה לחלחל בסוף המלחמה ההבנה שלמעשה המצב גרוע יותר מכל מה שהיה לפני כן. תובנה זו הולידה את הזרם, שהשפעותיו ניכרו בציור, צילום ועיצוב. אופי התנועה היה פוליטי, בניסיון לרתום את האמנות ככלי נגד הממסד. דיקס זכה להכרה כבר באותה תקופה גם באירופה וגם בארצות-הברית, והמבקרים היללו את יצירותיו, בהן "החפירה" (אנגלית: The Trench), שעליה התחיל לעבוד בדרזדן ב-1920 והשלים רק ב-1923 בדיסלדורף. הוא היה זהיר מאוד בהתבטאויותיו ולא דיבר בקיצוניות שהביעו חברים אחרים בזרם אך למרות זאת נחשב, בעיקר בשל אופי יצירותיו, לבולט בין אמני הזרם ופעולותיהם.
בשנת 1931 מונה לחבר מן המניין באקדמיה הפרוסית לאמנות בברלין והחל להרצות. באותה שנה הוא הציג תערוכות בכל רחבי גרמניה ובניו-יורק. אך הכרה זו הייתה קצרת מועד יחסית, שכן בשנת 1933 החלו הנאצים להגדיר את עבודותיו כלא מוסריות. נאסר עליו להציג את יצירותיו בגרמניה, אך הוא נסע מספר פעמים באמצע שנות ה-30 לשווייץ, שם הציג את יצירותיו בתערוכות שונות.
ב-1937 הוצגה התערוכה "אמנות מנוונת" בה, יחד עם שורה ארוכה של יצירות אחרות של אמנים גרמנים, בעיקר יהודים ומתנגדי הממשל, הוצגו מבחר מיצירותיו כאמנות שאינה ראויה ושיש להוקיע אותה. בשנת 1939 נאסר דיקס באשמת ניסיון התנקשות בחייו של אדולף היטלר, אך שוחרר לאחר מספר חודשים והאשמות נגדו בוטלו. בסוף מלחמת העולם השנייה נתפס על ידי הצרפתים והחזק בשבי עד 1946.
אחרי מלחמת העולם השנייה וסוף חייו.
אופי עבודותיו של דיקס לאחר מלחמת העולם השנייה השתנה מעט: הוא החל לצייר יצירות בעלות אופי דתי-נוצרי, אלגוריות דתיות וסצנות תנ"כיות; אך המשיך גם ביצירה המראה את הסבל שגורמות המלחמות. הוא קיבל הכרה והערכה בגרמניה המערבית והמזרחית גם יחד וזכה בפרסים רבים. בשנות ה-50 וה-60 נסע ברחבי אירופה וארצות-הברית כדי להציג את יצירותיו בתערוכות שונות. דיקס מונה לחבר במספר אקדמיות לאמנות, בהן פירנצה, ברלין ודרזדן. בשנת 1965 השתתף בסרט דוקומנטרי קצר. בשנת 1967, לאחר נסיעה ליוון, סבל משבץ ששיתק את ידו השמאלית. הוא נפטר ב-25 ביולי 1969 לאחר שעבר שבץ נוסף.
Java Virtual Machine
Java Virtual Machine (בקיצור JVM) היא מכונה וירטואלית המפרשת ומריצה Java Bytecode. לרוב, קוד זה מופק על ידי מהדר לשפת Java, אם כי ה-JVM יכולה לשמש גם כפלטפורמת היעד של מהדרים לשפות אחרות. ה-JVM היא תוכנת מחשב ככל תוכנה אחרת, והיא משמשת כמעין שכבת-מיפוי בין מערכת ההפעלה לבין תוכניות הרצות על גביה.
בגרסאות המוקדמות של שפת Java, הייתה זו חברת Sun שפיתחה את ה-JVM. בהמשך, ולאחר שמפרט ה-JVM הוגדר במדויק, חברות רבות יישמו גרסאות משלהן, אך כולן חייבות לעמוד בסדרת מבדקים (Java TCK) כדי להחשב כמימוש תקני של ה-JVM. בנובמבר 2006, הכריזה חברת Sun כי ה-Java Platform, לרבות ה-JVM של Sun (הנקראת HotSpot), יוצעו גם תחת רישוי GPL v2. החברה הודיעה כי תמשיך להשתמש בסימן הרשום של Java (הנמצא בבעלותה) כדי להסמיך מימושים של ה-JVM התואמים באופן מלא למפרט המפורסם.
השימוש במכונה וירטואלית הוא ממאפייני היסוד של פלטפורמת Java, והוא מאפשר לתוכניות שנכתבו בשפת Java ועברו הידור באמצעות המהדר של השפה, לרוץ על מגוון רחב של פלטפורמות חומרה ומערכות הפעלה. תכונה זו באה לידי ביטוי בסיסמתה של Java: "Write once, run anywhere" ("כתוב פעם אחת, הרץ בכל מקום"), אם כי ל-Java תכונה חזקה יותר של רב-פלטפורמיות: "הדר פעם אחת, הרץ בכל מקום". בזכות תכונות אלה, במשולב עם השירותים הרבים שמספקת שפת Java, יש המסווגים את ה-JVM גם כתווכה.
החל מ-Java SE 5.0, שינויים במפרט ה-JVM מפותחים תחת ה-Java Community Process כ-JSR 924. מפרט ה-JVM מפורסם כספר הידוע בשם "Blue Book", ובמבוא מצוין כך (תרגום):
סביבת הריצה.
תוכניות המיועדות לרוץ על גבי JVM מהודרות תחילה ל-Java Bytecode, שהוא סט פקודות המכונה של ה-JVM. פלט המהדר נשמר בפורמט בינארי מתוקנן, שבדרך כלל מסופק כקובץ . כל מחלקה בתוכנית מהודרת לקובץ אחד, ובמקרים מסוימים אף ליותר (מחלקות פנימיות). תוכנית תכלול בדרך כלל קובצי רבים. כדי להקל על הפצת התוכנית, ניתן לארוז את הקבצים בקובץ jar..
קבצים אלה משמשים כקלט ל-JVM, ורצים על גביה. בזמן הריצה, ה-JVM מפרשת או מהדרת במקום (באמצעות מהדר JIT) את הקלט לסט הפקודות המתאים של המעבד עליו רצה בפועל ה-JVM. ברוב המימושים המודרניים של ה-JVM, נעשה שימוש נרחב בהידור במקום כדי להאיץ את מהירות הריצה של התוכנית.
ה-Java Virtual Machine מבוססת על ארכיטקטורה של מכונת מחסנית. מאידך, מהדרי JIT מהדרים לרוב את ה-Bytecode לשפת מכונה מבוססת רגיסטרים. לכל תהליכון (Thread) יש מחסנית ואוגר פקודה משלו.
סט הפקודות.
ל-JVM יש פקודות לקבוצות המשימות הבאות:
פקודות ה-JVM, דהיינו, שפת המכונה שלה, מפורשות באותו האופן בכל פלטפורמת החומרה. עם זאת, בכל פלטפורמה נדרש מיפוי שונה של פקודות אלה לפקודות המעבד הרלוונטי, ומשימה זו מוטלת על מיישמי ה-JVM בפלטפורמה. בנוסף, ה-JVM נדרשת למפות באופן יעיל את ליבת ממשק תכנות היישומים של Java לממשק תכנות היישומים המתאים במערכת ההפעלה.
אימות.
ה-JVM מאמתת את ה-Bytecode קודם להרצתו. כלומר, רק סדרות תקינות של הוראות Bytecode יוכלו לרוץ. לדוגמה, הוראת JUMP (הסתעפות) יכולה לכוון רק להוראה הנמצאת באותה הפונקציה. לשימוש במאמת יש תופעת לוואי מבורכת: למרות שה-JVM מבוססת על ארכיקטורה של מחסנית, אין פגיעה בביצועים גם כאשר נעשה שימוש בהידור JIT על גבי פלטפורמות חומרה בארכיטקטורת רגיסטרים.
נוסף על כך, אימות הקוד מבטיח גם שלא יהיה ניתן להשתמש בתבניות ביטים שרירותיות ככתובות זיכרון. בשיטה זו, אין צורך להשתמש ב-MMU כדי להגן על הזיכרון בפני השחתה שרירותית. מכאן, שה-JVM מאפשרת יישום יעיל של זיכרון מוגן בפלטפורמות חומרה החסרות MMU.
אבטחה.
הארכיטקטורה של מכונה וירטואלית מאפשרת פיקוח הדוק על הפעולות שקוד תוכנית מורשה לבצע. ב-Java Virtual Machine נעשה שימוש בתכונה זו כדי לאפשר את הרצתו של קוד לא-בטוח הנטען מרחוק לתוך ה-JVM. יישום נפוץ של תכונה זו מתבצע באמצעות Applet הנטען ל-JVM בפרוטוקול HTTP מאתר מרוחק, ומשולב בדפדפן. ה-Applet רץ בארגז חול המונע מהיישום להזיק למחשבו של המשתמש. מפרסם הקוד יכול לחתום דיגטילית על ה-Applet ובכך לאפשר לו, לאחר אישור המשתמש, לגשת למשאבים מקומיים במחשב, כגון מערכת הקבצים.
ניהול זיכרון ממוכן.
אחד מהמנגנונים המרכזיים שמספקת ה-JVM הוא ניהול זיכרון ממוכן (ידוע גם בשם "איסוף זבל"). מנגנון זה אחראי לרשום ולאתר במרחב הזיכרון שהוקצה לתוכנה אובייקטים שאינם בשימוש, ולתבוע בחזרה את המקום שתפסו. הניהול הממוכן של הזיכרון מקל באופן משמעותי על התכנות בשפת Java ומגביר מאוד את אמינות היישומים.
תוכנית Hello World.
להלן ה-Bytecode של תוכנית פשוטה ב-Java המדפיסה .
public class HelloWorld {
public &lt;init&gt;() : void
LINENUMBER 2 L0
ALOAD 0: this
INVOKESPECIAL Object.&lt;init&gt;() : void
RETURN
LOCALVARIABLE this HelloWorld L0 L1 0
MAXSTACK = 1
MAXLOCALS = 1
public static main(String[]) : void
LINENUMBER 5 L0
GETSTATIC System.out : PrintStream
LDC "Hello Wikipedia World!"
INVOKEVIRTUAL PrintStream.println(String) : void
LINENUMBER 6 L1
RETURN
LOCALVARIABLE args String[] L0 L2 0
MAXSTACK = 2
MAXLOCALS = 1
ג'מיני 5
ג'מיני 5 (או ג'מיני V) הייתה משימה מאוישת של נאס"א בשנת 1965 והיוותה חלק מתוכנית ג'מיני.
ג'מיני 5 הייתה המשימה השלישית המאוישת בתוכנית, המשימה ה-11 המאוישת של ארצות הברית עד אותה תקופה והמשימה ה-19 של כל הזמנים.