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

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

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

ثبت نام | ورود
wepido.ir

اخبار فناوری

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

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

به گزارش سافت گذر به نقل اززومیت؛ از جمله‌ی محبوب‌ترین زبان‌های برنامه‌نویسی که امروزه مورد استفاده قرار می‌گیرند، می‌توان به پی اچ پی با عمری 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 تعداد مشاهده: 1524
اخبار مرتبط با این خبر
نظر های کاربران
سرور آپدیت نود 32
پیشنهاد سافت گذر
Bentley OpenFlows SewerGEMS CONNECT Edition 10.03.02.04

Bentley OpenFlows SewerGEMS CONNECT Edition 10.03.02.04

طراحی و مدل سازی سامانه های فاضلابی با بنتلی

Bentley AutoPIPE CONNECT Edition 12.07.00.346 / Vessel 41.04.00.013 / Nozzle 8.11.8.35

Bentley AutoPIPE CONNECT Edition 12.07.00.346 / Vessel 41.04.00.013 / Nozzle 8.11.8.35

بنتلی اتوپایپ

سخنرانی حجت الاسلام سید احمد خاتمی با موضوع شباهت‌های نظام نبوی و نظام فاطمی ایران

سخنرانی حجت الاسلام سید احمد خاتمی با موضوع شباهت‌های نظام نبوی و نظام فاطمی ایران

سخنرانی سید احمد خاتمی با موضوع شباهت‌های نظام نبوی و نظام فاطمی ایران

Ultra Fractal 6.06 Extended Edition

Ultra Fractal 6.06 Extended Edition

ساخت تصاویر فراکتال

Truedialer - Dialer & Contacts 3.65 for Android +4.0

Truedialer - Dialer & Contacts 3.65 for Android +4.0

مدیریت مخاطبین و شماره‌گیر هوشمند و متفاوت

Atmel Studio 7.0.1931

Atmel Studio 7.0.1931

برنامه نویسی میکروکنترلر اتمل استودیو

4 جلسه شرح و ترجمه خطبه شعبانیه از آیت الله علی احمدی میانجی

4 جلسه شرح و ترجمه خطبه شعبانیه از آیت الله علی احمدی میانجی

آیت الله احمدی میانجی با موضوع ارزش انسان

Gangnam Style Jump 1.0 for Android

Gangnam Style Jump 1.0 for Android

پرش و سرعت عمل

5 بحث سخنرانی حجت الاسلام محسن قرائنی

5 بحث سخنرانی حجت الاسلام محسن قرائنی

حجت الاسلام قرائتی با موضوع استفاده اختصاصی ممنوع

ماشین هوشمند پولسازی

ماشین هوشمند پولسازی

ماشین الکترونیکی

Intel ARK 2.1.2 for Android +2.3

Intel ARK 2.1.2 for Android +2.3

اطلاعات Cpu های اینتل

Autodesk Advance Steel 2027.0.1 / 2026

Autodesk Advance Steel 2027.0.1 / 2026

طراحی سازه فولادی

Oscura - Lost Light

Oscura - Lost Light

اسکورا - نور گمشده

AirStrike 3D

AirStrike 3D

بالگرد ( هلیکوپتر ) سه بعدی

Shaolin Kung Fu Fundamental Training 2 by Dr. Yang, Jwing-Ming

Shaolin Kung Fu Fundamental Training 2 by Dr. Yang, Jwing-Ming

آموزش کونگ فو

زندگی نامه حسین پناهی

زندگی نامه حسین پناهی

آشنایی با حسین پناهی

Baldo: The Guardian Owls The Three Fairies

Baldo: The Guardian Owls The Three Fairies

بالدو

Udemy - Learn German Language: Complete German Course - Beginners

Udemy - Learn German Language: Complete German Course - Beginners

آموزش زبان آلمانی سطح مقدماتی

Monument Valley 1  2.7.12 / 2  1.3.15 for Android +4.4

Monument Valley 1 2.7.12 / 2 1.3.15 for Android +4.4

بازی نجات شاهزاده

The Rolling Stones - Paint It, Black

The Rolling Stones - Paint It, Black

بهترین آهنگ رولینگ استونز

Paragon Migrate OS to SSD 4.0 + 5.0 v10.1.28.154 Boot Medias x86/x64

Paragon Migrate OS to SSD 4.0 + 5.0 v10.1.28.154 Boot Medias x86/x64

انتقال یک پارچه اطلاعات هارددیسک پاراگن میگریت

Auslogics Driver Updater 2.1

Auslogics Driver Updater 2.1

آپدیت درایور

The Ultimate Lightroom Preset Collection

The Ultimate Lightroom Preset Collection

مجموعه کامل و بی نظیر تنظیمات آماده برای فتوشاپ و لایتروم

Tecplot 360 EX + Chorus 2025 R2 MR1 2025.2.1.85234 / Focus / RS Win/Mac/Linux

Tecplot 360 EX + Chorus 2025 R2 MR1 2025.2.1.85234 / Focus / RS Win/Mac/Linux

تک پلات

فیلم سیاحت غرب بر اساس کتاب آقا نجفی قوچانی

فیلم سیاحت غرب بر اساس کتاب آقا نجفی قوچانی

سیاحت غرب

Attribute Changer 11.30a

Attribute Changer 11.30a

تغییر دسته جمعی خصوصیات فایل ها و پوشه ها

Teenage Mutant Ninja Turtles Portal Power

Teenage Mutant Ninja Turtles Portal Power

بازی لاک پشت های نینجا

Marvel’s Spider-Man Remastered v2.217.1.0

Marvel’s Spider-Man Remastered v2.217.1.0

مرد عنکبوتی برای کامپیوتر

Vector 35 Binary Ninja 4.0.4958 Personal

Vector 35 Binary Ninja 4.0.4958 Personal

مهندسی معکوس نرم‌افزارها

Flyhunter Origins

Flyhunter Origins

شکارچی حشرات

GIMP 3.2.6 Win/Mac/Linux

GIMP 3.2.6 Win/Mac/Linux

ویرایشگر تصاویر گیمپ

Hello Neighbor: Hide and Seek

Hello Neighbor: Hide and Seek

فکری و معمایی برای کامپیوتر

Warhammer 40000 - Space Marine

Warhammer 40000 - Space Marine

پتک جنگ - جنگاور فضا

This Land Is My Land Founders Edition v18918 MULTi12

This Land Is My Land Founders Edition v18918 MULTi12

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

XPS Viewer 1.0

XPS Viewer 1.0

نرم افزار مشاهده فايل های XPS

Heart of Darkness

Heart of Darkness

دل تاریکی

KAKU: Ancient Seal v02.09.2024

KAKU: Ancient Seal v02.09.2024

کاکو

Microsoft PowerToys 0.101.2362.0

Microsoft PowerToys 0.101.2362.0

ابزارهای کاربردی برای ویندوز 10

Clean Disk Security 8.10

Clean Disk Security 8.10

حذف قطعی فایل ها

FIFA 22

FIFA 22

فیفا 22

خبرنامه

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