سافت گذر دانشنامه نرم افزار - دانلود رایگان نرم افزار

اطلاعیه های مهم سایت اطلاعیه های مهم سایت
💐 میلاد زینت پدر حضرت زینب سلام الله علیها مبارک باد 💐
 
 
  1. جهت رفع مشکل باز شدن سایت به دلیل بلاک توسط  نود 32 این ویدیو یا این ویدیو(ورژن 9 به بالا) یا راهنمای تصویری را مشاهده کنید
  2. به مناسبت عید غدیر، در سایت https://esetupdate.ir/ تخفیف ویژه‌ای برای محصولات در نظر گرفته شده است؛ فرصت را از دست ندهید. 🌸
  3. اکانت های بروزرسانی نود32 با قیمت های مناسب به صورت یک ، سه ، شش و دوازده ماهه از اینجا قابل خرید می باشد.

نرم افزار های پرکاربرد

ثبت نام | ورود

اخبار فناوری

چرا برخی از زبان‌ های برنامه نویسی قدیمی پراستفاده هستند؟

هرچند این روزها تعداد بی شماری زبان برنامه‌نویسی وجود دارند، اما تعداد انگشت شماری از این زبان‌های برنامه‌نویسی محبوب بوده و پراستفاده هستند. اغلب زبان‌های برنامه‌نویسی و نشانه‌گذاری عمر بالایی دارند که از جمله‌ی آن‌ها می‌توان به پی‌اچ‌‌پی، سی، روبی و اچ‌تی‌ام‌ال اشاره کرد. اما چرا این زبان‌های برنامه‌نویسی با وجود پیشرفت در حوزه‌ی فناوری همچنان کاربردی بوده و از محبوبیت بالایی برخوردارند؟

به گزارش سافت گذر به نقل اززومیت؛ از جمله‌ی محبوب‌ترین زبان‌های برنامه‌نویسی که امروزه مورد استفاده قرار می‌گیرند، می‌توان به پی اچ پی با عمری 20 ساله، پایتون با 23 سال، اچ تی ام ال با 21 سال، جاوا اسکریپت با 19 سال و زبان بی مانند سی با 42 سال قدمت اشاره کرد.

شاید در زمان توسعه‌ی این زبان‌ها کسی تصور موفقیت آن‌ها را تا این حد پیش‌بینی نمی‌کرد. برایان کرنیگان، یکی از نویسندگان اولین کتاب در رابطه با زبان C است که امروزه نیز مورد استفاده قرار می‌گیرد. کرنیگان در نگارش این کتاب، دنیس ریچی، خالق زبان سی را یاری کرده است. وی در خصوص ماندگاری و موفقیت این زبان برنامه‌نویسی چنین اظهار نظر کرده است:

به یاد دارم که در زمان پایان نگارش این کتاب، در سخنی با ویراستاران از فروش تنها 5٫000 نسخه از این کتاب حرف می‌زدیم. ولی ما موفق شدیم تا خیلی بهتر از تصورات خودمان عمل کنیم. هنوز نمی‌توانم باور کنم که سال 2015 شماری از دانشجویان از این کتاب به عنوان مرجع آموزشی استفاده می‌کنند.

موضوعی که در مورد سی اهمیت دارد و بسیار جالب به نظر می‌رسد، این است که گوگل هم‌اکنون زبانی را با نام Go توسعه داده که هدف از آن حل مسائل، بهینه‌تر از روش‌هایی است که زبان C حل می‌کند. به بیان بهتر گوگل زبان Go را ایجاد کرده تا مسائل موجود را از روش بهینه‌تری در مقایسه با زبان C حل کند. البته این موضوع برای کرنیگان قابل پذیرش نیست که Go می‌تواند C‌ را پشت سر بگذارد.

وی درباره‌ی مرگ زبان‌های برنامه‌نویسی می‌گوید:

بسیاری از زبان‌ها از بین نمی‌روند یا حداقل در صورتی که به حدی از مقبولیت برسند، از بین نمی‌روند. در حال حاضر زبان C قادر است بسیاری از مشکلات و مسائل موجود را بهتر از هر گزینه‌ی دیگری حل کند.

توسعه با زبانی که برنامه نویسان با آن بیشتر آشنا هستند

