تاریخ جاوا – جامعه dev

جاوا: از بلوط گرفته تا عالی (و اینکه چگونه در واقع کار می کند!)
خوب ، صلیبیان کد و کاردستی کافئین! ☕ دست و پنجه نرم ، پروانه! آخرین باری که ما در مورد اینکه چرا جاوا هنوز باسن اصلی را لگد می زند ، گپ زدیم. اما آیا تا به حال واقعاً تعجب کرده اید که این دمیگود دیجیتال ، این تایتان از فناوری ، واقعاً از کجا آمده است؟ یا چه نوع جادوگری تاریک ، یا شاید فقط مهندسی درخشان ، باعث می شود همه چیز مانند همه چیز اجرا شود؟ تلفن شما ، یخچال هوشمند شما (شاید) ، مریخ مریخ (احتمالاً نه ، اما سلام ، یک Dev می تواند خواب ببیند!).
بزرگترین ، محبوب ترین لیوان خود را بگیرید ، زیرا ما در حال غوطه ور شدن عمیق ، در اعماق سوراخ خرگوش به تاریخ و “چگونه کار” جاوا هستیم. انتظار برخی از خنده ها ، چند “آه!” لحظات ، و شاید قدردانی تازه ای از آن جام جو که الهام بخش نام آن بود.
تاریخ باستان: هنگامی که دایناسورها (و شماره گیری) به زمین پرسه زدند
این را تصور کنید: اوایل دهه 1990. موهای بزرگ ، شلوار بود و اینترنت به نظر می رسید مانند یک روبات که از خط تلفن شما فریاد می زد. یک باند فوق العاده هوشمند در Sun Microsystems ، یک خدمه افسانه ای که به عنوان “تیم سبز” شناخته می شود-با جادوگر برنامه نویسی جیمز گوسلینگ ، در کنار پاتریک ناتون ، مایک شریدان و دیگران-در یک مأموریت قرار داشت. تلاش آنها؟ برای فهمیدن چیز بزرگ بعدی در الکترونیک مصرفی.
[Изображение Джеймса Гослинга или команды Green Team в стиле 90-х]موج مغزی اولیه و نسبتاً بلندپروازانه آنها؟ تلویزیون تعاملی! بله ، شما آن را درست شنیدید. آنها در تلاش بودند تا تلویزیون CRT فله شما را باهوش تر کنند و آینده ای را تصور کنند که بتوانید پیتزا سفارش دهید ، بازی کنید یا مستقیماً از طریق تلویزیون خود با نمایش ها تعامل برقرار کنید. (اسپویلر: آن رویای خاص ، همانطور که امیدوار بودند جهان را کاملاً فتح نکرد ، اما بذرهای مهم کاشته شد).
برای تأمین قدرت این جعبه های تنظیم تلویزیونی آینده نگر و سایر دستگاه های هوشمند ، آنها به نوع جدیدی از زبان برنامه نویسی نیاز داشتند. باید بود:
-
Simple-ish: قطعاً کمتر از سردرد نسبت به C ++ ، که قهرمان سلطنت بود ، اما همچنین بسیار پیچیده و مستعد گریه کردن توسعه دهندگان بود.
-
قوی و ایمن: اگر یک پروانه دیجیتالی بالهای خود را اشتباه کند ، باید سخت باشد و خراب نشود.
-
قابل حمل (مقدس مقدس!): این مهم بود. این باید انواع تراشه ها و سخت افزار مختلف را بدون بازنویسی برای هر یک اجرا کند
-Object- گرا: زیرا این روش خنک ، مدولار و سازمان یافته برای ساخت نرم افزار پیچیده بود.
بنابراین ، جیمز گوسلینگ ، که از آنچه که فقط می تواند تصور کند اقیانوس قهوه بود ، خود را قفل کرد ، خود را قفل کرد (از لحاظ تصویری ، بیشتر) و یک زبان را چکش زد. نام اول آن؟ “بلوط”. بله ، بلوط. ظاهراً به نام درخت بلوط محکم که با افتخار در خارج از پنجره دفتر خود ایستاده بود ، نامگذاری شده است. جامد ، قابل اعتماد ، اما شاید ناشناس ترین نام برای یک انقلاب فنی نباشد.
همانطور که سرنوشت آن را خواهد داشت ، بازار تلویزیون تعاملی معلوم شد که کمی اسکویب مرطوب است. اما پس از آن ، مانند یک ققنوس دیجیتال ، شبکه جهانی وب در صحنه منفجر شد! تیم سبز ، که همیشه سازگار است ، لحظه ای لامپ داشت. آنها متوجه شدند که زبان کوچک “بلوط” آنها ، با دقت طراحی شده است که قابل حمل باشد و بر روی سخت افزار متنوع اجرا شود ، برای این چیزهای اینترنتی در حال رشد مناسب بود.
یک rebrand سریع به ترتیب بود. “بلوط” “جاوا” شد – افسانه آن را دارد ، این نام در هنگام استراحت قهوه انتخاب شد ، با الهام از مصرف فوق العاده تیم ، خوب ، جاوا (قهوه پیت ، خاص ، مورد علاقه بود). و به همین ترتیب ، در سال 1995 ، جاوا 1.0 به طور رسمی بر روی جهانی مظنون و به زودی گرسنه رها شد. اینترنت هرگز یکسان نخواهد بود.
چگونه جاوا در واقع کار می کند: The Grand Illusion & The Magic Show
خوب ، بنابراین کد جاوا کمی شبیه پسر عموی کمی آرام تر و کمرنگ تر C ++ است. اما چگونه ترفند جادویی از رفتن از آنچه را که در ویرایشگر خود تایپ می کنید به چیزی که در واقع در ویندوز ، مک ، لینوکس ، اندروید و احتمالاً توستر پیشرفته شما در صورتی که به اندازه کافی فانتزی باشد ، انجام می دهد؟
این یک تانگو دو مرحله ای هوشمندانه ، دوستان من ، رقص زیبایی از تدوین و تفسیر است:
مرحله 1: کامپایلر (جاوا) – تبدیل نبوغ خود به جهانی “بیگانه”
وقتی شاهکار درخشان جاوا را می نویسید (به عنوان مثال ، myawesomprogram.java) ، ابتدا آن را به کامپایلر جاوا تغذیه می کنید ، که از نظر محبت به جاوا معروف است. این کامپایلر یک دروازه بان اول مهم است. این دقیق کد شما را برای خطاهای نحوی بررسی می کند (بدون تایپ مجاز نیست!).
اما این پیچ و تاب است: Javac کد شما را مستقیماً به کد دستگاه تبدیل نمی کند (0 و 1 RAW که پردازنده رایانه شما به طور مستقیم می فهمد). اوه نه ، این برای جاه طلبی های بزرگ جاوا بسیار ساده خواهد بود و قابلیت حمل آن را از بین می برد!
در عوض ، کامپایلر کد جاوا قابل خواندن انسانی شما را به یک زبان واسطه به نام Java Bytecode ترجمه می کند. به عنوان یک مجموعه دستورالعمل های بسیار بهینه شده و مستقل از پلتفرم ، از bytecode فکر کنید. این مانند یک زبان جهانی برای ماشین آلات است ، نوعی Esperanto دیجیتال که مخصوص هر نوع رایانه نیست. این پرونده های bytecode همان چیزی است که پسوند .class را دریافت می کند (به عنوان مثال ، myawesomeprogram.class).
شما می پرسید چرا BYTECODE؟ از آنجا که این سنگ بنای مطلق شعار معروف جاوا است: “یک بار بنویسید ، در هر جایی اجرا کنید” (Wora). این کد BYTECODE گرد و غبار جادویی قابل حمل است.
مرحله 2: JVM (دستگاه مجازی جاوا) – کد شخصی شما باتلر و مترجم
اینجاست که نمایش واقعی آغاز می شود. برای اجرای آن پرونده .class (کد بایت که تازه ایجاد کرده اید) ، رایانه شما به یک ماشین مجازی جاوا (JVM) نیاز دارد.
JVM در اصل برنامه ای است که رایانه را در رایانه واقعی شما شبیه سازی می کند. این یک محیط کنترل شده برای اجرای کد جاوا شما ایجاد می کند. از نظر مهم ، هر سیستم عامل (ویندوز ، مکوس ، لینوکس ، اندرویدی و غیره) نسخه خاص خود را از JVM ، خیاطی برای آن محیط دارد.
هنگامی که می خواهید برنامه جاوا خود را اجرا کنید ، JVM برای سیستم عامل خاص شما همان Bytecode Universal (پرونده .class) را می گیرد و در پرواز ، آن را ترجمه می کند (یا تفسیر می کند ، یا فقط به موقع کامپایل می کند) آن را به کد دستگاه بومی که پردازنده رایانه خاص شما می تواند درک و اجرا کند ، ترجمه می کند.
بیایید قیاس دیگری را امتحان کنیم:
-
شما (توسعه دهنده) یک اسکریپت بازی درخشان را به زبان تئاتر جهانی (کد جاوا) می نویسید.
-
یک ویرایشگر دقیق (کامپایلر جاوا) آن را برای خطاها بررسی می کند و سپس آن را با استفاده از نمادهای جهانی (Bytecode) به کتیبه های اصلی اصلی رونویسی می کند.
-
شما می توانید این کتیبه های اصلی (پرونده های .class) را برای گروه های مختلف تئاتر در سراسر جهان (سیستم عامل های مختلف) ارسال کنید.
-هر گروه تئاتر کارگردان خاص خود را دارد (JVM برای آن سیستم عامل) که می تواند نمادهای جهانی را در کتیبه ها بخواند و سپس بازیگران محلی خود (پردازنده رایانه) را به زبان مادری خود آموزش دهد و اطمینان حاصل کند که این نمایشنامه کاملاً در همه جا انجام می شود.
و چند ترفند جالب دیگر در آستین خود (زیرا جاوا یک overachiever است):
-
جمع آوری زباله (قسمت فوقانی مرتب): جاوا دارای یک جمع کننده زباله اتوماتیک (GC) است. این فرآیند پس زمینه کوچک کوشا مانند یک اتاق دیجیتال برای حافظه برنامه شما است. این بخش از حافظه (اشیاء) را خراب می کند که برنامه شما دیگر از آن فضا استفاده نمی کند و آن را پس می گیرد و آن را برای چیزهای جدید در دسترس قرار می دهد. این بدان معناست که شما ، توسعه دهنده ، لازم نیست که به طور دستی تخصیص حافظه و جابجایی را به طور دستی مدیریت کنید ، که باعث صرفه جویی در یک تن سردرد می شود و از یک کلاس کامل از اشکالات ناخوشایند مانند نشت حافظه جلوگیری می کند. این عالی نیست ، اما یک نجات دهنده است.
-
امنیت (تندرست): JVM همچنین به عنوان یک نگهبان امنیتی عمل می کند. این کد را در یک محیط ماسهبازی اجرا می کند ، که می تواند آنچه را که کد مجاز به انجام آن است محدود کند (به عنوان مثال ، دسترسی به پرونده های خاص یا اتصالات شبکه). این امر به جلوگیری از ویرانی کد مخرب در سیستم شما کمک می کند. این مانند طناب مخملی و یک تندرست سخت برای برنامه های شما است.
-
کتابخانه کلاس جاوا (جعبه ابزارهای قدرت شما): جاوا با یک کتابخانه استاندارد عظیم از کد از پیش نوشته شده (کلاس ها و روش ها) برای انواع کارهای مشترک-دست زدن به رشته ها ، شبکه سازی ، فایل I/O ، ساختار داده ها و موارد بسیار دیگر ارائه می شود. این باعث می شود شما از نوآوری مداوم چرخ به طور مداوم نجات دهید.
خوب ، خط پانچ چیست؟ چرا باید مراقبت کنید؟
سفر جاوا از یک ایده سوداگرانه برای تلویزیون تعاملی به یک نیروگاه برنامه نویسی جهانی چیزی کوتاه از حماسه نیست. معماری منحصر به فرد آن ، به ویژه ترکیب JVM و Bytecode ، برای زمان خود انقلابی بود و دلیل اصلی آن برای قابلیت حمل و نقل باورنکردنی ، استحکام و ماندگاری ماندگار آن باقی مانده است.
به نظر می رسد یک پیچیده تر از تدوین مستقیم به کد ماشین ، اما این “کامپایل به bytecode” ، سپس تفسیر/jit-compile را بر روی یک مدل JVM “دقیقاً همان چیزی است که به جاوا اجازه داده است تا به معنای واقعی کلمه میلیاردها دستگاه بپردازد. از سرورهای شرکت های عظیم که معاملات مالی بحرانی را به برنامه های اندرویدی در جیب شما انجام می دهند ، و سیستم های بی شماری در بین آنها ، تأثیر جاوا غیرقابل انکار است.
در اینجا یک قطعه کوچک برای جشن گرفتن این سفر قابل توجه وجود دارد:
class JavaEvolution {
public static void main(String[] args) {
String originalConcept = "Project 'Oak' for Interactive TV (early 90s)";
String pivotalShift = "Rebrand to 'Java' for the World Wide Web (1995)";
String corePrinciple = "Write Once, Run Anywhere (thanks to JVM & Bytecode)";
boolean isStillRelevant = true;
System.out.println("Journey Started As: " + originalConcept);
System.out.println("Became: " + pivotalShift);
System.out.println("Key Magic: " + corePrinciple);
System.out.println("Still a dominant force in tech? " + (isStillRelevant ? "Absolutely! ☕💻✨" : "Needs more coffee."));
System.out.println("Hats off to the JVM, the unsung hero!");
}
}
آیا تاریخچه جالب دیگری از جاوا یا قیاس های شخصی خود را برای نحوه عملکرد این جانور باشکوه دارید؟ در نظرات زیر به اشتراک بگذارید! همه ما در اینجا یاد می گیریم.
کدگذاری را نگه دارید ، کافئین دار بمانید و ممکن است NullPointerExceptions شما چند و دور باشد! 🚀