چرا برنامه های تحت وب را با زبان های سطح پایینی c یا c++ انجام نمیدهند؟
این طوری کارایی برنامه ها به شدت بالا میره مگر نه اینه که برنامه های تحت وب روی پرت مشخصی گوش میدهند و در پاسخ خروجی مناسب تولید (html json xml)میکنند. پس چرا استفاده از زبان های تفسیری مثل php این قدر طرفدار داره؟ البته منظور من برنامه نویس های حرفه ای است نه عادی که بگید php سینتکس راحتی داره و به این دلیل طرفدارای زیادی داره.
من فکر می کنم یه اشتباهی صورت گرفته ! زبان c++ به هیچ عنوان جزء زبان های سطح پایین به حساب نمیاد بلکه جزء خانواده زبان های سطح بالاست.
در مورد سادگی در syntax که خودتون صحبت کردید . اما نکته ای که باید در نظر بگیرید سرعت دیباگ کردن کد هاست . ما می دونیم که تو زبان های مفسری سرعت اشکال زدایی بالای همینطور شما قابلیت حمل بالا داری واسه همین php این همه طرفدار داره شما توی لینوکس اجراش می کنی تو ویندوز اجراش می کنی اونم بدون هیچ مشکلی . اینم اضافه کنم که c++ از اجداد زبان php به حساب می آد . اما یه سری تفاوت ها در انقیاد ها زبان وجود داره مثلاً شما مجبوری در c++ یا c نوع متغییر را تعریف کنی اما در php چنین چیزی نیست و ما نیازی نیست که نوع را اعلان کنیم .
نکته ای دیگه که خیلی مهم انعطاف زبان های مفسری بالاتر از زبان های کامپایلری هستش اونم بدلیل مباحث انقیاد در زمان اجراست run time
در کل جواب سوالاتونو می تونید با بررسی تفاوت های زبان کامپایلری و مفسری دنبال کنید
نقل قول:شما توی لینوکس اجراش می کنی تو ویندوز اجراش می کنی اونم بدون هیچ مشکلی
مطمئنا میشه برنامه های c رو برای هر سیستم عاملی کامپایل کرد پس قابلیت حمل برنامه زیاد مهم نیست کافیه سورس کد رو تو سیستم مقصد یه بار کامپایل کنیم. به احتمال خیلی زیاد هیچ زبانی به اندازه c و c++ سریع و کارا نیست البته اگر برنامه نویس کارشو بلد باشه.
نقل قول:من فکر می کنم یه اشتباهی صورت گرفته ! زبان c++ به هیچ عنوان جزء زبان های سطح پایین به حساب نمیاد بلکه جزء خانواده زبان های سطح بالاست.
منظور من از سطح پایین نزدیکی به زبان ماشین بود. شاید هم اشتباه کنم ولی یه جایی اینو خوندم که c++ را جزو زبان های سطح پایین حساب کرده بود. در هر صورت c و c++ زبان هایی هستند که میشه هم به صورت سطح پایین کد زد و هم سطح بالا.
وقتی میشه با هزینه ی کمتر سروری کاراتر راه اندازی کرد چرا باید منابع رو برای مفسر یه زبان برنامه نویسی هدر بدهیم؟ البته این وقتی نمود پیدا میکنه که در سطح جهانی برسی بشه یا مثلا سرویس ها و برنامه های بسیار بزرگی مثل فیسبوک تویتر و غیره در نظر بگیریم .
(20-05-1394، 04:38 ب.ظ)YN97 نوشته: [ -> ] مطمئنا میشه برنامه های c رو برای هر سیستم عاملی کامپایل کرد پس قابلیت حمل برنامه زیاد مهم نیست کافیه سورس کد رو تو سیستم مقصد یه بار کامپایل کنیم. به احتمال خیلی زیاد هیچ زبانی به اندازه c و c++ سریع و کارا نیست البته اگر برنامه نویس کارشو بلد باشه.
این حرفتون درست نیست چون اگه اینتوریه شما می تونید php هم به عنوان دسکتاپ اپلیکشن استفاده کنی . (هر سخن جایی و هر نکته مکانی دارد) شما می تونی ماژیکی که واسه وایت برد ساخته شدرو روی سی دی ازش استفاده کنی اما می تونی ماژیک سی دی رو روی وایت برد استفاده کنی و براحتی ازش استفاده کنی؟
(20-05-1394، 04:38 ب.ظ)YN97 نوشته: [ -> ]منظور من از سطح پایین نزدیکی به زبان ماشین بود. شاید هم اشتباه کنم ولی یه جایی اینو خوندم که c++ را جزو زبان های سطح پایین حساب کرده بود. در هر صورت c و c++ زبان هایی هستند که میشه هم به صورت سطح پایین کد زد و هم سطح بالا.
وقتی میشه با هزینه ی کمتر سروری کاراتر راه اندازی کرد چرا باید منابع رو برای مفسر یه زبان برنامه نویسی هدر بدهیم؟ البته این وقتی نمود پیدا میکنه که در سطح جهانی برسی بشه یا مثلا سرویس ها و برنامه های بسیار بزرگی مثل فیسبوک تویتر و غیره در نظر بگیریم .
در رابطه به سطح بالا یا پایین تر بودن قیاستون اشتباهه چون c++ زبان سطح بالایی است البته میشه به صورت embedded از کدهای اسمبلی استفاده کرد، در واقع زبان سطح بالا زبانی است که به گفتار و نوشتار انسان نزدیک باشد . شما خودتون میشه بگید چرا از جاوا خوشتون میاد (برداشت از امضای انجمنتون) نمی تونید منکر بشید که جاوا مالتی پلت فرم و قابلیت حمل پذیری بالایی داره در ضمن شما هیچ اشاره ای به قابلیت دیباگ نکردید ( برنامه نویسی که نتونه از روش های چابک مثل برنامه نویسی زوجی استفاده کنه و کدشو دیباگ کنه شما به اون شخص چه پیشنهادی می کنید .؟ ) نمی تونید بهش بگید بیا سرورتو قوی کن که .
در مجموع php ، وب بیس است و c دسکتاب بیس
البته جهت اطلاع ، فیس بوک اومده یک HipHop Virtual Machine کد زده که می تونید php به کد c++ کامپایل کنید اینطوری نگرانی شمام برطرف میشه.
https://github.com/facebook/hhvm
این
لینک ببنید.
دلایل منطقی زیادی وجود داره برای اینکه از زبان های سطح پایین تر برای برنامه نویسی وب استفاده کنیم.
(20-05-1394، 05:18 ب.ظ)YN97 نوشته: [ -> ]این لینک ببنید.
دلایل منطقی زیادی وجود داره برای اینکه از زبان های سطح پایین تر برای برنامه نویسی وب استفاده کنیم.
اینجا هم که همینو داره تکرار می کنه که در ضمن داره در مورد فریم ورک CppCMS صحبت می کنه و جوابیم که تایید شده مربوط به همین فریم ورک . یه چیزیم خدمتتون عرض کنم جواب stackoverflow وحی منزل نیست و جوابیه که توسط کاربر تایید میشه با این حال اینجا همین موضوعات و تکرار کرده و اگه بازم به صفحات نظرات خوب توجه کنید به جوابتون میرسید .
نقل قول:Though maybe PHP is a better option for web development than C or C++. It's easy to learn once you know C and C++ (the syntax is very similar). You can save more effort with learning PHP than struggling with C and C++ for web development . . .
نقل قول:It's possible they made an early bet on it but now have no compelling business reason to move off it. Indeed, Facebook is compiled into a single large C++ binary but they develop in PHP and use HipHop compiler to transliterate:
HipHop cross-compiler: https://developers.facebook.com/blog/pos...move-fast/
اینم همون صرفاً جهت اطلاع من بود
نقل قول:dynamic image processing or heavy AI is not related to web development. You could do the web app in Python or PHP and the heavy number crunching in C
اینا هم جواب های همین صفحه هستند
سوالی که مطرح میشه اینه که چرا اصلا بخوایم از c استفاده کنیم؟ هدف چیه؟ سرعت؟
اگر هدف سرعت هستش که همین الان موتورهایی که کد php رو درواقع دارن با c اجرا میکنن، بهبود عملکردشون چیزی حدود 2 برابر هستش. 2 برابر خوبه ولی خیلی هم خوب نیست که php ای که سالها برای وب روش کار شده و بی نهایت کتابخونه و ... براش موجوده رو ول کرد!!!
اگر هم اشتباه نکنم در php7 که کمتر از چند ماه دیگه میاد هم در واقع موتورش همون کار رو میکنه و C در نهایت کار رو انجام میده.، یعنی همون موتور PHP NG
در نتیجه نگران نباشید و دنبال چیزی دیگه ای نباشید
همانطور که استاد فضلی تو کتابشون گفتن این کار فقط اتلاف وقت و سرمایه است
همه چیز فقط سرعت اجرا نیست. عذاب نکشیدن توی فاز طراحی و توسعه هم اهمیت داره. شما برنامه ماشین حساب رو با اسمبلی هم میتونید بنویسید و قطعاً سریعتر از معادل #C یا هر زبان سطح بالای دیگه کار میکنه ولی آیا ارزش داره هزاران خط کد بنویسید برای انجام کاری که میشه با حدود صد خط کد انجامش داد؟
استاد اگر کارایی و سرعت اهمیتش بیشتر باشه چی؟
خیلی پیچیده به نظر نمیرسه . قراره در پاسخ به درخواست یک صفحه خروجی html یا json یا xml تولید کنه.
چرا خیلی بیشتر از اونی که فکر میکنید پیچیده است. یه برقراری سوکت با ++C حداقل 3 برابر PHP کدنویسی لازم داره. بعلاوه کد ++C هم مستقیماً قابل اجرا نیست و باید کامپایل بشه (روی کامپیوتر سرور) و بصورت CGI ازش استفاده کنید که همه جا امکانش نیست.
با جاوا هم میشه برای CGI برنامه نوشت؟
CGI در وب سرور هایی غیر از Apache هم وحود داره؟
بله CGI یه رابط خیلی قدیمیه.
(21-05-1394، 03:17 ب.ظ)YN97 نوشته: [ -> ]استاد اگر کارایی و سرعت اهمیتش بیشتر باشه چی؟
این که پاسخش خیلی سادست...
اگه الویت سرعت باشه هیچ کس از php استفاده نمیکنه!!!
معمولا از جاوا و c و c++ توی سایتای بزرگ مثله گوگل استفاده شده. تقریبا همه به غیر از یاهو که رفته توی node.js و اندکی هم python)
فیسبوک توی پردازش های سنگینش از همین زبان های بالا کمک گرفته و میشه گفت فقط توی ui از php (احتمالا hhvm) استفاده کرده.
فقط میمونه ویکیپدیا که اونم از php روی hhvm استفاده میکنه یعنی php رو به کدهای c/c++ تبدیل میکنه همون طور که دوستان اشاره کردن.
فکر نمیکنم توی ایران همچین سایتایی نیاز باشه، پس با خیاله راحت از php استفاده کنید.