دلیل محبوبیت شماری از زبان‌های برنامه‌نویسی چیست و چرا برخی از زبان‌ها به موفقیت می‌رسند؟ دلیل این امر بسیار روشن است؛ برنامه‌نویسان این زبان‌های برنامه‌نویسی را انتخاب می‌کنند. هرچند انتخاب یک زبان برنامه‌نویسی توسط برنامه‌نویسان دلیل قانع‌کننده‌ای برای نشان دادن محبوبیت یک زبان است، اما بهتر است به کنکاش دلایل انتخاب زبان مورد نظر توسط برنامه‌نویسان بپردازیم.

آری رابکین و لئو مایروویچ محققانی از دانشگاه‌های پرینستون و کالیفرنیا هستند که طی یک تحقیق دو ساله به یافتن پاسخ این پرسش پرداخته‌اند. نتیجه‌ی تحقیق این دو فرد در دانشگاه‌های نامبرده شامل بیش از 200٫000 پروژه و 13٫000 برنامه نویس است.

اما اصلی‌ترین دلیل برای انتخاب یک زبان از سوی برنامه‌نویسان چه بوده است؟ توسعه‌دهندگان به سراغ زبان‌هایی می‌روند که با آن آشنایی دارند.

آری رابکین در این مورد چنین اظهار نظر کرده است:

شماری از زبان‌های برنامه‌نویسی هستند که به دلیل استفاده‌ی مداوم از آن‌ها، به سراغشان می‌رویم. برای مثال منجمان بصورت سنتی از زبان برنامه نویسی IDL در برنامه‌های رایانه‌ای خود استفاده می‌کنند. دلیل استفاده از این زبان برنامه نویسی، داشتن خاصیت جالب توجه در رابطه با ستاره‌ها یا هر چیز دیگری مرتبط با نجوم نیست، بلکه استفاده از این زبان به یک سنت تبدیل شده است. در نجوم برنامه‌های فراوانی با IDL ‌توسعه یافته و از این‌رو منجمان دوست دارند تا از این زبان استفاده کنند.

بنابراین داشتن شناخت از یک زبان را باید دلیل اصلی برای ادامه‌ی استفاده از آن خواند. البته این بدین معنی نیست که زبان‌های برنامه‌نویسی در طول تاریخ تغییر نمی‌کنند. رابکین به این موضوع اشاره کرده که زبان برنامه‌نویسی C که در حال حاضر مورد استفاده قرار می‌گیرد، بسیار متفاوت از آن چیزی است که کرنیگان از آن سخن می‌گوید. به اعتقاد رابکین شاید کد توسعه یافته در C اولیه با کامپایلرهای امروز مطابقت نداشته باشد. به گفته‌ی رابکین زبان‌های برنامه‌نویسی با عمر بالا معمولا در طول سال‌های مختلف تغییراتی را به خود می‌بینند. این تغییرات شامل اضافه شدن ویژگی‌های جدید در کار بهبود قابلیت‌های جدید است. البته معمولا این تغییرات به معنای پشتیبانی نکردن از کدهای قدیمی نیست.

پشتیبانی از کدهای قدیمی به این معنا است که نه‌تنها برنامه‌نویسان می‌توانند برنامه‌های خود را بروزرسانی کنند، بلکه نیازی نیز به دوباره‌نویسی کدهای قدیمی نیست. به کدهای قدیمی موجود در برنامه‌ها که در طول زمان با بروزرسانی قطعات دیگر قدیمی شده‌اند، کدهای به ارث رسیده اطلاق می‌شود.

پی اچ پی: یک زبان برنامه‌نویسی با قدمت بالا

Legacy Code یا کد به ارث رسیده به برنامه‌ یا قطعه کدی اطلاق می‌شود که کد توسعه یافته برای آن قدیمی باشد. برای مثال فرض کنید که قطعه کدی از یک برنامه‌ی تجاری یا یک پروژه‌ی مهندسی در زبانی توسعه یافته که در حال حاضر از آن پشتیبانی نمی‌شود. البته باید به این نکته اشاره کرد که این قطعه کد هدف اصلی از توسعه‌ی آن را که همانا دریافت یک خروجی است، به خوبی انجام می‌دهد، اما مساله اینجا است که برنامه‌نویسان به دلیل هزینه‌ی بالا برای تبدیل آن به قطعه کد مدرن یا سخت بودن فرآیند تبدیل، ترجیح می‌دهند تا همچنان از این قطعه کد قدیمی استفاده کنند.

