به طور کلی فرایند طراحی سایت را میتوان به دو بخش سمت کاربر (Front-end) و سمت سرور (Back-end) تقسیم بندی کرد.
پیش از این آشنا شدیم که برای طراحی سمت کاربر یا همان رابط کاربری سایت می بایست از زبانهای اچ تی ام ال، سی اس اس و جاوا اسکرپیت استفاده نمود.
از این زبان ها برای ساخت صفحات وب استاتیک (ایستا) استفاده می شوند و نمیتوان توسط آنها با سرور و دیتابیس به طور مستقیم تعامل پویا ایجاد کرد.

این دست زبانها برای طراحی سایتهای استاتیک مناسب هستند اما اگر بخواهیم یک سایت پویا یا دینامیک داشته باشیم، نیاز به زبانهایی به غیر از آنچه تاکنون مورد بررسی قرار دادهایم خواهیم داشت که در سمت سرور تعامل مناسب با دیتابس را برایمان برقرار کرده و کدهای سمت کاربر را به صورت پویا تولید کند. اما سوالی که مطرح می شود این است که چه زبانهایی را ما می توانیم در سمت سرور استفاده کنیم و هر کدام چه ویژگی هایی دارند و چگونه باید زبان درست را انتخاب کنیم.
معروف ترین زبانهای مورد استفاده در سمت سرور:
در این بخش سعی می کنم تا چند زبان بسیار معروف مورد استفاده در سمت سرور را خدمتتان معرفی کنم و بخشی از ویژگی هایشان را برایتان توضیح بدهم. شما می توانید با مقایسه هر کدام به موارد و جایگاه استفاده از آنها بیشتر پی برده و با توجه به ویژگی های پروژه، زبان مورد نظر را انتخاب نمایید.
نکته: لطفا این را در نظر بگیرید که هر کدام از این زبان ها به تنهایی یا به طور ترکیبی می توانند در سمت سرور مورد استفاده قرار بگیرند و تقریبا امکانات مشابهی را ارائه دهند ولی بسیاری از ویژگی ها باعث می شود تا با توجه به نوع پروژه یکی بر دیگری ترجیح داده شود.
زبان هایی که در این بخش معرفی می کنیم شاملPython, JAVA, Javascript, PHP, asp.NET می باشند. البته زبانهای بسیار دیگری نیز برای سمت سرور بکار می روند که با توجه به کاربرد بیشتر زبانهای نامبرده فعلا به همین ها بسنده می کنم.
asp.NET:
یکی از زبان های برنامه نویسی حرفه ای برای طراحی سایت ,ASP.NET است. ASP.NET نسل جدید ASP است. ASP مخفف کلمه Active Server Pages است و یک محصول منحصر به فرد برای شرکت مایکروسافت به حساب می آید ، این زبان برنامه نویسی اکنون منسوخ شده است و جای خود را به زبان اسکریپت نویسی ASP.NET داده است.
در همینجا به این نکته اشاره کنم که در واقع ASP.NET یک زبان برنامه نویسی نیست بلکه یک تکنولوژی برنامه نویسی وب با استفاده از دات نت است، شما می توانید با #C یا #F یا زبان های برنامه نویسی دیگر نیز دات نت ASP.NET بنویسید. بیشتر شرکت های و سازمان های بزرگ برای نرم افزارهای تحت وب خود از این زبان برنامه نویسی استفاده می کنند.
نرم افزاری که بیشترین هماهنگی با این زبان برنامه نویسی را دارد به عنوان Microsoft Visual Studio شناخته می شود که در واقع محیط برنامه نویسی مایکروسافت محسوب می شود. در این نرم افزار قابلیت های بسیار زیادی برای برنامه نویسی بصورت پیشفرض قرار گرفته اند که کار برنامه نویسی را برای برنامه نویسان بسیار راحت می کند.
صفحات ASP.NET دارای پسوند aspx. است، و به طور معمول در VB (ویژوال بیسیک) یا #C (سی شارپ) نوشته می شود. کنترل های کاربر در ASP.NET می توان به زبان های مختلف، از جمله ++ C و جاوا نوشته شود. هنگامی که یک مرورگر درخواست یک فایل ASP.NET را دارد، موتور ASP.NET فایل را می خواند، اسکریپت را در فایل اجرا و تالیف می کند، و نتیجه را به شکل زبان HTML ساده به مرورگر برمی گرداند.
این زبان بر روی هاست های ویندوزی Plesk راه اندازی می شود که باعث بالاتر رفتن هزینه هاست و نگهداری آن شده و تعداد بازدید کننده همزمان را نیز کاهش می دهد. البته می توان ورژن های اخیر را بر روی سرور های لینوکس نیز پیاده سازی کرد تا این نقاط ضعف را کمی بهبود بخشید.
PHP:
در این میان زبان PHP بیشترین سهم را در اختیار خود دارد و دیگر زبانها دارای سهمی در حدود ۲۰ درصد هستند. پس از این موارد در انتها فناوری Java و سایر موارد قرار دارند.
زبان PHP فراگیرترین زبان برنامه نویسی وب است که در دنیای منابع رایگان معرفی شد و از سرویس بانک اطلاعاتی MySql و سرویس Apache بر روی سیستم عامل Linux بهره میبرد. درست است که به علت محبوبیت PHP امکان اجرای آن در بستر Windows هم مهیا شده است اما همچنان بهترین بستر برای آن همان سرورهای لینوکسی است. البته زبان های دیگری مانند Perl و یا Ruby هم در دنیای اوپن سورس وجود دارند اما هیچ کدام مانند PHP فراگیر نشدند. در عین حال ابزاری مانند Easy PHP و WAMP Server نیز شما را در ایجاد یک سرور مجازی بر روی کامپیوتر شخصی یاری میکنند.
یادگیری این زبان بسیار آسان بوده و به صورت رویه ای و شی گرا قابل برنامه نویسی می باشد و سرعت برنامه نویسی را با داشتن کتابخانه های مفید افزایش داده و پیجیدگی هایش را به تناسب کم کرده است.
Javascript:
به تازگی زبان جاوا اسکریپت با توجه به پویایی بسیار این زبان، توانسته خود را در پلت فرم های جدید مانند Node.JS قرار دهد. Node.js یک پلتفرم بر اساس زبان جاوا اسکریپت است که امروزه توانسته با استفاده از تکنولوژی رویداد محوری که درون خود پایه گذاری کرده است، بسیاری از برنامهنویسان را جذب خود کند.
Node.js پلتفرمی است بر مبنای موتور جاوا اسکریپت کروم که به منظور ایجاد برنامه های سریع و گسترش پذیر به وجود آمده است. Node.js از مدل رویدادگرا و non-blocking برای انجام عملیات I/O بهره می برد. از اینرو Node.js یک پلتفرم سبک و کارا برای پیاده سازی برنامه های Real-time و مبتنی بر داده است که می توانند به راحتی در سرورهای نامتمرکز اجرا شوند. برای مثال می توان تغییر اطلاعات بورس ها و ارزها را به صورت همزمان به کاربران خود ارائه دهید.
این زبان به سرعت و راحتی بر روی سرورهای لینوکسی نصب و راه اندازی می شود ولی با توجه به اینکه نصب و راه اندازی این پلت فرم احتیاج به یک سرور دارد دیگر نمی توان از هاست که اجازه نصب بر روی سرور را نمی دهد، استفاده کرد. از طرف دیگر، برنامه نویسی Javascript کمی پیچیده تر از زبان هایی مانند PHP می باشد.
JAVA:
فناوری Java در سه نسخه متفاوت عرضه شده است. Java SE برای برنامه نویسان دسک تاپ ، Java ME برای برنامه نویسان تجهیزات همراه و Java EE برای برنامه نویسان وب. معمولا از Java در سازمان های بزرگ مثل بانک ها ، آژانس های مسافرتی و یا بیمه ها استفاده میشود. این فناوری بر روی انواع گوناگون سیستم عامل قابل دسترسی است اما در اصل Java با Unix گره خورده است.
زبان جاوا به شهرت زیادی دست پیدا کرده و یکی از علل اصلی آن شیگرا بودن این زبان است. استفاده از مفهوم شیگرایی، توسعه نرم افزار را سادهتر میکند. اما علاوه بر ویژگی شیگرایی، ویژگیهای دیگری نیز وجود دارند که باعث شده توجه توسعهدهندگان و سازمانها به این زبان معطوف شود. برخی از این ویژگیها را در زیر بیان کردیم:
- قابل حمل بودن : برنامههای جاوا، قابلیت حمل در شبکه را دارند. یعنی میتوان آن را یکبار نوشت و سپس روی ماشینهای مختلف اجرا کرد. برنامه جاوا پس از کامپایل به دستوراتی تبدیل میشوند که برای ماشین مجازی جاوا قابل فهم است. این دستورات بایت کد نام دارد. ماشین مجازی جاوا هم بایت کد را به کد ماشین که برای سخت افزار کامیپوتر قابل فهم است، تبدیل میکند. بنابراین بایت کدها را میتوان در هر جای شبکه، روی هر کلاینت یا سروری که یک ماشین مجازی جاوا دارد، اجرا کرد. در مقابل، بسیاری از زبانهای برنامهنویسی مانند COBOL ،C++ Visual Basic و Smalltalk، برنامه را به یک فایل باینری کامپایل میکنند. فایلهای باینری، خاص پلتفرم هستند. بنابراین فایل باینری برنامهای که برای ماشینهای ویندوز نوشته شده، نمیتواند روی یک ماشین مک یا یک ماشین مبتنی بر لینوکس اجرا شود.
- مقاوم بودن: کدهای جاوا مقاوم هستند. مقاوم بودن به این معنی است که کمتر اتفاق میافتد که برنامه درهم شکسته شود یا اصطلاحا crash کند. برای محقق کردن این هدف، ماشین مجازی جاوا بررسیهای خاصی را روی نوع هر شی انجام میدهد تا از یکپارچگی آن اطمینان حاصل کند، اشیا جاوا تنها میتوانند به اشیا واقعی ارجاع دهند و نه به هر جای دلخواه از حافظه. مکانیزمهای قوی جاوا برای تخصیص و آزادسازی خودکار حافظه و مدیریت خطا نیز بر مقاوم بودن برنامهها اضافه میکند.
- یادگیری سریع: با توجه به اینکه نحو این زبان شبیه ++C است، یادگیری آن نسبتا آسان است، به ویژه برای افرادی که قبلا با c و ++c کار کردند.
Python:
ایتون از جمله زبانهای برنامهنویسی قدرتمندی است که در زمینه علم دادهها، یادگیری ماشینی، خودکارسازی سامانهها، توسعه وب، واسطهای برنامهنویسی و… به کار گرفته میشود. اما سؤالی که بسیاری از کاربران و بهویژه برنامهنویسان مبتدی مطرح میکنند این است که اساساً پایتون چیست و آیا ارزش آن را دارد تا وقت خود را روی یادگیری این زبان سرمایهگذاری کنیم؟
یادگیری کمدردسر پایتون به برنامهنویسان تازهکار اجازه داده است با صرف کمی وقت اصول اولیه این زبان را یاد بگیرند و اولین برنامه کاربردی خود را با این زبان طراحی کنند. این زبان به گونهای ساخته شده است که ترکیب نحوی آن کاملاً خوانا است و برنامهنویسان بدون مشکل خاصی قادرند منطق دستورات را بهشکل صریح و روشنی درک کنند و برای همکاران خود شرح دهند. سادگی، خوانایی و دور بودن از پیچیدگیهای رایج باعث شده است تا پایتون به گزینه ایدهآلی برای تدریس در مدارس و مراکز آموزشی تبدیل شود.
پایتون یک زبان برنامهنویسی چندمنظوره و شیگرا است که برای توسعه سایتهای پویا، تحلیل دادهها و نوشتن برنامههای دسکتاپ میتوان از آن استفاده کرد. اما اساسیترین کاربرد پایتون در ارتباط با اسکریپتنویسی و خودکارسازی است. پایتون تنها یک جایگزین برای اسکرپیتهای شل یا فایلهای دستهای نیست، بهواسطه آنکه از پایتون برای تعامل خودکار با مرورگرهای وب، برنامههای گرافیکی و پیکربندی سیستمها از طریق ابزارهایی همچون Salt و Ansible میتوان استفاده کرد.