در این مطلب از وبسایت اوپن مایند، تصمیم گرفتیم کمی حول این خاطره شیرین بنویسیم تا پیاده سازی نمایش Hello World را در زبان های مختلف ببینید. با ما همراه باشید!
مقدمه
اگر به شکلی آکادمیک برنامه نویسی را آموخته باشید، به احتمال زیاد در اولین جلسه آموزش کدنویسی این جملات را شنیده اید:
کامپیوترها به خودی خود کاری انجام نمی دهند. کامپیوتر تنها آن کاری را انجام می دهد که به آن گفته شده است. اما چطور باید به کامپیوتر گفت چه کاری باید انجام دهد؟ به وسیله برنامه نویسی آن ها با زبان های برنامه نویسی!
سپس اولین کد کامپیوتری برای شما ارائه شد که نوشته شد بود تا “سلام دنیا!” را نمایش دهد!
کد Hello World در زبان های مختلف
این زبان با دیگر زبان های اوایل دهه ۱۹۵۰ میلادی هم دوره است. از زبان های رایج آن دوره زمانی می توان به FORTRAN ، Lisp و COBOL اشاره کرد. زبان ALGOL شیوه توضیح و پیاده سازی الگوریتم ها را ارائه کرد و برای ۳۰ سال در محیط های آموزشی در این زمینه مورد استفاده قرار گرفت. می توان گفت ALGOL تاثیر بسیار زیادی روی زبان های سطح های بالای بعدی مانند C داشت.
| BEGIN DISPLAY("HELLO WORLD!") END. |
اگر شما از MacOS استفاده می کنید می توانید از این زبان برای نوشتن اکسریپت هایی که کارهایی را به طور خودکار انجام می دهند یا تنظیمات برنامه ها را سفارشی سازی می کنند، استفاده کنید.
زبان اسمبلی اولین واسط بین انسان و زبان ۰ و ۱ ماشین است. زبان اسمبلی یک زبان سطح پایین است و کد نوشتن در آن بسیار مشکل است؛ چرا که محدودیت های معماری کامپیوتر و سخت افزار مستقیماً باید در حین کد نوشتن رعایت شوند. به هر حال امروزه به لطف زبان های سطح بالا می توان فارغ از محدودیت های معماری کامپیوتر و بدون دغدغه مدیریت حافظه، کدنویسی کرد و تبدیل کد سطح بالا را به عهده کامپایلرها و مفسر ها گذاشت. اما زبان اسمبلی هنوز در نوشتن هسته سیستم عامل ها و موتورهای بازی سازی سه بعدی کاربرد دارد.
| global _main extern _printf section .text _main: push message call _printf add esp, 4 ret message: db 'Hello, World', 10, 0 |
کاربرد این زبان، مدیریت سیستم های مبتنی بر Unix و Linux و تعامل با ابزارهای آن ها از طریق command line است.
| #!/bin/bash echo "Hello World!" |
زبان BASIC در سال ۱۹۶۴ منتشر و معرفی شد. در دهه ۸۰ میلادی استفاده از این زبان به اوج خود رسید. در این دهه کامپیوترها به ادارات کوچک و خانه ها راه پیدا کردند و چون روی تعداد زیادی از این کامپیوترها کامپایلر BASIC نصب شده بود، ساخت نرم افزار با این زبان فراگیر شد.
انواع مختلفی از زبان BASIC وجود دارد که مهم ترین آن Visual Basic مایکروسافت است که نسخه های جدیدتری از آن هنوز استفاده می شود.
| 10 PRINT "Hello, World!" 20 END |
زبان C به دلیل تاثیرات عظیمی که روی تجارت و زبان های برنامه نویسی بعدی دارد، مهم ترین زبان برنامه نویسی دنیاست. سیستم عامل های Windows، MacOS، iOS و Android با استفاده از این زبان نوشته شده اند. همچنین مرورگرهای وب و موتورهای ساخت جلوه های سه بعدی که در سینما و بازی سازی استفاده می شوند هم به زبان C نوشته شده اند. زبان C در مقایسه با دیگر زبان های برنامه نویس سطح بالا، سطح انتزاع کمتری نسبت به زبان Assembly دارد؛ به همین دلیل کارایی و سرعت بسیار بالایی را ارائه می دهد.
جالب است بدانید که نمونه کد سلام دنیا! هم با این زبان معروف و محبوب شد!
| #include <stdio.h> int main(void) { printf("hello, world\n"); } |
زبان ++C از روی زبان C و با هدف ایجاد قابلیت استفاده آسان تر در پروژه های بسیار بزرگ و مدرن ساخته شد. در ساخت این زبان تلاش شد تا کارایی و سرعت زبان C حفظ شود.
| #include <iostream> int main() { std::cout << "Hello, world!\n"; return 0; } |
این زبان توسط Microsoft ایجاد شد و به عنوان زبان اصلی برنامه نویسی برای پلتفرم Windows معرفی شد.
| using System; class Program { static void Main(string[] args) { Console.WriteLine("Hello, world!"); } } |
یک زبان رویه ای (functional) در خانواده زبان های ML . جالب است بدانید که این زبان در پروژه های کوچک در فیسبوک استفاده می شود.
| print_endline "Hello, world!";; |
این یکی شاهکار است! CLOJURE یک زبان رویه ای (functional) است که از روی Lisp ساخته شده است و سعی شده مدرن تر از آن باشد و هم روی ماشین مجازی Java اجرا می شود، هم می تواند به JavaScript تبدیل (کامپایل) شود!
این زبان این روزها استفاده ای ندارد و مربوط به اوایل دوران کامپیوترهای mainframe است.
| IDENTIFICATION DIVISION. PROGRAM-ID. hello-world. PROCEDURE DIVISION. DISPLAY "Hello, world!" . |
این زبان تلاشی است برای بهتر کردن زبان JavaScript.
| console.log "Hello, World!" |
زبان DART برای ساخت برنامه های سمت کاربر طراحی شده است. برنامه های نوشته شده با این زبان هم می تواند روی موبایل ها و هم روی مرورگر ها اجرا شوند. شرکت گوگل برای تعدادی از پروژه های بزرگ و مهم خود از این زبان استفاده می کند.
| main() { print('Hello World!'); } |
dBase زمانی محبوب بود اما اکنون بلااستفاده است. در واقع dBase مجموعه ای از ابزارهاست: یک زبان برنامه نویسی، یک پایگاه داده و فرم های بصری.
DELPHI با استفاده از زبان Object Pascal ساخته شده است. زمانی DELPHI محبوب ترین و پر استفاده ترین زبان برنامه نویسی برای ساخت نرم افزارهای پلتفرم Windows بود. این روزها برای ساخت نرم افزارهای ویندوزی از سی شارپ، جاوا، سی پلاس پلاس و… استفاده می شود و دلفی بازنشسته شده است!
| procedure TForm1.ShowAMessage; begin ShowMessage('Hello World!'); end; |
سال ها پیش زبان EIFFEL ایده نوشتن class و ایجاد شی در برنامه نویسی را به وجود آورد و این روزها این ایده در تمام زبان های شی گرا زنده است!
| class HELLO_WORLD create make feature make do print ("Hello, world!%N") end end |
این زبان برای کارهای توزیع شده و پردازش real-time (مانند سیستم های تلفن و مخابراتی) طراحی شده است. زبان ERLANG تا مدت ها زبانی شناخته شده نبود تا این که در CouchDB استفاده شد. CouchDB پروژه ای بود محرک جنبش NoSQL شد.
| -module(hello). -export([hello_world/0]). hello_world() -> io:fwrite("hello, world\n"). |
زبان ERLANG از لحاظ ویژگی های تکنیکی عالی بود اما به دلیل مشکل بودن برنامه نویسی با آن، زبان ELIXIR طراحی شد تا ضمن استفاده از همان تکنولوژی های زبان ERLANG ، برای برنامه نویسی ساده تر باشد.
یک زبان رویه ای که روی چارچوب NET. مایکروسافت اجرا می شود.
| open System Console.WriteLine("Hello World!") |
زبان FORTRAN در دهه ۱۹۵۰ میلادی برای استفاده روی کامپیوترهای mainframe طراحی شد. این زبان برای کارهای علمی و محاسباتی بسیار مناسب است و به همین دلیل امروزه هم کاربرد دارد.
| program helloworld print *, "Hello world!" end program helloworld |
اولین بار این زبان در شرکت گوگل طراحی و استفاده شد. تمرکز این زبان روی کارایی بالا و تاخیر پاسخ دهی کم است.
| package main import "fmt" func main() { fmt.Println("Hello, World") } |
یک زبان اسکریپتی که روی ماشین مجازی جاوا اجرا می شود.
زبان HASKELL یک زبان رویه ای است که در آن تمام دستورات باید به دقت و کامل تایپ شوند (اصطلاحاً به این زبان ها strongly-typed می گویند که در آن ها نوع و مقدار همه چیز قبل از تعریف و استفاده باید مشخص شود. مثلاً بر خلاف پایتون در آن ها باید نوع متغیر قبل از مقداردهی مشخص شود. یا مثلاً باید نوع توابع قبل از تعریف آن ها مشخص شود)
| module Main where main :: IO () main = putStrLn "Hello, World!" |
در سال ۱۹۵۹ از روی زبان قدیمی RPG و توسط IBM ساخته شد تا روی سخت افزار همان شرکت اجرا شود.
| dcl-s wait char(1); dsply ( 'Hello World!') ' ' wait; *inlr = *on; |
زبان جاوا جزو پر استفاده ترین و محبوب ترین زبان های برنامه نویسی امروزه است. ایده اصلی جاوا که باعث فراگیری و محبوبیت آن شده، این است که شما در جاوا فقط یک بار کد می نویسید و سپس روی تمام پلتفرم های دیگر می توانید آن را اجرا کنید، بدون توجه به نوع سیستم عامل، معماری کامپیوترهای مختلف و محدودیت ها و ویژگی های هر کدام. در واقع زبان جاوا به یک زبان میانی کامپایل می شود و سپس در پلتفرم های مختلف توسط ماشین مجازی جاوا، کد میانی به کد زبان ماشین مخصوص آن سیستم تبدیل می شود و شما هیچ نیازی به تغییر کدتان ندارید.
امروزه جاوا در کمپانی های زیادی استفاده و به کارآموزان آموزش داده می شود. همچنین بخش عمده برنامه های Android هم به این زبان نوشته می شود.
| class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); } } |
جاوا اسکریپت رایج ترین زبان برنامه نویسی در دنیاست؛ چرا که در تمام مرورگرهای وب یافت می شود! جاوا اسکریپت همان چیزی است که صفحات وب را پویا و قابل تعامل می سازد. نام اصلی جاوا اسکریپت که با آن ثبت و استانداردسازی شده، ECMAScript است.
| console.log("Hello World!"); |
Lisp یک سال بعد از Fortran طراحی و ساخته شد. زبان Lisp دومین زبان سطح بالای تاریخ برنامه نویسی است که هنوز هم استفاده از انواع آن کاملاً رایج است. این زبان در دهه ۷۰ میلادی در تحقیقات هوش مصنوعی بسیار پراستفاده بود اما در دهه ۹۰ میلادی از محبوبیت آن کاسته شد. ایده های این زبان به قدری تازه و مفید بودند که وجود بسیاری از ویژگی ها در زبان های بعد از Lisp مدیون این زبان است!
این زبان برای آموزش مفاهیم بصری و گرافیکی به کودکان ساخته شد و در دهه ۸۰ میلادی محبوب بود.
| TO HELLO PRINT [Hello world] END |
یک ویژگی جالب این زبان این است که به سادگی می تواند درون نرم افزارهای زبان های دیگر استفاده شود.
زبان ماشین پایین ترین سطح دستورات (نزدیک ترین به سخت افزار) را ارائه می دهد. دستورات این زبان مستقیماً به CPU می روند و اجرا می شوند. این دستورات برای انسان قابل خواندن نیست اما خب در نهایت کدهای همه زبان های برنامه نویسی برای اجرا به زبان ماشین ترجمه می شوند. کد ماشین زیر برای اجرا در پردازنده X86 اینتل و روی سیستم عامل لینوکس نوشته شده است.
| b8 21 0a 00 00 #moving "!\n" into eax a3 0c 10 00 06 #moving eax into first memory location b8 6f 72 6c 64 #moving "orld" into eax a3 08 10 00 06 #moving eax into next memory location b8 6f 2c 20 57 #moving "o, W" into eax a3 04 10 00 06 #moving eax into next memory location b8 48 65 6c 6c #moving "Hell" into eax a3 00 10 00 06 #moving eax into next memory location b9 00 10 00 06 #moving pointer to start of memory location into ecx ba 10 00 00 00 #moving string size into edx bb 01 00 00 00 #moving "stdout" number to ebx b8 04 00 00 00 #moving "print out" syscall number to eax cd 80 #calling the linux kernel to execute our print to stdout b8 01 00 00 00 #moving "sys_exit" call number to eax cd 80 #executing it via linux sys_call |
این زبان برای استفاده در سیستم پردازشی WOLFRAM ایجاد شده است که مخصوص محاسبات سنگین و پیچیده ریاضی است.
| CloudDeploy["Hello, World"] |
زبان نرم افزار MATLAB که برای تجریه و تحلیل داده ها و پیاده سازی الگوریتم ها استفاده می شود.
| classdef hello methods function greet(this) disp('Hello, World') end end end |
یک زبان رویه ای که از زبان Lisp مشتق شده است.
این یکی در واقع زبان مستقلی به شما نمی آید (پایه آن زبان جاوا اسکریپت است). در واقع Node.js یک محیط اجراست که جاوا کدهای جاوا اسکریپت را به جای مرورگر روی سرورها اجرا می کند.
| console.log("Hello World!"); |
این زبان در واقع گسترشی از زبان C است که تعدادی از ایده های زبان Smalltalk هم به آن افزوده شده است. از این زبان برای ساخت برنامه های پلتفرم های macOS و iOS استفاده می شود.
| main() { puts("Hello World!"); return 0; } |
زبانی محبوب در دهه های ۸۰ و ۹۰ میلادی به خصوص برای آموزش ابتدایی برنامه نویسی.
| program HelloWorld(output); begin Write('Hello, world!') end. |
زبان Perl یک زبان بسیار قوی در حوزه پردازش متون (text processing) است. همچنین امروزه از Perl برای ساخت وبسایت های پویا و تعاملی هم استفاده می شود.
زبان PHP محبوب ترین زبان برای نوشتن کدهای سمت سرور وبسایت هاست. برای مثال وردپرس و فیسبوک به این زبان نوشته شده اند.
| <?php echo "Hello, World"?> |
این زبان کارکردی همانند (Bash (shell اما در پلتفرم ویندوز دارد. یعنی برای تعامل با سیستم عامل ویندوز و استفاده از ابزارهای آن در محیط Command Line طراحی شده است.
| Write-Host "Hello, World!" |
پایتون زبان محبوب خود من است! حتی در یک مقاله جدا به این موضوع پرداخته ام که چرا باید پایتون یاد بگیریم؟. زبان پایتون نحوه نوشتار (سینتکس) جمع و جوری دارد و کدهای این زبان در مقایسه با جاوا و سی پلاس پلاس بسیار کوتاه تر نوشته می شود. همچنین به لطف ویژگی هایش و کتابخانه عظیمش قدرت فراوانی دارد. امروزه از پایتون در تمام حوزه های تکنولوژی استفاده می شود. از جمله در پردازش های هوش مصنوعی یا ساخت وبسایت ها و …
زبان R در سال ۲۰۱۳ میلادی معرفی شد و این روزها در حوزه پردازش های آماری و هوش مصنوعی بسیار پر استفاده است.
در واقع این زبان طراحی شد تا زبانی کارا و بامزه برای استفاده باشد! بعدها چارچوب (فریمورک) Rails برای Ruby ایجاد شد تا بتوان با آن وبسایت ساخت (که البته بسیار محبوب شد).
هدف از طراحی این زبان ایجاد جایگزینی برای زبان هایی مثل C بود که بتوان از آن در برنامه نویسی های سطح کاربر (نه کارهایی مثل ساخت سیستم عامل) استفاده شود. جالب است بدانید که بخشی از مرورگر Firefox شرکت Mozila به این زبان نوشته شده است.
| fn main() { println!("Hello, world!"); } |
زبان SCALA برای رفع برخی اشکالات و انتقادات وارد بر جاوا ساخته شد. این زبان رویه ای است و روی ماشین مجازی جاوا اجرا می شود.
| object HelloWorld extends App { println("Hello, World!") } |
زبانی مشتق شده از زبان Lisp
| (let ((hello0 (lambda() (display "Hello world") (newline)))) (hello0)) |
زبانی بسیار ساده و جمع و جور برای آموزش برنامه نویسی به کودکان
زبانی ساخته شده بر اساس Smalltalk. این زبان به عنوان اولین زبان از مدل برنامه نویسی Prototype-based استفاده کرد. برخی از ایده های این زبان در طراحی جاوا اسکریپت هم استفاده شده است.
یکی از تاثیرگذار ترین زبان های برنامه نویسی است. این زبان در دوره خود باعث محبوبیت بیشتر برنامه نویسی شد و تاثیر آن انقدر زیاد بود که بسیاری از مفاهیم برنامه نویسی امروزی از این زبان گرفته شده است.
| Transcript show: 'Hello World!'. |
زبانی برای جایگزینی Objective-C که از سوی شرکت Apple طراحی شد. یادگیری این زبان بسیار آسان است و کارایی آن با Objective-C برابری می کند.
این زبان همراه با افزونه Tk برای خلق رابط کاربری گرافیکی استفاده می شود.
این زبان توسط Microsoft بر اساس جاوا اسکریپت طراحی شده است تا نگه داری و خطایابی کدهای آن در پروژه های بزرگ نسبت به جاوا اسکریپت آسان تر شود.
| console.log("Hello World!"); |