هر زبان برنامه‌نویسی که برای چندین سال مورد استفاده قرار گیرد، از مشکل کد به ارث رسیده رنج می‌برد و پی‌اچ‌پی نیز یک مثال بارز در این مورد است. شدت تغییرات در پی اچ پی بسیار بالا است و از همین رو سرعت تبدیل شدن یک قطعه کد به Legacy Code بسیار بیشتر است و در فاصله‌ی چند سال کدهای توسعه یافته قدیمی می‌شوند.

اَندی گوتمانز، یکی از توسعه‌دهندگان فریمورک زند است. این فریمورک بصورت استاندارد در زمان ارائه‌ی PHP4 روانه‌ی بازار شد. گوتمانز به یاد می‌آورد که وی و همکارش سعی داشتند تا این فریمورک را برای PHP 3 ارائه کنند، اما ورود راسموس لردورف همه چیز را تغییر داد. این گروه فریمورک زند را برای PHP 4 و سپس PHP 5 توسعه دادند که همین امر منجر به موفقیت شد.

نتیجه‌ی تغییرات در پی اچ پی باعث شده تا آنچه که امروز از این زبان می‌شناسیم، با نسخه‌ی اولین متفاوت باشد. همین امر باعث شده تا وجود انواع Legacy Codeها در این زبان و اپلیکیشن‌ها و وب‌سایت‌های توسعه داده شده، بسیاری از منتقدان را پابرجا نگه دارد، چراکه به اعتقاد این افراد پی اچ پی مملو از حفره‌های امنیتی است و نمی‌توان از آن برای انجام محاسبات در مقیاس بزرگ استفاده کرد.

گوتمانز در این خصوص می‌گوید:

افرادی که زبان برنامه‌نویسی پی اچ پی را مورد انتقاد قرار می‌دهند، مفهوم این زبان در سال 1998 را در نظر دارند. این افراد بروز نیستند و از جزئیات اکوسیستم پی‌ اچ پی و قابلیت‌های آن در قالب مدرن هیچ اطلاعی ندارند.

در حال حاضر گوتمانز و همکارانش توسعه‌دهندگان و کاربرانی را که از زبان پی اچ پی استفاده می‌کنند، تشویق می‌کنند تا کدهای خود را بروز کنند. ور در این باره می‌گوید:

پی اچ پی در حال حاضر از جامعه‌ی بسیار بزرگی تشکیل شده و کدهای قدیمی در کدهای توسعه یافته با آن به وفور یافت می‌شود.

مساله اینجا است که کاربر هیچگاه آخرین نسخه از زبان را مورد استفاده قرار نمی‌دهد. برای مثال می‌توان به توسعه‌دهندگان زبان پایتون اشاره کرد که از پایتون 2 که در سال 2000 توسعه یافته بیشتر استفاده می‌کنند. در حال حاضر پایتون 3 نیز که در سال 2008 توسعه یافته، برای استفاده در دسترس است. دلایل بسیاری برای اینکه توسعه‌دهندگان به نسخه‌ی جدیدتر بروز نمی‌شوند، وجود دارد، اما احتیاط بسیاری از برنامه‌نویسان را از اینکار باز می‌دارد.

رابکین در این خصوص می‌گوید:

یک زبان که از وجود کدهای قدیمی و به ارث رسیده بهره‌مند است، هرگز نمی‌میرد. بازنویسی گران است و از این‌رو اگر کد همچنان کار کند، دیگر نیاز به تغییر نیست.

 مطمئنا توسعه‌دهندگان زبان‌های برنامه‌نویسی را برای باقی گذاشتن کدهای قدیمی انتخاب نمی‌کنند. رابکین و مایروویچ در تحقیقات خود به این نتیجه رسیده‌اند که انتخاب زبان و آگاهی از زبان‌های مختلف هیچ ارتباطی با سن توسعه‌دهندگان ندارد.

این دو نفر در تحقیق خود در این مورد چنین نوشته‌اند:

ما افرادی را که در جامعه‌ی آماری‌مان قرار داشتند، به گروه‌های سنی مختلفی تقسیم کردیم و از آن‌ها پرسیدیم که با چه تعداد زبان برنامه‌نویسی آشنا هستند. پاسخی که ما را شوکه کرد، این بود که سن هیچ ارتباطی با بیشتر شدن تعداد زبان‌های برنامه‌نویسی که فرد از آن استفاده می‌کند، ندارد. در واقع تعداد زبان‌های برنامه‌نویسی که گروه سنی 25 و 40 سال از آن آگاهی داشتند، یکسان بود.

این بدین معنا است که تنها توسعه‌دهندگان قدیمی به سراغ زبان‌های برنامه‌نویسی با قدمت بالا نمی‌روند، بلکه توسعه‌دهندگان جوان نیز ابتدا به سراغ زبان‌های برنامه‌نویسی قدیمی‌تر رفته و سپس به سراغ گزینه‌های جدیدتر می‌روند. شاید دلیل این موضوع بهره‌گیری زبان‌های مورد نظر از کتابخانه‌ها و قابلیت‌هایی باشد که جذاب به نظر می‌رسند. همچنین بودن در یک اجتماع نیز تاثیرگذار است، بطوریکه بعضا گروهی از برنامه‌نویسان به یکباره اقدام به یادگیری و استفاده از یک زبان جدید می‌کنند.

رابکین اضافه می‌کند:

اخلاق خاصی نیز در بین برنامه‌نویسان رواج دارد. در صورتی که یک زبان برنامه‌نویسی قابلیت‌های مشخصی داشته باشد، برنامه‌نویسان به سراغ یادگیری و استفاده از آن می‌روند. در صورتی که شما در یک جامعه‌ی برنامه‌نویسی قرار داشته باشید که رفته رفته همه‌ شروع به استفاده از یک زبان جدید کرده و آن‌ را با دیگران به اشتراک می‌گذارند، شما نیز به سمت زبان مورد نظر حرکت می‌کنید.

جامعه‌ی برنامه‌نویسان نقش به سزایی در عملکرد زبان‌های برنامه‌نویسی دارند. برای مثال می‌توان به پایتون و روبی اشاره کرد. این دو زبان سطح بالا تفاوت چندانی با یکدیگر ندارند، اما توجه برنامه‌نویسان یکی را از دیگری برتر کرده است.

 در پایان می‌توان چنین نتیجه گرفت که وجود کدهای به ارث رسیده و قدیمی در کنار تعامل جامعه‌ی برنامه‌نویسی با یک زبان، به ماندگاری آن کمک می‌کند.

نظرتان را ثبت کنید کد خبر: 26546 گروه خبری: اخبار فناوری منبع خبر: zoomit.ir تاریخ خبر: 1394/03/04 تعداد مشاهده: 1508
اخبار مرتبط با این خبر
نظر های کاربران
سرور آپدیت نود 32
پیشنهاد سافت گذر
مجله تخصصی برای علاقه مندان به اخبار تکنولوژی و موبایل و کامپیوتر

مجله تخصصی برای علاقه مندان به اخبار تکنولوژی و موبایل و کامپیوتر

مجله Techlife News 12 سپتامبر 2020

Eassos Android Data Recovery 1.2.0.808

Eassos Android Data Recovery 1.2.0.808

بازگردانی اطلاعات گوشی اندرویدی

درمان و بهبود بیماری های گوارشی

درمان و بهبود بیماری های گوارشی

درمان بیماری های گوارشی در طب اسلامی ایران

Rage of the Gladiator 1.11 for Android

Rage of the Gladiator 1.11 for Android

بازی خشم گلادیاتورها

برنامه نویسی مبتنی بر وب

برنامه نویسی مبتنی بر وب

آشنایی با برنامه نویسی با مایکروسافت ویژوال استادیو

ترتیل کل قرآن کریم با صدای استاد محمد صدیق منشاوی

ترتیل کل قرآن کریم با صدای استاد محمد صدیق منشاوی

ترتیل قرآن - منشاوی

Royal Gems

Royal Gems

جواهرات سلطتنی

جنبه‌های گوناگون شخصیت استالین

جنبه‌های گوناگون شخصیت استالین

پراهمیت‌ترین دوران‌های تاریخ شوروی

USB Safely Remove 7.3.1.1334

USB Safely Remove 7.3.1.1334

قطع اتصال فلش مموری

آموزش کامل نصب Microsoft Dynamics CRM 2011

آموزش کامل نصب Microsoft Dynamics CRM 2011

آموزش داینامیک سی آر ام

Game Development for iOS  with Unity3D

Game Development for iOS with Unity3D

Learning Game Development for iOS with Unity3D

Unified Remote Full 3.19.0 for Android +2.3

Unified Remote Full 3.19.0 for Android +2.3

کنترل کامپیوتر یونیفید

مولودی امامت حضرت مهدی (عج)

مولودی امامت حضرت مهدی (عج)

مولودی حضرت مهدی

Modern Combat 4 Zero Hour 1.2.3e for Android +2.3

Modern Combat 4 Zero Hour 1.2.3e for Android +2.3

بازی مبارزه مدرن

Pandora - Eclipse of Nashira

Pandora - Eclipse of Nashira

پاندورا - کسوف ناشیرا

Stronghold Warlords v1.10.23986

Stronghold Warlords v1.10.23986

استرانگهولد

X Construction 1.57 for Android +2.3

X Construction 1.57 for Android +2.3

بازی کاملا فکری پل سازی

Super Mario Bros. Wonder

Super Mario Bros. Wonder

بازی سوپر ماریو برای کامپیوتر

Adguard Full 4.14.34 For Android +7.0

Adguard Full 4.14.34 For Android +7.0

مسدود سازی تبلیغات

آشنایی با داعش

آشنایی با داعش

ISIS tragedy

Aiseesoft iPhone Unlocker 2.1.12

Aiseesoft iPhone Unlocker 2.1.12

باز کردن قفل آیفون، آیپد و آیپاد

++Teach Yourself C

++Teach Yourself C

تیچ یورسلف

منزلت و جایگاه حضرت فاطمه زهرا (س) از حجت الاسلام والمسلمین علی نظری منفرد - 4 جلسه

منزلت و جایگاه حضرت فاطمه زهرا (س) از حجت الاسلام والمسلمین علی نظری منفرد - 4 جلسه

حاج آقا علی نظری منفرد با موضوع منزلت و جایگاه حضرت فاطمه زهرا (س)

Plain & Simple Microsoft Excel 2010

Plain & Simple Microsoft Excel 2010

مایکروسافت اکسل 2010

JAWS 18.0.2118

JAWS 18.0.2118

صفحه خوان و تبدبل متن به گفتار

Spider - Rite of the Shrouded Moon

Spider - Rite of the Shrouded Moon

عنکبوت چابک

Sky Recorder pro 5.0.27 for Android +4.0

Sky Recorder pro 5.0.27 for Android +4.0

ضبط صدا با قابلیت Cloud

ReNamer Pro 7.6.0

ReNamer Pro 7.6.0

تغییر نام فایل‌ها و پوشه‌ها

Rogue Legacy

Rogue Legacy

اکشن برای کامپیوتر

تفسیر صوتی سوره انسان (دهر)

تفسیر صوتی سوره انسان (دهر)

تفسیر سوره دهر از حجت الاسلام قرائتی

Rocket Music Player Premium 5.17.8 for Android +4.0

Rocket Music Player Premium 5.17.8 for Android +4.0

راکت موزیک پلیر

Reallusion Cartoon Animator 5.34.4905.1

Reallusion Cartoon Animator 5.34.4905.1

ساخت انیمیشن

Udemy - English Grammar Pro | Beginner to Advanced (A1-C1) Grammar

Udemy - English Grammar Pro | Beginner to Advanced (A1-C1) Grammar

آموزش کامل گرامر زبان انگلیسی

RIDE 5: Special Edition

RIDE 5: Special Edition

موتورسواری برای کامپیوتر

Adobe Flash Professional CS5.5 v11.5 + Portable

Adobe Flash Professional CS5.5 v11.5 + Portable

نسخه CS5 و نهایی نرم افزار قدرتمند فلش جهت ساخت کلیپ های انیمیشنی فلش

Acronis Disk Director 12.5 Build 163 + Server + WinPE / Advanced 11.0.12077 + WinPE

Acronis Disk Director 12.5 Build 163 + Server + WinPE / Advanced 11.0.12077 + WinPE

قوی‌ترین نرم افزار پارتیشن بندی هارد و راه اندازی سیستم بوت چندگانه

BingGPT 0.3.7 Win/Mac/linux + Portable

BingGPT 0.3.7 Win/Mac/linux + Portable

بینگ جی پی تی

Smart Ruler Pro 2.7 for Android +2.2

Smart Ruler Pro 2.7 for Android +2.2

خط کش و نقاله

To-Fu 2 1.0.3 for Android

To-Fu 2 1.0.3 for Android

بازی جذاب To-Fu

Paper Artist 2.1.0 for Android +4.0

Paper Artist 2.1.0 for Android +4.0

افکت های کاغذی

خبرنامه

با عضویت در خبرنامه، زودتر از همه باخبر باش!